IwojIFBsZWFzZSBkb24ndCBtb2RpZnkgdGhpcyBmaWxlIGFzIHlvdXIgY2hhbmdlcyB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGgKIyB0aGUgbmV4dCB1cGRhdGUuIFVzZSBAQExPQ0FMX1JVTEVTX0RJUkBAL2xvY2FsLmNmIGluc3RlYWQuCiMgU2VlICdwZXJsZG9jIE1haWw6OlNwYW1Bc3Nhc3Npbjo6Q29uZicgZm9yIGRldGFpbHMuCiMKIyA8QExJQ0VOU0U+CiMgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCiMgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoCiMgdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLgojIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCiMgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKIyB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKIwojICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAojIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgojIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KIyA8L0BMSUNFTlNFPgojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBjaGFyYWN0ZXIgc2V0CmxhbmcgcHRfQlIgcmVwb3J0X2NoYXJzZXQgaXNvLTg4NTktMQoKIyBwdF9CUiB0cmFuc2xhdGlvbiBieSBXM1AgUHJvamV0b3MgV2ViIChodHRwOi8vd3d3LnczcC5jb20uYnIvKQoKbGFuZyBwdF9CUiBjbGVhcl9yZXBvcnRfdGVtcGxhdGUKbGFuZyBwdF9CUiByZXBvcnQgTyBmaWx0cm8gZGUgc3BhbSBkbyBzZXJ2aWRvciAiX0hPU1ROQU1FXyIgaWRlbnRpZmljb3UgZXN0ZQpsYW5nIHB0X0JSIHJlcG9ydCBlLW1haWwgY29tbyB1bSBzcGFtLiAgQSBtZW5zYWdlbSBvcmlnaW5hbCBlc3ThIGFuZXhhIGEgZXN0ZQpsYW5nIHB0X0JSIHJlcG9ydCBlc3RlIGUtbWFpbCBwYXJhIHF1ZSBwb3NzYSBzZXIgdmlzdWFsaXphZGEgKGNhc28gbuNvIHNlamEKbGFuZyBwdF9CUiByZXBvcnQgdW0gc3BhbSkgb3UgcGFyYSBxdWUgZW1haWxzIGZ1dHVyb3Mgc2ltaWxhcmVzIGEgZXN0ZSBzZWphbQpsYW5nIHB0X0JSIHJlcG9ydCBtYXJjYWRvcyBjb21vIHNwYW0gdGFtYultLiBDYXNvIHRlbmhhIGFsZ3VtYSBk+nZpZGEsIGVudHJlCmxhbmcgcHRfYnIgcmVwb3J0IGVtIGNvbnRhdG8gbm8gZW1haWwgX0NPTlRBQ1RBRERSRVNTXyBwYXJhIG1haXMgZGV0YWxoZXMuCmxhbmcgcHRfQlIgcmVwb3J0CmxhbmcgcHRfQlIgcmVwb3J0IFZpc3VhbGl6YefjbyBkZSB1bSB0cmVjaG86ICBfUFJFVklFV18KbGFuZyBwdF9CUiByZXBvcnQKbGFuZyBwdF9CUiByZXBvcnQgRGV0YWxoZXMgZGEgYW7hbGlzZTogICAoX1NDT1JFXyBwb250b3MsIG3tbmltbyBkZSBfUkVRRF8pCmxhbmcgcHRfQlIgcmVwb3J0CmxhbmcgcHRfQlIgcmVwb3J0ICIgcHRzIHJlZ3JhICAgICAgICAgICAgICAgICAgZGVzY3Jp5+NvIgpsYW5nIHB0X0JSIHJlcG9ydCAgLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmxhbmcgcHRfQlIgcmVwb3J0IF9TVU1NQVJZXwoKbGFuZyBwdF9CUiBjbGVhcl91bnNhZmVfcmVwb3J0X3RlbXBsYXRlCmxhbmcgcHRfQlIgdW5zYWZlX3JlcG9ydCBBIG1lbnNhZ2VtIG9yaWdpbmFsIG7jbyBlc3RhdmEgZW0gdGV4dG8gcHVybyBlIHBvZGUgc2VyIGluc2VndXJvIGFicu0tbGEKbGFuZyBwdF9CUiB1bnNhZmVfcmVwb3J0IGVtIGFsZ3VucyBjbGllbnRlcyBkZSBlbWFpbDsgbWFpcyBlc3BlY2lmaWNhbWVudGUsIGVsYSBwb2RlIGNvbnRlciB1bSB27XJ1cwpsYW5nIHB0X0JSIHVuc2FmZV9yZXBvcnQgb3UgY29uZmlybWFyIHF1ZSBzZXUgZW5kZXJl528gZGUgZW1haWwgcG9kZSByZWNlYmVyIHNwYW0uCmxhbmcgcHRfQlIgdW5zYWZlX3JlcG9ydCBTZSBxdWlzZXIgdmlzdWFsaXphciBhIG1lbnNhZ2VtLCBwb2RlIHNlciBtYWlzIHNlZ3VybyBzYWx24S1sYSBlbSB1bSBhcnF1aXZvCmxhbmcgcHRfQlIgdW5zYWZlX3JlcG9ydCBlIGFicu0tbGEgY29tIHVtIGVkaXRvci4KCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVNFUl9JTl9CTEFDS0xJU1QgRW5kZXJl528gZG8gRnJvbTogZXN04SBuYSBibGFja2xpc3QgZG8gdXN14XJpbwpsYW5nIHB0X0JSIGRlc2NyaWJlIFVTRVJfSU5fV0hJVEVMSVNUIEVuZGVyZedvIGRvIEZyb206IGVzdOEgbmEgd2hpdGVsaXN0IGRvIHVzdeFyaW8KbGFuZyBwdF9CUiBkZXNjcmliZSBVU0VSX0lOX0RFRl9XSElURUxJU1QgRW5kZXJl528gZG8gRnJvbTogZXN04SBuYSB3aGl0ZWxpc3QgcGFkcuNvCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVNFUl9JTl9CTEFDS0xJU1RfVE8gVXN14XJpbyBlc3ThIGxpc3RhZG8gbmEgJ2JsYWNrbGlzdF90bycKbGFuZyBwdF9CUiBkZXNjcmliZSBVU0VSX0lOX1dFTENPTUVMSVNUX1RPIFVzdeFyaW8gZXN04SBsaXN0YWRvIG5hICd3aGl0ZWxpc3RfdG8nCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVNFUl9JTl9NT1JFX1NQQU1fVE8gVXN14XJpbyBlc3ThIGxpc3RhZG8gbmEgJ21vcmVfc3BhbV90bycKbGFuZyBwdF9CUiBkZXNjcmliZSBVU0VSX0lOX0FMTF9TUEFNX1RPIFVzdeFyaW8gZXN04SBsaXN0YWRvIG5hICdhbGxfc3BhbV90bycKCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpBV0wKbGFuZyBwdF9CUiBkZXNjcmliZSBBV0wgRW5kZXJl528gZG8gRnJvbTogZXN04SBuYSBhdXRvIHdoaXRlbGlzdAplbmRpZgoKIyAyMF9hZHZhbmNlX2ZlZS5jZiAtIFRoZXNlIGFyZSByZW1vdmVkIGFuZCB3aWxsIGJyZWFrIGxpbnQKI2xhbmcgcHRfQlIgZGVzY3JpYmUgQURWQU5DRV9GRUVfMiBBcGFyZW50YSBzZXIgZnJhdWRlIChOaWdlcmlhbiA0MTkpCiNsYW5nIHB0X0JSIGRlc2NyaWJlIEFEVkFOQ0VfRkVFXzNfTkVXIEFwYXJlbnRhIHNlciBmcmF1ZGUgKE5pZ2VyaWFuIDQxOSkKI2xhbmcgcHRfQlIgZGVzY3JpYmUgQURWQU5DRV9GRUVfNF9ORVcgQXBhcmVudGEgc2VyIGZyYXVkZSAoTmlnZXJpYW4gNDE5KQoKIyAyMF9ib2R5X3Rlc3RzLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgR1RVQkUgR2VuZXJpYyBUZXN0IGZvciBVbnNvbGljaXRlZCBCdWxrIEVtYWlsCmxhbmcgcHRfQlIgZGVzY3JpYmUgVFJBQ0tFUl9JRCBNZW5zYWdlbSBjb2506W0gdW0gY/NkaWdvIHJhc3RyYW1lbnRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgV0VJUkRfUVVPVElORyBQb3NzdWkgY2FyYWN0ZXJlcyAiIiBlc3RyYW5ob3MKbGFuZyBwdF9CUiBkZXNjcmliZSBNSU1FX0hUTUxfT05MWV9NVUxUSSBNZW5zYWdlbSBkaXogc2VyIG11bHRpcGFydCBtYXMgc/MgcG9zc3VpIGZvcm1hdG8gdGV4dC9odG1sCmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlNRV9DSEFSU0VUX0ZBUkFXQVkgTUlNRSBjaGFyYWN0ZXIgc2V0IGluZGljYSBpZGlvbWEgZXN0cmFuZ2Vpcm8KbGFuZyBwdF9CUiBkZXNjcmliZSBFTUFJTF9ST1QxMyBNZW5zYWdlbSBjb2506W0gdW0gZW5kZXJl528gZGUgZW1haWwgY29kaWZpY2FkbyBjb20gUk9UMTMKbGFuZyBwdF9CUiBkZXNjcmliZSBMT05HV09SRFMgQ29udOltIHRyZWNob3MgbG9uZ29zIGRlIHBhbGF2cmFzIGV4dGVuc2FzCmxhbmcgcHRfQlIgZGVzY3JpYmUgTVBBUlRfQUxUX0RJRkYgVmVyc+NvIEhUTUwgZSB2ZXJz428gVGV4dG8gZGEgbWVuc2FnZW0gc+NvIGRpZmVyZW50ZXMKbGFuZyBwdF9CUiBkZXNjcmliZSBNUEFSVF9BTFRfRElGRl9DT1VOVCBWZXJz428gSFRNTCBlIHZlcnPjbyBUZXh0byBkYSBtZW5zYWdlbSBz428gZGlmZXJlbnRlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEJMQU5LX0xJTkVTXzgwXzkwIENvcnBvIGRhIG1lbnNhZ2VtIOkgY29tcG9zdG8gcG9yIDgwLTkwJSBkZSBsaW5oYXMgZW0gYnJhbmNvCmxhbmcgcHRfQlIgZGVzY3JpYmUgQ0hBUlNFVF9GQVJBV0FZIENoYXJhY3RlciBzZXQgaW5kaWNhIHVtIGlkaW9tYSBlc3RyYW5nZWlybwpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fTUlNRV9CQVNFNjQgUG9zc3VpIGFuZXhvIG5vIGZvcm1hdG8gYmFzZTY0CmxhbmcgcHRfQlIgZGVzY3JpYmUgX19NSU1FX1FQIFBvc3N1aSBhbmV4byBubyBmb3JtYXRvIHF1b3RlZC1wcmludGFibGUKI2xhbmcgcHRfQlIgZGVzY3JpYmUgTUlNRV9CQVNFNjRfQkxBTktTIFBvc3N1aSBsaW5oYXMgdmF6aWFzIGV4dHJhcyBlbSBjb2RpZmljYefjbyBiYXNlNjQKbGFuZyBwdF9CUiBkZXNjcmliZSBNSU1FX0JBU0U2NF9URVhUIFRleHRvIGRhIG1lbnNhZ2VtIGVzdOEgZGlzZmFy52FkbyB1c2FuZG8gY29kaWZpY2Hn428gYmFzZTY0CmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlTU0lOR19NSU1FX0hCX1NFUCBGYWx0YSBsaW5oYSBlbSBicmFuY28gZW50cmUgTUlNRSBoZWFkZXIgZSBCb2R5CmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlNRV9IVE1MX01PU1RMWSBNZW5zYWdlbSBtdWx0aXBhcnQg6SBjb21wb3N0YSBlbSBzdWEgbWFpb3JpYSBwb3IgdGV4dC9odG1sCmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlNRV9IVE1MX09OTFkgTWVuc2FnZW0gc29tZW50ZSBwb3NzdWkgZm9ybWF0byB0ZXh0L2h0bWwKbGFuZyBwdF9CUiBkZXNjcmliZSBNSU1FX1FQX0xPTkdfTElORSBMaW5oYSBkbyB0aXBvIFF1b3RlZC1wcmludGFibGUgbWFpb3IgcXVlIDc2IGNhcmFjdGVyZXMKbGFuZyBwdF9CUiBkZXNjcmliZSBNSU1FX0JBRF9JU09fQ0hBUlNFVCBNSU1FIGNoYXJhY3RlciBzZXQg6SB1bSBjaGFyc2V0IElTTyBkZXNjb25oZWNpZG8KbGFuZyBwdF9CUiBkZXNjcmliZSBIVFRQU19JUF9NSVNNQVRDSCBMaW5rIGluZGljYSBIVFRQUywgbWFzIG5hIHZlcmRhZGUgYXBvbnRhIHBhcmEgdW0gSVAKbGFuZyBwdF9CUiBkZXNjcmliZSBVUklfVFJVTkNBVEVEIE1lbnNhZ2VtIHBvc3N1aSB1bWEgVVJJIHF1ZSBmb2kgdHJ1bmNhZGEKCiMgMjBfY29tcGVuc2F0ZS5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIE5PX1JFQ0VJVkVEIEluZm9ybWHn4286IG1lbnNhZ2VtIG7jbyBwb3NzdWkgY2FiZedhbGhvIFJlY2VpdmVkOgpsYW5nIHB0X0JSIGRlc2NyaWJlIEFMTF9UUlVTVEVEIE1lbnNhZ2VtIHBhc3NvdSB2aWEgU01UUCBhcGVuYXMgcG9yIGhvc3RzIGNvbmZp4XZlaXMKbGFuZyBwdF9CUiBkZXNjcmliZSBOT19SRUxBWVMgSW5mb3JtYefjbzogbWVuc2FnZW0gbuNvIGZvaSByZWNlYmlkYSB2aWEgU01UUAoKIyAyMF9kbnNibF90ZXN0cy5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fUkNWRF9JTl9TT1JCUyBSZWNlYmlkYSBwb3IgdW0gcmVsYXkgbGlzdGFkbyBlbSBTT1JCUwpsYW5nIHB0X0JSIGRlc2NyaWJlIFJDVkRfSU5fU09SQlNfSFRUUCBTT1JCUzogcmVtZXRlbnRlIOkgdW0gcHJveHkgSFRUUCBhYmVydG8KbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX1NPUkJTX1NPQ0tTIFNPUkJTOiByZW1ldGVudGUg6SB1bSBwcm94eSBTT0NLUyBhYmVydG8KbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX1NPUkJTX01JU0MgU09SQlM6IHJlbWV0ZW50ZSDpIHVtIHByb3h5IGFiZXJ0bwpsYW5nIHB0X0JSIGRlc2NyaWJlIFJDVkRfSU5fU09SQlNfU01UUCBTT1JCUzogcmVtZXRlbnRlIOkgdW0gcmVsYXkgU01UUCBhYmVydG8KbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX1NPUkJTX1dFQiBTT1JCUzogcmVtZXRlbnRlIOkgdW0gc2Vydmlkb3Igd2ViIGV4cGxvcuF2ZWwKbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX1NPUkJTX0JMT0NLIFNPUkJTOiByZW1ldGVudGUgcmVxdWVyIHF1ZSBu428gc2VqYSB0ZXN0YWRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9JTl9TT1JCU19aT01CSUUgU09SQlM6IHJlbWV0ZW50ZSBlc3ThIGVtIHVtYSByZWRlIGNvbXByb21ldGlkYQpsYW5nIHB0X0JSIGRlc2NyaWJlIFJDVkRfSU5fU09SQlNfRFVMIFNPUkJTOiBtZW5zYWdlbSBlbnZpYWRhIGEgcGFydGlyIGRlIHVtIElQIGRpbuJtaWNvCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SQ1ZEX0lOX1pFTiBSZWNlYmlkYSBwb3IgdW0gcmVsYXkgbGlzdGFkbyBlbSBTcGFtaGF1cyBaZW4KbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX1NCTCBSZWNlYmlkYSBwb3IgdW0gcmVsYXkgbGlzdGFkbyBlbSBTcGFtaGF1cyBTQkwKbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX1hCTCBSZWNlYmlkYSBwb3IgdW0gcmVsYXkgbGlzdGFkbyBlbSBTcGFtaGF1cyBYQkwKbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX1BCTCBSZWNlYmlkYSBwb3IgdW0gcmVsYXkgbGlzdGFkbyBlbSBTcGFtaGF1cyBQQkwKbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0lOX0JMX1NQQU1DT1BfTkVUIFJlY2ViaWRhIHBvciB1bSByZWxheSBsaXN0YWRvIGVtIGJsLnNwYW1jb3AubmV0CmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9JTl9NQVBTX1JCTCBSZWxheSBjb25zdGEgZW0gUkJMLCBodHRwOi8vd3d3Lm1haWwtYWJ1c2UuY29tL2VuZHVzZXJpbmZvX3JibC5odG1sCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9JTl9NQVBTX0RVTCBSZWxheSBjb25zdGEgZW0gRFVMLCBodHRwOi8vd3d3Lm1haWwtYWJ1c2UuY29tL2VuZHVzZXJpbmZvX2R1bC5odG1sCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9JTl9NQVBTX1JTUyBSZWxheSBjb25zdGEgZW0gUlNTLCBodHRwOi8vd3d3Lm1haWwtYWJ1c2UuY29tL2VuZHVzZXJpbmZvX3Jzcy5odG1sCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9JTl9NQVBTX09QUyBSZWxheSBjb25zdGEgZW0gT1BTLCBodHRwOi8vd3d3Lm1haWwtYWJ1c2UuY29tL2VuZHVzZXJpbmZvX29wcy5odG1sCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9JTl9NQVBTX05NTCBSZWxheSBjb25zdGEgZW0gTk1MLCBodHRwOi8vd3d3Lm1haWwtYWJ1c2UuY29tL2VuZHVzZXJpbmZvX25tbC5odG1sCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9JTl9JQURCX1ZPVUNIRUQgSVNJUFAgSUFEQiBpbmRpY2EgcXVlIG8gcmVtZXRlbnRlIOkgY29uZmnhdmVsICh2b3VjaGVkLWZvciBzZW5kZXIpCgojIDIwX2RydWdzLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1VCSkVDVF9EUlVHX0dBUF9DIEFzc3VudG8gY29udOltIHVtYSBtb2RpZmljYefjbyBkYSBwYWxhdnJhICdjaWFsaXMnCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1VCSkVDVF9EUlVHX0dBUF9MIEFzc3VudG8gY29udOltIHVtYSBtb2RpZmljYefjbyBkYSBwYWxhdnJhICdsZXZpdHJhJwpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpFQ1RfRFJVR19HQVBfUyBBc3N1bnRvIGNvbnTpbSB1bWEgbW9kaWZpY2Hn428gZGEgcGFsYXZyYSAnc29tYScKI2xhbmcgcHRfQlIgZGVzY3JpYmUgU1VCSkVDVF9EUlVHX0dBUF9WQSBBc3N1bnRvIGNvbnTpbSB1bWEgbW9kaWZpY2Hn428gZGEgcGFsYXZyYSAndmFsaXVtJwpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpFQ1RfRFJVR19HQVBfWCBBc3N1bnRvIGNvbnTpbSB1bWEgbW9kaWZpY2Hn428gZGEgcGFsYXZyYSAneGFuYXgnCmxhbmcgcHRfQlIgZGVzY3JpYmUgRFJVR19ET1NBR0UgTWVuc2FnZW0g6SBzb2JyZSBwcmXnbyBwb3IgZG9zZSAocHJpY2UgcGVyIGRvc2UpCmxhbmcgcHRfQlIgZGVzY3JpYmUgRFJVR19FRF9DQVBTIE1lbmNpb25hIHVtYSBkcm9nYSBwYXJhIGRpc2Z1bufjbyBlcul0aWwKbGFuZyBwdF9CUiBkZXNjcmliZSBEUlVHX0VEX1NJTEQgTWVuY2lvbmEgbyBwcmluY+1waW8gYXRpdm8gZGUgdW1hIGRyb2dhIHBhcmEgZGlzZnVu5+NvIGVy6XRpbApsYW5nIHB0X0JSIGRlc2NyaWJlIERSVUdfRURfR0VORVJJQyBNZW5jaW9uYSAiR2VuZXJpYyBWaWFncmEiCmxhbmcgcHRfQlIgZGVzY3JpYmUgRFJVR19FRF9PTkxJTkUgQ29udOltICJGYXN0IFZpYWdyYSBEZWxpdmVyeSIKbGFuZyBwdF9CUiBkZXNjcmliZSBPTkxJTkVfUEhBUk1BQ1kgQ29udOltICJPbmxpbmUgUGhhcm1hY3kiCmxhbmcgcHRfQlIgZGVzY3JpYmUgTk9fUFJFU0NSSVBUSU9OIENvbnTpbSBhIGZyYXNlICJObyBwcmVzY3JpcHRpb24gbmVlZGVkIgpsYW5nIHB0X0JSIGRlc2NyaWJlIFZJQV9HQVBfR1JBIFRlbnRhdGl2YSBkZSBkaXNmYXLnYXIgYSBwYWxhdnJhICd2aWFncmEnCmxhbmcgcHRfQlIgZGVzY3JpYmUgRFJVR1NfRVJFQ1RJTEUgUmVmZXJlLXNlIGEgdW1hIGRyb2dhIHBhcmEgZGlzZnVu5+NvIGVy6XRpbApsYW5nIHB0X0JSIGRlc2NyaWJlIERSVUdTX0VSRUNUSUxFX09CRlUgUmVmZXLqbmNpYSBvZnVzY2FkYSBhIHVtYSBkcm9nYSBwYXJhIGRpc2Z1bufjbyBlcul0aWwKbGFuZyBwdF9CUiBkZXNjcmliZSBEUlVHU19ESUVUIFJlZmVyZS1zZSBhIHVtYSBkcm9nYSBwYXJhIGRpZXRhCmxhbmcgcHRfQlIgZGVzY3JpYmUgRFJVR1NfRElFVF9PQkZVIFJlZmVy6m5jaWEgb2Z1c2NhZGEgYSB1bWEgZHJvZ2EgcGFyYSBkaWV0YQpsYW5nIHB0X0JSIGRlc2NyaWJlIERSVUdTX01VU0NMRSBSZWZlcupuY2lhIGEgdW0gcmVsYXhhbnRlIG11c2N1bGFyCmxhbmcgcHRfQlIgZGVzY3JpYmUgRFJVR1NfQU5YSUVUWSBSZWZlcupuY2lhIGEgdW1hIGRyb2dhIHBhcmEgY29udHJvbGUgZGUgYW5zaWVkYWRlCmxhbmcgcHRfQlIgZGVzY3JpYmUgRFJVR1NfQU5YSUVUWV9PQkZVIFJlZmVy6m5jaWEgb2Z1c2NhZGEgYSB1bWEgZHJvZ2EgcGFyYSBjb250cm9sZSBkZSBhbnNpZWRhZGUKbGFuZyBwdF9CUiBkZXNjcmliZSBEUlVHU19TTUVBUjEgRHVhcyBvdSBtYWlzIGRyb2dhcyBlbSB1bWEgcGFsYXZyYSBz8wpsYW5nIHB0X0JSIGRlc2NyaWJlIERSVUdTX0FOWElFVFlfRVJFQyBSZWZlcmUtc2UgYSB1bWEgZHJvZ2EgcGFyYSBkaXNmdW7n428gZXLpdGlsIGUgb3V0cmEgcGFyYSBjb250cm9sZSBkZSBhbnNpZWRhZGUKbGFuZyBwdF9CUiBkZXNjcmliZSBEUlVHU19TTEVFUF9FUkVDIFJlZmVyZS1zZSBhIHVtYSBkcm9nYSBwYXJhIGRpc2Z1bufjbyBlcul0aWwgZSB1bSBjYWxtYW50ZQpsYW5nIHB0X0JSIGRlc2NyaWJlIERSVUdTX01BTllLSU5EUyBSZWZlcmUtc2UgYW8gbWVub3MgYSBxdWF0cm8gdGlwb3MgZGUgZHJvZ2FzIGRpZmVyZW50ZXMKCiMgMjBfZHlucmRucy5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fUkROU19EWU5BTUlDX0lQQUREUiBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKElQIGFkZHIgMSkKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1JETlNfRFlOQU1JQ19ESENQIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoREhDUCkKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1JETlNfRFlOQU1JQ19IQ0MgQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChIQ0MpCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SRE5TX0RZTkFNSUNfQVRUQkkgQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChBVFRCSS5jb20pCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SRE5TX0RZTkFNSUNfUk9HRVJTIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoUm9nZXJzKQpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fUkROU19EWU5BTUlDX0FERUxQSElBIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoQWRlbHBoaWEpCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SRE5TX0RZTkFNSUNfRElBTElOIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoVC1EaWFsaW4pCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SRE5TX0RZTkFNSUNfSEVYSVAgQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChIZXggSVApCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SRE5TX0RZTkFNSUNfU1BMSVRfSVAgQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChTcGxpdCBJUCkKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1JETlNfRFlOQU1JQ19ZQUhPT0JCIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoWWFob29CQikKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1JETlNfRFlOQU1JQ19PT0wgQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChPcHRPbmxpbmUpCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SRE5TX0RZTkFNSUNfUlIyIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoUlIgMikKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1JETlNfRFlOQU1JQ19DT01DQVNUIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoQ29tY2FzdCkKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1JETlNfRFlOQU1JQ19URUxJQSBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKFRlbGlhKQpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fUkROU19EWU5BTUlDX1ZUUiBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKFZUUikKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1JETlNfRFlOQU1JQ19DSEVMTE9fTk8gQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChDaGVsbG8ubm8pCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19SRE5TX0RZTkFNSUNfQ0hFTExPX05MIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoQ2hlbGxvLm5sKQpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fUkROU19EWU5BTUlDX1ZFTE9YIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoVmVsb3h6b25lKQpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fUkROU19EWU5BTUlDX05UTCBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKE5UTCkKbGFuZyBwdF9CUiBkZXNjcmliZSBSRE5TX0RZTkFNSUMgRW50cmVndWUgYSB1bWEgcmVkZSBpbnRlcm5hIHBvciB1bSBob3N0IGNvbSByRE5TIHF1ZSBwYXJlY2Ugc2VyIGRpbuJtaWNvCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkROU19OT05FIEVudHJlZ3VlIGEgdW1hIHJlZGUgaW50ZXJuYSBwb3IgdW0gaG9zdCBzZW0gckROUwoKIyAyMF9mYWtlX2hlbG9fdGVzdHMuY2YKbGFuZyBwdF9CUiBkZXNjcmliZSBIRUxPX1NUQVRJQ19IT1NUIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBlc3RhdGljbwojbGFuZyBwdF9CUiBkZXNjcmliZSBGQUtFX0hFTE9fTUFJTF9DT01fRE9NIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAobWFpbC5jb20pCmxhbmcgcHRfQlIgZGVzY3JpYmUgSEVMT19EWU5BTUlDX0lQQUREUiBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKElQIGFkZHIgMSkKbGFuZyBwdF9CUiBkZXNjcmliZSBIRUxPX0RZTkFNSUNfREhDUCBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKERIQ1ApCmxhbmcgcHRfQlIgZGVzY3JpYmUgSEVMT19EWU5BTUlDX0hDQyBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKEhDQykKbGFuZyBwdF9CUiBkZXNjcmliZSBIRUxPX0RZTkFNSUNfUk9HRVJTIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoUm9nZXJzKQpsYW5nIHB0X0JSIGRlc2NyaWJlIEhFTE9fRFlOQU1JQ19ESUFMSU4gQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChULURpYWxpbikKbGFuZyBwdF9CUiBkZXNjcmliZSBIRUxPX0RZTkFNSUNfSEVYSVAgQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChIZXggSVApCmxhbmcgcHRfQlIgZGVzY3JpYmUgSEVMT19EWU5BTUlDX1NQTElUX0lQIENvbWFuZG8gSEVMTyBlbnZpYWRvIHVzYW5kbyBob3N0bmFtZSBzdXNwZWl0byAoU3BsaXQgSVApCmxhbmcgcHRfQlIgZGVzY3JpYmUgSEVMT19EWU5BTUlDX0lQQUREUjIgQ29tYW5kbyBIRUxPIGVudmlhZG8gdXNhbmRvIGhvc3RuYW1lIHN1c3BlaXRvIChJUCBhZGRyIDIpCmxhbmcgcHRfQlIgZGVzY3JpYmUgSEVMT19EWU5BTUlDX0NIRUxMT19OTCBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKENoZWxsby5ubCkKbGFuZyBwdF9CUiBkZXNjcmliZSBIRUxPX0RZTkFNSUNfSE9NRV9OTCBDb21hbmRvIEhFTE8gZW52aWFkbyB1c2FuZG8gaG9zdG5hbWUgc3VzcGVpdG8gKEhvbWUubmwpCgojIDIwX2ZyZWVtYWlsLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJFRU1BSUxfUkVQTFlUTyBSZXBseS1Uby9Gcm9tIG91IFJlcGx5LVRvL2JvZHkgdXNhbSBkaWZlcmVudGVzIGVtYWlscyBncmF0dWl0b3MKbGFuZyBwdF9CUiBkZXNjcmliZSBGUkVFTUFJTF9SRVBMWSBGcm9tIGUgYm9keSBjb2506W0gZGlmZXJlbnRlcyBlbWFpbHMgZ3JhdHVpdG9zCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJFRU1BSUxfRlJPTSBSZW1ldGVudGUgdXRpbGl6YSB1bSBlbWFpbCBncmF0dWl0bwpsYW5nIHB0X0JSIGRlc2NyaWJlIEZSRUVNQUlMX0VOVkZST01fRU5EX0RJR0lUIE5vbWUgZGUgdXN14XJpbyBkZSBlbWFpbCBncmF0dWl0byBubyBFbnZlbG9wZS1Gcm9tIHRlcm1pbmEgZW0gZO1naXRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJFRU1BSUxfUkVQTFlUT19FTkRfRElHSVQgTm9tZSBkZSB1c3XhcmlvIGRlIGVtYWlsIGdyYXR1aXRvIG5vIFJlcGx5LVRvIHRlcm1pbmEgZW0gZO1naXRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJFRU1BSUxfRk9SR0VEX1JFUExZVE8gRW1haWwgZ3JhdHVpdG8gdXNhZG8gbm8gUmVwbHktVG8sIG1hcyBu428gbm8gRnJvbToKCiMgMjBfaGVhZF90ZXN0cy5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIEZSQUdNRU5URURfTUVTU0FHRSBNZW5zYWdlbSBmcmFnbWVudGFkYQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZST01fQkxBTktfTkFNRSBGcm9tOiBjb2506W0gdW0gbm9tZSB2YXppbwpsYW5nIHB0X0JSIGRlc2NyaWJlIEZST01fU1RBUlRTX1dJVEhfTlVNUyBGcm9tOiBjb21l52EgY29tIG11aXRvcyBu+m1lcm9zCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJPTV9PRkZFUlMgRW5kZXJl528gZG8gRnJvbTogY29udOltICJvZmZlcnMiCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJPTV9OT19VU0VSIEZyb206IG7jbyB0ZW0gbmVuaHVtIG5vbWUgZGUgdXN14XJpbyBhbnRlcyBkbyBACmxhbmcgcHRfQlIgZGVzY3JpYmUgUExJTkdfUVVFUlkgQXNzdW50byBjb2506W0gZXhjbGFtYefjbyBlIGludGVycm9nYefjbwpsYW5nIHB0X0JSIGRlc2NyaWJlIE1TR0lEX1NQQU1fQ0FQUyBNZXNzYWdlLUlkIGNvbmhlY2lkbyBjb21vIHNwYW0gKGNhcHMgdmFyaWFudCkKbGFuZyBwdF9CUiBkZXNjcmliZSBNU0dJRF9TUEFNX0xFVFRFUlMgTWVzc2FnZS1JZCBjb25oZWNpZG8gY29tbyBzcGFtIChsZXR0ZXJzIHZhcmlhbnQpCmxhbmcgcHRfQlIgZGVzY3JpYmUgTVNHSURfUkFORFkgTWVzc2FnZS1JZCB0ZW0gcGFkcuNvIGNvbXVtIGVuY29udHJhZG8gZW0gc3BhbQpsYW5nIHB0X0JSIGRlc2NyaWJlIE1TR0lEX1lBSE9PX0NBUFMgTWVzc2FnZS1JRCBwb3NzdWkgTUFJVVNDVUxBU0B5YWhvby5jb20KbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfTVNHSURfQU9MIE1lc3NhZ2UtSUQg6SBmb3JqYWRvIChhb2wuY29tKQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9NU0dJRF9FWENJVEUgTWVzc2FnZS1JRCDpIGZvcmphZG8gKGV4Y2l0ZS5jb20pCmxhbmcgcHRfQlIgZGVzY3JpYmUgRk9SR0VEX01TR0lEX0hPVE1BSUwgTWVzc2FnZS1JRCDpIGZvcmphZG8gKGhvdG1haWwuY29tKQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9NU0dJRF9NU04gTWVzc2FnZS1JRCDpIGZvcmphZG8gKG1zbi5jb20pCmxhbmcgcHRfQlIgZGVzY3JpYmUgRk9SR0VEX01TR0lEX1lBSE9PIE1lc3NhZ2UtSUQg6SBmb3JqYWRvICh5YWhvby5jb20pCmxhbmcgcHRfQlIgZGVzY3JpYmUgTVNHSURfRlJPTV9NVEFfSEVBREVSIE1lc3NhZ2UtSWQgZm9pIGFkaWNpb25hZG8gcG9yIHVtIHJlbGF5CmxhbmcgcHRfQlIgZGVzY3JpYmUgTVNHSURfU0hPUlQgTWVzc2FnZS1JRCDpIGN1cnRvIGRlbWFpcwpsYW5nIHB0X0JSIGRlc2NyaWJlIERBVEVfU1BBTVdBUkVfWTJLIERhdGEgbm8gY2FiZedhbGhvIHVzYSBmb3JtYXRh5+NvIGVzdHJhbmhhCmxhbmcgcHRfQlIgZGVzY3JpYmUgSU5WQUxJRF9EQVRFIENhYmXnYWxobyBEYXRlOiDpIGluduFsaWRvIChu428gc2VndWUgYSBSRkMgMjgyMikKbGFuZyBwdF9CUiBkZXNjcmliZSBJTlZBTElEX0RBVEVfVFpfQUJTVVJEIENhYmXnYWxobyBEYXRlOiDpIGluduFsaWRvICh0aW1lem9uZSBu428gZXhpc3RlKQpsYW5nIHB0X0JSIGRlc2NyaWJlIElOVkFMSURfVFpfQ1NUIERhdGEgaW524WxpZGEgbm8gaGVhZGVyICh0aW1lem9uZSBDU1QgaW5jb3JyZXRhKQpsYW5nIHB0X0JSIGRlc2NyaWJlIElOVkFMSURfVFpfRVNUIERhdGEgaW524WxpZGEgbm8gaGVhZGVyICh0aW1lem9uZSBFU1QgaW5jb3JyZXRhKQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZST01fRVhDRVNTX0JBU0U2NCBFbmRlcmXnbyBkbyBGcm9tOiBlc3ThIGRlc25lY2Vzc2FyaWFtZW50ZSBjb2RpZmljYWRvIGVtIGJhc2U2NApsYW5nIHB0X0JSIGRlc2NyaWJlIEVOR0xJU0hfVUNFX1NVQkpFQ1QgQXNzdW50byBjb2506W0gdW0gdGV4dG8gY29tdW0gZGUgVUNFICh1bnNvbGljaXRlZCBjb21tZXJjaWFsIGVtYWlsKSBlbSBpbmds6nMKbGFuZyBwdF9CUiBkZXNjcmliZSBKQVBBTkVTRV9VQ0VfU1VCSkVDVCBBc3N1bnRvIGNvbnTpbSB1bSB0ZXh0byBjb211bSBkZSBVQ0UgKHVuc29saWNpdGVkIGNvbW1lcmNpYWwgZW1haWwpIGVtIGphcG9u6nMKbGFuZyBwdF9CUiBkZXNjcmliZSBKQVBBTkVTRV9VQ0VfQk9EWSBDb3JwbyBkYSBtZW5zYWdlbSBjb2506W0gdW0gdGV4dG8gY29tdW0gZGUgVUNFICh1bnNvbGljaXRlZCBjb21tZXJjaWFsIGVtYWlsKSBlbSBqYXBvbupzCmxhbmcgcHRfQlIgZGVzY3JpYmUgS09SRUFOX1VDRV9TVUJKRUNUIEFzc3VudG8gY29udOltIHVtIHRleHRvIGNvbXVtIGRlIFVDRSAodW5zb2xpY2l0ZWQgY29tbWVyY2lhbCBlbWFpbCkgZW0gY29yZWFubwpsYW5nIHB0X0JSIGRlc2NyaWJlIFJDVkRfRE9VQkxFX0lQX1NQQU0gU3BhbSBjb25oZWNpZG8gKGRvdWJsZSBJUCkKbGFuZyBwdF9CUiBkZXNjcmliZSBSQ1ZEX0RPVUJMRV9JUF9MT09TRSAiUmVjZWl2ZWQgYnkiIGUgIkZyb20iIHBhcmVjZW0gc2VyIGVuZGVyZedvcyBJUApsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9URUxFU1BfUkNWRCBDb2506W0gdW0gaG9zdG5hbWUgZm9yamFkbyBwYXJhIHVtIElQIERTTCBkbyBCcmFzaWwKbGFuZyBwdF9CUiBkZXNjcmliZSBDT05GSVJNRURfRk9SR0VEIENhYmXnYWxobyBSZWNlaXZlZCDpIGZvcmphZG8KbGFuZyBwdF9CUiBkZXNjcmliZSBNVUxUSV9GT1JHRUQgQ2FiZedhbGhvIFJlY2VpdmVkIGNvbnTpbSB24XJpYXMgZW50cmFkYXMgZm9yamFkYXMKbGFuZyBwdF9CUiBkZXNjcmliZSBOT05FWElTVEVOVF9DSEFSU0VUIENvZGlmaWNh5+NvIGluZXhpc3RlbnRlCmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlTU0lOR19NSUQgTuNvIHBvc3N1aSBoZWFkZXIgTWVzc2FnZS1JZApsYW5nIHB0X0JSIGRlc2NyaWJlIE1JU1NJTkdfREFURSBO428gcG9zc3VpIGhlYWRlciBEYXRlCmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlTU0lOR19TVUJKRUNUIE7jbyBwb3NzdWkgaGVhZGVyIFN1YmplY3QKbGFuZyBwdF9CUiBkZXNjcmliZSBHQVBQWV9TVUJKRUNUIEFzc3VudG8gY29udOltIFQuZS54LnQuby1FLnMudC5yLmEubi5oLm8KbGFuZyBwdF9CUiBkZXNjcmliZSBQUkVWRU5UX05PTkRFTElWRVJZIE1lbnNhZ2VtIHBvc3N1aSBjYWJl52FobyBQcmV2ZW50LU5vbkRlbGl2ZXJ5LVJlcG9ydApsYW5nIHB0X0JSIGRlc2NyaWJlIFhfSVAgTWVuc2FnZW0gcG9zc3VpIGNhYmXnYWxobyBYLUlQCmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlTU0lOR19NSU1FT0xFIE1lbnNhZ2VtIHBvc3N1aSBYLU1TTWFpbC1Qcmlvcml0eSBtYXMgbuNvIHBvc3N1aSBYLU1pbWVPTEUKbGFuZyBwdF9CUiBkZXNjcmliZSBTVUJKX0FTX1NFRU4gQXNzdW50byBjb2506W0gIkFzIFNlZW4iCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1VCSl9ET0xMQVJTIEFzc3VudG8gY29tZedhIGNvbSB1bSB2YWxvciBlbSBk82xhcgojbGFuZyBwdF9CUiBkZXNjcmliZSBTVUJKX1lPVVJfREVCVCBBc3N1bnRvIGNvbnTpbSAiWW91ciBCaWxscyIgb3UgYWxnbyBwYXJlY2lkbwpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpfWU9VUl9GQU1JTFkgQXNzdW50byBjb2506W0gIllvdXIgRmFtaWx5IiBvdSBhbGdvIHBhcmVjaWRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9GQUtFX0hFTE9fRE9UQ09NIENhYmXnYWxobyBSZWNlaXZlZCBjb2506W0gdW0gaG9zdG5hbWUgZGUgSEVMTyBmYWxzbwpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpFQ1RfRElFVCBBc3N1bnRvIGZhbGEgc29icmUgcGVyZGEgZGUgcGVzbwpsYW5nIHB0X0JSIGRlc2NyaWJlIE1JTUVfQk9VTkRfRERfRElHSVRTIFBhZHLjbyBkZSBzcGFtIGNvbmhlY2lkbyBlbSBNSU1FIGJvdW5kYXJ5CmxhbmcgcHRfQlIgZGVzY3JpYmUgTUlNRV9CT1VORF9ESUdJVFNfMTUgUGFkcuNvIGRlIHNwYW0gY29uaGVjaWRvIGVtIE1JTUUgYm91bmRhcnkKbGFuZyBwdF9CUiBkZXNjcmliZSBNSU1FX0JPVU5EX01BTllfSEVYIFBhZHLjbyBkZSBzcGFtIGNvbmhlY2lkbyBlbSBNSU1FIGJvdW5kYXJ5CmxhbmcgcHRfQlIgZGVzY3JpYmUgRkFLRV9PVVRCTEFaRV9SQ1ZEIENhYmXnYWxobyBSZWNlaXZlZCBjb2506W0gbyBob3N0bmFtZSBmb3JqYWRvICdtci5vdXRibGF6ZS5jb20nCmxhbmcgcHRfQlIgZGVzY3JpYmUgVE9fTUFMRk9STUVEIENhYmXnYWxobyBUbzogcG9zc3VpIHVtIGVuZGVyZedvIG1hbGZvcm1hZG8KbGFuZyBwdF9CUiBkZXNjcmliZSBNSU1FX0hFQURFUl9DVFlQRV9PTkxZICdDb250ZW50LVR5cGUnIGVuY29udHJhZG8gbWFzIG7jbyBleGlzdGUgTUlNRSBoZWFkZXJzIG5lY2Vzc+FyaW9zCmxhbmcgcHRfQlIgZGVzY3JpYmUgV0lUSF9MQ19TTVRQIENhYmXnYWxobyBSZWNlaXZlZCBjb2506W0gdW0gaW5k7WNpbyBkZSBzcGFtICgic210cCIgZW0gY2FpeGEgYmFpeGEpCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1VCSl9CVVkgQXNzdW50byBjb21l52EgY29tICJCdXkiIG91ICJCdXlpbmciCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9BTV9QTSBDYWJl52FsaG8gUmVjZWl2ZWQgZm9yamFkbyAoQU0vUE0pCmxhbmcgcHRfQlIgZGVzY3JpYmUgVU5DTE9TRURfQlJBQ0tFVCBDYWJl52FsaG8gY29udOltIHVtIGNvbGNoZXRlIGFiZXJ0byBxdWUgbuNvIGZvaSBmZWNoYWRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJPTV9ET01BSU5fTk9WT1dFTCBEb23tbmlvIGRvIEZyb206IGNvbnTpbSB1bWEgc+lyaWUgZGUgY29uc29hbnRlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEZST01fTE9DQUxfTk9WT1dFTCBVc3XhcmlvIGRvIEZyb206IGNvbnTpbSB1bWEgc+lyaWUgZGUgY29uc29hbnRlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEZST01fTE9DQUxfSEVYIFVzdeFyaW8gZG8gRnJvbTogY29udOltIHVtYSBsb25nYSBzZXF1ZW5jaWEgZGUgaGV4YWRlY2ltYWlzCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJPTV9MT0NBTF9ESUdJVFMgVXN14XJpbyBkbyBGcm9tOiBjb2506W0gdW1hIGxvbmdhIHNlcXVlbmNpYSBkZSBoZXhhZGVjaW1haXMKbGFuZyBwdF9CUiBkZXNjcmliZSBYX1BSSU9SSVRZX0NDIENhYmXnYWxobyAiQ2M6IiBwb3NpY2lvbmFkbyBkZXBvaXMgZGUgIlgtUHJpb3JpdHk6IiAoc3BhbSBjb25oZWNpZG8pCmxhbmcgcHRfQlIgZGVzY3JpYmUgQkFEX0VOQ19IRUFERVIgTWVuc2FnZW0gcG9zc3VpIE1JTUUgZW5jb2RpbmcgaW5jb3JyZXRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19WSUFfTUwgRW1haWwgZGUgdW1hIG1haWxpbmcgbGlzdApsYW5nIHB0X0JSIGRlc2NyaWJlIFJDVkRfSUxMRUdBTF9JUCBDYWJl52FsaG8gIlJlY2VpdmVkOiIgY29udOltIGVuZGVyZedvIElQIGlsZWdhbApsYW5nIHB0X0JSIGRlc2NyaWJlIENIQVJTRVRfRkFSQVdBWV9IRUFERVIgQ2hhcnNldCBlc3RyYW5nZWlybyB1dGlsaXphZG8gbm8gaGVhZGVyCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1VCSl9JTExFR0FMX0NIQVJTIEFzc3VudG8gcG9zc3VpIG11aXRvcyBjYXJhY3RlcmVzIGlsZWdhaXMKbGFuZyBwdF9CUiBkZXNjcmliZSBGUk9NX0lMTEVHQUxfQ0hBUlMgIkZyb206IiBwb3NzdWkgbXVpdG9zIGNhcmFjdGVyZXMgaWxlZ2FpcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhFQURfSUxMRUdBTF9DSEFSUyBDYWJl52FsaG8gcG9zc3VpIG11aXRvcyBjYXJhY3RlcmVzIGlsZWdhaXMKbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfSE9UTUFJTF9SQ1ZEMiBFbmRlcmXnbyBkbyBGcm9tIOkgZG8gaG90bWFpbC5jb20sIG1hcyBu428gaOEgaG90bWFpbC5jb20gbm8gJ1JlY2VpdmVkOicKbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfWUFIT09fUkNWRCBFbmRlcmXnbyBkbyBGcm9tIOkgZG8geWFob28uY29tLCBtYXMgbuNvIGjhIHlhaG9vLmNvbSBubyAnUmVjZWl2ZWQ6JwpsYW5nIHB0X0JSIGRlc2NyaWJlIFNPUlRFRF9SRUNJUFMgTGlzdGEgZGUgZGVzdGluYXThcmlvcyBlc3ThIG9yZGVuYWRhIGFsZmFiZXRpY2FtZW50ZQpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVU1BJQ0lPVVNfUkVDSVBTIExpc3RhIGRlIGRlc3RpbmF04XJpb3MgcG9zc3VpIGVuZGVyZedvcyBzZW1lbGhhbnRlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIE1JU1NJTkdfSEVBREVSUyBO428gcG9zc3VpIG8gY2FiZedhbGhvIFRvOgpsYW5nIHB0X0JSIGRlc2NyaWJlIERBVEVfSU5fUEFTVF8wM18wNiBEYXRlOiDpIDMgYSA2IGhvcmFzIGFudGVzIGRhIGRhdGEgZG8gUmVjZWl2ZWQ6CmxhbmcgcHRfQlIgZGVzY3JpYmUgREFURV9JTl9QQVNUXzA2XzEyIERhdGU6IOkgNiBhIDEyIGhvcmFzIGFudGVzIGRhIGRhdGEgUmVjZWl2ZWQ6CmxhbmcgcHRfQlIgZGVzY3JpYmUgREFURV9JTl9QQVNUXzEyXzI0IERhdGU6IOkgMTIgYSAyNCBob3JhcyBhbnRlcyBkYSBkYXRhIGRvIFJlY2VpdmVkOgpsYW5nIHB0X0JSIGRlc2NyaWJlIERBVEVfSU5fUEFTVF8yNF80OCBEYXRlOiDpIDI0IGEgNDggaG9yYXMgYW50ZXMgZGEgZGF0YSBkbyBSZWNlaXZlZDoKbGFuZyBwdF9CUiBkZXNjcmliZSBEQVRFX0lOX1BBU1RfOTZfWFggRGF0ZTog6SA5NiBob3JhcyBvdSBtYWlzIGFudGVzIGRhIGRhdGEgZG8gUmVjZWl2ZWQ6CmxhbmcgcHRfQlIgZGVzY3JpYmUgREFURV9JTl9GVVRVUkVfMDNfMDYgRGF0ZTog6SAzIGEgNiBob3JhcyBkZXBvaXMgZG8gUmVjZWl2ZWQ6CmxhbmcgcHRfQlIgZGVzY3JpYmUgREFURV9JTl9GVVRVUkVfMDZfMTIgRGF0ZTog6SA2IGEgMTIgaG9yYXMgZGVwb2lzIGRvIFJlY2VpdmVkOgpsYW5nIHB0X0JSIGRlc2NyaWJlIERBVEVfSU5fRlVUVVJFXzEyXzI0IERhdGU6IOkgMTIgYSAyNCBob3JhcyBkZXBvaXMgZG8gUmVjZWl2ZWQ6CmxhbmcgcHRfQlIgZGVzY3JpYmUgREFURV9JTl9GVVRVUkVfMjRfNDggRGF0ZTog6SAyNCBhIDQ4IGhvcmFzIGRlcG9pcyBkbyBSZWNlaXZlZDoKbGFuZyBwdF9CUiBkZXNjcmliZSBEQVRFX0lOX0ZVVFVSRV80OF85NiBEYXRlOiDpIDQ4IGEgOTYgaG9yYXMgZGVwb2lzIGRvIFJlY2VpdmVkOgpsYW5nIHB0X0JSIGRlc2NyaWJlIERBVEVfSU5fRlVUVVJFXzk2X1hYIERhdGU6IOkgOTYgaG9yYXMgb3UgbWFpcyBkZXBvaXMgZG8gUmVjZWl2ZWQ6CmxhbmcgcHRfQlIgZGVzY3JpYmUgVU5SRVNPTFZFRF9URU1QTEFURSBDYWJl52FsaG8gY29udOltIHVtIHRlbXBsYXRlIG7jbyBzdWJzdGl0de1kbwpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpfQUxMX0NBUFMgQXNzdW50byDpIGNvbXBvc3RvIGFwZW5hcyBwb3IgbGV0cmFzIG1hafpzY3VsYXMKbGFuZyBwdF9CUiBkZXNjcmliZSBMT0NBTFBBUlRfSU5fU1VCSkVDVCBEZXN0aW5hdOFyaW8gZG8gZW1haWwgYXBhcmVjZSBubyBhc3N1bnRvIGRhIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgTVNHSURfT1VUTE9PS19JTlZBTElEIE1lc3NhZ2UtSWQg6SBmYWxzbyAobm8gZm9ybWF0byBkbyBPdXRsb29rIEV4cHJlc3MpCmxhbmcgcHRfQlIgZGVzY3JpYmUgSEVBREVSX0NPVU5UX0NUWVBFIFbhcmlvcyBjYWJl52FsaG9zIENvbnRlbnQtVHlwZSBmb3JhbSBlbmNvbnRyYWRvcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhFQURfTE9ORyBDYWJl52FsaG9zIGRhIG1lbnNhZ2VtIHPjbyBtdWl0byBsb25nb3MKbGFuZyBwdF9CUiBkZXNjcmliZSBNSVNTSU5HX0hCX1NFUCBO428gaOEgdW1hIGxpbmhhIHNlcGFyYW5kbyBvIGNhYmXnYWxobyBkbyBjb3JwbyBkYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIFVOUEFSU0VBQkxFX1JFTEFZIEluZm86IG1lbnNhZ2VtIHBvc3N1aSBkYWRvcyBkZSByZWxheSBxdWUgbuNvIHB1ZGVyYW0gc2VyIGxpZG9zCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkNWRF9IRUxPX0lQX01JU01BVENIIEhFTE8gZSBJUCBubyAiUmVjZWl2ZWQ6IiBu428gY29uZmVyZW0KbGFuZyBwdF9CUiBkZXNjcmliZSBOT19SRE5TX0RPVENPTV9IRUxPIENvbWFuZG8gSEVMTyBlbnZpYWRvIGNvbW8gdW0gcHJvdmVkb3IgY29uZmnhdmVsLCBtYXMgbuNvIHBvc3N1aSByRE5TCgojIDIwX2h0bWxfdGVzdHMuY2YKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX1NIT1JUX0xJTktfSU1HXzEgTyBj82RpZ28gSFRNTCDpIG11aXRvIHBlcXVlbm8sIGNvbSB1bWEgaW1hZ2VtIGNvbSBsaW5rCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9TSE9SVF9MSU5LX0lNR18yIE8gY/NkaWdvIEhUTUwg6SBtdWl0byBwZXF1ZW5vLCBjb20gdW1hIGltYWdlbSBjb20gbGluawpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfU0hPUlRfTElOS19JTUdfMyBPIGPzZGlnbyBIVE1MIOkgbXVpdG8gcGVxdWVubywgY29tIHVtYSBpbWFnZW0gY29tIGxpbmsKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX1NIT1JUX0NFTlRFUiBPIGPzZGlnbyBIVE1MIOkgbXVpdG8gY3VydG8gZSB1c2EgdW1hIHRhZyBjZW50ZXIuCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9DSEFSU0VUX0ZBUkFXQVkgVW0gaWRpb21hIGVzdHJhbmdlaXJvIGZvaSBkZWNsYXJhZG8gbm8gY2hhcnNldCBkbyBIVE1MCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9NSU1FX05PX0hUTUxfVEFHIEEgbWVuc2FnZW0g6SBlbSBIVE1MLCBtYXMgbuNvIGjhIHVtYSB0YWcgSFRNTApsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfTUlTU0lOR19DVFlQRSBBIG1lbnNhZ2VtIOkgZW0gSFRNTCBtYXMgbuNvIHRlbSBhIGRlY2xhcmHn428gSFRNTCBDb250ZW50LVR5cGUKbGFuZyBwdF9CUiBkZXNjcmliZSBISURFX1dJTl9TVEFUVVMgVXNvIGRlIEphdmFzY3JpcHQgcGFyYSBvY3VsdGFyIGFzIFVSTFMgbm8gbmF2ZWdhZG9yCmxhbmcgcHRfQlIgZGVzY3JpYmUgT0JGVVNDQVRJTkdfQ09NTUVOVCBIVE1MIHBvc3N1aSBjb21lbnThcmlvcyBjb20gdGV4dG8gc3VzcGVpdG8KbGFuZyBwdF9CUiBkZXNjcmliZSBKU19GUk9NQ0hBUkNPREUgRG9jdW1lbnRvIGNvbnN0cnXtZG8gYSBwYXJ0aXIgZGUgdW0gYXJyYXkgZW0gSmF2YXNjcmlwdApsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfTUVTU0FHRSBIVE1MIGluY2x1c28gbmEgbWVuc2FnZW0KbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX0NPTU1FTlRfU0hPUlQgTyBjb21lbnThcmlvIG5vIEhUTUwg6SBtdWl0byBjdXJ0bwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfQ09NTUVOVF9TQVZFRF9VUkwgTyBIVE1MIGRhIG1lbnNhZ2VtIGZvaSBzYWx2byBkZSB1bWEgcOFnaW5hIGRhIHdlYgpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfRU1CRURTIE8gSFRNTCBwb3NzdWkgdW0gb2JqZXRvIHBsdWdpbiBpbmNvcnBvcmFkbwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfRVhUUkFfQ0xPU0UgSFRNTCBjb2506W0gbXVpdGFzIHRhZ3MgZmVjaGFkYXMgKHF1ZSBu428gZm9yYW0gYWJlcnRhcykKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX0ZPTlRfU0laRV9MQVJHRSBPIEhUTUwgY29udOltIGZvbnRlIGRlIHRhbWFuaG8gZ3JhbmRlCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9GT05UX1NJWkVfSFVHRSBPIEhUTUwgY29udOltIGZvbnRlIGRlIHRhbWFuaG8gbXVpdG8gZ3JhbmRlCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9GT05UX0xPV19DT05UUkFTVCBI4SB0ZXh0b3MgY29tIGNvcmVzIHNpbWlsYXJlcyDgIGNvciBkZSBmdW5kbwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfRk9OVF9GQUNFX0JBRCBmb250IGZhY2UgbuNvIOkgdW1hIGV4cHJlc3PjbwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfRk9STUFDVElPTl9NQUlMVE8gTyBIVE1MIGNvbnTpbSB1bSBmb3JtdWzhcmlvIHF1ZSBlbnZpYSBlbWFpbApsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfSU1BR0VfT05MWV8wNCBIVE1MOiBD82RpZ28gSFRNTCBwb3NzdWkgZW50cmUgMC00MDAgY2FyYWN0ZXJlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfSU1BR0VfT05MWV8wOCBIVE1MOiBD82RpZ28gSFRNTCBwb3NzdWkgZW50cmUgNDAwLTgwMCBjYXJhY3RlcmVzCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9JTUFHRV9PTkxZXzEyIEhUTUw6IEPzZGlnbyBIVE1MIHBvc3N1aSBlbnRyZSA4MDAtMTIwMCBjYXJhY3RlcmVzCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9JTUFHRV9PTkxZXzE2IEhUTUw6IEPzZGlnbyBIVE1MIHBvc3N1aSBlbnRyZSAxMjAwLTE2MDAgY2FyYWN0ZXJlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfSU1BR0VfT05MWV8yMCBIVE1MOiBD82RpZ28gSFRNTCBwb3NzdWkgZW50cmUgMTYwMC0yMDAwIGNhcmFjdGVyZXMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX0lNQUdFX09OTFlfMjQgSFRNTDogQ/NkaWdvIEhUTUwgcG9zc3VpIGVudHJlIDIwMDAtMjQwMCBjYXJhY3RlcmVzCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9JTUFHRV9PTkxZXzI4IEhUTUw6IEPzZGlnbyBIVE1MIHBvc3N1aSBlbnRyZSAyNDAwLTI4MDAgY2FyYWN0ZXJlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfSU1BR0VfT05MWV8zMiBIVE1MOiBD82RpZ28gSFRNTCBwb3NzdWkgZW50cmUgMjgwMC0zMjAwMDAgY2FyYWN0ZXJlcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfSU1BR0VfUkFUSU9fMDIgTyBIVE1MIHRlbSBwb3VjbyB0ZXh0byBlbSByZWxh5+NvIOBzIGltYWdlbnMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX0lNQUdFX1JBVElPXzAyIE8gSFRNTCB0ZW0gcG91Y28gdGV4dG8gZW0gcmVsYefjbyDgcyBpbWFnZW5zCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRNTF9JTUFHRV9SQVRJT18wMiBPIEhUTUwgdGVtIHBvdWNvIHRleHRvIGVtIHJlbGHn428g4HMgaW1hZ2VucwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfSU1BR0VfUkFUSU9fMDIgTyBIVE1MIHRlbSBwb3VjbyB0ZXh0byBlbSByZWxh5+NvIOBzIGltYWdlbnMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX09CRlVTQ0FURV8wNV8xMCBIVE1MIHBvc3N1aSBkZSA1JSBhIDEwJSBkZSB0YWdzIHZhemlhcyBvdSBkZXNuZWNlc3PhcmlhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfT0JGVVNDQVRFXzEwXzIwIEhUTUwgcG9zc3VpIGRlIDEwJSBhIDIwJSBkZSB0YWdzIHZhemlhcyBvdSBkZXNuZWNlc3PhcmlhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfT0JGVVNDQVRFXzIwXzMwIEhUTUwgcG9zc3VpIGRlIDIwJSBhIDMwJSBkZSB0YWdzIHZhemlhcyBvdSBkZXNuZWNlc3PhcmlhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfT0JGVVNDQVRFXzMwXzQwIEhUTUwgcG9zc3VpIGRlIDMwJSBhIDQwJSBkZSB0YWdzIHZhemlhcyBvdSBkZXNuZWNlc3PhcmlhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfT0JGVVNDQVRFXzUwXzYwIEhUTUwgcG9zc3VpIGRlIDUwJSBhIDYwJSBkZSB0YWdzIHZhemlhcyBvdSBkZXNuZWNlc3PhcmlhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfT0JGVVNDQVRFXzcwXzgwIEhUTUwgcG9zc3VpIGRlIDcwJSBhIDgwJSBkZSB0YWdzIHZhemlhcyBvdSBkZXNuZWNlc3PhcmlhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfVEFHX0JBTEFOQ0VfQk9EWSBIVE1MIHBvc3N1aSB1bWEgdGFnICJib2R5IiBxdWUgbuNvIGZvaSBhYmVydGEgb3UgZmVjaGFkYQpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfVEFHX0JBTEFOQ0VfSEVBRCBIVE1MIHBvc3N1aSB1bWEgdGFnICJoZWFkIiBxdWUgbuNvIGZvaSBhYmVydGEgb3UgZmVjaGFkYQpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfVEFHX0VYSVNUX0JHU09VTkQgTyBIVE1MIGNvbnTpbSB1bWEgdGFnICJiZ3NvdW5kIgpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfQkFEVEFHXzQwXzUwIEhUTUwgZGEgbWVuc2FnZW0gcG9zc3VpIGRlIDQwJSBhIDUwJSBkZSB0YWdzIGluduFsaWRhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfQkFEVEFHXzQwXzUwIEhUTUwgZGEgbWVuc2FnZW0gcG9zc3VpIGRlIDUwJSBhIDYwJSBkZSB0YWdzIGluduFsaWRhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfQkFEVEFHXzQwXzUwIEhUTUwgZGEgbWVuc2FnZW0gcG9zc3VpIGRlIDYwJSBhIDcwJSBkZSB0YWdzIGluduFsaWRhcwpsYW5nIHB0X0JSIGRlc2NyaWJlIEhUTUxfQkFEVEFHXzQwXzUwIEhUTUwgZGEgbWVuc2FnZW0gcG9zc3VpIGRlIDkwJSBhIDEwMCUgZGUgdGFncyBpbnbhbGlkYXMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX05PTkVMRU1FTlRfMzBfNDAgTyBIVE1MIHVzYSBkZSAzMCUgYSA0MCUgZGUgZWxlbWVudG9zIGZvcmEgZG9zIHBhZHL1ZXMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX05PTkVMRU1FTlRfMzBfNDAgTyBIVE1MIHVzYSBkZSA0MCUgYSA1MCUgZGUgZWxlbWVudG9zIGZvcmEgZG9zIHBhZHL1ZXMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX05PTkVMRU1FTlRfMzBfNDAgTyBIVE1MIHVzYSBkZSA2MCUgYSA3MCUgZGUgZWxlbWVudG9zIGZvcmEgZG9zIHBhZHL1ZXMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX05PTkVMRU1FTlRfMzBfNDAgTyBIVE1MIHVzYSBkZSA4MCUgYSA5MCUgZGUgZWxlbWVudG9zIGZvcmEgZG9zIHBhZHL1ZXMKbGFuZyBwdF9CUiBkZXNjcmliZSBIVE1MX0JBRFRBR180MF81MCBIVE1MIGRhIG1lbnNhZ2VtIHBvc3N1aSB0YWggSUZSQU1FIGNvbSBVUkwgbm8gc3JjCgojIDIwX2ltYWdlaW5mby5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fRENfSU1HX0hUTUxfUkFUSU8gTG93IHJhd2JvZHkgdG8gcGl4ZWwgYXJlYSByYXRpbwpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fRENfSU1HX1RFWFRfUkFUSU8gTG93IGJvZHkgdG8gcGl4ZWwgYXJlYSByYXRpbwpsYW5nIHB0X0JSIGRlc2NyaWJlIERDX0dJRl9VTk9fTEFSR08gTWVzc2FnZSBjb250YWlucyBhIHNpbmdsZSBsYXJnZSBpbmxpbmUgZ2lmCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19EQ19HSUZfTVVMVElfTEFSR08gTWVzc2FnZSBoYXMgMisgaW5saW5lIGdpZiBjb3ZlcmluZyBsb3RzIG9mIGFyZWEKbGFuZyBwdF9CUiBkZXNjcmliZSBEQ19QTkdfVU5PX0xBUkdPIE1lc3NhZ2UgY29udGFpbnMgYSBzaW5nbGUgbGFyZ2UgaW5saW5lIGdpZgpsYW5nIHB0X0JSIGRlc2NyaWJlIF9fRENfUE5HX01VTFRJX0xBUkdPIE1lc3NhZ2UgaGFzIDIrIGlubGluZSBwbmcgY292ZXJpbmcgbG90cyBvZiBhcmVhCmxhbmcgcHRfQlIgZGVzY3JpYmUgRENfSU1BR0VfU1BBTV9URVhUIFBvc3NpYmxlIEltYWdlLW9ubHkgc3BhbSB3aXRoIGxpdHRsZSB0ZXh0CmxhbmcgcHRfQlIgZGVzY3JpYmUgRENfSU1BR0VfU1BBTV9IVE1MIFBvc3NpYmxlIEltYWdlLW9ubHkgc3BhbQoKIyAyMF9tZXRhX3Rlc3RzLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVBQRVJDQVNFXzUwXzc1IE1lbnNhZ2VtIHBvc3N1aSBkZSA1MCUgYSA3NSUgZGUgdGV4dG9zIGVtIGNhaXhhIGFsdGEuCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVBQRVJDQVNFXzc1XzEwMCBNZW5zYWdlbSBwb3NzdWkgZGUgNzUlIGEgMTAwJSBkZSB0ZXh0b3MgZW0gY2FpeGEgYWx0YS4KbGFuZyBwdF9CUiBkZXNjcmliZSBJTlZBTElEX01TR0lEIE1lc3NhZ2UtSUQgaW524WxpZG8sIGRlIGFjb3JkbyBjb20gYSBSRkMtMjgyMgpsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9NVUFfTU9aSUxMQSBFbWFpbCBmb3JqYWRvLCB0ZW50YW5kbyBzZSBwYXNzYXIgY29tbyBkYSBNb3ppbGxhCmxhbmcgcHRfQlIgZGVzY3JpYmUgUEVSQ0VOVF9SQU5ET00gTWVuc2FnZW0gY29udOltIHVtYSBtYWNybyByYW5k9G1pY2EKbGFuZyBwdF9CUiBkZXNjcmliZSBFTVBUWV9NRVNTQUdFIE1lbnNhZ2VtIHBhcmVjZSBu428gY29udGVyIHRleHRvIG5vIGNvbnRl+mRvIGUgbm8gQXNzdW50by4KbGFuZyBwdF9CUiBkZXNjcmliZSBOT19IRUFERVJTX01FU1NBR0UgTWVuc2FnZW0gcGFyZWNlIG7jbyBjb250ZXIgZ3JhbmRlIHBhcnRlIGRvcyBjYWJl52FsaG9zIFJGQy04MjIKCiMgMjBfbmV0X3Rlc3RzLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgRElHRVNUX01VTFRJUExFIFJlbWV0ZW50ZSBlc3ThIGxpc3RhZG8gZW0gbWFpcyBkZSB1bWEgYmxhY2tsaXN0CmxhbmcgcHRfQlIgZGVzY3JpYmUgTk9fRE5TX0ZPUl9GUk9NIFJlbWV0ZW50ZSBu428gcG9zc3VpIHJlZ2lzdHJvcyBNWCBvdSBBIG5vIEROUwoKIyAyMF9waHJhc2VzLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkVNT1ZFX0JFRk9SRV9MSU5LIEZyYXNlIGluZGljYW5kbyByZW1v5+NvIGRlIGVtYWlsIGRlIGxpc3RhIGxvZ28gYW50ZXMgZGUgdW0gbGluawpsYW5nIHB0X0JSIGRlc2NyaWJlIEdVQVJBTlRFRURfMTAwX1BFUkNFTlQgQ29udOltICJPbmUgaHVuZHJlZCBwZXJjZW50IGd1YXJhbnRlZWQiCmxhbmcgcHRfQlIgZGVzY3JpYmUgREVBUl9GUklFTkQgQ29udOltICJEZWFyIEZyaWVuZCIKbGFuZyBwdF9CUiBkZXNjcmliZSBERUFSX1NPTUVUSElORyBDb2506W0gJ0RlYXIgKGFsZ3VtYSBjb2lzYSknCmxhbmcgcHRfQlIgZGVzY3JpYmUgQklMTElPTl9ET0xMQVJTIEZhbGEgc29icmUgbXVpdG8gZGluaGVpcm8KbGFuZyBwdF9CUiBkZXNjcmliZSBFWENVU0VfNCBBZmlybWEgcXVlIHZvY+ogcG9kZSBzZXIgcmVtb3ZpZG8gZGEgbGlzdGEgc2UgcXVpc2VyCmxhbmcgcHRfQlIgZGVzY3JpYmUgRVhDVVNFXzI0IEFmaXJtYSBxdWUgdm9j6iBxdWVyaWEgcmVjZWJlciBlc3NhIHByb3BhZ2FuZGEKbGFuZyBwdF9CUiBkZXNjcmliZSBFWENVU0VfUkVNT1ZFIEluZm9ybWEgY29tbyB2b2PqIHBvZGUgc2VyIHJlbW92aWRvIGRhIGxpc3RhCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1RST05HX0JVWSBDb2506W0gInN0cm9uZyBidXkiCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1RPQ0tfQUxFUlQgQ29udOltIHVtIGFsZXJ0YSBzb2JyZSBh5/VlcyAoc3RvY2spCmxhbmcgcHRfQlIgZGVzY3JpYmUgTk9UX0FEVklTT1IgQ29udOltICJOb3QgcmVnaXN0ZXJlZCBpbnZlc3RtZW50IGFkdmlzb3IiCmxhbmcgcHRfQlIgZGVzY3JpYmUgUFJFU1RfTk9OX0FDQ1JFRElURUQgQ29udOltICJQcmVzdGlnaW91cyBOb24tQWNjcmVkaXRlZCBVbml2ZXJzaXRpZXMiCmxhbmcgcHRfQlIgZGVzY3JpYmUgQk9EWV9FTkhBTkNFTUVOVCBJbmZvcm1h5+NvIHNvYnJlIGNvbW8gYXVtZW50YXIgcGFydGVzIGRvIGNvcnBvCmxhbmcgcHRfQlIgZGVzY3JpYmUgQk9EWV9FTkhBTkNFTUVOVDIgSW5mb3JtYefjbyBzb2JyZSBjb21vIGF1bWVudGFyIHBhcnRlcyBkbyBjb3JwbwpsYW5nIHB0X0JSIGRlc2NyaWJlIElNUE9URU5DRSBGYWxhIHNvYnJlIGN1cmEgZGEgaW1wb3TqbmNpYQojbGFuZyBwdF9CUiBkZXNjcmliZSBOQV9ET0xMQVJTIEZhbGEgc29icmUgbWlsaPVlcyBkZSBk82xhcmVzIG5vcnRlIGFtZXJpY2Fub3Mgb3UgY2FuYWRlbnNlcwojbGFuZyBwdF9CUiBkZXNjcmliZSBVU19ET0xMQVJTXzMgQ29udOltICQoJE5OLE5OTixOTk4uTk4pCiNsYW5nIHB0X0JSIGRlc2NyaWJlIE1JTExJT05fVVNEIEZhbGEgc29icmUgbWlsaPVlcyBkZSBk82xhcmVzCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVJHX0JJWiBDb2506W06ICJ1cmdlbnQgbWF0dGVyIgpsYW5nIHB0X0JSIGRlc2NyaWJlIE1PTkVZX0JBQ0sgQ29udOltOiAiTW9uZXkgYmFjayBndWFyYW50ZWUiCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlJFRV9RVU9URV9JTlNUQU5UIENvbnTpbTogIkZyZWUgZXhwcmVzcyBvciBuby1vYmxpZ2F0aW9uIHF1b3RlIgpsYW5nIHB0X0JSIGRlc2NyaWJlIEJBRF9DUkVESVQgQ29udOltOiAiRWxpbWluYXRlIEJhZCBDcmVkaXQiCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkVGSU5BTkNFX1lPVVJfSE9NRSBDb2506W06ICJIb21lIHJlZmluYW5jaW5nIgpsYW5nIHB0X0JSIGRlc2NyaWJlIFJFRklOQU5DRV9OT1cgQ29udOltOiAiSG9tZSByZWZpbmFuY2luZyIKbGFuZyBwdF9CUiBkZXNjcmliZSBOT19NRURJQ0FMIENvbnTpbTogIk5vIE1lZGljYWwgRXhhbXMiCmxhbmcgcHRfQlIgZGVzY3JpYmUgRElFVF8xIFNwYW0gZGUgcGVyZGEgZGUgcGVzbwpsYW5nIHB0X0JSIGRlc2NyaWJlIEZJTl9GUkVFIENvbnTpbTogIkZyZWVkb20gb2YgYSBmaW5hbmNpYWwgbmF0dXJlIgpsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUldBUkRfTE9PS0lORyBQb3NzdWkgaW5mb3JtYef1ZXMgc29icmUgbyBtZXJjYWRvIGRlIGHn9WVzCmxhbmcgcHRfQlIgZGVzY3JpYmUgT05FX1RJTUUgQ29udOltOiAiT25lIFRpbWUgKGFsZ3VtYSBjb2lzYSkiCmxhbmcgcHRfQlIgZGVzY3JpYmUgSk9JTl9NSUxMSU9OUyBDb2506W06ICJKb2luIE1pbGxpb25zIG9mIEFtZXJpY2FucyIKbGFuZyBwdF9CUiBkZXNjcmliZSBNQVJLRVRJTkdfUEFSVE5FUlMgQWZpcm1hIHF1ZSB2b2PqIHNlIGNhZGFzdHJvdSBjb20gdW0gcGFyY2Vpcm8KbGFuZyBwdF9CUiBkZXNjcmliZSBMT1dfUFJJQ0UgQ29udOltOiAiTG93ZXN0IFByaWNlIgpsYW5nIHB0X0JSIGRlc2NyaWJlIFVOQ0xBSU1FRF9NT05FWSBTcGFtIHNvYnJlIGRpbmhlaXJvIHF1ZSBwb2RlIHNlciBzZXUKbGFuZyBwdF9CUiBkZXNjcmliZSBPQlNDVVJFRF9FTUFJTCBNZW5zYWdlbSB0ZW50YSBlc2NvbmRlciB1bSBlbmRlcmXnbyBkZSBlbWFpbCBjb20gY29kaWZpY2Hn428gUk9UMTMKbGFuZyBwdF9CUiBkZXNjcmliZSBCQU5HX09QUkFIIENvbnTpbTogIk9wcmFoISIKbGFuZyBwdF9CUiBkZXNjcmliZSBBQ1RfTk9XX0NBUFMgQ29udOltOiAiQWN0IE5vdyIKbGFuZyBwdF9CUiBkZXNjcmliZSBNT1JFX1NFWCBGYWxhIHNvYnJlIHVtIG1haW9yIGRlc2VqbyBwb3Igc2V4bwpsYW5nIHB0X0JSIGRlc2NyaWJlIEJBTkdfR1VBUiBTcGFtIHNvYnJlICJhbGd1bWEgY29pc2EiIGdhcmFudGlkYSAoImd1YXJhbnRlZWQhIikKbGFuZyBwdF9CUiBkZXNjcmliZSBSVURFX0hUTUwgTWVuc2FnZW0gZGl6IHF1ZSBzZXUgY2xpZW50ZSBkZSBlbWFpbCBu428gc3Vwb3J0YSBIVE1MCmxhbmcgcHRfQlIgZGVzY3JpYmUgSU5WRVNUTUVOVF9BRFZJQ0UgTWVuc2FnZW0gcG9zc3VpICJjb25zZWxob3MiIHNvYnJlIGludmVzdGltZW50b3MKbGFuZyBwdF9CUiBkZXNjcmliZSBNQUxFX0VOSEFOQ0UgTWVuc2FnZW0gZmFsYSBzb2JyZSBtZWxob3JhciBhIG1hc2N1bGluaWRhZGUKbGFuZyBwdF9CUiBkZXNjcmliZSBQUklDRVNfQVJFX0FGRk9SREFCTEUgTWVuc2FnZW0gZGl6IHF1ZSBvcyBwcmXnb3Mgc+NvIGJhaXhvcwpsYW5nIHB0X0JSIGRlc2NyaWJlIFJFUExJQ0FfV0FUQ0ggTWVuc2FnZW0gZmFsYSBzb2JyZSBy6XBsaWNhcyBkZSByZWzzZ2lvCmxhbmcgcHRfQlIgZGVzY3JpYmUgRU1fUk9MRVggTWVuc2FnZW0gcPVlIOpuZmFzZSBubyBmYWJyaWNhbnRlIGRvIHJlbPNnaW8KCiMgMjBfcG9ybi5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIEZSRUVfUE9STiBQb3Jub2dyYWZpYSAtIG1lbnNhZ2VtIGNvbnTpbSAiRnJlZSBQb3JuIgpsYW5nIHB0X0JSIGRlc2NyaWJlIENVTV9TSE9UIFBvcm5vZ3JhZmlhIC0gbWVuc2FnZW0gY29udOltICJDdW0gU2hvdCIKbGFuZyBwdF9CUiBkZXNjcmliZSBMSVZFX1BPUk4gUG9ybm9ncmFmaWEgLSBtZW5zYWdlbSBjb2506W0gIkxpdmUgUG9ybiIKbGFuZyBwdF9CUiBkZXNjcmliZSBTVUJKRUNUX1NFWFVBTCBBc3N1bnRvIGluZGljYSBjb250ZfpkbyBzZXh1YWxtZW50ZS1leHBs7WNpdG8KCiMgMjBfcmF0d2FyZS5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIFJBVFdBUkVfRUdST1VQUyBEZXRlY3RhZG8gY29tbyBlbWFpbCBlbSBtYXNzYSBq4SBjb25oZWNpZG8gKGVHcm91cHMpCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkFUV0FSRV9PRV9NQUxGT1JNRUQgWC1NYWlsZXIgbWFsLWZvcm1hZG8gdGVudGFuZG8gaW5kaWNhciB1bWEgdmVyc+NvIGRvIE91dGxvb2sgRXhwcmVzcwpsYW5nIHB0X0JSIGRlc2NyaWJlIFJBVFdBUkVfTU9aX01BTEZPUk1FRCBEZXRlY3RhZG8gY29tbyBlbWFpbCBlbSBtYXNzYSBq4SBjb25oZWNpZG8gKE1vemlsbGEgbWFsZm9ybWVkKQpsYW5nIHB0X0JSIGRlc2NyaWJlIFJBVFdBUkVfTVBPUF9XRUJNQUlMIERldGVjdGFkbyBjb21vIGVtYWlsIGVtIG1hc3NhIGrhIGNvbmhlY2lkbyAobVBPUCBXZWItTWFpbCkKbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfTVVBX0lNUyBFbWFpbCBFbWFpbCBmaW5naW5kbyBzZXIgZW52aWFkbyBwZWxvIElNUwpsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9NVUFfT1VUTE9PSyBFbWFpbCBmaW5naW5kbyBzZXIgZW52aWFkbyBwZWxvIE1TIE91dGxvb2sKbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfTVVBX09JTU8gRW1haWwgZmluZ2luZG8gc2VyIGVudmlhZG8gcGVsbyBNUyBPdXRsb29rIElNTwpsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9NVUFfRVVET1JBIEVtYWlsIGZpbmdpbmRvIHNlciBlbnZpYWRvIHBlbG8gRXVkb3JhCmxhbmcgcHRfQlIgZGVzY3JpYmUgRk9SR0VEX01VQV9USEVCQVRfQ1MgRW1haWwgZmluZ2luZG8gc2VyIGVudmlhZG8gcGVsbyBUaGUgQmF0ISAoY2hhcnNldCkKbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfTVVBX1RIRUJBVF9CT1VOIEVtYWlsIGZpbmdpbmRvIHNlciBlbnZpYWRvIHBlbG8gVGhlIEJhdCEgKGJvdW5kYXJ5KQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9PVVRMT09LX0hUTUwgT3V0bG9vayBu428gY29uc2VndWUgZW52aWFyIG1lbnNhZ2VucyBhcGVuYXMgSFRNTApsYW5nIHB0X0JSIGRlc2NyaWJlIEZPUkdFRF9JTVNfSFRNTCBJTVMgbuNvIGNvbnNlZ3VlIGVudmlhciBtZW5zYWdlbnMgYXBlbmFzIEhUTUwKbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfVEhFQkFUX0hUTUwgVGhlIEJhdCEgbuNvIGNvbnNlZ3VlIGVudmlhciBtZW5zYWdlbnMgYXBlbmFzIEhUTUwKbGFuZyBwdF9CUiBkZXNjcmliZSBSRVBUT19RVU9URV9BT0wgQU9MIG7jbyB1c2EgbyBmb3JtYXRvIGRlIGNpdGHn428gdXNhZG8gbm8gZW1haWwKbGFuZyBwdF9CUiBkZXNjcmliZSBSRVBUT19RVU9URV9JTVMgSU1TIG7jbyB1c2EgbyBmb3JtYXRvIGRlIGNpdGHn428gdXNhZG8gbm8gZW1haWwKbGFuZyBwdF9CUiBkZXNjcmliZSBSRVBUT19RVU9URV9NU04gTVNOIG7jbyB1c2EgbyBmb3JtYXRvIGRlIGNpdGHn428gdXNhZG8gbm8gZW1haWwKbGFuZyBwdF9CUiBkZXNjcmliZSBSRVBUT19RVU9URV9RVUFMQ09NTSBRdWFsY29tbS9FdWRvcmEgbuNvIHVzYSBvIGZvcm1hdG8gZGUgY2l0YefjbyB1c2FkbyBubyBlbWFpbApsYW5nIHB0X0JSIGRlc2NyaWJlIFJFUFRPX1FVT1RFX1lBSE9PIFlhaG9vISBu428gdXNhIG8gZm9ybWF0byBkZSBjaXRh5+NvIHVzYWRvIG5vIGVtYWlsCmxhbmcgcHRfQlIgZGVzY3JpYmUgRk9SR0VEX1FVQUxDT01NX1RBR1MgUVVBTENPTU0gbuNvIGNvbnNlZ3VlIGVudmlhciBlbWFpbHMgSFRNTCBuZXN0ZSBmb3JtYXRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgRk9SR0VEX0lNU19UQUdTIElNUyBu428gY29uc2VndWUgZW52aWFyIGVtYWlscyBIVE1MIG5lc3RlIGZvcm1hdG8KbGFuZyBwdF9CUiBkZXNjcmliZSBGT1JHRURfT1VUTE9PS19UQUdTIE91dGxvb2sgbuNvIGNvbnNlZ3VlIGVudmlhciBlbWFpbHMgSFRNTCBuZXN0ZSBmb3JtYXRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkFUV0FSRV9IQVNIX0RBU0ggQ29udOltIGhhc2hidXN0ZXIgbm8gZm9ybWF0byBTZW5kZXItU2FmZQpsYW5nIHB0X0JSIGRlc2NyaWJlIFJBVFdBUkVfWkVST19UWiBEZXRlY3RhZG8gY29tbyBlbWFpbCBlbSBtYXNzYSBq4SBjb25oZWNpZG8gKCswMDAwKQpsYW5nIHB0X0JSIGRlc2NyaWJlIFhfTUVTU0FHRV9JTkZPIERldGVjdGFkbyBjb21vIGVtYWlsIGVtIG1hc3NhIGrhIGNvbmhlY2lkbyAoWC1NZXNzYWdlLUluZm8pCmxhbmcgcHRfQlIgZGVzY3JpYmUgSEVBREVSX1NQQU0gRGV0ZWN0YWRvIGNvbW8gZW1haWwgZW0gbWFzc2EgauEgY29uaGVjaWRvIChoZWFkZXItYmFzZWQpCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkFUV0FSRV9SQ1ZEX1BGIERldGVjdGFkbyBjb21vIGVtYWlsIGVtIG1hc3NhIGrhIGNvbmhlY2lkbyAoUmVjZWl2ZWQgUEYpCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkFUV0FSRV9SQ1ZEX0FUIERldGVjdGFkbyBjb21vIGVtYWlsIGVtIG1hc3NhIGrhIGNvbmhlY2lkbyAoUmVjZWl2ZWQgQCkKbGFuZyBwdF9CUiBkZXNjcmliZSBSQVRXQVJFX09VVExPT0tfTk9OQU1FIERldGVjdGFkbyBjb21vIGVtYWlsIGVtIG1hc3NhIGrhIGNvbmhlY2lkbyAoT3V0bG9vayBubyBuYW1lKQpsYW5nIHB0X0JSIGRlc2NyaWJlIFJBVFdBUkVfTVNfSEFTSCBEZXRlY3RhZG8gY29tbyBlbWFpbCBlbSBtYXNzYSBq4SBjb25oZWNpZG8gKG1zZ2lkIG1zIGhhc2gpCmxhbmcgcHRfQlIgZGVzY3JpYmUgUkFUV0FSRV9OQU1FX0lEIERldGVjdGFkbyBjb21vIGVtYWlsIGVtIG1hc3NhIGrhIGNvbmhlY2lkbyAobXNnaWQgZnJvbSkKbGFuZyBwdF9CUiBkZXNjcmliZSBSQVRXQVJFX0VGUk9NIERldGVjdGFkbyBjb21vIGVtYWlsIGVtIG1hc3NhIGrhIGNvbmhlY2lkbyAoZW52ZnJvbSkKCiMgMjBfdXJpX3Rlc3RzLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgTlVNRVJJQ19IVFRQX0FERFIgVXRpbGl6YSB1bSBlbmRlcmXnbyBlbSBu+m1lcm8gSVAgbmEgVVJMCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRUUF9FU0NBUEVEX0hPU1QgVXNhICUtZXNjYXBlcyBubyBob3N0bmFtZSBkZSB1bWEgVVJMCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRUUF9FWENFU1NJVkVfRVNDQVBFUyBVc2EgJS1lc2NhcGVzIGRlc25lY2Vzc+FyaW9zIGRlbnRybyBkZSB1bWEgVVJMCmxhbmcgcHRfQlIgZGVzY3JpYmUgV0VJUkRfUE9SVCBVc2EgdW0gbvptZXJvIGRlIHBvcnRhIG7jbyBwYWRy428gcGFyYSBvIEhUVFAKbGFuZyBwdF9CUiBkZXNjcmliZSBZQUhPT19SRF9SRURJUiBQb3NzdWkgVVJJIGRlIFJlZGlyZWNpb25hbWVudG8gZG8gWWFob28KbGFuZyBwdF9CUiBkZXNjcmliZSBZQUhPT19EUlNfUkVESVIgUG9zc3VpIFVSSSBkZSBSZWRpcmVjaW9uYW1lbnRvIGRvIFlhaG9vCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1BPT0ZfQ09NMk9USCBVUkkgY29udOltICIuY29tIiBubyBtZWlvCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1BPT0ZfQ09NMkNPTSBVUkkgY29udOltICIuY29tIiBubyBtZWlvIGUgbm8gZmltCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1BPT0ZfTkVUMkNPTSBVUkkgY29udOltICIubmV0IiBvdSAiLm9yZyIgZSBkZXBvaXMgIi5jb20iCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVJJX0hFWCBIb3N0bmFtZSBhcHJlc2VudGEgdW1hIGxvbmdhIHNlcfzqbmNpYSBoZXhhZGVjaW1hbApsYW5nIHB0X0JSIGRlc2NyaWJlIFVSSV9OT1ZPV0VMIEhvc3RuYW1lIGRhIFVSSSBjb2506W0gdW1hIGxvbmdhIHNlcfzqbmNpYSBzZW0gdm9nYWwKbGFuZyBwdF9CUiBkZXNjcmliZSBVUklfVU5TVUJTQ1JJQkUgQ29udOltIGxpbmsgc3VzcGVpdG8gZGUgb3B0LW91dApsYW5nIHB0X0JSIGRlc2NyaWJlIElQX0xJTktfUExVUyBFbmRlcmXnbyBJUCBzZWd1aWRvIGRlIGFycXVpdm8gQ0dJCmxhbmcgcHRfQlIgZGVzY3JpYmUgTk9STUFMX0hUVFBfVE9fSVAgVXNhIHVtIGVuZGVyZedvIElQIG5hIFVSTApsYW5nIHB0X0JSIGRlc2NyaWJlIFVSSV9OT19XV1dfSU5GT19DR0kgRG9t7W5pbyAuaW5mbyBwb3NzdWkgc3RyaW5nIHN1c3BlaXRhIGFvIGludulzIGRlICJ3d3ciCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVJJX05PX1dXV19CSVpfQ0dJIERvbe1uaW8gLmJpeiBwb3NzdWkgc3RyaW5nIHN1c3BlaXRhIGFvIGludulzIGRlICJ3d3ciCmxhbmcgcHRfQlIgZGVzY3JpYmUgSFRUUF83NyBDb2506W0gdW1hIFVSTCBjb2RpZmljYWRhIChVUkwtZW5jb2RlZCkgKEhUVFA3NykKCiMgMjBfdmJvdW5jZS5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIEJPVU5DRV9NRVNTQUdFIE1lbnNhZ2VtIGRlIGJvdW5jZSBkbyBNVEEKbGFuZyBwdF9CUiBkZXNjcmliZSBDSEFMTEVOR0VfUkVTUE9OU0UgTWVuc2FnZW0gVGlyYS1UZWltYSBkZSB1bSBlbWFpbCBxdWUgdm9j6iBlbnZpb3UKbGFuZyBwdF9CUiBkZXNjcmliZSBDUkJPVU5DRV9NRVNTQUdFIEJvdW5jZSBkZSBtZW5zYWdlbSBUaXJhLVRlaW1hCmxhbmcgcHRfQlIgZGVzY3JpYmUgVkJPVU5DRV9NRVNTQUdFIEJvdW5jZSBkZSBtZW5zYWdlbSBkZSBhbnRpdmlydXMKbGFuZyBwdF9CUiBkZXNjcmliZSBBTllfQk9VTkNFX01FU1NBR0UgTWVuc2FnZW0g6SB1bSBib3VuY2UgZGUgYWxndW0gZW1haWwKCiMgMjNfYmF5ZXMuY2YKaWZwbHVnaW4gTWFpbDo6U3BhbUFzc2Fzc2luOjpQbHVnaW46OkJheWVzCmxhbmcgcHRfQlIgZGVzY3JpYmUgQkFZRVNfMDAgUHJvYmFiaWxpZGFkZSBkZSBzZXIgc3BhbSBlbnRyZSAwIHRvIDElCmxhbmcgcHRfQlIgZGVzY3JpYmUgQkFZRVNfMDUgUHJvYmFiaWxpZGFkZSBkZSBzZXIgc3BhbSBlbnRyZSAxIHRvIDUlCmxhbmcgcHRfQlIgZGVzY3JpYmUgQkFZRVNfMjAgUHJvYmFiaWxpZGFkZSBkZSBzZXIgc3BhbSBlbnRyZSA1IHRvIDIwJQpsYW5nIHB0X0JSIGRlc2NyaWJlIEJBWUVTXzQwIFByb2JhYmlsaWRhZGUgZGUgc2VyIHNwYW0gZW50cmUgMjAgdG8gNDAlCmxhbmcgcHRfQlIgZGVzY3JpYmUgQkFZRVNfNTAgUHJvYmFiaWxpZGFkZSBkZSBzZXIgc3BhbSBlbnRyZSA0MCB0byA2MCUKbGFuZyBwdF9CUiBkZXNjcmliZSBCQVlFU182MCBQcm9iYWJpbGlkYWRlIGRlIHNlciBzcGFtIGVudHJlIDYwIHRvIDgwJQpsYW5nIHB0X0JSIGRlc2NyaWJlIEJBWUVTXzgwIFByb2JhYmlsaWRhZGUgZGUgc2VyIHNwYW0gZW50cmUgODAgdG8gOTUlCmxhbmcgcHRfQlIgZGVzY3JpYmUgQkFZRVNfOTUgUHJvYmFiaWxpZGFkZSBkZSBzZXIgc3BhbSBlbnRyZSA5NSB0byA5OSUKbGFuZyBwdF9CUiBkZXNjcmliZSBCQVlFU185OSBQcm9iYWJpbGlkYWRlIGRlIHNlciBzcGFtIGVudHJlIDk5IHRvIDEwMCUKbGFuZyBwdF9CUiBkZXNjcmliZSBCQVlFU185OTkgUHJvYmFiaWxpZGFkZSBkZSBzZXIgc3BhbSBlbnRyZSA5OS45IHRvIDEwMCUKZW5kaWYKIwojIDI1X2FjY2Vzc2RiLmNmCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpBY2Nlc3NEQgpsYW5nIHB0X0JSIGRlc2NyaWJlIEFDQ0VTU0RCIE1lbnNhZ2VtIHRlcmlhIHNpZG8gcGVnYSBwZWxhIGFjY2Vzc2RiCmVuZGlmCgojIDI1X2FudGl2aXJ1cy5jCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpBbnRpVmlydXMKbGFuZyBwdF9CUiBkZXNjcmliZSBNSUNST1NPRlRfRVhFQ1VUQUJMRSBNZW5zYWdlbSBjb2506W0gdW0gcHJvZ3JhbWEgZXhlY3V04XZlbCBNaWNyb3NvZnQKbGFuZyBwdF9CUiBkZXNjcmliZSBNSU1FX1NVU1BFQ1RfTkFNRSBFeHRlbnPjbyBkbyBhcnF1aXZvIG7jbyBjb3JyZXNwb25kZSBhbyBzZXUgY29udGX6ZG8KZW5kaWYKCiMgMjVfZGNjLmNmCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpEQ0MKbGFuZyBwdF9CUiBkZXNjcmliZSBEQ0NfQ0hFQ0sgQ2xhc3NpZmljYWRvIGNvbW8gZW1haWwgZW0gbWFzc2EgcGVsbyBEQ0MgKGRjYy1zZXJ2ZXJzLm5ldCkKbGFuZyBwdF9CUiBkZXNjcmliZSBEQ0NfUkVQVVRfMDBfMTIgUmVwdXRh5+NvIG5vIERDQyBlbnRyZSAwIGUgMTIgJSAgKG1haW9yaWEgbuNvLXNwYW0pCmxhbmcgcHRfQlIgZGVzY3JpYmUgRENDX1JFUFVUXzcwXzg5IFJlcHV0YefjbyBubyBEQ0MgZW50cmUgNzAgYW5kIDg5ICUKbGFuZyBwdF9CUiBkZXNjcmliZSBEQ0NfUkVQVVRfOTBfOTQgUmVwdXRh5+NvIG5vIERDQyBlbnRyZSA5MCBhbmQgOTQgJQpsYW5nIHB0X0JSIGRlc2NyaWJlIERDQ19SRVBVVF85NV85OCBSZXB1dGHn428gbm8gRENDIGVudHJlIDk1IGFuZCA5OCAlICAobWFpb3JpYSBkZSBzcGFtKQpsYW5nIHB0X0JSIGRlc2NyaWJlIERDQ19SRVBVVF85OV8xMDAgUmVwdXRh5+NvIG5vIERDQyBlbnRyZSA5OSAlIG91IG1haXMgKGRlZmluaXRhbWVudGUgc3BhbSkKZW5kaWYKCiMgMjVfZGtpbS5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIERLSU1fU0lHTkVEIE1lbnNhZ2VtIHBvc3N1aSB1bWEgYXNzaW5hdHVyYSBES0lNIG91IERLIG7jbyBuZWNlc3NhcmlhbWVudGUgduFsaWRhCmxhbmcgcHRfQlIgZGVzY3JpYmUgREtJTV9WQUxJRCBNZW5zYWdlbSBwb3NzdWkgYW8gbWVub3MgdW1hIGFzc2luYXR1cmEgREtJTSBvdSBESyB24WxpZGEKbGFuZyBwdF9CUiBkZXNjcmliZSBES0lNX1ZBTElEX0FVIE1lbnNhZ2VtIHBvc3N1aSB1bWEgYXNzaW5hdHVyYSBES0lNIG91IERLIHbhbGlkYSBkbyBkb23tbmlvIGRvIGF1dG9yIGRhIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgX19ES0lNX0RFUEVOREFCTEUgRmFsaGEgbmEgdmFsaWRh5+NvIERLSU0KbGFuZyBwdF9CUiBkZXNjcmliZSBES0lNX0FEU1BfTlhET01BSU4gTmVuaHVtYSBhc3NpbmF0dXJhIHbhbGlkYSBlIG8gZG9t7W5pbyBu428gY29uc3RhIG5vIEROUwpsYW5nIHB0X0JSIGRlc2NyaWJlIERLSU1fQURTUF9ESVNDQVJEIE5lbmh1bWEgYXNzaW5hdHVyYSB24WxpZGEgZG8gYXV0b3IgZGEgbWVuc2FnZW0gZSBvIGRvbe1uaW8gYXNzaW5hIHRvZG9zIG9zIGVtYWlscyBlIHN1Z2VyZSBkZXNjYXJ0YXIgbyByZXN0bwpsYW5nIHB0X0JSIGRlc2NyaWJlIERLSU1fQURTUF9BTEwgTmVuaHVtYSBhc3NpbmF0dXJhIHbhbGlkYSBkbyBhdXRvciBkYSBtZW5zYWdlbSBlIG8gZG9t7W5pbyBhc3NpbmEgdG9kb3Mgb3MgZW1haWxzCmxhbmcgcHRfQlIgZGVzY3JpYmUgREtJTV9BRFNQX0NVU1RPTV9MT1cgTmVuaHVtYSBhc3NpbmF0dXJhIHbhbGlkYSBkbyBhdXRvciBkYSBtZW5zYWdlbS4gYWRzcF9vdmVycmlkZSA9IENVU1RPTV9MT1cKbGFuZyBwdF9CUiBkZXNjcmliZSBES0lNX0FEU1BfQ1VTVE9NX01FRCBOZW5odW1hIGFzc2luYXR1cmEgduFsaWRhIGRvIGF1dG9yIGRhIG1lbnNhZ2VtLiBhZHNwX292ZXJyaWRlID0gQ1VTVE9NX01FRApsYW5nIHB0X0JSIGRlc2NyaWJlIERLSU1fQURTUF9DVVNUT01fSElHSCBOZW5odW1hIGFzc2luYXR1cmEgduFsaWRhIGRvIGF1dG9yIGRhIG1lbnNhZ2VtLiBhZHNwX292ZXJyaWRlID0gQ1VTVE9NX0hJR0gKbGFuZyBwdF9CUiBkZXNjcmliZSBfX1ZJQV9SRVNJR05FUiBFbWFpbCBwYXNzb3UgcG9yIHVtIE1haWwgdGhyb3VnaCBhIHBvcHVsYXIgc2lnbmluZyByZW1haWxlcgpsYW5nIHB0X0JSIGRlc2NyaWJlIE5NTF9BRFNQX0NVU1RPTV9MT1cgQURTUCBjdXN0b21fbG93IGZvaSBhdGluZ2lkYSwgZSBu428gZm9pIGRlIHVtYSBtYWlsaW5nIGxpc3QKbGFuZyBwdF9CUiBkZXNjcmliZSBOTUxfQURTUF9DVVNUT01fTUVEIEFEU1AgY3VzdG9tX21lZCBmb2kgYXRpbmdpZGEsIGUgbuNvIGZvaSBkZSB1bWEgbWFpbGluZyBsaXN0CmxhbmcgcHRfQlIgZGVzY3JpYmUgTk1MX0FEU1BfQ1VTVE9NX0hJR0ggQURTUCBjdXN0b21faGlnaCBmb2kgYXRpbmdpZGEsIGUgbuNvIGZvaSBkZSB1bWEgbWFpbGluZyBsaXN0CgojIDI1X3B5em9yLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgUFlaT1JfQ0hFQ0sgTGlzdGFkbyBuYSBQeXpvciAoaHR0cHM6Ly9weXpvci5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKQoKIyAyNV9yYXpvcjIuY2YKbGFuZyBwdF9CUiBkZXNjcmliZSBSQVpPUjJfQ0hFQ0sgTGlzdGFkbyBuYSBSYXpvcjIgKGh0dHA6Ly9yYXpvci5zZi5uZXQvKQpsYW5nIHB0X0JSIGRlc2NyaWJlIFJBWk9SMl9DRl9SQU5HRV81MV8xMDAgTu12ZWwgZGUgY29uZmlhbudhIG5hIFJhem9yMiBhY2ltYSBkZSA1MCUKCiMgMjVfcmVwbGFjZS5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpFQ1RfRlVaWllfTUVEUyBUZW50YXRpdmEgZGUgZXNjb25kZXIgcGFsYXZyYXMgbm8gU3ViamVjdDoKbGFuZyBwdF9CUiBkZXNjcmliZSBTVUJKRUNUX0ZVWlpZX1ZQSUxMIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBubyBTdWJqZWN0OgpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpFQ1RfRlVaWllfQ0hFQVAgVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5vIFN1YmplY3Q6CmxhbmcgcHRfQlIgZGVzY3JpYmUgU1VCSkVDVF9GVVpaWV9QRU5JUyBUZW50YXRpdmEgZGUgZXNjb25kZXIgcGFsYXZyYXMgbm8gU3ViamVjdDoKbGFuZyBwdF9CUiBkZXNjcmliZSBTVUJKRUNUX0ZVWlpZX1RJT04gVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5vIFN1YmplY3Q6CmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfQUZGT1JEQUJMRSBUZW50YXRpdmEgZGUgZXNjb25kZXIgcGFsYXZyYXMgbmEgbWVuc2FnZW0KI2xhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfQU1CSUVOIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX0JJTExJT04gVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5hIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfQ1BJTEwgVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5hIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfQ1JFRElUIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQojbGFuZyBwdF9CUiBkZXNjcmliZSBGVVpaWV9FUkVDVCBUZW50YXRpdmEgZGUgZXNjb25kZXIgcGFsYXZyYXMgbmEgbWVuc2FnZW0KbGFuZyBwdF9CUiBkZXNjcmliZSBGVVpaWV9HVUFSQU5URUUgVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5hIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfTUVESUNBVElPTiBUZW50YXRpdmEgZGUgZXNjb25kZXIgcGFsYXZyYXMgbmEgbWVuc2FnZW0KbGFuZyBwdF9CUiBkZXNjcmliZSBGVVpaWV9NSUxMSU9OIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX01PTkVZIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX01PUlRHQUdFIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX09CTElHQVRJT04gVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5hIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfT0ZGRVJTIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1BIQVJNQUNZIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1BIRU5UIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1BSRVNDUklQVCBUZW50YXRpdmEgZGUgZXNjb25kZXIgcGFsYXZyYXMgbmEgbWVuc2FnZW0KbGFuZyBwdF9CUiBkZXNjcmliZSBGVVpaWV9QUklDRVMgVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5hIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfUkVGSU5BTkNFIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1JFTU9WRSBUZW50YXRpdmEgZGUgZXNjb25kZXIgcGFsYXZyYXMgbmEgbWVuc2FnZW0KI2xhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfUk9MRVggVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5hIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfU09GVFdBUkUgVGVudGF0aXZhIGRlIGVzY29uZGVyIHBhbGF2cmFzIG5hIG1lbnNhZ2VtCmxhbmcgcHRfQlIgZGVzY3JpYmUgRlVaWllfVEhPVVNBTkRTIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1ZMSVVNIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1ZJT1hYIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1ZQSUxMIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQpsYW5nIHB0X0JSIGRlc2NyaWJlIEZVWlpZX1hQSUxMIFRlbnRhdGl2YSBkZSBlc2NvbmRlciBwYWxhdnJhcyBuYSBtZW5zYWdlbQoKIyAyNV9zcGYuY2YKbGFuZyBwdF9CUiBkZXNjcmliZSBTUEZfUEFTUyBTUEY6IFJlbWV0ZW50ZSDpIHbhbGlkbyBkZSBhY29yZG8gY29tIHJlZ2lzdHJvIFNQRgpsYW5nIHB0X0JSIGRlc2NyaWJlIFNQRl9ORVVUUkFMIFNQRjogUmVtZXRlbnRlIG7jbyBjb25mZXJlIGNvbSByZWdpc3RybyBTUEYgKG5ldXRyYWwpCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1BGX0ZBSUwgU1BGOiBSZW1ldGVudGUgbuNvIGNvbmZlcmUgY29tIHJlZ2lzdHJvIFNQRiAoZmFpbCkKbGFuZyBwdF9CUiBkZXNjcmliZSBTUEZfU09GVEZBSUwgU1BGOiBSZW1ldGVudGUgbuNvIGNvbmZlcmUgY29tIHJlZ2lzdHJvIFNQRiAoc29mdGZhaWwpCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1BGX0hFTE9fUEFTUyBTUEY6IEhFTE8gY29uZmVyZSBjb20gcmVnaXN0cm8gU1BGCmxhbmcgcHRfQlIgZGVzY3JpYmUgU1BGX0hFTE9fTkVVVFJBTCBTUEY6IEhFTE8gbuNvIGNvbmZlcmUgY29tIHJlZ2lzdHJvIFNQRiAobmV1dHJhbCkKbGFuZyBwdF9CUiBkZXNjcmliZSBTUEZfSEVMT19GQUlMIFNQRjogSEVMTyBu428gY29uZmVyZSBjb20gcmVnaXN0cm8gU1BGIChmYWlsKQpsYW5nIHB0X0JSIGRlc2NyaWJlIFNQRl9IRUxPX1NPRlRGQUlMIFNQRjogSEVMTyBu428gY29uZmVyZSBjb20gcmVnaXN0cm8gU1BGIChzb2Z0ZmFpbCkKCiMgMjVfdGV4dGNhdC5jZgppZnBsdWdpbiBNYWlsOjpTcGFtQXNzYXNzaW46OlBsdWdpbjo6VGV4dENhdApsYW5nIHB0X0JSIGRlc2NyaWJlIFVOV0FOVEVEX0xBTkdVQUdFX0JPRFkgTWVuc2FnZW0gZXN04SBlc2NyaXRhIGVtIHVtIGlkaW9tYSBpbmRlc2VqYWRvCmxhbmcgcHRfQlIgZGVzY3JpYmUgQk9EWV84QklUUyBCb2R5IGNvbnTpbSA4IGNhcmFjdGVyZXMgZGUgOC1iaXQgY29uc2VjdXRpdm9zCmVuZGlmCgojIDI1X3VyaWJsLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVJJQkxfU0JMIENvbnTpbSB1bWEgVVJMIGxpc3RhZGEgbmEgYmxhY2tsaXN0IFNCTApsYW5nIHB0X0JSIGRlc2NyaWJlIFVSSUJMX0RCTF9TUEFNIENvbnTpbSB1bWEgVVJMIGxpc3RhZGEgbmEgYmxhY2tsaXN0IERCTCBibG9ja2xpc3QKbGFuZyBwdF9CUiBkZXNjcmliZSBVUklCTF9EQkxfRVJST1IgRXJybzogQ29uc3VsdG91IGEgREJMIHBvciB1bSBJUAojbGFuZyBwdF9CUiBkZXNjcmliZSBVUklCTF9TQ19TVVJCTCBDb2506W0gdW1hIFVSTCBsaXN0YWRhIG5hIGJsYWNrbGlzdCBTQyBTVVJCTCAtIHJlbW92ZWQgYnVnIDcyNzkKbGFuZyBwdF9CUiBkZXNjcmliZSBVUklCTF9XU19TVVJCTCBDb2506W0gdW1hIFVSTCBsaXN0YWRhIG5hIGJsYWNrbGlzdCBXUyBTVVJCTApsYW5nIHB0X0JSIGRlc2NyaWJlIFVSSUJMX1BIX1NVUkJMIENvbnTpbSB1bWEgVVJMIGxpc3RhZGEgbmEgYmxhY2tsaXN0IFBIIFNVUkJMCiNsYW5nIHB0X0JSIGRlc2NyaWJlIFVSSUJMX09CX1NVUkJMIENvbnTpbSB1bWEgVVJMIGxpc3RhZGEgbmEgYmxhY2tsaXN0IE9CIFNVUkJMIC0gUkVNT1ZFRCBCVUcgNjg1MwojbGFuZyBwdF9CUiBkZXNjcmliZSBVUklCTF9BQl9TVVJCTCBDb2506W0gdW1hIFVSTCBsaXN0YWRhIG5hIGJsYWNrbGlzdCBBQiBTVVJCTCAtIHJlbW92ZWQgYnVnIDcyNzkKI0NoYW5nZWQgZnJvbSBKUCB0byBBQlVTRSBwZXIgYnVnIDcyNzkKbGFuZyBwdF9CUiBkZXNjcmliZSBVUklCTF9BQlVTRV9TVVJCTCBDb2506W0gdW1hIFVSTCBsaXN0YWRhIG5hIGJsYWNrbGlzdCBBQlVTRSBTVVJCTApsYW5nIHB0X0JSIGRlc2NyaWJlIFVSSUJMX0JMQUNLIENvbnTpbSB1bWEgVVJMIGxpc3RhZGEgbmEgYmxhY2tsaXN0IFVSSUJMCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVJJQkxfR1JFWSBDb2506W0gdW1hIFVSTCBsaXN0YWRhIG5hIGdyZXlsaXN0IFVSSUJMCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVJJQkxfUkVEIENvbnTpbSB1bWEgVVJMIGxpc3RhZGEgbmEgcmVkbGlzdCBVUklCTAoKIyA2MF9zaG9ydGNpcmN1aXQuY2YKaWZwbHVnaW4gTWFpbDo6U3BhbUFzc2Fzc2luOjpQbHVnaW46OlNob3J0Y2lyY3VpdApsYW5nIHB0X0JSIGRlc2NyaWJlIFNIT1JUQ0lSQ1VJVCBOZW0gdG9kYXMgYXMgcmVncmFzIGZvcmFtIGV4ZWN1dGFkYXMgcG9yIGNhdXNhIGRlIHVtIHByb2JsZW1hIGVtIHVtYSBkZWxhcwplbmRpZgoKIyA2MF93aGl0ZWxpc3RfZGtpbS5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIFVTRVJfSU5fREtJTV9XSElURUxJU1QgRW5kZXJl528gZG8gRnJvbTogZXN04SBuYSB3aGl0ZWxpc3QgZGUgREtJTSBkbyB1c3XhcmlvCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVNFUl9JTl9ERUZfREtJTV9XTCBFbmRlcmXnbyBkbyBGcm9tOiBlc3ThIG5hIHdoaXRlbGlzdCBkZSBES0lNIHBhZHLjbwoKIyA2MF93aGl0ZWxpc3Rfc3BmLmNmCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVNFUl9JTl9TUEZfV0hJVEVMSVNUIEVuZGVyZedvIGRvIEZyb206IGVzdOEgbmEgd2hpdGVsaXN0IGRlIFNQRiBkbyB1c3XhcmlvCmxhbmcgcHRfQlIgZGVzY3JpYmUgVVNFUl9JTl9ERUZfU1BGX1dMIEVuZGVyZedvIGRvIEZyb206IGVzdOEgbmEgd2hpdGVsaXN0IGRlIFNQRiBwYWRy428KbGFuZyBwdF9CUiBkZXNjcmliZSBFTlZfQU5EX0hEUl9TUEZfTUFUQ0ggRW5kZXJl528gZG8gRnJvbTogY29uZmVyZSBjb20gRW52ZWxvcGUgRnJvbSBlIGVzdOEgbmEgd2hpdGVsaXN0IGRlIFNQRgoKIyA2MF93aGl0ZWxpc3Rfc3ViamVjdC5jZgpsYW5nIHB0X0JSIGRlc2NyaWJlIFNVQkpFQ1RfSU5fV0hJVEVMSVNUIEFzc3VudG8gY29udOltIHBhbGF2cmEgcXVlIGVzdOEgbmEgd2hpdGVsaXN0IGRvIHVzdeFyaW8KbGFuZyBwdF9CUiBkZXNjcmliZSBTVUJKRUNUX0lOX0JMQUNLTElTVCBBc3N1bnRvIGNvbnTpbSBwYWxhdnJhIHF1ZSBlc3ThIG5hIGJsYWNrbGlzdCBkbyB1c3XhcmlvCgo=