From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7923 invoked by alias); 10 Aug 2007 20:55:53 -0000 Received: (qmail 7600 invoked by uid 22791); 10 Aug 2007 20:55:50 -0000 X-Spam-Check-By: sourceware.org Received: from wa-out-1112.google.com (HELO wa-out-1112.google.com) (209.85.146.181) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 10 Aug 2007 20:55:40 +0000 Received: by wa-out-1112.google.com with SMTP id m16so999045waf for ; Fri, 10 Aug 2007 13:55:38 -0700 (PDT) Received: by 10.115.54.1 with SMTP id g1mr2920930wak.1186779338020; Fri, 10 Aug 2007 13:55:38 -0700 (PDT) Received: by 10.114.149.7 with HTTP; Fri, 10 Aug 2007 13:55:37 -0700 (PDT) Message-ID: <4aca3dc20708101355ked7fae4y2ed1cacbbb4f52d6@mail.gmail.com> Date: Fri, 10 Aug 2007 20:55:00 -0000 From: "Daniel Berlin" To: "GCC Patches" , "Diego Novillo" Subject: [PATCH]: Transform compute_may_aliases into a TODO MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_126828_26458210.1186779337981" Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2007-08/txt/msg00705.txt.bz2 ------=_Part_126828_26458210.1186779337981 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 2105 We often recompute aliases even when absolutely nothing has changed. This is quite wasteful. The attached changes compute_may_aliases into a TODO, and we now only run it when we've changed things that could destroy aliases. Well, almost. Everywhere but PRE this is true. We still run aliasing all the time after PRE, mainly because i haven't gotten the condition quite right in PRE yet, so i left it out of the patch. I also completely removed the may_alias after DSE, it wasn't clear what this was trying to do or why it was there. Sadly, the one annoying part is that there is now no easy way to put all the aliasing stuff into their own numbered dumps. For 4.4, i'd really like to redo our pass manager to support this (and maybe support a better notion of analysis, so that individual passes that currently calculate/free dominators on their own, would just say "i need dominators, i destroy dominators", and it is taken care of for them). The dump file part shouldn't be that much work, we just always compute the pass number rather than only once per function. We also then track how many times we have seen a thing named "whatever", and come up with a dump name that way. I changed the tests looking in .alias1, to look in .salias, which is where alias1 is now really going. --Dan Bootstrapped and regtested on i686-darwin. Okay for mainline? 2007-08-10 Daniel Berlin * tree-pass.h (PROP_pta): Removed. (TODO_rebuild_alias): New. (pass_may_alias): Removed. * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild aliasing if we changed something. * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update SSA internally. (pass_may_alias): Removed. (create_structure_vars): Return TODO_rebuild_alias. * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias. * tree-sra.c (tree_sra): Only rebuild aliasing if something changed. (tree_sra_early): We never affect aliasing right now. * tree-flow.h (compute_may_aliases): New prototype. * passes.c: Remove pass_may_alias from the passes. (execute_function_todo): Support TODO_rebuild_alias. ------=_Part_126828_26458210.1186779337981 Content-Type: text/x-diff; name="mayaliastodo.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mayaliastodo.diff" X-Attachment-Id: f_f575q327 Content-length: 21497 SW5kZXg6IHRyZWUtcGFzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHRyZWUtcGFzcy5oCShyZXZpc2lvbiAxMjczMTkpCisrKyB0cmVlLXBhc3Mu aAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDEyICsxNDksMTEgQEAgc3RydWN0 IGR1bXBfZmlsZV9pbmZvCiAjZGVmaW5lIFBST1BfZ2ltcGxlX2xlaAkJKDEg PDwgMikJLyogbG93ZXJlZCBlaCAqLwogI2RlZmluZSBQUk9QX2NmZwkJKDEg PDwgMykKICNkZWZpbmUgUFJPUF9yZWZlcmVuY2VkX3ZhcnMJKDEgPDwgNCkK LSNkZWZpbmUgUFJPUF9wdGEJCSgxIDw8IDUpCi0jZGVmaW5lIFBST1Bfc3Nh CQkoMSA8PCA2KQotI2RlZmluZSBQUk9QX25vX2NyaXRfZWRnZXMgICAgICAo MSA8PCA3KQotI2RlZmluZSBQUk9QX3J0bAkJKDEgPDwgOCkKLSNkZWZpbmUg UFJPUF9hbGlhcwkJKDEgPDwgOSkKLSNkZWZpbmUgUFJPUF9naW1wbGVfbG9t cAkoMSA8PCAxMCkJLyogbG93ZXJlZCBPcGVuTVAgZGlyZWN0aXZlcyAqLwor I2RlZmluZSBQUk9QX3NzYQkJKDEgPDwgNSkKKyNkZWZpbmUgUFJPUF9ub19j cml0X2VkZ2VzICAgICAgKDEgPDwgNikKKyNkZWZpbmUgUFJPUF9ydGwJCSgx IDw8IDcpCisjZGVmaW5lIFBST1BfYWxpYXMJCSgxIDw8IDgpCisjZGVmaW5l IFBST1BfZ2ltcGxlX2xvbXAJKDEgPDwgOSkJLyogbG93ZXJlZCBPcGVuTVAg ZGlyZWN0aXZlcyAqLwogCiAjZGVmaW5lIFBST1BfdHJlZXMgXAogICAoUFJP UF9naW1wbGVfYW55IHwgUFJPUF9naW1wbGVfbGNmIHwgUFJPUF9naW1wbGVf bGVoIHwgUFJPUF9naW1wbGVfbG9tcCkKQEAgLTIyOCw2ICsyMjcsOSBAQCBz dHJ1Y3QgZHVtcF9maWxlX2luZm8KIC8qIEludGVybmFsbHkgdXNlZCBmb3Ig dGhlIGZpcnN0IGluc3RhbmNlIG9mIGEgcGFzcy4gICovCiAjZGVmaW5lIFRP RE9fbWFya19maXJzdF9pbnN0YW5jZQkoMSA8PCAxOCkKIAorLyogUmVidWls ZCBhbGlhc2luZyBpbmZvLiAgKi8KKyNkZWZpbmUgVE9ET19yZWJ1aWxkX2Fs aWFzICAgICAgICAgICAgICAgICgxIDw8IDE5KQorCiAjZGVmaW5lIFRPRE9f dXBkYXRlX3NzYV9hbnkJCVwKICAgICAoVE9ET191cGRhdGVfc3NhCQkJXAog ICAgICB8IFRPRE9fdXBkYXRlX3NzYV9ub19waGkJCVwKQEAgLTI3OCw3ICsy ODAsNiBAQCBleHRlcm4gc3RydWN0IHRyZWVfb3B0X3Bhc3MgcGFzc19kY2U7 CiBleHRlcm4gc3RydWN0IHRyZWVfb3B0X3Bhc3MgcGFzc19kY2VfbG9vcDsK IGV4dGVybiBzdHJ1Y3QgdHJlZV9vcHRfcGFzcyBwYXNzX2NkX2RjZTsKIGV4 dGVybiBzdHJ1Y3QgdHJlZV9vcHRfcGFzcyBwYXNzX21lcmdlX3BoaTsKLWV4 dGVybiBzdHJ1Y3QgdHJlZV9vcHRfcGFzcyBwYXNzX21heV9hbGlhczsKIGV4 dGVybiBzdHJ1Y3QgdHJlZV9vcHRfcGFzcyBwYXNzX3NwbGl0X2NyaXRfZWRn ZXM7CiBleHRlcm4gc3RydWN0IHRyZWVfb3B0X3Bhc3MgcGFzc19wcmU7CiBl eHRlcm4gc3RydWN0IHRyZWVfb3B0X3Bhc3MgcGFzc19wcm9maWxlOwpJbmRl eDogdHJlZS1zc2EtY2NwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g dHJlZS1zc2EtY2NwLmMJKHJldmlzaW9uIDEyNzMxOSkKKysrIHRyZWUtc3Nh LWNjcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQwLDYgKzI2NDAsOCBAQCBl eGVjdXRlX2ZvbGRfYWxsX2J1aWx0aW5zICh2b2lkKQogewogICBib29sIGNm Z19jaGFuZ2VkID0gZmFsc2U7CiAgIGJhc2ljX2Jsb2NrIGJiOworICB1bnNp Z25lZCBpbnQgdG9kb2ZsYWdzID0gMDsKKyAgCiAgIEZPUl9FQUNIX0JCIChi YikKICAgICB7CiAgICAgICBibG9ja19zdG10X2l0ZXJhdG9yIGk7CkBAIC0y Njk3LDYgKzI2OTksNyBAQCBleGVjdXRlX2ZvbGRfYWxsX2J1aWx0aW5zICh2 b2lkKQogCQl7CiAJCSAgYm9vbCBvayA9IHNldF9yaHMgKHN0bXRwLCByZXN1 bHQpOwogCQkgIGdjY19hc3NlcnQgKG9rKTsKKwkJICB0b2RvZmxhZ3MgfD0g VE9ET19yZWJ1aWxkX2FsaWFzOwogCQl9CiAJICAgIH0KIApAQCAtMjcyOCw5 ICsyNzMxLDEyIEBAIGV4ZWN1dGVfZm9sZF9hbGxfYnVpbHRpbnMgKHZvaWQp CiAJICAgIGJzaV9uZXh0ICgmaSk7CiAJfQogICAgIH0KLQorICAKICAgLyog RGVsZXRlIHVucmVhY2hhYmxlIGJsb2Nrcy4gICovCi0gIHJldHVybiBjZmdf Y2hhbmdlZCA/IFRPRE9fY2xlYW51cF9jZmcgOiAwOworICBpZiAoY2ZnX2No YW5nZWQpCisgICAgdG9kb2ZsYWdzIHw9IFRPRE9fY2xlYW51cF9jZmc7Cisg IAorICByZXR1cm4gdG9kb2ZsYWdzOwogfQogCiAKSW5kZXg6IHRyZWUtc3Nh LWFsaWFzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJlZS1zc2Et YWxpYXMuYwkocmV2aXNpb24gMTI3MzE5KQorKysgdHJlZS1zc2EtYWxpYXMu Ywkod29ya2luZyBjb3B5KQpAQCAtMTYzNCwxMCArMTYzNCwxMiBAQCBkb25l OgogICAgZ3JvdXBlZCB0byBhdm9pZCBzZXZlcmUgY29tcGlsZS10aW1lIHNs b3cgZG93bnMgYW5kIG1lbW9yeQogICAgY29uc3VtcHRpb24uIFNlZSBjb21w dXRlX21lbW9yeV9wYXJ0aXRpb25zLiAgKi8KIAotc3RhdGljIHVuc2lnbmVk IGludAordW5zaWduZWQgaW50CiBjb21wdXRlX21heV9hbGlhc2VzICh2b2lk KQogewogICBzdHJ1Y3QgYWxpYXNfaW5mbyAqYWk7CisKKyAgdGltZXZhcl9w dXNoIChUVl9UUkVFX01BWV9BTElBUyk7CiAgIAogICBtZW1zZXQgKCZhbGlh c19zdGF0cywgMCwgc2l6ZW9mIChhbGlhc19zdGF0cykpOwogCkBAIC0xNzMx LDMzICsxNzMzLDE1IEBAIGNvbXB1dGVfbWF5X2FsaWFzZXMgKHZvaWQpCiAK ICAgLyogRGVhbGxvY2F0ZSBtZW1vcnkgdXNlZCBieSBhbGlhc2luZyBkYXRh IHN0cnVjdHVyZXMuICAqLwogICBkZWxldGVfYWxpYXNfaW5mbyAoYWkpOwor CisgIGlmIChuZWVkX3NzYV91cGRhdGVfcCAoKSkKKyAgICB1cGRhdGVfc3Nh IChUT0RPX3VwZGF0ZV9zc2EpOworCisgIHRpbWV2YXJfcG9wIChUVl9UUkVF X01BWV9BTElBUyk7CiAgIAogICByZXR1cm4gMDsKIH0KIAotCi1zdHJ1Y3Qg dHJlZV9vcHRfcGFzcyBwYXNzX21heV9hbGlhcyA9IAotewotICAiYWxpYXMi LAkJCQkvKiBuYW1lICovCi0gIE5VTEwsCQkJCQkvKiBnYXRlICovCi0gIGNv bXB1dGVfbWF5X2FsaWFzZXMsCQkJLyogZXhlY3V0ZSAqLwotICBOVUxMLAkJ CQkJLyogc3ViICovCi0gIE5VTEwsCQkJCQkvKiBuZXh0ICovCi0gIDAsCQkJ CQkvKiBzdGF0aWNfcGFzc19udW1iZXIgKi8KLSAgVFZfVFJFRV9NQVlfQUxJ QVMsCQkJLyogdHZfaWQgKi8KLSAgUFJPUF9jZmcgfCBQUk9QX3NzYSwJCQkv KiBwcm9wZXJ0aWVzX3JlcXVpcmVkICovCi0gIFBST1BfYWxpYXMsCQkJCS8q IHByb3BlcnRpZXNfcHJvdmlkZWQgKi8KLSAgMCwJCQkJCS8qIHByb3BlcnRp ZXNfZGVzdHJveWVkICovCi0gIDAsCQkJCQkvKiB0b2RvX2ZsYWdzX3N0YXJ0 ICovCi0gIFRPRE9fZHVtcF9mdW5jCi0gICAgfCBUT0RPX3VwZGF0ZV9zc2EK LSAgICB8IFRPRE9fZ2djX2NvbGxlY3QKLSAgICB8IFRPRE9fdmVyaWZ5X3Nz YQotICAgIHwgVE9ET192ZXJpZnlfc3RtdHMsIAkJLyogdG9kb19mbGFnc19m aW5pc2ggKi8KLSAgMAkJCQkJLyogbGV0dGVyICovCi19OwotCi0KIC8qIERh dGEgc3RydWN0dXJlIHVzZWQgdG8gY291bnQgdGhlIG51bWJlciBvZiBkZXJl ZmVyZW5jZXMgdG8gUFRSCiAgICBpbnNpZGUgYW4gZXhwcmVzc2lvbi4gICov CiBzdHJ1Y3QgY291bnRfcHRyX2QKQEAgLTQwMjgsNyArNDAxMiw3IEBAIGNy ZWF0ZV9zdHJ1Y3R1cmVfdmFycyAodm9pZCkKIAkgIH0KICAgICAgIH0KIAot ICByZXR1cm4gMDsKKyAgcmV0dXJuIFRPRE9fcmVidWlsZF9hbGlhczsKIH0K IAogc3RhdGljIGJvb2wKSW5kZXg6IHRyZWUtc3NhLXByZS5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHRyZWUtc3NhLXByZS5jCShyZXZpc2lvbiAx MjczMTkpCisrKyB0cmVlLXNzYS1wcmUuYwkod29ya2luZyBjb3B5KQpAQCAt Mzk4MSw3ICszOTgxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludAogZG9fcHJl ICh2b2lkKQogewogICBleGVjdXRlX3ByZSAoZmFsc2UpOwotICByZXR1cm4g MDsKKyAgcmV0dXJuIFRPRE9fcmVidWlsZF9hbGlhczsKIH0KIAogc3RhdGlj IGJvb2wKSW5kZXg6IHRyZWUtc3JhLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gdHJlZS1zcmEuYwkocmV2aXNpb24gMTI3MzE5KQorKysgdHJlZS1z cmEuYwkod29ya2luZyBjb3B5KQpAQCAtMjQwMCw2ICsyNDAwLDggQEAgdHJl ZV9zcmEgKHZvaWQpCiAgICAgICBzY2FuX2Z1bmN0aW9uICgpOwogICAgICAg ZGVjaWRlX2luc3RhbnRpYXRpb25zICgpOwogICAgICAgc2NhbGFyaXplX2Z1 bmN0aW9uICgpOworICAgICAgaWYgKCFiaXRtYXBfZW1wdHlfcCAoc3JhX2Nh bmRpZGF0ZXMpKQorCXRvZG9mbGFncyB8PSBUT0RPX3JlYnVpbGRfYWxpYXM7 CiAgICAgfQogCiAgIC8qIEZyZWUgYWxsb2NhdGVkIG1lbW9yeS4gICovCkBA IC0yNDIyLDcgKzI0MjQsNyBAQCB0cmVlX3NyYV9lYXJseSAodm9pZCkKICAg cmV0ID0gdHJlZV9zcmEgKCk7CiAgIGVhcmx5X3NyYSA9IGZhbHNlOwogCi0g IHJldHVybiByZXQ7CisgIHJldHVybiByZXQgJiB+VE9ET19yZWJ1aWxkX2Fs aWFzOwogfQogCiBzdGF0aWMgYm9vbApJbmRleDogdHJlZS1mbG93LmgKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gdHJlZS1mbG93LmgJKHJldmlzaW9u IDEyNzMxOSkKKysrIHRyZWUtZmxvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC04 MjUsNiArODI1LDcgQEAgZXh0ZXJuIHZvaWQgcmVjb3JkX3ZhcnMgKHRyZWUp OwogZXh0ZXJuIGJvb2wgYmxvY2tfbWF5X2ZhbGx0aHJ1ICh0cmVlKTsKIAog LyogSW4gdHJlZS1zc2EtYWxpYXMuYyAgKi8KK2V4dGVybiB1bnNpZ25lZCBp bnQgY29tcHV0ZV9tYXlfYWxpYXNlcyAodm9pZCk7CiBleHRlcm4gdm9pZCBk dW1wX21heV9hbGlhc2VzX2ZvciAoRklMRSAqLCB0cmVlKTsKIGV4dGVybiB2 b2lkIGRlYnVnX21heV9hbGlhc2VzX2ZvciAodHJlZSk7CiBleHRlcm4gdm9p ZCBkdW1wX2FsaWFzX2luZm8gKEZJTEUgKik7CkluZGV4OiBwYXNzZXMuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYXNzZXMuYwkocmV2aXNpb24g MTI3MzE5KQorKysgcGFzc2VzLmMJKHdvcmtpbmcgY29weSkKQEAgLTU1MSw3 ICs1NTEsNiBAQCBpbml0X29wdGltaXphdGlvbl9wYXNzZXMgKHZvaWQpCiAg ICAgewogICAgICAgc3RydWN0IHRyZWVfb3B0X3Bhc3MgKipwID0gJnBhc3Nf YWxsX29wdGltaXphdGlvbnMuc3ViOwogICAgICAgTkVYVF9QQVNTIChwYXNz X2NyZWF0ZV9zdHJ1Y3R1cmVfdmFycyk7Ci0gICAgICBORVhUX1BBU1MgKHBh c3NfbWF5X2FsaWFzKTsKICAgICAgIE5FWFRfUEFTUyAocGFzc19yZXR1cm5f c2xvdCk7CiAgICAgICBORVhUX1BBU1MgKHBhc3NfcmVuYW1lX3NzYV9jb3Bp ZXMpOwogCkBAIC01NjYsMjYgKzU2NSwxOSBAQCBpbml0X29wdGltaXphdGlv bl9wYXNzZXMgKHZvaWQpCiAgICAgICBORVhUX1BBU1MgKHBhc3NfdnJwKTsK ICAgICAgIE5FWFRfUEFTUyAocGFzc19kY2UpOwogICAgICAgTkVYVF9QQVNT IChwYXNzX2RvbWluYXRvcik7Ci0KICAgICAgIC8qIFRoZSBvbmx5IGNvbnN0 L2NvcHkgcHJvcGFnYXRpb24gb3Bwb3J0dW5pdGllcyBsZWZ0IGFmdGVyCiAJ IERPTSBzaG91bGQgYmUgZHVlIHRvIGRlZ2VuZXJhdGUgUEhJIG5vZGVzLiAg U28gcmF0aGVyIHRoYW4KIAkgcnVuIHRoZSBmdWxsIHByb3BhZ2F0b3JzLCBy dW4gYSBzcGVjaWFsaXplZCBwYXNzIHdoaWNoCiAJIG9ubHkgZXhhbWluZXMg UEhJcyB0byBkaXNjb3ZlciBjb25zdC9jb3B5IHByb3BhZ2F0aW9uCiAJIG9w cG9ydHVuaXRpZXMuICAqLwogICAgICAgTkVYVF9QQVNTIChwYXNzX3BoaV9v bmx5X2Nwcm9wKTsKLQogICAgICAgTkVYVF9QQVNTIChwYXNzX3RyZWVfaWZj b21iaW5lKTsKICAgICAgIE5FWFRfUEFTUyAocGFzc19waGlvcHQpOwotICAg ICAgTkVYVF9QQVNTIChwYXNzX21heV9hbGlhcyk7CiAgICAgICBORVhUX1BB U1MgKHBhc3NfdGFpbF9yZWN1cnNpb24pOwogICAgICAgTkVYVF9QQVNTIChw YXNzX2NoKTsKICAgICAgIE5FWFRfUEFTUyAocGFzc19zdGRhcmcpOwogICAg ICAgTkVYVF9QQVNTIChwYXNzX2xvd2VyX2NvbXBsZXgpOwogICAgICAgTkVY VF9QQVNTIChwYXNzX3NyYSk7Ci0gICAgICAvKiBGSVhNRTogU1JBIG1heSBn ZW5lcmF0ZSBhcmJpdHJhcnkgZ2ltcGxlIGNvZGUsIGV4cG9zaW5nIG5ldwot CSBhbGlhc2VkIGFuZCBjYWxsLWNsb2JiZXJlZCB2YXJpYWJsZXMuICBBcyBt ZW50aW9uZWQgYmVsb3csCi0JIHBhc3NfbWF5X2FsaWFzIHNob3VsZCBiZSBh IFRPRE8gaXRlbS4gICovCi0gICAgICBORVhUX1BBU1MgKHBhc3NfbWF5X2Fs aWFzKTsKICAgICAgIE5FWFRfUEFTUyAocGFzc19yZW5hbWVfc3NhX2NvcGll cyk7CiAgICAgICBORVhUX1BBU1MgKHBhc3NfZG9taW5hdG9yKTsKIApAQCAt NTk5LDcgKzU5MSw2IEBAIGluaXRfb3B0aW1pemF0aW9uX3Bhc3NlcyAodm9p ZCkKICAgICAgIE5FWFRfUEFTUyAocGFzc19yZWFzc29jKTsKICAgICAgIE5F WFRfUEFTUyAocGFzc19kY2UpOwogICAgICAgTkVYVF9QQVNTIChwYXNzX2Rz ZSk7Ci0gICAgICBORVhUX1BBU1MgKHBhc3NfbWF5X2FsaWFzKTsKICAgICAg IE5FWFRfUEFTUyAocGFzc19mb3J3cHJvcCk7CiAgICAgICBORVhUX1BBU1Mg KHBhc3NfcGhpb3B0KTsKICAgICAgIE5FWFRfUEFTUyAocGFzc19vYmplY3Rf c2l6ZXMpOwpAQCAtNjEwLDEwICs2MDEsOCBAQCBpbml0X29wdGltaXphdGlv bl9wYXNzZXMgKHZvaWQpCiAgICAgICAvKiBGSVhNRTogTWF5IGFsaWFzIHNo b3VsZCBhIFRPRE8gYnV0IGZvciA0LjAuMCwKIAkgd2UgYWRkIG1heV9hbGlh cyByaWdodCBhZnRlciBmb2xkIGJ1aWx0aW5zCiAJIHdoaWNoIGNhbiBjcmVh dGUgYXJiaXRyYXJ5IEdJTVBMRS4gICovCi0gICAgICBORVhUX1BBU1MgKHBh c3NfbWF5X2FsaWFzKTsKICAgICAgIE5FWFRfUEFTUyAocGFzc19zcGxpdF9j cml0X2VkZ2VzKTsKICAgICAgIE5FWFRfUEFTUyAocGFzc19wcmUpOwotICAg ICAgTkVYVF9QQVNTIChwYXNzX21heV9hbGlhcyk7CiAgICAgICBORVhUX1BB U1MgKHBhc3Nfc2lua19jb2RlKTsKICAgICAgIE5FWFRfUEFTUyAocGFzc190 cmVlX2xvb3ApOwogCXsKQEAgLTYzNyw5ICs2MjYsNiBAQCBpbml0X29wdGlt aXphdGlvbl9wYXNzZXMgKHZvaWQpCiAJICAgICAgTkVYVF9QQVNTIChwYXNz X2xvd2VyX3ZlY3Rvcl9zc2EpOwogCSAgICAgIE5FWFRfUEFTUyAocGFzc19k Y2VfbG9vcCk7CiAJICAgIH0KLQkgIC8qIE5FWFRfUEFTUyAocGFzc19tYXlf YWxpYXMpIGNhbm5vdCBiZSBkb25lIGFnYWluIGJlY2F1c2UgdGhlCi0JICAg ICB2ZWN0b3JpemVyIGNyZWF0ZXMgYWxpYXMgcmVsYXRpb25zIHRoYXQgYXJl IG5vdCBzdXBwb3J0ZWQgYnkKLQkgICAgIHBhc3NfbWF5X2FsaWFzLiAgKi8K IAkgIE5FWFRfUEFTUyAocGFzc19jb21wbGV0ZV91bnJvbGwpOwogCSAgTkVY VF9QQVNTIChwYXNzX2xvb3BfcHJlZmV0Y2gpOwogCSAgTkVYVF9QQVNTIChw YXNzX2l2X29wdGltaXplKTsKQEAgLTY1MCw3ICs2MzYsNyBAQCBpbml0X29w dGltaXphdGlvbl9wYXNzZXMgKHZvaWQpCiAgICAgICBORVhUX1BBU1MgKHBh c3NfcmVhc3NvYyk7CiAgICAgICBORVhUX1BBU1MgKHBhc3NfdnJwKTsKICAg ICAgIE5FWFRfUEFTUyAocGFzc19kb21pbmF0b3IpOwotCisgICAgICAKICAg ICAgIC8qIFRoZSBvbmx5IGNvbnN0L2NvcHkgcHJvcGFnYXRpb24gb3Bwb3J0 dW5pdGllcyBsZWZ0IGFmdGVyCiAJIERPTSBzaG91bGQgYmUgZHVlIHRvIGRl Z2VuZXJhdGUgUEhJIG5vZGVzLiAgU28gcmF0aGVyIHRoYW4KIAkgcnVuIHRo ZSBmdWxsIHByb3BhZ2F0b3JzLCBydW4gYSBzcGVjaWFsaXplZCBwYXNzIHdo aWNoCkBAIC05MTIsNyArODk4LDEzIEBAIGV4ZWN1dGVfZnVuY3Rpb25fdG9k byAodm9pZCAqZGF0YSkKICAgICAgIHVwZGF0ZV9zc2EgKHVwZGF0ZV9mbGFn cyk7CiAgICAgICBjZnVuLT5sYXN0X3ZlcmlmaWVkICY9IH5UT0RPX3Zlcmlm eV9zc2E7CiAgICAgfQotCisgIAorICBpZiAoZmxhZ3MgJiBUT0RPX3JlYnVp bGRfYWxpYXMpCisgICAgeworICAgICAgY29tcHV0ZV9tYXlfYWxpYXNlcyAo KTsKKyAgICAgIGNmdW4tPmN1cnJfcHJvcGVydGllcyB8PSBQUk9QX2FsaWFz OworICAgIH0KKyAgCiAgIGlmIChmbGFncyAmIFRPRE9fcmVtb3ZlX3VudXNl ZF9sb2NhbHMpCiAgICAgcmVtb3ZlX3VudXNlZF9sb2NhbHMgKCk7CiAKSW5k ZXg6IHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvMjAwNDA5MTEtMS5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nY2MuZGcvdHJl ZS1zc2EvMjAwNDA5MTEtMS5jCShyZXZpc2lvbiAxMjczMTkpCisrKyB0ZXN0 c3VpdGUvZ2NjLmRnL3RyZWUtc3NhLzIwMDQwOTExLTEuYwkod29ya2luZyBj b3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qIFZlcmlmeSB0aGF0IHBvaW50cy10 byBpbmZvcm1hdGlvbiBpcyBoYW5kbGVkIHByb3Blcmx5IGZvciBQVFIgKyBP RkZTRVQKICAgIHBvaW50ZXIgYXJpdGhtZXRpY3MuICAqLwogLyogeyBkZy1k byBjb21waWxlIH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1mZHVtcC10 cmVlLWFsaWFzMS12b3BzIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAt ZmR1bXAtdHJlZS1zYWxpYXMtdm9wcyIgfSAqLwogCiBjaGFyIGJ1Zls0XSwg KnE7CiBpbnQgZm9vIChpbnQgaSkKQEAgLTE4LDUgKzE4LDUgQEAgaW50IGZv byAoaW50IGkpCiAgIHJldHVybiAqcDsKIH0KIAotLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLW5vdCAiVlVTRSA8YyIgImFsaWFzMSIgfSB9ICov Ci0vKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1bXAgImFsaWFzMSIg fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJW VVNFIDxjIiAic2FsaWFzIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBjbGVh bnVwLXRyZWUtZHVtcCAic2FsaWFzIiB9IH0gKi8KSW5kZXg6IHRlc3RzdWl0 ZS9nY2MuZGcvdHJlZS1zc2EvMjAwNDA1MTctMS5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvMjAwNDA1 MTctMS5jCShyZXZpc2lvbiAxMjczMTkpCisrKyB0ZXN0c3VpdGUvZ2NjLmRn L3RyZWUtc3NhLzIwMDQwNTE3LTEuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1 ICsxLDUgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9w dGlvbnMgIi1PMSAtZmR1bXAtdHJlZS1hbGlhczEtdm9wcyIgfSAqLworLyog eyBkZy1vcHRpb25zICItTzEgLWZkdW1wLXRyZWUtc2FsaWFzLXZvcHMiIH0g Ki8KIGV4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKIGludCBhOyAKICAKQEAg LTE3LDUgKzE3LDUgQEAgdm9pZCBiYXIgKHZvaWQpIAogICAgbWFsbG9jIGZ1 bmN0aW9ucyBtYXkgY2xvYmJlciBnbG9iYWwgbWVtb3J5LiAgT25seSB0aGUg ZnVuY3Rpb24gcmVzdWx0CiAgICBkb2VzIG5vdCBhbGlhcyBhbnkgb3RoZXIg cG9pbnRlci4KICAgIEhlbmNlLCB3ZSBtdXN0IGhhdmUgYSBWREVGIGZvciBh IGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGNhbGwgdG8gZm9vKCkuICAqLwotLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJWREVGIiAyICJh bGlhczEifSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1 bXAgImFsaWFzMSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgIlZERUYiIDIgInNhbGlhcyJ9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAic2FsaWFzIiB9IH0gKi8KSW5k ZXg6IHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHIyNjQyMS5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1z c2EvcHIyNjQyMS5jCShyZXZpc2lvbiAxMjczMTkpCisrKyB0ZXN0c3VpdGUv Z2NjLmRnL3RyZWUtc3NhL3ByMjY0MjEuYwkod29ya2luZyBjb3B5KQpAQCAt MSw1ICsxLDUgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRn LW9wdGlvbnMgIi1PMiAtZmR1bXAtdHJlZS1hbGlhczEtdm9wcyIgfSAqLwor LyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1wLXRyZWUtc2FsaWFzLXZvcHMi IH0gKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewogICBpbnQgaTsKQEAgLTE2LDUg KzE2LDUgQEAgaW50IGZvbyh2b2lkKQogICByZXR1cm4gYS5pOwogfQogCi0v KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlZERUYiIDIg ImFsaWFzMSIgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVl LWR1bXAgImFsaWFzMSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgIlZERUYiIDIgInNhbGlhcyIgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1bXAgInNhbGlhcyIgfSB9ICov CkluZGV4OiB0ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ByMjMzODIuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUvZ2NjLmRnL3Ry ZWUtc3NhL3ByMjMzODIuYwkocmV2aXNpb24gMTI3MzE5KQorKysgdGVzdHN1 aXRlL2djYy5kZy90cmVlLXNzYS9wcjIzMzgyLmMJKHdvcmtpbmcgY29weSkK QEAgLTEzLDEyICsxMywxMiBAQCBpbnQgZih2b2lkKQogICAgc3RydWN0IGEg KmEgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBhKSk7CiAgICByZXR1cm4gYS0+ bGVuZ3RoOwogfQotLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp bWVzICJWREVGIDxIRUFQIiAxICJhbGlhczEifSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlZERUYgPEhFQVAiIDEgInNh bGlhcyJ9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAiVkRFRiA8SEVBUCIgMSAiYWxpYXMyIn0gfSAqLwogLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJWREVGIDxIRUFQIiAxICJh bGlhczMifSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgIlZERUYgPEhFQVAiIDEgImFsaWFzNCJ9IH0gKi8KIC8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiVkRFRiA8SEVBUCIgMSAi YWxpYXM1In0gfSAqLwotLyogeyBkZy1maW5hbCB7IGNsZWFudXAtdHJlZS1k dW1wICJhbGlhczEiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IGNsZWFudXAt dHJlZS1kdW1wICJzYWxpYXMiIH0gfSAqLwogLyogeyBkZy1maW5hbCB7IGNs ZWFudXAtdHJlZS1kdW1wICJhbGlhczIiIH0gfSAqLwogLyogeyBkZy1maW5h bCB7IGNsZWFudXAtdHJlZS1kdW1wICJhbGlhczMiIH0gfSAqLwogLyogeyBk Zy1maW5hbCB7IGNsZWFudXAtdHJlZS1kdW1wICJhbGlhczQiIH0gfSAqLwpJ bmRleDogdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9pbmxpbmVfYXNtLTEu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUvZ2NjLmRn L3RyZWUtc3NhL2lubGluZV9hc20tMS5jCShyZXZpc2lvbiAxMjczMTkpCisr KyB0ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL2lubGluZV9hc20tMS5jCSh3 b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLU8xIC1mZHVtcC10cmVlLW9w dGltaXplZCAtZmR1bXAtdHJlZS1hbGlhczEtdm9wcyIgfSAqLworLyogeyBk Zy1vcHRpb25zICItTzEgLWZkdW1wLXRyZWUtb3B0aW1pemVkIC1mZHVtcC10 cmVlLXNhbGlhcy12b3BzIiB9ICovCiAvKiBUZXN0IHRvIG1ha2Ugc3VyZSB0 aGF0IGlubGluZS1hc20gY2F1c2VzIGEgVl9NQVlfREVGIGFuZCB0aGF0IHdl IGNhbGwgdGVzdF9mdW5jdGlvbiB0d2ljZS4gKi8KIAogY2hhciB0ZXN0X2Z1 bmN0aW9uKHZvaWQgKSBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpOwpAQCAt MTYsNSArMTYsNSBAQCBjaGFyIGYoY2hhciAqYSkKIC8qIHsgZGctZmluYWwg eyBjbGVhbnVwLXRyZWUtZHVtcCAib3B0aW1pemVkIiB9IH0gKi8KIAogLyog VGhlcmUgc2hvdWxkIGEgVkRFRiBmb3IgdGhlIGlubGluZS1hc20uICAqLwot LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJWREVGIiAx ICJhbGlhczEifSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVl LWR1bXAgImFsaWFzMSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgIlZERUYiIDEgInNhbGlhcyJ9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAic2FsaWFzIiB9IH0gKi8K SW5kZXg6IHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvaW5saW5lX2FzbS0y LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdHN1aXRlL2djYy5k Zy90cmVlLXNzYS9pbmxpbmVfYXNtLTIuYwkocmV2aXNpb24gMTI3MzE5KQor KysgdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9pbmxpbmVfYXNtLTIuYwko d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qIHsgZGctZG8gY29t cGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PMSAtZmR1bXAtdHJlZS1h bGlhczEtdm9wcyIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzEgLWZkdW1w LXRyZWUtc2FsaWFzLXZvcHMiIH0gKi8KIC8qIFRlc3QgdG8gbWFrZSBzdXJl IHRoYXQgaW5saW5lLWFzbSBjYXVzZXMgYSBWX01BWV9ERUYuICovCiAKIApA QCAtMTQsNSArMTQsNSBAQCB2b2lkIGYoY2hhciAqYSkKIH0KIAogLyogVGhl cmUgc2hvdWxkIGEgVkRFRiBmb3IgdGhlIGlubGluZS1hc20gYW5kIG9uZSBm b3IgdGhlIGxpbmtfZXJyb3IuICAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJWREVGIiAyICJhbGlhczEifSB9ICovCi0vKiB7 IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1bXAgImFsaWFzMSIgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlZERUYi IDIgInNhbGlhcyJ9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRy ZWUtZHVtcCAic2FsaWFzIiB9IH0gKi8KSW5kZXg6IHRlc3RzdWl0ZS9nY2Mu ZGcvdHJlZS1zc2EvcHRhLWZwLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9wdGEtZnAuYwkocmV2aXNp b24gMTI3MzE5KQorKysgdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9wdGEt ZnAuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qIHsgZGct ZG8gY29tcGlsZSB9ICovIAotLyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1w LXRyZWUtYWxpYXMxIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZmR1 bXAtdHJlZS1zYWxpYXMiIH0gKi8KIGV4dGVybiBkb3VibGUgY29zIChkb3Vi bGUpOwogZXh0ZXJuIGRvdWJsZSBzaW4gKGRvdWJsZSk7CiBkb3VibGUgZihk b3VibGUgYSkKQEAgLTIyLDUgKzIyLDUgQEAgZG91YmxlIGYoZG91YmxlIGEp CiB9CiAvKiBUaGUgcG9pbnRzLXRvIHNldCBvZiB0aGUgZmluYWwgZnVuY3Rp b24gcG9pbnRlciBzaG91bGQgYmUgInNpbiBjb3MiICovCiAKLS8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAieyBzaW4gY29zIH0iIDEg ImFsaWFzMSJ9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRyZWUt ZHVtcCAiYWxpYXMxIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAieyBzaW4gY29zIH0iIDEgInNhbGlhcyJ9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAic2FsaWFzIiB9 IH0gKi8KSW5kZXg6IHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvMjAwMzEw MTUtMS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9n Y2MuZGcvdHJlZS1zc2EvMjAwMzEwMTUtMS5jCShyZXZpc2lvbiAxMjczMTkp CisrKyB0ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhLzIwMDMxMDE1LTEuYwko d29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qIFdpdGggdHJlZS1z c2EsIGdjYy5kZy8yMDAwMDcyNC0xLmMgZmFpbGVkIGJlY2F1c2Ugd2UgbWlz c2VkCiAgICBhIFZPUCBvZiB4IGluIHRoZSBhc20gc3RhdGVtZW50LiAgKi8K IC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1P MSAtZmR1bXAtdHJlZS1hbGlhczEtdm9wcyIgfSAqLworLyogeyBkZy1vcHRp b25zICItTzEgLWZkdW1wLXRyZWUtc2FsaWFzLXZvcHMiIH0gKi8KIAogc3Ry dWN0IHMgeyBpbnQgYTsgfTsKIApAQCAtMTQsNSArMTQsNSBAQCBtYWluKHZv aWQpCiB9CiAKIC8qIFRoZSBWREVGIGNvbWVzIGZyb20gdGhlIGluaXRpYWwg YXNzaWdubWVudCBhbmQgdGhlIGFzbS4gICovCi0vKiB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIkRFRiIgMiAiYWxpYXMxIiB9IH0gKi8K LS8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAiYWxpYXMxIiB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi REVGIiAyICJzYWxpYXMiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IGNsZWFu dXAtdHJlZS1kdW1wICJzYWxpYXMiIH0gfSAqLwpJbmRleDogdGVzdHN1aXRl L2djYy5kZy90cmVlLXNzYS9hbGlhcy0xMi5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvYWxpYXMtMTIu YwkocmV2aXNpb24gMTI3MzE5KQorKysgdGVzdHN1aXRlL2djYy5kZy90cmVl LXNzYS9hbGlhcy0xMi5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA QAogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLS8qIHsgZGctb3B0aW9ucyAi LU8yIC1mZHVtcC10cmVlLWFsaWFzMS12b3BzIiB9ICovCisvKiB7IGRnLW9w dGlvbnMgIi1PMiAtZmR1bXAtdHJlZS1zYWxpYXMtdm9wcyIgfSAqLwogCiBz dHJ1Y3QgewogCWludCBpOwpAQCAtMTMsNiArMTMsNiBAQCBpbnQgZm9vKGlu dCBpKQogCXJldHVybiBhLnhbaV07CiB9CiAKLS8qIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcCAiVkRFRiIgImFsaWFzMSIgfSB9ICovCi0vKiB7IGRn LWZpbmFsIHsgY2xlYW51cC10cmVlLWR1bXAgImFsaWFzMSIgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIlZERUYiICJzYWxpYXMi IH0gfSAqLworLyogeyBkZy1maW5hbCB7IGNsZWFudXAtdHJlZS1kdW1wICJz YWxpYXMiIH0gfSAqLwogCg== ------=_Part_126828_26458210.1186779337981--