From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 49caebbd for ; Thu, 9 Jan 2020 20:27:12 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============4535745789179364028==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] yabasic: update to 2.86.4. To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 09 Jan 2020 21:27:12 +0100 Message-ID: <20200109202712.q2_xHAvPH__1uTlk0A2xQTRbJNrkyly-Y4e8ed8bwvY@z> GitHub notification mails are now in MIME to allow UTF8. --===============4535745789179364028== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgbW9iaW5tb2IgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL21v YmlubW9iL3ZvaWQtcGFja2FnZXMgeWFic2ljCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8xNzYxNAoKeWFiYXNpYzogdXBkYXRlIHRvIDIuODYuNC4KCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMTc2MTQucGF0Y2ggaXMgYXR0YWNoZWQ= --===============4535745789179364028== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-yabsic-17614.patch" RnJvbSBlMWUzZGUwYTE5YTZhOWZhMjQ1MDU5MjY2NDMzMGUxYWE0MWE4MTg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtb2Jpbm1vYiA8bW9iaW5tb2JAZGlzcm9vdC5vcmc+CkRhdGU6 IFRodSwgMTkgRGVjIDIwMTkgMTI6NTE6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSB5YWJhc2lj OiB1cGRhdGUgdG8gMi44Ni40LgoKLS0tCiBzcmNwa2dzL3lhYmFzaWMvcGF0Y2hlcy9DVkUtMjAx OS0xOTcyMC5wYXRjaCB8IDIzNjIgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3lhYmFzaWMv dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIDIgZmlsZXMgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyMzY0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MveWFiYXNpYy9wYXRjaGVzL0NWRS0yMDE5LTE5NzIwLnBhdGNoCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy95YWJhc2ljL3BhdGNoZXMvQ1ZFLTIwMTktMTk3MjAucGF0Y2ggYi9zcmNwa2dzL3lh YmFzaWMvcGF0Y2hlcy9DVkUtMjAxOS0xOTcyMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMzBjMGEyNzUwNDcuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MveWFiYXNpYy9w YXRjaGVzL0NWRS0yMDE5LTE5NzIwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjM2MiArMCww IEBACi1Gcm9tIDg4MzM2YzYzYzMxMWNiMTVhZWYzMWM1MWE5NzUyZGQ0YmFmMThjYWEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJjIElobSA8bWFyY0BpaG0ubmFtZT4KLURhdGU6 IFdlZCwgMTEgRGVjIDIwMTkgMjI6MjQ6MjQgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4ZWQg aGVhcC1wcm9ibGVtIGluIHBhcnNpbmcgc3RyaW5ncwotCi0tLS0KLSBmbGV4LmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArLQotIGZvcmVpZ24uYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICstCi0gZ3JhcGhpYy5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KLSBpby5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQotIG1haW4uYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCi0gdGVzdHMvZXJyb3IvZXJyb3Jfc3Ry aW5nX25vdF90ZXJtaW5hdGVkLnlhYiB8ICAgIDYgKwotIHRlc3RzL3Nob3J0X2lmLnlhYiAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKLSB0ZXN0cy9zdHJpbmcueWFiICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCi0gdW5peC9sYW5nL2NvbmZpZy5oICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAxMjcgKysKLSB1bml4L2xhbmcvY29uZmlnLnN0YXR1cyAgICAg ICAgICAgICAgICAgICAgIHwgMTk4MiArKysrKysrKysrKysrKysrKysrCi0geWFiYXNpYy5mbGV4 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKy0KLSB5YWJhc2ljLmggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQotIDEyIGZpbGVzIGNoYW5n ZWQsIDIxNDIgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAw NjQ0IHRlc3RzL2Vycm9yL2Vycm9yX3N0cmluZ19ub3RfdGVybWluYXRlZC55YWIKLSBjcmVhdGUg bW9kZSAxMDA2NDQgdGVzdHMvc2hvcnRfaWYueWFiCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHVuaXgv bGFuZy9jb25maWcuaAotIGNyZWF0ZSBtb2RlIDEwMDc1NSB1bml4L2xhbmcvY29uZmlnLnN0YXR1 cwotCi1kaWZmIC0tZ2l0IGZsZXguYyBmbGV4LmMKLWluZGV4IGFmM2Q0YmIuLmVhMGZlMmUgMTAw NjQ0Ci0tLS0gZmxleC5jCi0rKysgZmxleC5jCi1AQCAtMzA4NCwyMSArMzA4NCwxNyBAQCBjYXNl IDI0MDoKLSAvKiBydWxlIDI0MCBjYW4gbWF0Y2ggZW9sICovCi0gWVlfUlVMRV9TRVRVUAotIHsK LS0gIGludCBjbnQ7Ci0tICBpZiAoeXl0ZXh0W3l5bGVuZy0xXT09J1xuJykgeXljb2x1bW49MTsK LS0gIGlmICh5eXRleHRbeXlsZW5nLTFdPT0nXG4nICYmIGluX3Nob3J0X2lmKSB7aW5fc2hvcnRf aWYtLTt5eWxlc3MoMCk7cmV0dXJuIHRJTVBMSUNJVEVORElGO30KLS0gIGlmICh5eXRleHRbeXls ZW5nLTFdPT0nXG4nKSB7Ci0rICBpZiAoeXlsZW5nPDIgfHwgeXl0ZXh0W3l5bGVuZy0xXT09J1xu JykgeyAvKiB1bnRlcm1pbmF0ZWQgc3RyaW5nIGhhcyByZWFjaGVkIGVuZCBvZiBsaW5lLCByZXBv cnQgcXVhbGlmaWVkIGVycm9yIGluIGJpc29uICovCi0rICAgICAgICB5eWNvbHVtbj0xOwkJICAg ICAgCi0gICAJeXlsdmFsLnN0cmluZz1OVUxMOwotICAgCXJldHVybiB0U1RSSU5HOwotLSAgfQot LSAgZm9yKGNudD0wO3l5dGV4dFt5eWxlbmctY250LTJdPT0nXFwnO2NudCsrKSA7Ci0tICBpZiAo Y250JTIpIHsKLSsgIH0gZWxzZSBpZiAoeXl0ZXh0W3l5bGVuZy0yXT09J1xcJykgeyAvKiBmaW5h bCBxdW90ZSB3YXMgZXNjYXBlZCwgc28gcHV0IGFsbCB0ZXh0IGJhY2sgYW5kIHJlYWQgbW9yZSAq LwotICAgCXl5bGVzcyh5eWxlbmctMSk7Ci0gCXl5bW9yZSgpOwotLSAgfSBlbHNlIHsKLSsgIH0g ZWxzZSB7IC8qIHByb3Blcmx5IHF1b3RlZCBzdHJpbmc7IHJlbW92ZSBxdW90ZXMgYW5kIHJldHVy biBpdCAqLwotIAl5eWx2YWwuc3RyaW5nPShjaGFyICopbXlfc3RyZHVwKHl5dGV4dCsxKTsKLS0J Kih5eWx2YWwuc3RyaW5nK3l5bGVuZy0yKT0nXDAnOwotLQlyZXBsYWNlKHl5bHZhbC5zdHJpbmcp OwotKwkqKHl5bHZhbC5zdHJpbmcrc3RybGVuKHl5bHZhbC5zdHJpbmcpLTEpPSdcMCc7Ci0rCXJl cGxhY2VfZXNjYXBlcyh5eWx2YWwuc3RyaW5nKTsKLSAJcmV0dXJuIHRTVFJJTkc7Ci0gICB9Ci0g fQotQEAgLTQxODQsNyArNDE4MCw3IEBAIGludCBpbXBvcnRfbGliKGNoYXIgKm5hbWUpIC8qIGlt cG9ydCBsaWJyYXJ5ICovCi0gICB9IAotIAotICAgaWYgKHNldmVyaXR5X3RocmVzaG9sZCA8PSBz Tk9URSkgewotLSAgICBpZiAoaXNib3VuZCkgeyAgICAgIAotKyAgICBpZiAoaXNfYm91bmQpIHsg ICAgICAKLSAgICAgICBzcHJpbnRmKHN0cmluZywiaW1wb3J0aW5nIGxpYnJhcnkgJyVzJyIsbmFt ZSk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgc3ByaW50ZihzdHJpbmcsImltcG9ydGluZyBmcm9t IGZpbGUgJyVzJyIsZnVsbCk7Ci1kaWZmIC0tZ2l0IGZvcmVpZ24uYyBmb3JlaWduLmMKLWluZGV4 IGM3YzQxYzAuLjI3Y2U3MjMgMTAwNzU1Ci0tLS0gZm9yZWlnbi5jCi0rKysgZm9yZWlnbi5jCi1A QCAtMzc1LDcgKzM3NSw3IEBAIGZybmJmX3NldCAoKSAgLyogc2V0IGEgdmFsdWUgd2l0aGluIGEg Zm9yZWlnbiBidWZmZXIgKi8KLSAgICAgaWYgKCFmcm5fZGVjb2RlX2ZmaV90eXBlKHR5cGUsICZ2 YWx0eXBlLCBOVUxMLCBrdFNJTVBMRSkpIHJldHVybjsNCi0gICAgIGlmICghZnJuYmZfdmVyaWZ5 X25vdF9udWxsKHNpemUpKSByZXR1cm47DQotICAgICBpZiAob2Zmc2V0PDAgfHwgKCBzaXplID49 IDAgJiYgb2Zmc2V0K3ZhbHR5cGUtPnNpemUgPiBzaXplKSkgew0KLS0Jc3ByaW50Zihlc3RyaW5n LCAib3ZlcnJ1bjogb2Zmc2V0IG9mICVkIHBsdXMgc2l6ZSBvZiB0eXBlICVzID0gJWQgZXhjZWVk cyBzaXplIG9mIGJ1ZmZlciAlZCIsDQotKwlzcHJpbnRmKGVzdHJpbmcsICJvdmVycnVuOiBvZmZz ZXQgb2YgJWQgcGx1cyBzaXplIG9mIHR5cGUgJXMgPSAlbHUgZXhjZWVkcyBzaXplIG9mIGJ1ZmZl ciAlZCIsDQotIAkJb2Zmc2V0LCB0eXBlLCB2YWx0eXBlLT5zaXplLCBzaXplKTsNCi0gCWVycm9y KHNFUlJPUiwgZXN0cmluZyk7DQotIAlyZXR1cm47DQotQEAgLTQyNiw3ICs0MjYsNyBAQCBmcm5i Zl9zZXRfYnVmZmVyICgpICAvKiBzZXQgYSBidWZmZXIgd2l0aGluIGEgZm9yZWlnbiBidWZmZXIg Ki8KLSAgICAgZnJuX2RlY29kZV9mZmlfdHlwZSgiYnVmZmVyIiwgJmJ1ZmZ0eXBlLCBOVUxMLCBr dENPTVBMRVgpOw0KLSAgICAgaWYgKCFmcm5iZl92ZXJpZnlfbm90X251bGwoc2l6ZTEpKSByZXR1 cm47DQotICAgICBpZiAob2Zmc2V0PDAgfHwgKHNpemUxID49IDAgJiYgb2Zmc2V0K2J1ZmZ0eXBl LT5zaXplID4gc2l6ZTEpKSB7DQotLQlzcHJpbnRmKGVzdHJpbmcsICJvdmVycnVuOiBvZmZzZXQg b2YgJWQgcGx1cyBzaXplIG9mIHBvaW50ZXIgPSAlZCBleGNlZWRzIHNpemUgb2YgYnVmZmVyICVk IiwNCi0rCXNwcmludGYoZXN0cmluZywgIm92ZXJydW46IG9mZnNldCBvZiAlZCBwbHVzIHNpemUg b2YgcG9pbnRlciA9ICVsdSBleGNlZWRzIHNpemUgb2YgYnVmZmVyICVkIiwNCi0gCQlvZmZzZXQs IGJ1ZmZ0eXBlLT5zaXplLCBzaXplMSk7DQotIAllcnJvcihzRVJST1IsIGVzdHJpbmcpOw0KLSAJ cmV0dXJuOw0KLUBAIC00NTMsNyArNDUzLDcgQEAgZnJuYmZfZ2V0ICgpICAvKiBnZXQgYSB2YWx1 ZSBmcm9tIGEgZm9yZWlnbiBidWZmZXIgKi8KLSAgICAgaWYgKCFmcm5fZGVjb2RlX2ZmaV90eXBl KHR5cGUsICZ2YWx0eXBlLCBOVUxMLCBrdFNJTVBMRSkpIHJldHVybiAwLjA7DQotICAgICBpZiAo IWZybmJmX3ZlcmlmeV9ub3RfbnVsbChzaXplKSkgcmV0dXJuIDAuMDsNCi0gICAgIGlmIChvZmZz ZXQ8MCB8fCAoc2l6ZSA+PSAwICYmIG9mZnNldCt2YWx0eXBlLT5zaXplID4gc2l6ZSkpIHsNCi0t CXNwcmludGYoZXN0cmluZywgIm92ZXJydW46IG9mZnNldCBvZiAlZCBwbHVzIHNpemUgb2YgdHlw ZSAlcyA9ICVkIGV4Y2VlZHMgc2l6ZSBvZiBidWZmZXIgJWQiLA0KLSsJc3ByaW50Zihlc3RyaW5n LCAib3ZlcnJ1bjogb2Zmc2V0IG9mICVkIHBsdXMgc2l6ZSBvZiB0eXBlICVzID0gJWx1IGV4Y2Vl ZHMgc2l6ZSBvZiBidWZmZXIgJWQiLA0KLSAJCW9mZnNldCwgdHlwZSwgdmFsdHlwZS0+c2l6ZSwg c2l6ZSk7DQotIAllcnJvcihzRVJST1IsIGVzdHJpbmcpOw0KLSAJcmV0dXJuIDAuMDsNCi1kaWZm IC0tZ2l0IGdyYXBoaWMuYyBncmFwaGljLmMKLWluZGV4IDgzZDhjOTYuLmEzNTg5OTcgMTAwNzU1 Ci0tLS0gZ3JhcGhpYy5jCi0rKysgZ3JhcGhpYy5jCi1AQCAtMTI5OCw3ICsxMjk4LDcgQEAgcmdi X3RvX3BpeGVsIChpbnQgciwgaW50IGcsIGludCBiKQotIH0KLSAKLSAKLS1zdGF0aWMgaW50Ci0r c3RhdGljIHZvaWQKLSBwaXhlbF90b19yZ2IgKGludCAqciwgaW50ICpnLCBpbnQgKmIsIGludCBw aXhlbCkKLSB7Ci0gICAgIC8qIGNyZWF0ZSBhbiByZ2IgdmFsdWUgZnJvbSBwaXhlbCAqLwotQEAg LTIyMDgsNyArMjIwOCw3IEBAIHJlYWRyZ2IgKGNoYXIgKmJpdHMsIGludCBvZmYsIHVuc2lnbmVk IHNob3J0ICpyZWQsIHVuc2lnbmVkIHNob3J0ICpncmVlbiwKLSAJaWYgKHNjYW5uZWQgPT0gRU9G KQotIAkJc3ByaW50Zihlc3RyaW5nLCAiSW52YWxpZCBiaXRtYXA6IHVuZXhwZWN0ZWQgZW5kIG9m IHN1cHBsaWVkIHN0cmluZyIpOwotIAllbHNlCi0tCQlzcHJpbnRmKGVzdHJpbmcsIkludmFsaWQg Yml0bWFwOiBjb3VsZCBvbmx5IGV4dHJhY3QgJWQgaGV4LXZhbHVlcyBmcm9tIHN1cHBsaWVkIHN0 cmluZyBhdCBwb3NpdGlvbiAlZDogJyUuNnMnIixzY2FubmVkLCBiaXRwdC1iaXRzdGFydCxiaXRw dCk7Ci0rCQlzcHJpbnRmKGVzdHJpbmcsIkludmFsaWQgYml0bWFwOiBjb3VsZCBvbmx5IGV4dHJh Y3QgJWQgaGV4LXZhbHVlcyBmcm9tIHN1cHBsaWVkIHN0cmluZyBhdCBwb3NpdGlvbiAlbGQ6ICcl LjZzJyIsc2Nhbm5lZCwgYml0cHQtYml0c3RhcnQsYml0cHQpOwotICAgICBlcnJvciAoc0VSUk9S LCBlc3RyaW5nKTsKLSAgICAgcmV0dXJuIDA7Ci0gfQotZGlmZiAtLWdpdCBpby5jIGlvLmMKLWlu ZGV4IDZiNTBmMmEuLjdlMWQ4OGYgMTAwNjQ0Ci0tLS0gaW8uYwotKysrIGlvLmMKLUBAIC01OTks NyArNTk5LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlX2tleShpbnQga2V5LCBjaGFyICp0bykgLyog ZGVjb2RlIGtleWNvZGUgaW50byBzdHJpbmcgKi8KLSAKLSAKLSBjaGFyICoKLS1yZXBsYWNlKGNo YXIgKnN0cmluZykJCS8qIHJlcGxhY2UgXG4sXGEsIGV0Yy4gKi8KLStyZXBsYWNlX2VzY2FwZXMo Y2hhciAqc3RyaW5nKQkJLyogcmVwbGFjZSBcbixcYSwgZXRjLiAqLwotIHsKLSAgICAgY2hhciAq ZnJvbSwgKnRvOwotICAgICBjaGFyICpwOwotZGlmZiAtLWdpdCBtYWluLmMgbWFpbi5jCi1pbmRl eCAyNTM1MDZhLi5iZDA4M2UxIDEwMDc1NQotLS0tIG1haW4uYwotKysrIG1haW4uYwotQEAgLTI3 OCw3ICsyNzgsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCSAgICBwcmludGYK LSAJCSgiWW91ciBwcm9ncmFtIHdpbGwgZXhlY3V0ZSBpbW1lZGlhdGVseSBhbmQgY2Fubm90IGJl IHNhdmVkO1xuIik7Ci0gCSAgICBwcmludGYKLS0JCSgiY3JlYXRlIHlvdXIgcHJvZ3JhbSB3aXRo IGFuIGV4dGVybmFsIGVkaXRvciwgaWYgeW91IHdhbnQgdG8ga2VlcCBpdC5cbiIpOwotKwkJKCJj cmVhdGUgeW91ciBwcm9ncmFtIHdpdGggYW4gZXh0ZXJuYWwgZWRpdG9yLCB0byBhdm9pZCB0aGlz LlxuIik7Ci0gI2lmZGVmIFVOSVgKLSAJICAgIHByaW50ZgotIAkJKCJUeXBlICdtYW4geWFiYXNp Yycgb3Igc2VlIHRoZSBmaWxlIHlhYmFzaWMuaHRtIGZvciBtb3JlIGluZm9ybWF0aW9uLFxuIik7 Ci1AQCAtMjU1Niw3ICsyNTU2LDcgQEAgbXliaW5kIChjaGFyICpib3VuZCkJCS8qIGJpbmQgYSBw cm9ncmFtIHRvIHRoZSBpbnRlcnByZXRlciBhbmQgc2F2ZSBpdCAqLwotICAgICBwcm9nbGVuICs9 IDU7Ci0gICAgIGZwcmludGYgKGZib3VuZCwgInJlbSAlMDhkXG4iLCBwcm9nbGVuKTsKLSAgICAg ZnByaW50ZiAoZmJvdW5kLCAicmVtICVzXG4iLCBwcm9nbmFtZSk7Ci0tICAgIGZwcmludGYgKGZi b3VuZCwgInJlbSAlMDhkXG4iLCBzdHJsZW4ocHJvZ25hbWUpKTsKLSsgICAgZnByaW50ZiAoZmJv dW5kLCAicmVtICUwOGx1XG4iLCBzdHJsZW4ocHJvZ25hbWUpKTsKLSAgICAgZnByaW50ZiAoZmJv dW5kLCAicmVtICUwMmRcbiIsIHNldmVyaXR5X3RocmVzaG9sZCArIHl5ZGVidWcpOwotICAgICBm cHJpbnRmIChmYm91bmQsICJyZW0gJXNcbiIsIFlBQk1BR0lDKTsKLSAgICAgZmNsb3NlIChmeWFi KTsKLWRpZmYgLS1naXQgdGVzdHMvZXJyb3IvZXJyb3Jfc3RyaW5nX25vdF90ZXJtaW5hdGVkLnlh YiB0ZXN0cy9lcnJvci9lcnJvcl9zdHJpbmdfbm90X3Rlcm1pbmF0ZWQueWFiCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMjJlNjM5ZQotLS0tIC9kZXYvbnVsbAotKysrIHRl c3RzL2Vycm9yL2Vycm9yX3N0cmluZ19ub3RfdGVybWluYXRlZC55YWIKLUBAIC0wLDAgKzEsNiBA QAotKyNleHBlY3QjLS0tRXJyb3IgaW4gZXJyb3Jfc3RyaW5nX25vdF90ZXJtaW5hdGVkLnlhYiwg bGluZSA2OgotKyNleHBlY3QjLS0tRXJyb3I6IFN0cmluZyBub3QgdGVybWluYXRlZAotKyNleHBl Y3QjICAgcHJpbnQgInRoaXMgc3RyaW5nIGhhcyBubyBlbmQKLSsjZXhwZWN0IyAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotKyNleHBlY3QjLS0tRXJyb3I6IFByb2dyYW0gbm90IGV4 ZWN1dGVkCi0rcHJpbnQgInRoaXMgc3RyaW5nIGhhcyBubyBlbmQKLWRpZmYgLS1naXQgdGVzdHMv c2hvcnRfaWYueWFiIHRlc3RzL3Nob3J0X2lmLnlhYgotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IDAwMDAwMDAuLmNhODI5MGUKLS0tLSAvZGV2L251bGwKLSsrKyB0ZXN0cy9zaG9ydF9pZi55 YWIKLUBAIC0wLDAgKzEsMiBAQAotKwotK2lmICgxPDIpIHByaW50ICJoaSIKLWRpZmYgLS1naXQg dGVzdHMvc3RyaW5nLnlhYiB0ZXN0cy9zdHJpbmcueWFiCi1pbmRleCBiYmU2YWQzLi4zMDZkZGYz IDEwMDc1NQotLS0tIHRlc3RzL3N0cmluZy55YWIKLSsrKyB0ZXN0cy9zdHJpbmcueWFiCi1AQCAt NywzICs3LDQgQEAgaWYgY2hvbXAkKCJmb29cbiIpPD4iZm9vIiBlcnJvciAiY2hvbXAkIGhhcyBw cm9ibGVtcyIKLSBpZiBjaG9tcCQoImZvbyIpPD4iZm9vIiBlcnJvciAiY2hvbXAkIGhhcyBwcm9i bGVtcyIKLSBpZiBub3QgZ2xvYigiZm9vYmFyIiwiKmJhciIpIGVycm9yICJnbG9iIGhhcyBwcm9i bGVtcyIKLSBpZiBub3QgZ2xvYigiYmFyIiwiKmJhciIpIGVycm9yICJnbG9iIGhhcyBwcm9ibGVt cyIKLStpZiBsZW4oImZvb1wiIik8PjQgZXJyb3IgInN0cmxlbiBoYXMgcHJvYmxlbXMiCi1kaWZm IC0tZ2l0IHVuaXgvbGFuZy9jb25maWcuaCB1bml4L2xhbmcvY29uZmlnLmgKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5hOTk1ZjA2Ci0tLS0gL2Rldi9udWxsCi0rKysgdW5p eC9sYW5nL2NvbmZpZy5oCi1AQCAtMCwwICsxLDEyNyBAQAotKy8qIGNvbmZpZy5oLiAgR2VuZXJh dGVkIGZyb20gY29uZmlnLmguaW4gYnkgY29uZmlndXJlLiAgKi8KLSsvKiBjb25maWcuaC5pbi4g IEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLSsKLSsvKiBi dWlsZC10aW1lLCB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIGJhbm5lciAqLwotKyNkZWZpbmUg QlVJTERfVElNRSAiV2VkIERlYyAxMSAyMToxOToyNSBVVEMgMjAxOSIKLSsKLSsvKiBEZWZpbmUg dG8gb25lIG9mIGBfZ2V0YjY3JywgYEdFVEI2NycsIGBnZXRiNjcnIGZvciBDcmF5LTIgYW5kIENy YXktWU1QCi0rICAgc3lzdGVtcy4gVGhpcyBmdW5jdGlvbiBpcyByZXF1aXJlZCBmb3IgYGFsbG9j YS5jJyBzdXBwb3J0IG9uIHRob3NlIHN5c3RlbXMuCi0rICAgKi8KLSsvKiAjdW5kZWYgQ1JBWV9T VEFDS1NFR19FTkQgKi8KLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB1c2luZyBgYWxsb2NhLmMnLiAq LwotKy8qICN1bmRlZiBDX0FMTE9DQSAqLwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IGBhbGxvY2EnLCBhcyBhIGZ1bmN0aW9uIG9yIG1hY3JvLiAqLwotKyNkZWZpbmUgSEFWRV9BTExP Q0EgMQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIDxhbGxvY2EuaD4gYW5kIGl0IHNo b3VsZCBiZSB1c2VkIChub3Qgb24gVWx0cml4KS4KLSsgICAqLwotKyNkZWZpbmUgSEFWRV9BTExP Q0FfSCAxCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhbGxvYy5oPiBoZWFk ZXIgZmlsZS4gKi8KLSsvKiAjdW5kZWYgSEFWRV9BTExPQ19IICovCi0rCi0rLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxjdXJzZXMuaD4gaGVhZGVyIGZpbGUuICovCi0rI2RlZmluZSBI QVZFX0NVUlNFU19IIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNu Lmg+IGhlYWRlciBmaWxlLiAqLwotKyNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZmaS5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjZGVmaW5l IEhBVkVfRkZJX0ggMQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0bnN0 cicgZnVuY3Rpb24uICovCi0rI2RlZmluZSBIQVZFX0dFVE5TVFIgMQotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8aW50dHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0rI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 bWFsbG9jLmg+IGhlYWRlciBmaWxlLiAqLwotKyNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCi0rCi0r LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICov Ci0rI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgYG1rc3RlbXAnIGZ1bmN0aW9uLiAqLwotKyNkZWZpbmUgSEFWRV9NS1NURU1QIDEKLSsK LSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5jdXJzZXMuaD4gaGVhZGVyIGZpbGUu ICovCi0rI2RlZmluZSBIQVZFX05DVVJTRVNfSCAxCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDxwcmN0bC5oPiBoZWFkZXIgZmlsZS4gKi8KLSsvKiAjdW5kZWYgSEFWRV9QUkNU TF9IICovCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVh ZGVyIGZpbGUuICovCi0rI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLSsKLSsvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjZGVmaW5lIEhB VkVfU1RETElCX0ggMQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZXJy b3InIGZ1bmN0aW9uLiAqLwotKyNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi0rCi0rLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwotKyNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwotKyNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi0rCi0r LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4g Ki8KLSsjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0rI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5o PiBoZWFkZXIgZmlsZS4gKi8KLSsjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotKwotKy8qIERlZmlu ZSB0byB0aGUgc3ViLWRpcmVjdG9yeSB3aGVyZSBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBs aWJyYXJpZXMuICovCi0rI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKLSsKLSsvKiBOYW1lIG9m IHBhY2thZ2UgKi8KLSsjZGVmaW5lIFBBQ0tBR0UgInlhYmFzaWMiCi0rCi0rLyogRGVmaW5lIHRv IHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJl IHNlbnQuICovCi0rI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotKwotKy8qIERlZmluZSB0 byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSsjZGVmaW5lIFBBQ0tBR0VfTkFN RSAieWFiYXNpYyIKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBv ZiB0aGlzIHBhY2thZ2UuICovCi0rI2RlZmluZSBQQUNLQUdFX1NUUklORyAieWFiYXNpYyAyLjg2 LjEiCi0rCi0rLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBw YWNrYWdlLiAqLwotKyNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJ5YWJhc2ljIgotKwotKy8qIERl ZmluZSB0byB0aGUgaG9tZSBwYWdlIGZvciB0aGlzIHBhY2thZ2UuICovCi0rI2RlZmluZSBQQUNL QUdFX1VSTCAiIgotKwotKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2Uu ICovCi0rI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuODYuMSIKLSsKLSsvKiBJZiB1c2luZyB0 aGUgQyBpbXBsZW1lbnRhdGlvbiBvZiBhbGxvY2EsIGRlZmluZSBpZiB5b3Uga25vdyB0aGUKLSsg ICBkaXJlY3Rpb24gb2Ygc3RhY2sgZ3Jvd3RoIGZvciB5b3VyIHN5c3RlbTsgb3RoZXJ3aXNlIGl0 IHdpbGwgYmUKLSsgICBhdXRvbWF0aWNhbGx5IGRlZHVjZWQgYXQgcnVudGltZS4KLSsJU1RBQ0tf RElSRUNUSU9OID4gMCA9PiBncm93cyB0b3dhcmQgaGlnaGVyIGFkZHJlc3NlcwotKwlTVEFDS19E SVJFQ1RJT04gPCAwID0+IGdyb3dzIHRvd2FyZCBsb3dlciBhZGRyZXNzZXMKLSsJU1RBQ0tfRElS RUNUSU9OID0gMCA9PiBkaXJlY3Rpb24gb2YgZ3Jvd3RoIHVua25vd24gKi8KLSsvKiAjdW5kZWYg U1RBQ0tfRElSRUNUSU9OICovCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFO U0kgQyBoZWFkZXIgZmlsZXMuICovCi0rI2RlZmluZSBTVERDX0hFQURFUlMgMQotKwotKy8qIGFy Y2hpdGVjdHVyZSBvZiBidWlsZCBtYWNoaW5lICovCi0rI2RlZmluZSBVTklYX0FSQ0hJVEVDVFVS RSAieDg2XzY0LXVua25vd24tbGludXgtZ251IgotKwotKy8qIGxpYmZmaSBhbmQgZGxvcGVuIGF2 YWlsYWJsZSAqLwotKyNkZWZpbmUgVVNFX0RMX0ZGSSAxCi0rCi0rLyogVmVyc2lvbiBudW1iZXIg b2YgcGFja2FnZSAqLwotKyNkZWZpbmUgVkVSU0lPTiAiMi44Ni4xIgotKwotKy8qIERlZmluZSB0 byAxIGlmIHRoZSBYIFdpbmRvdyBTeXN0ZW0gaXMgbWlzc2luZyBvciBub3QgYmVpbmcgdXNlZC4g Ki8KLSsvKiAjdW5kZWYgWF9ESVNQTEFZX01JU1NJTkcgKi8KLSsKLSsvKiBEZWZpbmUgdG8gYHVu c2lnbmVkIGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCi0rLyogI3Vu ZGVmIHNpemVfdCAqLwotZGlmZiAtLWdpdCB1bml4L2xhbmcvY29uZmlnLnN0YXR1cyB1bml4L2xh bmcvY29uZmlnLnN0YXR1cwotbmV3IGZpbGUgbW9kZSAxMDA3NTUKLWluZGV4IDAwMDAwMDAuLmJj YmM3NzYKLS0tLSAvZGV2L251bGwKLSsrKyB1bml4L2xhbmcvY29uZmlnLnN0YXR1cwotQEAgLTAs MCArMSwxOTgyIEBACi0rIyEgL2Jpbi9zaAotKyMgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KLSsj IFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KLSsj IENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVzZWZ1bCBmb3IgZGVidWdn aW5nCi0rIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgotKwotK2Rl YnVnPWZhbHNlCi0rYWNfY3NfcmVjaGVjaz1mYWxzZQotK2FjX2NzX3NpbGVudD1mYWxzZQotKwot K1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0rZXhwb3J0IFNIRUxMCi0rIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAjIwotKyMjIC0tLS0t LS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBCZSBtb3JlIEJvdXJuZSBjb21wYXRpYmxlCi0rRFVB TENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotK2lmIHRlc3QgLW4gIiR7WlNI X1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0r ICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2gg ZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0 byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRA In0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0 IC1vKSAyPi9kZXYvbnVsbGAgaW4gIygKLSsgICpwb3NpeCopIDoKLSsgICAgc2V0IC1vIHBvc2l4 IDs7ICMoCi0rICAqKSA6Ci0rICAgICA7OwotK2VzYWMKLStmaQotKwotKwotK2FzX25sPScKLSsn Ci0rZXhwb3J0IGFzX25sCi0rIyBQcmludGluZyBhIGxvbmcgc3RyaW5nIGNyYXNoZXMgU29sYXJp cyA3IC91c3IvYmluL3ByaW50Zi4KLSthc19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcJwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8kYXNfZWNobwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvCi0rIyBQcmVmZXIgYSBrc2ggc2hlbGwgYnVpbHRpbiBvdmVyIGFu IGV4dGVybmFsIHByaW50ZiBwcm9ncmFtIG9uIFNvbGFyaXMsCi0rIyBidXQgd2l0aG91dCB3YXN0 aW5nIGZvcmtzIGZvciBiYXNoIG9yIHpzaC4KLStpZiB0ZXN0IC16ICIkQkFTSF9WRVJTSU9OJFpT SF9WRVJTSU9OIiBcCi0rICAgICYmICh0ZXN0ICJYYHByaW50IC1yIC0tICRhc19lY2hvYCIgPSAi WCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX2VjaG89J3ByaW50IC1yIC0tJwot KyAgYXNfZWNob19uPSdwcmludCAtcm4gLS0nCi0rZWxpZiAodGVzdCAiWGBwcmludGYgJXMgJGFz X2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfZWNobz0ncHJp bnRmICVzXG4nCi0rICBhc19lY2hvX249J3ByaW50ZiAlcycKLStlbHNlCi0rICBpZiB0ZXN0ICJY YCgvdXNyL3VjZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251bGxgIiA9ICJYLW4gJGFzX2Vj aG8iOyB0aGVuCi0rICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNyL3VjZWNobyAtbiAiJDEkYXNf bmwiJwotKyAgICBhc19lY2hvX249Jy91c3IvdWNlY2hvIC1uJwotKyAgZWxzZQotKyAgICBhc19l Y2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwotKyAgICBhc19lY2hvX25f Ym9keT0nZXZhbAotKyAgICAgIGFyZz0kMTsKLSsgICAgICBjYXNlICRhcmcgaW4gIygKLSsgICAg ICAqIiRhc19ubCIqKQotKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKLSsJYXJn PWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKLSsgICAgICBlc2FjOwotKyAg ICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKLSsgICAgJwot KyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKLSsgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNo b19uX2JvZHkgYXNfZWNobycKLSsgIGZpCi0rICBleHBvcnQgYXNfZWNob19ib2R5Ci0rICBhc19l Y2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCi0rZmkKLSsKLSsjIFRoZSB1c2VyIGlz IGFsd2F5cyByaWdodC4KLStpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsg dGhlbgotKyAgUEFUSF9TRVBBUkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQ QVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgewotKyAgICAoUEFUSD0nL2JpbjovYmlu JzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotKyAgICAgIFBBVEhf U0VQQVJBVE9SPSc7JwotKyAgfQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5lZWQgc3BhY2Us IHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGluZyBpcwot KyMgdGhlcmUgdG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2Ut dGFiLgotKyMgKElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0 IHdvdWxkIGRpc2FibGUgd29yZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5 IHZhbHVlLikKLStJRlM9IiAiIgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBhcmUuICBMb29r IGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KLSthc19t eXNlbGY9Ci0rY2FzZSAkMCBpbiAjKCgKLSsgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKLSsg ICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGlu ICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCi0rICAgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGly LyQwICYmIGJyZWFrCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgICAgOzsKLStl c2FjCi0rIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUg cnVuIGFzIGBzaCBDT01NQU5EJwotKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZv dW5kIGluIHRoZSBwYXRoLgotK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KLSsgIGFz X215c2VsZj0kMAotK2ZpCi0raWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgotKyAgJGFz X2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGgg YW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKLSsgIGV4aXQgMQotK2ZpCi0rCi0rIyBVbnNldCB2 YXJpYWJsZXMgdGhhdCB3ZSBkbyBub3QgbmVlZCBhbmQgd2hpY2ggY2F1c2UgYnVncyAoZS5nLiBp bgotKyMgcHJlLTMuMCBVV0lOIGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3MgaW4gYmFzaCAy LjAxOyB0aGUgInx8IGV4aXQgMSIKLSsjIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRpb24gZmF1 bHQiIG1lc3NhZ2UgdGhlcmUuICAnKCgnIGNvdWxkCi0rIyB0cmlnZ2VyIGEgYnVnIGluIHBka3No IDUuMi4xNC4KLStmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICi0rZG8g ZXZhbCB0ZXN0IHhcJHskYXNfdmFyK3NldH0gPSB4c2V0IFwKLSsgICYmICggKHVuc2V0ICRhc192 YXIpIHx8IGV4aXQgMSkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0ICRhc192YXIgfHwgOgotK2Rv bmUKLStQUzE9JyQgJwotK1BTMj0nPiAnCi0rUFM0PScrICcKLSsKLSsjIE5MUyBudWlzYW5jZXMu Ci0rTENfQUxMPUMKLStleHBvcnQgTENfQUxMCi0rTEFOR1VBR0U9QwotK2V4cG9ydCBMQU5HVUFH RQotKwotKyMgQ0RQQVRILgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNl dCBDRFBBVEgKLSsKLSsKLSsjIGFzX2ZuX2Vycm9yIFNUQVRVUyBFUlJPUiBbTElORU5PIExPR19G RF0KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIE91dHB1 dCAiYGJhc2VuYW1lICQwYDogZXJyb3I6IEVSUk9SIiB0byBzdGRlcnIuIElmIExJTkVOTyBhbmQg TE9HX0ZEIGFyZQotKyMgcHJvdmlkZWQsIGFsc28gb3V0cHV0IHRoZSBlcnJvciB0byBMT0dfRkQs IHJlZmVyZW5jaW5nIExJTkVOTy4gVGhlbiBleGl0IHRoZQotKyMgc2NyaXB0IHdpdGggU1RBVFVT LCB1c2luZyAxIGlmIHRoYXQgd2FzIDAuCi0rYXNfZm5fZXJyb3IgKCkKLSt7Ci0rICBhc19zdGF0 dXM9JDE7IHRlc3QgJGFzX3N0YXR1cyAtZXEgMCAmJiBhc19zdGF0dXM9MQotKyAgaWYgdGVzdCAi JDQiOyB0aGVuCi0rICAgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDMifSBhc19saW5lbm9fc3Rh Y2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKLSsgICAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6ICQyIiA+JiQ0Ci0rICBmaQotKyAgJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6ICQyIiA+JjIKLSsgIGFzX2ZuX2V4aXQgJGFzX3N0YXR1cwotK30g IyBhc19mbl9lcnJvcgotKwotKwotKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0IGZvcmtpbmcu Ci0rYXNfZm5fc2V0X3N0YXR1cyAoKQotK3sKLSsgIHJldHVybiAkMQotK30gIyBhc19mbl9zZXRf c3RhdHVzCi0rCi0rIyBhc19mbl9leGl0IFNUQVRVUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0KLSsj IEV4aXQgdGhlIHNoZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIgb3IgInNldCAt ZSIgY29udGV4dC4KLSthc19mbl9leGl0ICgpCi0rewotKyAgc2V0ICtlCi0rICBhc19mbl9zZXRf c3RhdHVzICQxCi0rICBleGl0ICQxCi0rfSAjIGFzX2ZuX2V4aXQKLSsKLSsjIGFzX2ZuX3Vuc2V0 IFZBUgotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBQb3J0YWJseSB1bnNldCBWQVIuCi0rYXNfZm5f dW5zZXQgKCkKLSt7Ci0rICB7IGV2YWwgJDE9OyB1bnNldCAkMTt9Ci0rfQotK2FzX3Vuc2V0PWFz X2ZuX3Vuc2V0Ci0rIyBhc19mbl9hcHBlbmQgVkFSIFZBTFVFCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBBcHBlbmQgdGhlIHRleHQgaW4gVkFMVUUgdG8gdGhlIGVuZCBvZiB0aGUgZGVm aW5pdGlvbiBjb250YWluZWQgaW4gVkFSLiBUYWtlCi0rIyBhZHZhbnRhZ2Ugb2YgYW55IHNoZWxs IG9wdGltaXphdGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdyb3d0aCBvdmVyCi0r IyByZXBlYXRlZCBhcHBlbmRzLCBpbnN0ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRyYXRpYyBncm93 dGggcHJlc2VudCBpbiBuYWl2ZQotKyMgaW1wbGVtZW50YXRpb25zLgotK2lmIChldmFsICJhc192 YXI9MTsgYXNfdmFyKz0yOyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9udWxsOyB0aGVu IDoKLSsgIGV2YWwgJ2FzX2ZuX2FwcGVuZCAoKQotKyAgewotKyAgICBldmFsICQxKz1cJDIKLSsg IH0nCi0rZWxzZQotKyAgYXNfZm5fYXBwZW5kICgpCi0rICB7Ci0rICAgIGV2YWwgJDE9XCQkMVwk MgotKyAgfQotK2ZpICMgYXNfZm5fYXBwZW5kCi0rCi0rIyBhc19mbl9hcml0aCBBUkcuLi4KLSsj IC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1YXRpb24gb24g dGhlIEFSR3MsIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZQotKyMgZ2xvYmFsICRhc192YWwu IFRha2UgYWR2YW50YWdlIG9mIHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4gVGhlIGFyZ3Vt ZW50cwotKyMgbXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIuCi0raWYgKGV2 YWwgInRlc3QgXCQoKCAxICsgMSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6Ci0rICBldmFs ICdhc19mbl9hcml0aCAoKQotKyAgewotKyAgICBhc192YWw9JCgoICQqICkpCi0rICB9JwotK2Vs c2UKLSsgIGFzX2ZuX2FyaXRoICgpCi0rICB7Ci0rICAgIGFzX3ZhbD1gZXhwciAiJEAiIHx8IHRl c3QgJD8gLWVxIDFgCi0rICB9Ci0rZmkgIyBhc19mbl9hcml0aAotKwotKwotK2lmIGV4cHIgYSA6 ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4q XCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4 cHI9ZmFsc2UKLStmaQotKwotK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYg dGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSsgIGFzX2Jhc2VuYW1l PWJhc2VuYW1lCi0rZWxzZQotKyAgYXNfYmFzZW5hbWU9ZmFsc2UKLStmaQotKwotK2lmIChhc19k aXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4m MTsgdGhlbgotKyAgYXNfZGlybmFtZT1kaXJuYW1lCi0rZWxzZQotKyAgYXNfZGlybmFtZT1mYWxz ZQotK2ZpCi0rCi0rYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8Ci0rJGFzX2V4cHIgWC8i JDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC8vXCkkJyBc fCBcCi0rCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBY LyIkMCIgfAotKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKLSsJICAgIHMvL1wx LwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcL1woXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJ ICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rCi0rIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFy YWN0ZXIgUmFuZ2VzLgotK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 JwotK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotK2FzX2NyX0xl dHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUwotK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1 Njc4OScKLSthc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLSsKLStFQ0hP X0M9IEVDSE9fTj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4gIygoKCgoCi0rLW4qKQot KyAgY2FzZSBgZWNobyAneHlcYydgIGluCi0rICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBp cyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KLSsgIHh5KSAgRUNIT19DPSdcYyc7OwotKyAgKikgICBl Y2hvIGBlY2hvIGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAotKyAgICAgICBFQ0hP X1Q9JwknOzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotKwotK3Jt IC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGly OyB0aGVuCi0rICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYg Y29uZiQkLmRpcgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVj aG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZp bGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAj IC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGgg YGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQ IDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0 YWJsZS4KLSsgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1w UicuCi0rICAgIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVz dCAhIC1mIGNvbmYkJC5leGUgfHwKLSsgICAgICBhc19sbl9zPSdjcCAtcFInCi0rICBlbGlmIGxu IGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBhc19sbl9zPWxuCi0r ICBlbHNlCi0rICAgIGFzX2xuX3M9J2NwIC1wUicKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0n Y3AgLXBSJwotK2ZpCi0rcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQu ZmlsZSBjb25mJCQuZmlsZQotK3JtZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKLSsKLSsKLSsj IGFzX2ZuX21rZGlyX3AKLSsjIC0tLS0tLS0tLS0tLS0KLSsjIENyZWF0ZSAiJGFzX2RpciIgYXMg YSBkaXJlY3RvcnksIGluY2x1ZGluZyBwYXJlbnRzIGlmIG5lY2Vzc2FyeS4KLSthc19mbl9ta2Rp cl9wICgpCi0rewotKwotKyAgY2FzZSAkYXNfZGlyIGluICMoCi0rICAtKikgYXNfZGlyPS4vJGFz X2Rpcjs7Ci0rICBlc2FjCi0rICB0ZXN0IC1kICIkYXNfZGlyIiB8fCBldmFsICRhc19ta2Rpcl9w IHx8IHsKLSsgICAgYXNfZGlycz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19k aXIgaW4gIygKLSsgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQg InMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7Owot KyAgICAgIGVzYWMKLSsgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAg IGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGly IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdY XCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIk YXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19k aXIiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwot KwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJl YWsKLSsgICAgZG9uZQotKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFz X2RpcnMiCi0rICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IGFzX2ZuX2Vycm9yICQ/ICJjYW5u b3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIgotKwotKwotK30gIyBhc19mbl9ta2Rpcl9wCi0r aWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfbWtkaXJfcD0nbWtkaXIgLXAg IiRhc19kaXIiJwotK2Vsc2UKLSsgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0rICBhc19t a2Rpcl9wPWZhbHNlCi0rZmkKLSsKLSsKLSsjIGFzX2ZuX2V4ZWN1dGFibGVfcCBGSUxFCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVGVzdCBpZiBGSUxFIGlzIGFuIGV4ZWN1dGFibGUg cmVndWxhciBmaWxlLgotK2FzX2ZuX2V4ZWN1dGFibGVfcCAoKQotK3sKLSsgIHRlc3QgLWYgIiQx IiAmJiB0ZXN0IC14ICIkMSIKLSt9ICMgYXNfZm5fZXhlY3V0YWJsZV9wCi0rYXNfdGVzdF94PSd0 ZXN0IC14JwotK2FzX2V4ZWN1dGFibGVfcD1hc19mbl9leGVjdXRhYmxlX3AKLSsKLSsjIFNlZCBl eHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCi0rYXNfdHJf Y3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRh c19jcl9hbG51bV0lXyVnJyIKLSsKLSsjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBv bnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KLSthc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAl O3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKwotK2V4ZWMgNj4mMQotKyMjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTWFpbiBib2R5IG9mICRDT05GSUdf U1RBVFVTIHNjcmlwdC4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAjIwotKyMgU2F2ZSB0aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAgJDAgYW5kIHNvIG9uIG1lYW5p bmdmdWwsIGFuZCB0bwotKyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJ TEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgotKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxp bmcuCi0rYWNfbG9nPSIKLStUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IHlhYmFzaWMgJGFzX21l IDIuODYuMSwgd2hpY2ggd2FzCi0rZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY5LiAgSW52 b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCi0rCi0rICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklH X0ZJTEVTCi0rICBDT05GSUdfSEVBREVSUyAgPSAkQ09ORklHX0hFQURFUlMKLSsgIENPTkZJR19M SU5LUyAgICA9ICRDT05GSUdfTElOS1MKLSsgIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09N TUFORFMKLSsgICQgJDAgJEAKLSsKLStvbiBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYv bnVsbCB8IHNlZCAxcWAKLSsiCi0rCi0rIyBGaWxlcyB0aGF0IGNvbmZpZy5zdGF0dXMgd2FzIG1h ZGUgZm9yLgotK2NvbmZpZ19maWxlcz0iIE1ha2VmaWxlIgotK2NvbmZpZ19oZWFkZXJzPSIgY29u ZmlnLmg6Y29uZmlnLmguaW4iCi0rY29uZmlnX2NvbW1hbmRzPSIgZGVwZmlsZXMgbGlidG9vbCIK LSsKLSthY19jc191c2FnZT0iXAotK1xgJGFzX21lJyBpbnN0YW50aWF0ZXMgZmlsZXMgYW5kIG90 aGVyIGNvbmZpZ3VyYXRpb24gYWN0aW9ucwotK2Zyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0 aGUgY3VycmVudCBjb25maWd1cmF0aW9uLiAgVW5sZXNzIHRoZSBmaWxlcwotK2FuZCBhY3Rpb25z IGFyZSBzcGVjaWZpZWQgYXMgVEFHcywgYWxsIGFyZSBpbnN0YW50aWF0ZWQgYnkgZGVmYXVsdC4K LSsKLStVc2FnZTogJDAgW09QVElPTl0uLi4gW1RBR10uLi4KLSsKLSsgIC1oLCAtLWhlbHAgICAg ICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC1WLCAtLXZlcnNpb24gICAgcHJpbnQg dmVyc2lvbiBudW1iZXIgYW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsIHRoZW4gZXhpdAotKyAg ICAgIC0tY29uZmlnICAgICBwcmludCBjb25maWd1cmF0aW9uLCB0aGVuIGV4aXQKLSsgIC1xLCAt LXF1aWV0LCAtLXNpbGVudAotKyAgICAgICAgICAgICAgICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jl c3MgbWVzc2FnZXMKLSsgIC1kLCAtLWRlYnVnICAgICAgZG9uJ3QgcmVtb3ZlIHRlbXBvcmFyeSBm aWxlcwotKyAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcg aW4gdGhlIHNhbWUgY29uZGl0aW9ucwotKyAgICAgIC0tZmlsZT1GSUxFWzpURU1QTEFURV0KLSsg ICAgICAgICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBGSUxF Ci0rICAgICAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCi0rICAgICAgICAgICAgICAgICAgIGlu c3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCi0rCi0rQ29uZmlndXJhdGlv biBmaWxlczoKLSskY29uZmlnX2ZpbGVzCi0rCi0rQ29uZmlndXJhdGlvbiBoZWFkZXJzOgotKyRj b25maWdfaGVhZGVycwotKwotK0NvbmZpZ3VyYXRpb24gY29tbWFuZHM6Ci0rJGNvbmZpZ19jb21t YW5kcwotKwotK1JlcG9ydCBidWdzIHRvIHRoZSBwYWNrYWdlIHByb3ZpZGVyLiIKLSsKLSthY19j c19jb25maWc9IiIKLSthY19jc192ZXJzaW9uPSJcCi0reWFiYXNpYyBjb25maWcuc3RhdHVzIDIu ODYuMQotK2NvbmZpZ3VyZWQgYnkgLi9jb25maWd1cmUsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2Nv bmYgMi42OSwKLSsgIHdpdGggb3B0aW9ucyBcIiRhY19jc19jb25maWdcIgotKwotK0NvcHlyaWdo dCAoQykgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStUaGlzIGNvbmZpZy5z dGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBt b2RpZnkgaXQuIgotKwotK2FjX3B3ZD0nL2hvbWUvaWhtL3lhYmFzaWMvdW5peC9sYW5nJwotK3Ny Y2Rpcj0nLicKLStJTlNUQUxMPScvdXNyL2Jpbi9pbnN0YWxsIC1jJwotK01LRElSX1A9Jy91c3Iv YmluL21rZGlyIC1wJwotK0FXSz0nZ2F3aycKLSt0ZXN0IC1uICIkQVdLIiB8fCBBV0s9YXdrCi0r IyBUaGUgZGVmYXVsdCBsaXN0cyBhcHBseSBpZiB0aGUgdXNlciBkb2VzIG5vdCBzcGVjaWZ5IGFu eSBmaWxlLgotK2FjX25lZWRfZGVmYXVsdHM9OgotK3doaWxlIHRlc3QgJCMgIT0gMAotK2RvCi0r ICBjYXNlICQxIGluCi0rICAtLSo9PyopCi0rICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdY XChbXj1dKlwpPSdgCi0rICAgIGFjX29wdGFyZz1gZXhwciAiWCQxIiA6ICdYW149XSo9XCguKlwp J2AKLSsgICAgYWNfc2hpZnQ9OgotKyAgICA7OwotKyAgLS0qPSkKLSsgICAgYWNfb3B0aW9uPWBl eHByICJYJDEiIDogJ1hcKFtePV0qXCk9J2AKLSsgICAgYWNfb3B0YXJnPQotKyAgICBhY19zaGlm dD06Ci0rICAgIDs7Ci0rICAqKQotKyAgICBhY19vcHRpb249JDEKLSsgICAgYWNfb3B0YXJnPSQy Ci0rICAgIGFjX3NoaWZ0PXNoaWZ0Ci0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICRhY19v cHRpb24gaW4KLSsgICMgSGFuZGxpbmcgb2YgdGhlIG9wdGlvbnMuCi0rICAtcmVjaGVjayB8IC0t cmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8IC0tcmVjIHwgLS1yZSB8IC0t cikKLSsgICAgYWNfY3NfcmVjaGVjaz06IDs7Ci0rICAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0t dmVyc2kgfCAtLXZlcnMgfCAtLXZlciB8IC0tdmUgfCAtLXYgfCAtViApCi0rICAgICRhc19lY2hv ICIkYWNfY3NfdmVyc2lvbiI7IGV4aXQgOzsKLSsgIC0tY29uZmlnIHwgLS1jb25maSB8IC0tY29u ZiB8IC0tY29uIHwgLS1jbyB8IC0tYyApCi0rICAgICRhc19lY2hvICIkYWNfY3NfY29uZmlnIjsg ZXhpdCA7OwotKyAgLS1kZWJ1ZyB8IC0tZGVidSB8IC0tZGViIHwgLS1kZSB8IC0tZCB8IC1kICkK LSsgICAgZGVidWc9OiA7OwotKyAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwgLS1mICkKLSsgICAg JGFjX3NoaWZ0Ci0rICAgIGNhc2UgJGFjX29wdGFyZyBpbgotKyAgICAqXCcqKSBhY19vcHRhcmc9 YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAg ICAnJykgYXNfZm5fZXJyb3IgJD8gIm1pc3NpbmcgZmlsZSBhcmd1bWVudCIgOzsKLSsgICAgZXNh YwotKyAgICBhc19mbl9hcHBlbmQgQ09ORklHX0ZJTEVTICIgJyRhY19vcHRhcmcnIgotKyAgICBh Y19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKLSsgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8 IC0taGVhICkKLSsgICAgJGFjX3NoaWZ0Ci0rICAgIGNhc2UgJGFjX29wdGFyZyBpbgotKyAgICAq XCcqKSBhY19vcHRhcmc9YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxc XCcnL2ciYCA7OwotKyAgICBlc2FjCi0rICAgIGFzX2ZuX2FwcGVuZCBDT05GSUdfSEVBREVSUyAi ICckYWNfb3B0YXJnJyIKLSsgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0rICAtLWhlIHwg LS1oKQotKyAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotKyAgICBh c19mbl9lcnJvciAkPyAiYW1iaWd1b3VzIG9wdGlvbjogXGAkMScKLStUcnkgXGAkMCAtLWhlbHAn IGZvciBtb3JlIGluZm9ybWF0aW9uLiI7OwotKyAgLS1oZWxwIHwgLS1oZWwgfCAtaCApCi0rICAg ICRhc19lY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDs7Ci0rICAtcSB8IC1xdWlldCB8IC0tcXVp ZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotKyAgfCAtc2lsZW50IHwgLS1zaWxl bnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQotKyAgICBhY19jc19z aWxlbnQ9OiA7OwotKwotKyAgIyBUaGlzIGlzIGFuIGVycm9yLgotKyAgLSopIGFzX2ZuX2Vycm9y ICQ/ICJ1bnJlY29nbml6ZWQgb3B0aW9uOiBcYCQxJwotK1RyeSBcYCQwIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24uIiA7OwotKwotKyAgKikgYXNfZm5fYXBwZW5kIGFjX2NvbmZpZ190YXJn ZXRzICIgJDEiCi0rICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlIDs7Ci0rCi0rICBlc2FjCi0r ICBzaGlmdAotK2RvbmUKLSsKLSthY19jb25maWd1cmVfZXh0cmFfYXJncz0KLSsKLStpZiAkYWNf Y3Nfc2lsZW50OyB0aGVuCi0rICBleGVjIDY+L2Rldi9udWxsCi0rICBhY19jb25maWd1cmVfZXh0 cmFfYXJncz0iJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tc2lsZW50IgotK2ZpCi0rCi0raWYg JGFjX2NzX3JlY2hlY2s7IHRoZW4KLSsgIHNldCBYIC9iaW4vc2ggJy4vY29uZmlndXJlJyAgJGFj X2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCi0rICBzaGlm dAotKyAgJGFzX2VjaG8gInJ1bm5pbmcgQ09ORklHX1NIRUxMPS9iaW4vc2ggJCoiID4mNgotKyAg Q09ORklHX1NIRUxMPScvYmluL3NoJwotKyAgZXhwb3J0IENPTkZJR19TSEVMTAotKyAgZXhlYyAi JEAiCi0rZmkKLSsKLStleGVjIDU+PmNvbmZpZy5sb2cKLSt7Ci0rICBlY2hvCi0rICBzZWQgJ2g7 cy8uLy0vZztzL14uLi4vIyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAotKyMjIFJ1 bm5pbmcgJGFzX21lLiAjIwotK19BU0JPWAotKyAgJGFzX2VjaG8gIiRhY19sb2ciCi0rfSA+JjUK LSsKLSsjCi0rIyBJTklULUNPTU1BTkRTCi0rIwotK0FNREVQX1RSVUU9IiIgTUFLRT0ibWFrZSIK LSsKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQg ZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRI KSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0rc2VkX3F1b3RlX3N1YnN0PSdz L1woWyJgJFxcXVwpL1xcXDEvZycKLStkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9c XFwxL2cnCi0rZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycK LSttYWNyb192ZXJzaW9uPScyLjQuNicKLSttYWNyb19yZXZpc2lvbj0nMi40LjYnCi0rZW5hYmxl X3NoYXJlZD0neWVzJwotK2VuYWJsZV9zdGF0aWM9J3llcycKLStwaWNfbW9kZT0nZGVmYXVsdCcK LStlbmFibGVfZmFzdF9pbnN0YWxsPSd5ZXMnCi0rc2hhcmVkX2FyY2hpdmVfbWVtYmVyX3NwZWM9 JycKLStTSEVMTD0nL2Jpbi9zaCcKLStFQ0hPPSdwcmludGYgJXNcbicKLStQQVRIX1NFUEFSQVRP Uj0nOicKLStob3N0X2FsaWFzPScnCi0raG9zdD0neDg2XzY0LXVua25vd24tbGludXgtZ251Jwot K2hvc3Rfb3M9J2xpbnV4LWdudScKLStidWlsZF9hbGlhcz0nJwotK2J1aWxkPSd4ODZfNjQtdW5r bm93bi1saW51eC1nbnUnCi0rYnVpbGRfb3M9J2xpbnV4LWdudScKLStTRUQ9Jy91c3IvYmluL3Nl ZCcKLStYc2VkPScvdXNyL2Jpbi9zZWQgLWUgMXMvXlgvLycKLStHUkVQPScvdXNyL2Jpbi9ncmVw JwotK0VHUkVQPScvdXNyL2Jpbi9ncmVwIC1FJwotK0ZHUkVQPScvdXNyL2Jpbi9ncmVwIC1GJwot K0xEPScvdXNyL2Jpbi9sZCAtbSBlbGZfeDg2XzY0JwotK05NPScvdXNyL2Jpbi9ubSAtQicKLStM Tl9TPSdsbiAtcycKLSttYXhfY21kX2xlbj0nMTU3Mjg2NCcKLSthY19vYmpleHQ9J28nCi0rZXhl ZXh0PScnCi0rbHRfdW5zZXQ9J3Vuc2V0JwotK2x0X1NQMk5MPSd0ciBcMDQwIFwwMTInCi0rbHRf TkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJwotK2x0X2N2X3RvX2hvc3RfZmlsZV9jbWQ9J2Z1 bmNfY29udmVydF9maWxlX25vb3AnCi0rbHRfY3ZfdG9fdG9vbF9maWxlX2NtZD0nZnVuY19jb252 ZXJ0X2ZpbGVfbm9vcCcKLStyZWxvYWRfZmxhZz0nIC1yJwotK3JlbG9hZF9jbWRzPSckTEQkcmVs b2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLStPQkpEVU1QPSdvYmpkdW1wJwotK2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdwYXNzX2FsbCcKLStmaWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NN RCcKLStmaWxlX21hZ2ljX2dsb2I9JycKLSt3YW50X25vY2FzZWdsb2I9J25vJwotK0RMTFRPT0w9 J2ZhbHNlJwotK3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSdwcmludGYgJXNcbicKLStBUj0n YXInCi0rQVJfRkxBR1M9J2NydScKLSthcmNoaXZlcl9saXN0X3NwZWM9J0AnCi0rU1RSSVA9J3N0 cmlwJwotK1JBTkxJQj0ncmFubGliJwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQg JG9sZGxpYn4kUkFOTElCICR0b29sX29sZGxpYicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPScn Ci0rb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianN+JFJBTkxJ QiAkdG9vbF9vbGRsaWInCi0rbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPSdubycKLStDQz0n Z2NjJwotK0NGTEFHUz0nLWcgLU8yJwotK2NvbXBpbGVyPSdnY2MnCi0rR0NDPSd5ZXMnCi0rbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0nc2VkIC1uIC1lICdcJydzL14uKlsJIF1cKFtBQkNE R0lSU1RXXVtBQkNER0lSU1RXXSpcKVsJIF1bCSBdKlwoW19BLVphLXpdW19BLVphLXowLTldKlwp JC9cMSBcMiBcMi9wJ1wnJyB8IHNlZCAnXCcnLyBfX2dudV9sdG8vZCdcJycnCi0rbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9J3NlZCAtbiAtZSAnXCcncy9eVCAuKiBcKC4qXCkkL2V4 dGVybiBpbnQgXDEoKTsvcCdcJycgLWUgJ1wnJ3MvXltBQkNER0lSU1RXXVtBQkNER0lSU1RXXSog LiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCdcJycnCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9faW1wb3J0PScnCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3M9J3NlZCAtbiAtZSAnXCcncy9eOiBcKC4qXCkgLiokLyAgeyJcMSIsICh2b2lkICopIDB9LC9w J1wnJyAtZSAnXCcncy9eW0FCQ0RHSVJTVFddW0FCQ0RHSVJTVFddKiAuKiBcKC4qXCkkLyAgeyJc MSIsICh2b2lkICopIFwmXDF9LC9wJ1wnJycKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdzZWQgLW4gLWUgJ1wnJ3MvXjogXCguKlwpIC4qJC8g IHsiXDEiLCAodm9pZCAqKSAwfSwvcCdcJycgLWUgJ1wnJ3MvXltBQkNER0lSU1RXXVtBQkNER0lS U1RXXSogLiogXChsaWIuKlwpJC8gIHsiXDEiLCAodm9pZCAqKSBcJlwxfSwvcCdcJycgLWUgJ1wn J3MvXltBQkNER0lSU1RXXVtBQkNER0lSU1RXXSogLiogXCguKlwpJC8gIHsibGliXDEiLCAodm9p ZCAqKSBcJlwxfSwvcCdcJycnCi0rbHRfY3Zfbm1faW50ZXJmYWNlPSdCU0Qgbm0nCi0rbm1fZmls ZV9saXN0X3NwZWM9J0AnCi0rbHRfc3lzcm9vdD0nJwotK2x0X2N2X3RydW5jYXRlX2Jpbj0nL3Vz ci9iaW4vZGQgYnM9NDA5NiBjb3VudD0xJwotK29iamRpcj0nLmxpYnMnCi0rTUFHSUNfQ01EPSdm aWxlJwotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPScgLWZuby1idWlsdGluJwot K2x0X3Byb2dfY29tcGlsZXJfcGljPScgLWZQSUMgLURQSUMnCi0rbHRfcHJvZ19jb21waWxlcl93 bD0nLVdsLCcKLStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nJwotK2x0X2N2X3Byb2dfY29tcGls ZXJfY19vPSd5ZXMnCi0rbmVlZF9sb2Nrcz0nbm8nCi0rTUFOSUZFU1RfVE9PTD0nOicKLStEU1lN VVRJTD0nJwotK05NRURJVD0nJwotK0xJUE89JycKLStPVE9PTD0nJwotK09UT09MNjQ9JycKLSts aWJleHQ9J2EnCi0rc2hyZXh0X2NtZHM9Jy5zbycKLStleHRyYWN0X2V4cHN5bXNfY21kcz0nJwot K2FyY2hpdmVfY21kc19uZWVkX2xjPSdubycKLStlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1 bnRpbWVzPSdubycKLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR3bC0tZXhwb3J0LWR5bmFt aWMnCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR3bC0td2hvbGUtYXJjaGl2ZSRjb252ZW5p ZW5jZSAkd2wtLW5vLXdob2xlLWFyY2hpdmUnCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSdubycK LStvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPScnCi0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1z X2NtZHM9JycKLSthcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHdsLXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r YXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLnZlcn4KLSsgICAgICAgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJz L1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rICAgICAgICAg ICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0r ICAgICAgICAgICAgJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAkd2wtc29uYW1lICR3bCRzb25hbWUgJHdsLXZlcnNpb24tc2NyaXB0ICR3bCRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwotK21vZHVsZV9jbWRzPScnCi0rbW9k dWxlX2V4cHN5bV9jbWRzPScnCi0rd2l0aF9nbnVfbGQ9J3llcycKLSthbGxvd191bmRlZmluZWRf ZmxhZz0nJwotK25vX3VuZGVmaW5lZF9mbGFnPScnCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHdsLXJwYXRoICR3bCRsaWJkaXInCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nJwot K2hhcmRjb2RlX2RpcmVjdD0nbm8nCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSdubycKLSto YXJkY29kZV9taW51c19MPSdubycKLStoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSd1bnN1cHBvcnRl ZCcKLStoYXJkY29kZV9hdXRvbWF0aWM9J25vJwotK2luaGVyaXRfcnBhdGg9J25vJwotK2xpbmtf YWxsX2RlcGxpYnM9J3Vua25vd24nCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSdubycKLStleHBv cnRfc3ltYm9sc19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1i b2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5 bWJvbHMnCi0rZXhjbHVkZV9leHBzeW1zPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9f RltJRF1fLionCi0raW5jbHVkZV9leHBzeW1zPScnCi0rcHJlbGlua19jbWRzPScnCi0rcG9zdGxp bmtfY21kcz0nJwotK2ZpbGVfbGlzdF9zcGVjPScnCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxp bms9J1BBVEggTERfTElCUkFSWV9QQVRIIExEX1JVTl9QQVRIIEdDQ19FWEVDX1BSRUZJWCBDT01Q SUxFUl9QQVRIIExJQlJBUllfUEFUSCcKLStuZWVkX2xpYl9wcmVmaXg9J25vJwotK25lZWRfdmVy c2lvbj0nbm8nCi0rdmVyc2lvbl90eXBlPSdsaW51eCcKLStydW5wYXRoX3Zhcj0nTERfUlVOX1BB VEgnCi0rc2hsaWJwYXRoX3Zhcj0nTERfTElCUkFSWV9QQVRIJwotK3NobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD0nbm8nCi0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStsaWJyYXJ5X25hbWVz X3NwZWM9JyRsaWJuYW1lJHJlbGVhc2Ukc2hhcmVkX2V4dCR2ZXJzdWZmaXggJGxpYm5hbWUkcmVs ZWFzZSRzaGFyZWRfZXh0JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQnCi0rc29uYW1lX3NwZWM9 JyRsaWJuYW1lJHJlbGVhc2Ukc2hhcmVkX2V4dCRtYWpvcicKLStpbnN0YWxsX292ZXJyaWRlX21v ZGU9JycKLStwb3N0aW5zdGFsbF9jbWRzPScnCi0rcG9zdHVuaW5zdGFsbF9jbWRzPScnCi0rZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKLStmaW5p c2hfZXZhbD0nJwotK2hhcmRjb2RlX2ludG9fbGlicz0neWVzJwotK3N5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0nL3Vzci9saWdjYy94ODZfNjQtcmVkaGF0LWxpbnV4LzggL3Vzci9saWI2NCAvbGli NjQgL3Vzci9saWIgL2xpYiAnCi0rY29uZmlndXJlX3RpbWVfZGxzZWFyY2hfcGF0aD0nL2xpYjY0 IC91c3IvbGliNjQgL2xpYiAvdXNyL2xpYiAvdXNyL2xpYjY0Ly9iaW5kOS1leHBvcnQvIC91c3Iv bGliNjQvaXNjc2kgJwotK2NvbmZpZ3VyZV90aW1lX2x0X3N5c19saWJyYXJ5X3BhdGg9JycKLSto YXJkY29kZV9hY3Rpb249J2ltbWVkaWF0ZScKLStlbmFibGVfZGxvcGVuPSd1bmtub3duJwotK2Vu YWJsZV9kbG9wZW5fc2VsZj0ndW5rbm93bicKLStlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSd1 bmtub3duJwotK29sZF9zdHJpcGxpYj0nc3RyaXAgLS1zdHJpcC1kZWJ1ZycKLStzdHJpcGxpYj0n c3RyaXAgLS1zdHJpcC11bm5lZWRlZCcKLSsKLStMVENDPSdnY2MnCi0rTFRDRkxBR1M9Jy1nIC1P MicKLStjb21waWxlcj0nZ2NjJwotKwotKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0 aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KLStmdW5jX2ZhbGxiYWNrX2VjaG8g KCkKLSt7Ci0rICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgotKyQxCi0rX0xURUNIT19FT0YnCi0r fQotKwotKyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZhciBpbiBTSEVMTCBFQ0hPIFBB VEhfU0VQQVJBVE9SIFNFRCBHUkVQIEVHUkVQIEZHUkVQIExEIE5NIExOX1MgbHRfU1AyTkwgbHRf TkwyU1AgcmVsb2FkX2ZsYWcgT0JKRFVNUCBkZXBsaWJzX2NoZWNrX21ldGhvZCBmaWxlX21hZ2lj X2NtZCBmaWxlX21hZ2ljX2dsb2Igd2FudF9ub2Nhc2VnbG9iIERMTFRPT0wgc2hhcmVkbGliX2Zy b21fbGlua2xpYl9jbWQgQVIgQVJfRkxBR1MgYXJjaGl2ZXJfbGlzdF9zcGVjIFNUUklQIFJBTkxJ QiBDQyBDRkxBR1MgY29tcGlsZXIgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19pbXBv cnQgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MgbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBsdF9jdl9ubV9pbnRlcmZh Y2Ugbm1fZmlsZV9saXN0X3NwZWMgbHRfY3ZfdHJ1bmNhdGVfYmluIGx0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnIGx0X3Byb2dfY29tcGlsZXJfcGljIGx0X3Byb2dfY29tcGlsZXJfd2wg bHRfcHJvZ19jb21waWxlcl9zdGF0aWMgbHRfY3ZfcHJvZ19jb21waWxlcl9jX28gbmVlZF9sb2Nr cyBNQU5JRkVTVF9UT09MIERTWU1VVElMIE5NRURJVCBMSVBPIE9UT09MIE9UT09MNjQgc2hyZXh0 X2NtZHMgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIGNv bXBpbGVyX25lZWRzX29iamVjdCB3aXRoX2dudV9sZCBhbGxvd191bmRlZmluZWRfZmxhZyBub191 bmRlZmluZWRfZmxhZyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IgZXhjbHVkZV9leHBzeW1zIGluY2x1ZGVfZXhwc3ltcyBmaWxlX2xpc3Rfc3BlYyB2 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVj IHNvbmFtZV9zcGVjIGluc3RhbGxfb3ZlcnJpZGVfbW9kZSBmaW5pc2hfZXZhbCBvbGRfc3RyaXBs aWIgc3RyaXBsaWI7IGRvCi0rICAgIGNhc2UgYGV2YWwgXFwkRUNITyBcXCIiXFwkJHZhciJcXCJg IGluCi0rICAgICpbXFxcYFwiXCRdKikKLSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkRUNI TyBcIlwkJHZhclwiIHwgXCRTRUQgXCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIiAjIyBleGNs dWRlIGZyb20gc2NfcHJvaGliaXRfbmVzdGVkX3F1b3RlcwotKyAgICAgIDs7Ci0rICAgICopCi0r ICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXCQkdmFyXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rZG9uZQotKwotKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KLStmb3Ig dmFyIGluIHJlbG9hZF9jbWRzIG9sZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxs X2NtZHMgb2xkX2FyY2hpdmVfY21kcyBleHRyYWN0X2V4cHN5bXNfY21kcyBvbGRfYXJjaGl2ZV9m cm9tX25ld19jbWRzIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIGFyY2hpdmVfY21kcyBh cmNoaXZlX2V4cHN5bV9jbWRzIG1vZHVsZV9jbWRzIG1vZHVsZV9leHBzeW1fY21kcyBleHBvcnRf c3ltYm9sc19jbWRzIHByZWxpbmtfY21kcyBwb3N0bGlua19jbWRzIHBvc3RpbnN0YWxsX2NtZHMg cG9zdHVuaW5zdGFsbF9jbWRzIGZpbmlzaF9jbWRzIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBj b25maWd1cmVfdGltZV9kbHNlYXJjaF9wYXRoIGNvbmZpZ3VyZV90aW1lX2x0X3N5c19saWJyYXJ5 X3BhdGg7IGRvCi0rICAgIGNhc2UgYGV2YWwgXFwkRUNITyBcXCIiXFwkJHZhciJcXCJgIGluCi0r ICAgICpbXFxcYFwiXCRdKikKLSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkRUNITyBcIlwk JHZhclwiIHwgXCRTRUQgLWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwiIC1lIFwiXCRzZWRfcXVv dGVfc3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVfc3Vic3RcIlxgXFxcIiIgIyMgZXhjbHVk ZSBmcm9tIHNjX3Byb2hpYml0X25lc3RlZF9xdW90ZXMKLSsgICAgICA7OwotKyAgICAqKQotKyAg ICAgIGV2YWwgImx0XyR2YXI9XFxcIlwkJHZhclxcXCIiCi0rICAgICAgOzsKLSsgICAgZXNhYwot K2RvbmUKLSsKLSthY19hdXhfZGlyPScuJwotKwotKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9u IHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB0aGF0IGFsbG93IG91cgotKyMgY29tbWFuZHMgdGhy b3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElOSVQuCi0raWYgdGVzdCAtbiAiJHta U0hfVkVSU0lPTitzZXR9IjsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkKLSsK LSsKLSsgICAgUEFDS0FHRT0neWFiYXNpYycKLSsgICAgVkVSU0lPTj0nMi44Ni4xJwotKyAgICBS TT0ncm0gLWYnCi0rICAgIG9maWxlPSdsaWJ0b29sJwotKwotKwotKwotKwotKwotKyMgSGFuZGxp bmcgb2YgYXJndW1lbnRzLgotK2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFy Z2V0cwotK2RvCi0rICBjYXNlICRhY19jb25maWdfdGFyZ2V0IGluCi0rICAgICJkZXBmaWxlcyIp IENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKLSsgICAgImxp YnRvb2wiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgbGlidG9vbCIgOzsKLSsg ICAgImNvbmZpZy5oIikgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBjb25maWcuaDpj b25maWcuaC5pbiIgOzsKLSsgICAgIk1ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIE1ha2VmaWxlIiA7OwotKwotKyAgKikgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgYXJndW1l bnQ6IFxgJGFjX2NvbmZpZ190YXJnZXQnIiAiJExJTkVOTyIgNTs7Ci0rICBlc2FjCi0rZG9uZQot KwotKwotKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5 IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKLSsjIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2Ug aXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSsjIFdlIHVzZSB0aGUgbG9u ZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5 Ci0rIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KLStpZiAkYWNfbmVlZF9kZWZhdWx0czsg dGhlbgotKyAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVT PSRjb25maWdfZmlsZXMKLSsgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMrc2V0fSIgPSBzZXQgfHwg Q09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCi0rICB0ZXN0ICIke0NPTkZJR19DT01NQU5E UytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwotK2ZpCi0r Ci0rIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0 IGluIHRoZSBidWlsZCB0cmVlCi0rIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24g YWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAotKyMgY3JlYXRpbmcgYW5k IG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSsj IEhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0rIyBOb3RlIHRoYXQgdGhl cmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhlIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBj bGVhbmVkOgotKyMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1dCBiZWZvcmUgaXRzIG5hbWUgaGFzIGJl ZW4gYXNzaWduZWQgdG8gYCR0bXAnLgotKyRkZWJ1ZyB8fAotK3sKLSsgIHRtcD0gYWNfdG1wPQot KyAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KLSsgIDogIiR7YWNfdG1wOj0kdG1wfSIKLSsgIHsgdGVz dCAhIC1kICIkYWNfdG1wIiB8fCBybSAtZnIgIiRhY190bXAiOyB9ICYmIGV4aXQgJGV4aXRfc3Rh dHVzCi0rJyAwCi0rICB0cmFwICdhc19mbl9leGl0IDEnIDEgMiAxMyAxNQotK30KLSsjIENyZWF0 ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KLSsKLSt7Ci0rICB0bXA9 YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIuL2NvbmZYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYK LSsgIHRlc3QgLWQgIiR0bXAiCi0rfSAgfHwKLSt7Ci0rICB0bXA9Li9jb25mJCQtJFJBTkRPTQot KyAgKHVtYXNrIDA3NyAmJiBta2RpciAiJHRtcCIpCi0rfSB8fCBhc19mbl9lcnJvciAkPyAiY2Fu bm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgIiRMSU5FTk8iIDUKLSthY190 bXA9JHRtcAotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfRklMRVMgc2VjdGlv bi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJ TEVTLgotKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMg Y29uZmlnLmgnLgotK2lmIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiOyB0aGVuCi0rCi0rCi0rYWNf Y3I9YGVjaG8gWCB8IHRyIFggJ1wwMTUnYAotKyMgT24gY3lnd2luLCBiYXNoIGNhbiBlYXQgXHIg aW5zaWRlIGBgIGlmIHRoZSB1c2VyIHJlcXVlc3RlZCBpZ25jci4KLSsjIEJ1dCB3ZSBrbm93IG9m IG5vIG90aGVyIHNoZWxsIHdoZXJlIGFjX2NyIHdvdWxkIGJlIGVtcHR5IGF0IHRoaXMKLSsjIHBv aW50LCBzbyB3ZSBjYW4gdXNlIGEgYmFzaGlzbSBhcyBhIGZhbGxiYWNrLgotK2lmIHRlc3QgIngk YWNfY3IiID0geDsgdGhlbgotKyAgZXZhbCBhY19jcj1cJFwnXFxyXCcKLStmaQotK2FjX2NzX2F3 a19jcj1gJEFXSyAnQkVHSU4geyBwcmludCAiYVxyYiIgfScgPC9kZXYvbnVsbCAyPi9kZXYvbnVs bGAKLStpZiB0ZXN0ICIkYWNfY3NfYXdrX2NyIiA9ICJhJHthY19jcn1iIjsgdGhlbgotKyAgYWNf Y3NfYXdrX2NyPSdcXHInCi0rZWxzZQotKyAgYWNfY3NfYXdrX2NyPSRhY19jcgotK2ZpCi0rCi0r ZWNobyAnQkVHSU4geycgPiIkYWNfdG1wL3N1YnMxLmF3ayIgJiYKLStjYXQgPj4iJGFjX3RtcC9z dWJzMS5hd2siIDw8XF9BQ0FXSyAmJgotK1NbImFtX19FWEVFWFRfRkFMU0UiXT0iIgotK1NbImFt X19FWEVFWFRfVFJVRSJdPSIjIgotK1NbIkxUTElCT0JKUyJdPSIiCi0rU1siWF9FWFRSQV9MSUJT Il09IiIKLStTWyJYX0xJQlMiXT0iIgotK1NbIlhfUFJFX0xJQlMiXT0iIC1sU00gLWxJQ0UiCi0r U1siWF9DRkxBR1MiXT0iIgotK1NbIlhNS01GIl09IiIKLStTWyJMSUJPQkpTIl09IiIKLStTWyJQ T1dfTElCIl09IiIKLStTWyJBTExPQ0EiXT0iIgotK1NbIkNDT1BUSU9OUyJdPSItV2FsbCIKLStT WyJDUFAiXT0iZ2NjIC1FIgotK1NbIkxUX1NZU19MSUJSQVJZX1BBVEgiXT0iIgotK1NbIk9UT09M NjQiXT0iIgotK1NbIk9UT09MIl09IiIKLStTWyJMSVBPIl09IiIKLStTWyJOTUVESVQiXT0iIgot K1NbIkRTWU1VVElMIl09IiIKLStTWyJNQU5JRkVTVF9UT09MIl09IjoiCi0rU1siUkFOTElCIl09 InJhbmxpYiIKLStTWyJhY19jdF9BUiJdPSJhciIKLStTWyJBUiJdPSJhciIKLStTWyJETExUT09M Il09ImZhbHNlIgotK1NbIk9CSkRVTVAiXT0ib2JqZHVtcCIKLStTWyJMTl9TIl09ImxuIC1zIgot K1NbIk5NIl09Ii91c3IvYmluL25tIC1CIgotK1NbImFjX2N0X0RVTVBCSU4iXT0iIgotK1NbIkRV TVBCSU4iXT0iIgotK1NbIkxEIl09Ii91c3IvYmluL2xkIC1tIGVsZl94ODZfNjQiCi0rU1siRkdS RVAiXT0iL3Vzci9iaW4vZ3JlcCAtRiIKLStTWyJFR1JFUCJdPSIvdXNyL2Jpbi9ncmVwIC1FIgot K1NbIkdSRVAiXT0iL3Vzci9iaW4vZ3JlcCIKLStTWyJTRUQiXT0iL3Vzci9iaW4vc2VkIgotK1Nb ImFtX19mYXN0ZGVwQ0NfRkFMU0UiXT0iIyIKLStTWyJhbV9fZmFzdGRlcENDX1RSVUUiXT0iIgot K1NbIkNDREVQTU9ERSJdPSJkZXBtb2RlPWdjYzMiCi0rU1siYW1fX25vZGVwIl09Il9ubyIKLStT WyJBTURFUEJBQ0tTTEFTSCJdPSJcXCIKLStTWyJBTURFUF9GQUxTRSJdPSIjIgotK1NbIkFNREVQ X1RSVUUiXT0iIgotK1NbImFtX19pbmNsdWRlIl09ImluY2x1ZGUiCi0rU1siREVQRElSIl09Ii5k ZXBzIgotK1NbIk9CSkVYVCJdPSJvIgotK1NbIkVYRUVYVCJdPSIiCi0rU1siYWNfY3RfQ0MiXT0i Z2NjIgotK1NbIkNQUEZMQUdTIl09IiIKLStTWyJMREZMQUdTIl09IiIKLStTWyJDRkxBR1MiXT0i LWcgLU8yIgotK1NbIkNDIl09ImdjYyIKLStTWyJob3N0X29zIl09ImxpbnV4LWdudSIKLStTWyJo b3N0X3ZlbmRvciJdPSJ1bmtub3duIgotK1NbImhvc3RfY3B1Il09Ing4Nl82NCIKLStTWyJob3N0 Il09Ing4Nl82NC11bmtub3duLWxpbnV4LWdudSIKLStTWyJidWlsZF9vcyJdPSJsaW51eC1nbnUi Ci0rU1siYnVpbGRfdmVuZG9yIl09InVua25vd24iCi0rU1siYnVpbGRfY3B1Il09Ing4Nl82NCIK LStTWyJidWlsZCJdPSJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUiCi0rU1siTElCVE9PTCJdPSIk KFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCIKLStTWyJBTV9CQUNLU0xBU0giXT0iXFwi Ci0rU1siQU1fREVGQVVMVF9WRVJCT1NJVFkiXT0iMSIKLStTWyJBTV9ERUZBVUxUX1YiXT0iJChB TV9ERUZBVUxUX1ZFUkJPU0lUWSkiCi0rU1siQU1fViJdPSIkKFYpIgotK1NbImFtX191bnRhciJd PSIkJHtUQVItdGFyfSB4ZiAtIgotK1NbImFtX190YXIiXT0iJCR7VEFSLXRhcn0gY2hvZiAtIFwi JCR0YXJkaXJcIiIKLStTWyJBTVRBUiJdPSIkJHtUQVItdGFyfSIKLStTWyJhbV9fbGVhZGluZ19k b3QiXT0iLiIKLStTWyJTRVRfTUFLRSJdPSIiCi0rU1siQVdLIl09Imdhd2siCi0rU1sibWtkaXJf cCJdPSIkKE1LRElSX1ApIgotK1NbIk1LRElSX1AiXT0iL3Vzci9iaW4vbWtkaXIgLXAiCi0rU1si SU5TVEFMTF9TVFJJUF9QUk9HUkFNIl09IiQoaW5zdGFsbF9zaCkgLWMgLXMiCi0rU1siU1RSSVAi XT0ic3RyaXAiCi0rU1siaW5zdGFsbF9zaCJdPSIke1NIRUxMfSAvaG9tZS9paG0veWFiYXNpYy91 bml4L2xhbmcvaW5zdGFsbC1zaCIKLStTWyJNQUtFSU5GTyJdPSJtYWtlaW5mbyIKLStTWyJBVVRP SEVBREVSIl09ImF1dG9oZWFkZXIiCi0rU1siQVVUT01BS0UiXT0iYXV0b21ha2UtMS4xNiIKLStT WyJBVVRPQ09ORiJdPSJhdXRvY29uZiIKLStTWyJBQ0xPQ0FMIl09ImFjbG9jYWwtMS4xNiIKLStT WyJWRVJTSU9OIl09IjIuODYuMSIKLStTWyJQQUNLQUdFIl09InlhYmFzaWMiCi0rU1siQ1lHUEFU SF9XIl09ImVjaG8iCi0rU1siYW1fX2lzcmMiXT0iIgotK1NbIklOU1RBTExfREFUQSJdPSIke0lO U1RBTEx9IC1tIDY0NCIKLStTWyJJTlNUQUxMX1NDUklQVCJdPSIke0lOU1RBTEx9IgotK1NbIklO U1RBTExfUFJPR1JBTSJdPSIke0lOU1RBTEx9IgotK1NbInRhcmdldF9hbGlhcyJdPSIiCi0rU1si aG9zdF9hbGlhcyJdPSIiCi0rU1siYnVpbGRfYWxpYXMiXT0iIgotK1NbIkxJQlMiXT0iLWxjdXJz ZXMgLWxkbCAtbGZmaSAiCi0rU1siRUNIT19UIl09IiIKLStTWyJFQ0hPX04iXT0iLW4iCi0rU1si RUNIT19DIl09IiIKLStTWyJERUZTIl09Ii1ESEFWRV9DT05GSUdfSCIKLStTWyJtYW5kaXIiXT0i JHtkYXRhcm9vdGRpcn0vbWFuIgotK1NbImxvY2FsZWRpciJdPSIke2RhdGFyb290ZGlyfS9sb2Nh bGUiCi0rU1sibGliZGlyIl09IiR7ZXhlY19wcmVmaXh9L2xpYiIKLStTWyJwc2RpciJdPSIke2Rv Y2Rpcn0iCi0rU1sicGRmZGlyIl09IiR7ZG9jZGlyfSIKLStTWyJkdmlkaXIiXT0iJHtkb2NkaXJ9 IgotK1NbImh0bWxkaXIiXT0iJHtkb2NkaXJ9IgotK1NbImluZm9kaXIiXT0iJHtkYXRhcm9vdGRp cn0vaW5mbyIKLStTWyJkb2NkaXIiXT0iJHtkYXRhcm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJO QU1FfSIKLStTWyJvbGRpbmNsdWRlZGlyIl09Ii91c3IvaW5jbHVkZSIKLStTWyJpbmNsdWRlZGly Il09IiR7cHJlZml4fS9pbmNsdWRlIgotK1NbImxvY2Fsc3RhdGVkaXIiXT0iJHtwcmVmaXh9L3Zh ciIKLStTWyJzaGFyZWRzdGF0ZWRpciJdPSIke3ByZWZpeH0vY29tIgotK1NbInN5c2NvbmZkaXIi XT0iJHtwcmVmaXh9L2V0YyIKLStTWyJkYXRhZGlyIl09IiR7ZGF0YXJvb3RkaXJ9IgotK1NbImRh dGFyb290ZGlyIl09IiR7cHJlZml4fS9zaGFyZSIKLStTWyJsaWJleGVjZGlyIl09IiR7ZXhlY19w cmVmaXh9L2xpYmV4ZWMiCi0rU1sic2JpbmRpciJdPSIke2V4ZWNfcHJlZml4fS9zYmluIgotK1Nb ImJpbmRpciJdPSIke2V4ZWNfcHJlZml4fS9iaW4iCi0rU1sicHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSJdPSJzLHgseCwiCi0rU1sicHJlZml4Il09Ii91c3IvbG9jYWwiCi0rU1siZXhlY19wcmVmaXgi XT0iJHtwcmVmaXh9IgotK1NbIlBBQ0tBR0VfVVJMIl09IiIKLStTWyJQQUNLQUdFX0JVR1JFUE9S VCJdPSIiCi0rU1siUEFDS0FHRV9TVFJJTkciXT0ieWFiYXNpYyAyLjg2LjEiCi0rU1siUEFDS0FH RV9WRVJTSU9OIl09IjIuODYuMSIKLStTWyJQQUNLQUdFX1RBUk5BTUUiXT0ieWFiYXNpYyIKLStT WyJQQUNLQUdFX05BTUUiXT0ieWFiYXNpYyIKLStTWyJQQVRIX1NFUEFSQVRPUiJdPSI6IgotK1Nb IlNIRUxMIl09Ii9iaW4vc2giCi0rU1siYW1fX3F1b3RlIl09IiIKLStfQUNBV0sKLStjYXQgPj4i JGFjX3RtcC9zdWJzMS5hd2siIDw8X0FDQVdLICYmCi0rICBmb3IgKGtleSBpbiBTKSBTX2lzX3Nl dFtrZXldID0gMQotKyAgRlMgPSAiByIKLSsKLSt9Ci0rewotKyAgbGluZSA9ICQgMAotKyAgbmZp ZWxkcyA9IHNwbGl0KGxpbmUsIGZpZWxkLCAiQCIpCi0rICBzdWJzdGVkID0gMAotKyAgbGVuID0g bGVuZ3RoKGZpZWxkWzFdKQotKyAgZm9yIChpID0gMjsgaSA8IG5maWVsZHM7IGkrKykgewotKyAg ICBrZXkgPSBmaWVsZFtpXQotKyAgICBrZXlsZW4gPSBsZW5ndGgoa2V5KQotKyAgICBpZiAoU19p c19zZXRba2V5XSkgewotKyAgICAgIHZhbHVlID0gU1trZXldCi0rICAgICAgbGluZSA9IHN1YnN0 cihsaW5lLCAxLCBsZW4pICIiIHZhbHVlICIiIHN1YnN0cihsaW5lLCBsZW4gKyBrZXlsZW4gKyAz KQotKyAgICAgIGxlbiArPSBsZW5ndGgodmFsdWUpICsgbGVuZ3RoKGZpZWxkWysraV0pCi0rICAg ICAgc3Vic3RlZCA9IDEKLSsgICAgfSBlbHNlCi0rICAgICAgbGVuICs9IDEgKyBrZXlsZW4KLSsg IH0KLSsKLSsgIHByaW50IGxpbmUKLSt9Ci0rCi0rX0FDQVdLCi0raWYgc2VkICJzLyRhY19jci8v IiA8IC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBzZWQgInMvJGFjX2NyXCQv Lzsgcy8kYWNfY3IvJGFjX2NzX2F3a19jci9nIgotK2Vsc2UKLSsgIGNhdAotK2ZpIDwgIiRhY190 bXAvc3ViczEuYXdrIiA+ICIkYWNfdG1wL3N1YnMuYXdrIiBcCi0rICB8fCBhc19mbl9lcnJvciAk PyAiY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiICIkTElORU5PIiA1Ci0r ZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZv ciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgotKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlm IHRoZXJlIGFyZSBubyBDT05GSUdfSEVBREVSUy4KLSsjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFu Y2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIE1ha2VmaWxlJy4KLStpZiB0ZXN0IC1uICIkQ09ORklH X0hFQURFUlMiOyB0aGVuCi0rY2F0ID4iJGFjX3RtcC9kZWZpbmVzLmF3ayIgPDxcX0FDQVdLIHx8 Ci0rQkVHSU4gewotK0RbIlBBQ0tBR0VfTkFNRSJdPSIgXCJ5YWJhc2ljXCIiCi0rRFsiUEFDS0FH RV9UQVJOQU1FIl09IiBcInlhYmFzaWNcIiIKLStEWyJQQUNLQUdFX1ZFUlNJT04iXT0iIFwiMi44 Ni4xXCIiCi0rRFsiUEFDS0FHRV9TVFJJTkciXT0iIFwieWFiYXNpYyAyLjg2LjFcIiIKLStEWyJQ QUNLQUdFX0JVR1JFUE9SVCJdPSIgXCJcIiIKLStEWyJQQUNLQUdFX1VSTCJdPSIgXCJcIiIKLStE WyJQQUNLQUdFIl09IiBcInlhYmFzaWNcIiIKLStEWyJWRVJTSU9OIl09IiBcIjIuODYuMVwiIgot K0RbIlNURENfSEVBREVSUyJdPSIgMSIKLStEWyJIQVZFX1NZU19UWVBFU19IIl09IiAxIgotK0Rb IkhBVkVfU1lTX1NUQVRfSCJdPSIgMSIKLStEWyJIQVZFX1NURExJQl9IIl09IiAxIgotK0RbIkhB VkVfU1RSSU5HX0giXT0iIDEiCi0rRFsiSEFWRV9NRU1PUllfSCJdPSIgMSIKLStEWyJIQVZFX1NU UklOR1NfSCJdPSIgMSIKLStEWyJIQVZFX0lOVFRZUEVTX0giXT0iIDEiCi0rRFsiSEFWRV9TVERJ TlRfSCJdPSIgMSIKLStEWyJIQVZFX1VOSVNURF9IIl09IiAxIgotK0RbIkhBVkVfRExGQ05fSCJd PSIgMSIKLStEWyJMVF9PQkpESVIiXT0iIFwiLmxpYnMvXCIiCi0rRFsiSEFWRV9NQUxMT0NfSCJd PSIgMSIKLStEWyJIQVZFX0FMTE9DQV9IIl09IiAxIgotK0RbIkhBVkVfQUxMT0NBIl09IiAxIgot K0RbIkhBVkVfU1RSRVJST1IiXT0iIDEiCi0rRFsiSEFWRV9NS1NURU1QIl09IiAxIgotK0RbIkhB VkVfRkZJX0giXT0iIDEiCi0rRFsiSEFWRV9ETEZDTl9IIl09IiAxIgotK0RbIlVTRV9ETF9GRkki XT0iIDEiCi0rRFsiSEFWRV9DVVJTRVNfSCJdPSIgMSIKLStEWyJIQVZFX05DVVJTRVNfSCJdPSIg MSIKLStEWyJIQVZFX0dFVE5TVFIiXT0iIDEiCi0rRFsiVU5JWF9BUkNISVRFQ1RVUkUiXT0iIFwi eDg2XzY0LXVua25vd24tbGludXgtZ251XCIiCi0rRFsiQlVJTERfVElNRSJdPSIgXCJXZWQgRGVj IDExIDIxOjE5OjI1IFVUQyAyMDE5XCIiCi0rICBmb3IgKGtleSBpbiBEKSBEX2lzX3NldFtrZXld ID0gMQotKyAgRlMgPSAiByIKLSt9Ci0rL15bXHQgXSojW1x0IF0qKGRlZmluZXx1bmRlZilbXHQg XStbX2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpd W19hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEy MzQ1Njc4OV0qKFtcdCAoXXwkKS8gewotKyAgbGluZSA9ICQgMAotKyAgc3BsaXQobGluZSwgYXJn LCAiICIpCi0rICBpZiAoYXJnWzFdID09ICIjIikgewotKyAgICBkZWZ1bmRlZiA9IGFyZ1syXQot KyAgICBtYWMxID0gYXJnWzNdCi0rICB9IGVsc2UgewotKyAgICBkZWZ1bmRlZiA9IHN1YnN0cihh cmdbMV0sIDIpCi0rICAgIG1hYzEgPSBhcmdbMl0KLSsgIH0KLSsgIHNwbGl0KG1hYzEsIG1hYzIs ICIoIikgIykKLSsgIG1hY3JvID0gbWFjMlsxXQotKyAgcHJlZml4ID0gc3Vic3RyKGxpbmUsIDEs IGluZGV4KGxpbmUsIGRlZnVuZGVmKSAtIDEpCi0rICBpZiAoRF9pc19zZXRbbWFjcm9dKSB7Ci0r ICAgICMgUHJlc2VydmUgdGhlIHdoaXRlIHNwYWNlIHN1cnJvdW5kaW5nIHRoZSAiIyIuCi0rICAg IHByaW50IHByZWZpeCAiZGVmaW5lIiwgbWFjcm8gUFttYWNyb10gRFttYWNyb10KLSsgICAgbmV4 dAotKyAgfSBlbHNlIHsKLSsgICAgIyBSZXBsYWNlICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAgVGhp cyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLAotKyAgICAjIGluIHRoZSBjYXNlIG9mIF9QT1NJ WF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCi0rICAgICMgb24gc29t ZSBzeXN0ZW1zIHdoZXJlIGNvbmZpZ3VyZSB3aWxsIG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0Lgot KyAgICBpZiAoZGVmdW5kZWYgPT0gInVuZGVmIikgewotKyAgICAgIHByaW50ICIvKiIsIHByZWZp eCBkZWZ1bmRlZiwgbWFjcm8sICIqLyIKLSsgICAgICBuZXh0Ci0rICAgIH0KLSsgIH0KLSt9Ci0r eyBwcmludCB9Ci0rX0FDQVdLCi0rICBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IHNldHVwIGNv bmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgIiRMSU5FTk8iIDUKLStmaSAjIHRlc3QgLW4gIiRDT05G SUdfSEVBREVSUyIKLSsKLSsKLStldmFsIHNldCBYICIgIDpGICRDT05GSUdfRklMRVMgIDpIICRD T05GSUdfSEVBREVSUyAgICA6QyAkQ09ORklHX0NPTU1BTkRTIgotK3NoaWZ0Ci0rZm9yIGFjX3Rh ZwotK2RvCi0rICBjYXNlICRhY190YWcgaW4KLSsgIDpbRkhMQ10pIGFjX21vZGU9JGFjX3RhZzsg Y29udGludWU7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KLSsgIDpbRkhM XSo6Kik7OwotKyAgOkwqIHwgOkMqOiopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHRhZyBcYCRh Y190YWcnIiAiJExJTkVOTyIgNTs7Ci0rICA6W0ZIXS0pIGFjX3RhZz0tOi07OwotKyAgOltGSF0q KSBhY190YWc9JGFjX3RhZzokYWNfdGFnLmluOzsKLSsgIGVzYWMKLSsgIGFjX3NhdmVfSUZTPSRJ RlMKLSsgIElGUz06Ci0rICBzZXQgeCAkYWNfdGFnCi0rICBJRlM9JGFjX3NhdmVfSUZTCi0rICBz aGlmdAotKyAgYWNfZmlsZT0kMQotKyAgc2hpZnQKLSsKLSsgIGNhc2UgJGFjX21vZGUgaW4KLSsg IDpMKSBhY19zb3VyY2U9JDE7OwotKyAgOltGSF0pCi0rICAgIGFjX2ZpbGVfaW5wdXRzPQotKyAg ICBmb3IgYWNfZgotKyAgICBkbwotKyAgICAgIGNhc2UgJGFjX2YgaW4KLSsgICAgICAtKSBhY19m PSIkYWNfdG1wL3N0ZGluIjs7Ci0rICAgICAgKikgIyBMb29rIGZvciB0aGUgZmlsZSBmaXJzdCBp biB0aGUgYnVpbGQgdHJlZSwgdGhlbiBpbiB0aGUgc291cmNlIHRyZWUKLSsJICMgKGlmIHRoZSBw YXRoIGlzIG5vdCBhYnNvbHV0ZSkuICBUaGUgYWJzb2x1dGUgcGF0aCBjYW5ub3QgYmUgRE9TLXN0 eWxlLAotKwkgIyBiZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KLSsJIHRlc3QgLWYg IiRhY19mIiB8fAotKwkgICBjYXNlICRhY19mIGluCi0rCSAgIFtcXC8kXSopIGZhbHNlOzsKLSsJ ICAgKikgdGVzdCAtZiAiJHNyY2Rpci8kYWNfZiIgJiYgYWNfZj0iJHNyY2Rpci8kYWNfZiI7Owot KwkgICBlc2FjIHx8Ci0rCSAgIGFzX2ZuX2Vycm9yIDEgImNhbm5vdCBmaW5kIGlucHV0IGZpbGU6 IFxgJGFjX2YnIiAiJExJTkVOTyIgNTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGNhc2UgJGFjX2Yg aW4gKlwnKikgYWNfZj1gJGFzX2VjaG8gIiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ci YDs7IGVzYWMKLSsgICAgICBhc19mbl9hcHBlbmQgYWNfZmlsZV9pbnB1dHMgIiAnJGFjX2YnIgot KyAgICBkb25lCi0rCi0rICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJl JyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMgdXNlICRhc19tZSksIHBl b3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAgICAvKiBjb25maWcuaC4g IEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29uZmlndXJlX2lucHV0PSdH ZW5lcmF0ZWQgZnJvbSAnYAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQgJ3N8XlteOl0qL3x8O3N8 OlteOl0qL3wsIHxnJwotKwlgJyBieSBjb25maWd1cmUuJwotKyAgICBpZiB0ZXN0IHgiJGFjX2Zp bGUiICE9IHgtOyB0aGVuCi0rICAgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4gICRjb25m aWd1cmVfaW5wdXQiCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcg JGFjX2ZpbGUiID4mNjt9Ci0rICAgIGZpCi0rICAgICMgTmV1dHJhbGl6ZSBzcGVjaWFsIGNoYXJh Y3RlcnMgaW50ZXJwcmV0ZWQgYnkgc2VkIGluIHJlcGxhY2VtZW50IHN0cmluZ3MuCi0rICAgIGNh c2UgJGNvbmZpZ3VyZV9pbnB1dCBpbiAjKAotKyAgICAqXCYqIHwgKlx8KiB8ICpcXCogKQotKyAg ICAgICBhY19zZWRfY29uZl9pbnB1dD1gJGFzX2VjaG8gIiRjb25maWd1cmVfaW5wdXQiIHwKLSsg ICAgICAgc2VkICdzL1tcXFxcJnxdL1xcXFwmL2cnYDs7ICMoCi0rICAgICopIGFjX3NlZF9jb25m X2lucHV0PSRjb25maWd1cmVfaW5wdXQ7OwotKyAgICBlc2FjCi0rCi0rICAgIGNhc2UgJGFjX3Rh ZyBpbgotKyAgICAqOi06KiB8ICo6LSkgY2F0ID4iJGFjX3RtcC9zdGRpbiIgXAotKyAgICAgIHx8 IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNSA7 OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBhY19kaXI9YCRhc19kaXJuYW1l IC0tICIkYWNfZmlsZSIgfHwKLSskYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8v KlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwK LSsJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhY19maWxlIiA6ICdYXCgv XCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhY19maWxlIiB8Ci0rICAgIHNl ZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAg IHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9 Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMv LiovLi87IHEnYAotKyAgYXNfZGlyPSIkYWNfZGlyIjsgYXNfZm5fbWtkaXJfcAotKyAgYWNfYnVp bGRkaXI9LgotKwotK2Nhc2UgIiRhY19kaXIiIGluCi0rLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9w X2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rKikKLSsgIGFjX2Rpcl9z dWZmaXg9L2AkYXNfZWNobyAiJGFjX2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCi0rICAjIEEg Ii4uIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0rICBhY190b3BfYnVp bGRkaXJfc3ViPWAkYXNfZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8u LnxnO3N8L3x8J2AKLSsgIGNhc2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KLSsgICIiKSBhY190 b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKLSsgICopICBhY190b3Bf YnVpbGRfcHJlZml4PSRhY190b3BfYnVpbGRkaXJfc3UgOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0r YWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNf ZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6Ci0rYWNfdG9wX2J1aWxk ZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGlyIGluCi0rICAuKSAgIyBX ZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0uCi0rICAgIGFjX3RvcF9z cmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3 ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgotKyAgICBhY19z cmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIK LSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikgIyBSZWxhdGl2ZSBuYW1l LgotKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZm aXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKLSsgICAg YWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNhYwotK2FjX2Fic19zcmNk aXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsKLSsgIGNhc2UgJGFjX21v ZGUgaW4KLSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdfRklMRQotKyAgIwotKwotKyAgY2FzZSAk SU5TVEFMTCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7 OwotKyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7Ci0rICBl c2FjCi0rICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBjYXNlICRNS0RJUl9QIGluCi0rICBbXFwv JF0qIHwgPzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVpbGRfcHJl Zml4JE1LRElSX1AgOzsKLSsgIGVzYWMKLSsjIElmIHRoZSB0ZW1wbGF0ZSBkb2VzIG5vdCBrbm93 IGFib3V0IGRhdGFyb290ZGlyLCBleHBhbmQgaXQuCi0rIyBGSVhNRTogVGhpcyBoYWNrIHNob3Vs ZCBiZSByZW1vdmVkIGEgZmV3IHllYXJzIGFmdGVyIDIuNjAuCi0rYWNfZGF0YXJvb3RkaXJfaGFj az07IGFjX2RhdGFyb290ZGlyX3NlZW49Ci0rYWNfc2VkX2RhdGFyb290PScKLSsvZGF0YXJvb3Rk aXIvIHsKLSsgIHAKLSsgIHEKLSt9Ci0rL0BkYXRhZGlyQC9wCi0rL0Bkb2NkaXJAL3AKLSsvQGlu Zm9kaXJAL3AKLSsvQGxvY2FsZWRpckAvcAotKy9AbWFuZGlyQC9wJwotK2Nhc2UgYGV2YWwgInNl ZCAtbiBcIlwkYWNfc2VkX2RhdGFyb290XCIgJGFjX2ZpbGVfaW5wdXRzImAgaW4KLSsqZGF0YXJv b3RkaXIqKSBhY19kYXRhcm9vdGRpcl9zZWVuPXllczs7Ci0rKkBkYXRhZGlyQCp8KkBkb2NkaXJA KnwqQGluZm9kaXJAKnwqQGxvY2FsZWRpckAqfCpAbWFuZGlyQCopCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVt cyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGlnbm9yZSB0aGUgLS1kYXRh cm9vdGRpciBzZXR0aW5nIiA+JjI7fQotKyAgYWNfZGF0YXJvb3RkaXJfaGFjaz0nCi0rICBzJkBk YXRhZGlyQCYke2RhdGFyb290ZGlyfSZnCi0rICBzJkBkb2NkaXJAJiR7ZGF0YXJvb3RkaXJ9L2Rv Yy8ke1BBQ0tBR0VfVEFSTkFNRX0mZwotKyAgcyZAaW5mb2RpckAmJHtkYXRhcm9vdGRpcn0vaW5m byZnCi0rICBzJkBsb2NhbGVkaXJAJiR7ZGF0YXJvb3RkaXJ9L2xvY2FsZSZnCi0rICBzJkBtYW5k aXJAJiR7ZGF0YXJvb3RkaXJ9L21hbiZnCi0rICBzJlwke2RhdGFyb290ZGlyfSYke3ByZWZpeH0v c2hhcmUmZycgOzsKLStlc2FjCi0rYWNfc2VkX2V4dHJhPSIvXlsJIF0qVlBBVEhbCSBdKj1bCSBd Ki97Ci0raAotK3MvLy8KLStzL14vOi8KLStzL1sJIF0qJC86LwotK3MvOlwkKHNyY2Rpcik6Lzov ZwotK3MvOlwke3NyY2Rpcn06LzovZwotK3MvOkBzcmNkaXJAOi86L2cKLStzL146Ki8vCi0rcy86 KiQvLwotK3gKLStzL1woPVsJIF0qXCkuKi9cMS8KLStHCi0rcy9cbi8vCi0rcy9eW149XSo9Wwkg XSokLy8KLSt9Ci0rCi0rOnQKLSsvQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiCi0rc3xAY29u ZmlndXJlX2lucHV0QHwkYWNfc2VkX2NvbmZfaW5wdXR8O3QgdAotK3MmQHRvcF9idWlsZGRpckAm JGFjX3RvcF9idWlsZGRpcl9zdWImO3QgdAotK3MmQHRvcF9idWlsZF9wcmVmaXhAJiRhY190b3Bf YnVpbGRfcHJlZml4Jjt0IHQKLStzJkBzcmNkaXJAJiRhY19zcmNkaXImO3QgdAotK3MmQGFic19z cmNkaXJAJiRhY19hYnNfc3JjZGlyJjt0IHQKLStzJkB0b3Bfc3JjZGlyQCYkYWNfdG9wX3NyY2Rp ciY7dCB0Ci0rcyZAYWJzX3RvcF9zcmNkaXJAJiRhY19hYnNfdG9wX3NyY2RpciY7dCB0Ci0rcyZA YnVpbGRkaXJAJiRhY19idWlsZGRpciY7dCB0Ci0rcyZAYWJzX2J1aWxkZGlyQCYkYWNfYWJzX2J1 aWxkZGlyJjt0IHQKLStzJkBhYnNfdG9wX2J1aWxkZGlyQCYkYWNfYWJzX3RvcF9idWlsZGRpciY7 dCB0Ci0rcyZASU5TVEFMTEAmJGFjX0lOU1RBTEwmO3QgdAotK3MmQE1LRElSX1BAJiRhY19NS0RJ Ul9QJjt0IHQKLSskYWNfZGF0YXJvb3RkaXJfaGFjawotKyIKLStldmFsIHNlZCBcIlwkYWNfc2Vk X2V4dHJhXCIgIiRhY19maWxlX2lucHV0cyIgfCAkQVdLIC1mICIkYWNfdG1wL3N1YnMuYXdrIiBc Ci0rICA+JGFjX3RtcC9vdXQgfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUgJGFj X2ZpbGUiICIkTElORU5PIiA1Ci0rCi0rdGVzdCAteiAiJGFjX2RhdGFyb290ZGlyX2hhY2skYWNf ZGF0YXJvb3RkaXJfc2VlbiIgJiYKLSsgIHsgYWNfb3V0PWBzZWQgLW4gJy9cJHtkYXRhcm9vdGRp cn0vcCcgIiRhY190bXAvb3V0ImA7IHRlc3QgLW4gIiRhY19vdXQiOyB9ICYmCi0rICB7IGFjX291 dD1gc2VkIC1uICcvXlsJIF0qZGF0YXJvb3RkaXJbCSBdKjoqPS9wJyBcCi0rICAgICAgIiRhY190 bXAvb3V0ImA7IHRlc3QgLXogIiRhY19vdXQiOyB9ICYmCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICRhY19maWxlIGNvbnRhaW5zIGEgcmVmZXJl bmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFyb290ZGlyJwotK3doaWNoIHNlZW1zIHRvIGJlIHVu ZGVmaW5lZC4gIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgZGVmaW5lZCIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZh cmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxl YXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkIiA+JjI7fQotKwotKyAgcm0gLWYgIiRhY190bXAv c3RkaW4iCi0rICBjYXNlICRhY19maWxlIGluCi0rICAtKSBjYXQgIiRhY190bXAvb3V0IiAmJiBy bSAtZiAiJGFjX3RtcC9vdXQiOzsKLSsgICopIHJtIC1mICIkYWNfZmlsZSIgJiYgbXYgIiRhY190 bXAvb3V0IiAiJGFjX2ZpbGUiOzsKLSsgIGVzYWMgXAotKyAgfHwgYXNfZm5fZXJyb3IgJD8gImNv dWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1Ci0rIDs7Ci0rICA6SCkKLSsgICMK LSsgICMgQ09ORklHX0hFQURFUgotKyAgIwotKyAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsg dGhlbgotKyAgICB7Ci0rICAgICAgJGFzX2VjaG8gIi8qICRjb25maWd1cmVfaW5wdXQgICovIiBc Ci0rICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJGFjX3RtcC9kZWZpbmVzLmF3ayInICIkYWNfZmls ZV9pbnB1dHMiCi0rICAgIH0gPiIkYWNfdG1wL2NvbmZpZy5oIiBcCi0rICAgICAgfHwgYXNfZm5f ZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1Ci0rICAgIGlm IGRpZmYgIiRhY19maWxlIiAiJGFjX3RtcC9jb25maWcuaCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVu Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfZmls ZSBpcyB1bmNoYW5nZWQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6ICRhY19maWxlIGlzIHVuY2hh bmdlZCIgPiY2O30KLSsgICAgZWxzZQotKyAgICAgIHJtIC1mICIkYWNfZmlsZSIKLSsgICAgICBt diAiJGFjX3RtcC9jb25maWcuaCIgIiRhY19maWxlIiBcCi0rCXx8IGFzX2ZuX2Vycm9yICQ/ICJj b3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNQotKyAgICBmaQotKyAgZWxzZQot KyAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFs ICckQVdLIC1mICIkYWNfdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIgXAotKyAg ICAgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlIC0iICIkTElORU5PIiA1Ci0r ICBmaQotKyMgQ29tcHV0ZSAiJGFjX2ZpbGUiJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgot K19hbV9hcmc9IiRhY19maWxlIgotK19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIg aW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGluCi0rICAgICRf YW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAg X2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwot K2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+YCRhc19kaXJuYW1lIC0tICIk X2FtX2FyZyIgfHwKLSskYXNfZXhwciBYIiRfYW1fYXJnIiA6ICdYXCguKlteL11cKS8vKlteL11b Xi9dKi8qJCcgXHwgXAotKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgi JF9hbV9hcmciIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRfYW1fYXJnIiA6ICdYXCgvXCknIFx8 IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRfYW1fYXJnIiB8Ci0rICAgIHNlZCAnL15Y XCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAg fQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAg L15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87 IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAotKyA7OwotKwotKyAgOkMpICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5k cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+ JjY7fQotKyA7OwotKyAgZXNhYwotKwotKwotKyAgY2FzZSAkYWNfZmlsZSRhY19tb2RlIGluCi0r ICAgICJkZXBmaWxlcyI6QykgdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgewotKyAgIyBP bGRlciBBdXRvY29uZiBxdW90ZXMgLS1maWxlIGFyZ3VtZW50cyBmb3IgZXZhbCwgYnV0IG5vdCB3 aGVuIGZpbGVzCi0rICAjIGFyZSBsaXN0ZWQgd2l0aG91dCAtLWZpbGUuICBMZXQncyBwbGF5IHNh ZmUgYW5kIG9ubHkgZW5hYmxlIHRoZSBldmFsCi0rICAjIGlmIHdlIGRldGVjdCB0aGUgcXVvdGlu Zy4KLSsgICMgVE9ETzogc2VlIHdoZXRoZXIgdGhpcyBleHRyYSBoYWNrIGNhbiBiZSByZW1vdmVk IG9uY2Ugd2Ugc3RhcnQKLSsgICMgcmVxdWlyaW5nIEF1dG9jb25mIDIuNzAgb3IgbGF0ZXIuCi0r ICBjYXNlICRDT05GSUdfRklMRVMgaW4gIygKLSsgICpcJyopIDoKLSsgICAgZXZhbCBzZXQgeCAi JENPTkZJR19GSUxFUyIgOzsgIygKLSsgICopIDoKLSsgICAgc2V0IHggJENPTkZJR19GSUxFUyA7 OyAjKAotKyAgKikgOgotKyAgICAgOzsKLStlc2FjCi0rICBzaGlmdAotKyAgIyBVc2VkIHRvIGZs YWcgYW5kIHJlcG9ydCBib290c3RyYXBwaW5nIGZhaWx1cmVzLgotKyAgYW1fcmM9MAotKyAgZm9y IGFtX21mCi0rICBkbwotKyAgICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1l IG9mIHRoZSBmaWxlLgotKyAgICBhbV9tZj1gJGFzX2VjaG8gIiRhbV9tZiIgfCBzZWQgLWUgJ3Mv Oi4qJC8vJ2AKLSsgICAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJh dGVkIE1ha2VmaWxlIHdoaWNoIGluY2x1ZGVzCi0rICAgICMgZGVwZW5kZW5jeS10cmFja2luZyBy ZWxhdGVkIHJ1bGVzIGFuZCBpbmNsdWRlcy4KLSsgICAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmls ZSBkaXJlY3RseSBpcyBub3QgZ3JlYXQ6IEFJWCBncmVwIGhhcyBhIGxpbmUKLSsgICAgIyBsaW1p dCBvZiAyMDQ4LCBidXQgYWxsIHNlZCdzIHdlIGtub3cgaGF2ZSB1bmRlcnN0YW5kIGF0IGxlYXN0 IDQwMDAuCi0rICAgIHNlZCAtbiAncyxeYW0tLWRlcGZpbGVzOi4qLFgscCcgIiRhbV9tZiIgfCBn cmVwIFggPi9kZXYvbnVsbCAyPiYxIFwKLSsgICAgICB8fCBjb250aW51ZQotKyAgICBhbV9kaXJw YXJ0PWAkYXNfZGlybmFtZSAtLSAiJGFtX21mIiB8fAotKyRhc19leHByIFgiJGFtX21mIiA6ICdY XCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYW1fbWYiIDogJ1hcKC8vXClb Xi9dJyBcfCBcCi0rCSBYIiRhbV9tZiIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJGFtX21mIiA6 ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhbV9tZiIgfAotKyAg ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0r CSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkg ICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICBzLy4qLy4vOyBxJ2AKLSsgICAgYW1fZmlsZXBhcnQ9YCRhc19iYXNlbmFtZSAtLSAiJGFtX21m IiB8fAotKyRhc19leHByIFgvIiRhbV9tZiIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAot KwkgWCIkYW1fbWYiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhbV9tZiIgOiAnWFwoL1wpJyBc fCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWC8iJGFtX21mIiB8Ci0rICAgIHNlZCAnL14u KlwvXChbXi9dW14vXSpcKVwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IC9eWFwvXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhc L1woXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBx J2AKLSsgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2QgIiRhbV9kaXJwYXJ0IiBcCi0rICAg ICAgJiYgc2VkIC1lICcvIyBhbS0taW5jbHVkZS1tYXJrZXIvZCcgIiRhbV9maWxlcGFydCIgXAot KyAgICAgICAgfCAkTUFLRSAtZiAtIGFtLS1kZXBmaWxlcyIgPiY1Ci0rICAgKGNkICIkYW1fZGly cGFydCIgXAotKyAgICAgICYmIHNlZCAtZSAnLyMgYW0tLWluY2x1ZGUtbWFya2VyL2QnICIkYW1f ZmlsZXBhcnQiIFwKLSsgICAgICAgIHwgJE1BS0UgLWYgLSBhbS0tZGVwZmlsZXMpID4mNSAyPiY1 Ci0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgIChleGl0ICRhY19zdGF0dXMpOyB9IHx8IGFtX3JjPSQ/Ci0rICBkb25l Ci0rICBpZiB0ZXN0ICRhbV9yYyAtbmUgMDsgdGhlbgotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rYXNfZm5fZXJyb3Ig JD8gIlNvbWV0aGluZyB3ZW50IHdyb25nIGJvb3RzdHJhcHBpbmcgbWFrZWZpbGUgZnJhZ21lbnRz Ci0rICAgIGZvciBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFja2luZy4gIFRyeSByZS1ydW5uaW5n IGNvbmZpZ3VyZSB3aXRoIHRoZQotKyAgICAnLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcn IG9wdGlvbiB0byBhdCBsZWFzdCBiZSBhYmxlIHRvIGJ1aWxkCi0rICAgIHRoZSBwYWNrYWdlIChh bGJlaXQgd2l0aG91dCBzdXBwb3J0IGZvciBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFja2luZyku Ci0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KLSsg IGZpCi0rICB7IGFtX2RpcnBhcnQ9OyB1bnNldCBhbV9kaXJwYXJ0O30KLSsgIHsgYW1fZmlsZXBh cnQ9OyB1bnNldCBhbV9maWxlcGFydDt9Ci0rICB7IGFtX21mPTsgdW5zZXQgYW1fbWY7fQotKyAg eyBhbV9yYz07IHVuc2V0IGFtX3JjO30KLSsgIHJtIC1mIGNvbmZ0ZXN0LWRlcHMubWsKLSt9Ci0r IDs7Ci0rICAgICJsaWJ0b29sIjpDKQotKwotKyAgICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBv biB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgdGhhdCBhbGxvdyBvdXIKLSsgICAgIyBjb21tYW5k cyB0aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICAgIGlmIHRlc3QgLW4g IiR7WlNIX1ZFUlNJT04rc2V0fSI7IHRoZW4KLSsgICAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAot KyAgICBmaQotKwotKyAgICBjZmdmaWxlPSR7b2ZpbGV9VAotKyAgICB0cmFwICIkUk0gXCIkY2Zn ZmlsZVwiOyBleGl0IDEiIDEgMiAxNQotKyAgICAkUk0gIiRjZmdmaWxlIgotKwotKyAgICBjYXQg PDxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjISAkU0hFTEwKLSsjIEdlbmVyYXRlZCBhdXRvbWF0 aWNhbGx5IGJ5ICRhc19tZSAoJFBBQ0tBR0UpICRWRVJTSU9OCi0rIyBMaWJ0b29sIHdhcyBjb25m aWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQg MXFgOgotKyMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxv b2sgYXQgbHRtYWluLnNoLgotKwotKyMgUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxk aW5nIHN1cHBvcnQgc2VydmljZXMuCi0rIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAx OTk2Ci0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIyBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5n IGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwotKyMgd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rIyBH TlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0 byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotKyMgZGlzdHJpYnV0ZSB0 aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0aGF0IGlzIGJ1aWx0Ci0r IyB1c2luZyBHTlUgTGlidG9vbCwgeW91IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRlciB0aGUg IHNhbWUKLSsjIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9m IHRoYXQgcHJvZ3JhbS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK LSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgotKwotKwotKyMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmln dXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgotK2F2YWlsYWJsZV90YWdzPScnCi0r Ci0rIyBDb25maWd1cmVkIGRlZmF1bHRzIGZvciBzeXNfbGliX2Rsc2VhcmNoX3BhdGggbXVuZ2lu Zy4KLSs6IFwke0xUX1NZU19MSUJSQVJZX1BBVEg9IiRjb25maWd1cmVfdGltZV9sdF9zeXNfbGli cmFyeV9wYXRoIn0KLSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIENPTkZJRwotKwotKyMgV2hpY2gg cmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2VkPwotK21hY3JvX3ZlcnNpb249JG1hY3JvX3Zl cnNpb24KLSttYWNyb19yZXZpc2lvbj0kbWFjcm9fcmV2aXNpb24KLSsKLSsjIFdoZXRoZXIgb3Ig bm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9saWJzPSRlbmFi bGVfc2hhcmVkCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVz LgotK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCi0rCi0rIyBXaGF0IHR5cGUgb2Ygb2Jq ZWN0cyB0byBidWlsZC4KLStwaWNfbW9kZT0kcGljX21vZGUKLSsKLSsjIFdoZXRoZXIgb3Igbm90 IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbi4KLStmYXN0X2luc3RhbGw9JGVuYWJs ZV9mYXN0X2luc3RhbGwKLSsKLSsjIFNoYXJlZCBhcmNoaXZlIG1lbWJlciBiYXNlbmFtZSxmb3Ig ZmlsZW5hbWUgYmFzZWQgc2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZyBvbiBBSVguCi0rc2hhcmVk X2FyY2hpdmVfbWVtYmVyX3NwZWM9JHNoYXJlZF9hcmNoaXZlX21lbWJlcl9zcGVjCi0rCi0rIyBT aGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzLgotK1NIRUxMPSRsdF9TSEVM TAotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgcHJvdGVjdHMgYmFja3NsYXNoZXMuCi0rRUNI Tz0kbHRfRUNITwotKwotKyMgVGhlIFBBVEggc2VwYXJhdG9yIGZvciB0aGUgYnVpbGQgc3lzdGVt LgotK1BBVEhfU0VQQVJBVE9SPSRsdF9QQVRIX1NFUEFSQVRPUgotKwotKyMgVGhlIGhvc3Qgc3lz dGVtLgotK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKLStob3N0PSRob3N0Ci0raG9zdF9vcz0kaG9z dF9vcwotKwotKyMgVGhlIGJ1aWxkIHN5c3RlbS4KLStidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMK LStidWlsZD0kYnVpbGQKLStidWlsZF9vcz0kYnVpbGRfb3MKLSsKLSsjIEEgc2VkIHByb2dyYW0g dGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuCi0rU0VEPSRsdF9TRUQKLSsKLSsjIFNlZCB0 aGF0IGhlbHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0aW9u cyBsaWtlIC1uLgotK1hzZWQ9IlwkU0VEIC1lIDFzL15YLy8iCi0rCi0rIyBBIGdyZXAgcHJvZ3Jh bSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcy4KLStHUkVQPSRsdF9HUkVQCi0rCi0rIyBBbiBFUkUg bWF0Y2hlci4KLStFR1JFUD0kbHRfRUdSRVAKLSsKLSsjIEEgbGl0ZXJhbCBzdHJpbmcgbWF0Y2hl ci4KLStGR1JFUD0kbHRfRkdSRVAKLSsKLSsjIEEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUg bGlzdGVyLgotK05NPSRsdF9OTQotKwotKyMgV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBs aW5rcy4KLStMTl9TPSRsdF9MTl9TCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBv ZiBhIGNvbW1hbmQ/Ci0rbWF4X2NtZF9sZW49JG1heF9jbWRfbGVuCi0rCi0rIyBPYmplY3QgZmls ZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSRhY19vYmpleHQKLSsKLSsjIEV4ZWN1 dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KLStleGVleHQ9JGV4ZWV4dAotKwotKyMg d2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KLStsdF91bnNldD0kbHRfdW5z ZXQKLSsKLSsjIHR1cm4gc3BhY2VzIGludG8gbmV3bGluZXMuCi0rU1AyTkw9JGx0X2x0X1NQMk5M Ci0rCi0rIyB0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzLgotK05MMlNQPSRsdF9sdF9OTDJTUAot KwotKyMgY29udmVydCBcJGJ1aWxkIGZpbGUgbmFtZXMgdG8gXCRob3N0IGZvcm1hdC4KLSt0b19o b3N0X2ZpbGVfY21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCi0rCi0rIyBjb252ZXJ0IFwkYnVp bGQgZmlsZXMgdG8gdG9vbGNoYWluIGZvcm1hdC4KLSt0b190b29sX2ZpbGVfY21kPSRsdF9jdl90 b190b29sX2ZpbGVfY21kCi0rCi0rIyBBbiBvYmplY3Qgc3ltYm9sIGR1bXBlci4KLStPQkpEVU1Q PSRsdF9PQkpEVU1QCi0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGli cmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfZGVw bGlic19jaGVja19tZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVj a19tZXRob2QgPSAiZmlsZV9tYWdpYyIuCi0rZmlsZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNf Y21kCi0rCi0rIyBIb3cgdG8gZmluZCBwb3RlbnRpYWwgZmlsZXMgd2hlbiBkZXBsaWJzX2NoZWNr X21ldGhvZCA9ICJmaWxlX21hZ2ljIi4KLStmaWxlX21hZ2ljX2dsb2I9JGx0X2ZpbGVfbWFnaWNf Z2xvYgotKwotKyMgRmluZCBwb3RlbnRpYWwgZmlsZXMgdXNpbmcgbm9jYXNlZ2xvYiB3aGVuIGRl cGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMiLgotK3dhbnRfbm9jYXNlZ2xvYj0kbHRf d2FudF9ub2Nhc2VnbG9iCi0rCi0rIyBETEwgY3JlYXRpb24gcHJvZ3JhbS4KLStETExUT09MPSRs dF9ETExUT09MCi0rCi0rIyBDb21tYW5kIHRvIGFzc29jaWF0ZSBzaGFyZWQgYW5kIGxpbmsgbGli cmFyaWVzLgotK3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSRsdF9zaGFyZWRsaWJfZnJvbV9s aW5rbGliX2NtZAotKwotKyMgVGhlIGFyY2hpdmVyLgotK0FSPSRsdF9BUgotKwotKyMgRmxhZ3Mg dG8gY3JlYXRlIGFuIGFyY2hpdmUuCi0rQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCi0rCi0rIyBIb3cg dG8gZmVlZCBhIGZpbGUgbGlzdGluZyB0byB0aGUgYXJjaGl2ZXIuCi0rYXJjaGl2ZXJfbGlzdF9z cGVjPSRsdF9hcmNoaXZlcl9saXN0X3NwZWMKLSsKLSsjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9n cmFtLgotK1NUUklQPSRsdF9TVFJJUAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFu IG9sZC1zdHlsZSBhcmNoaXZlLgotK1JBTkxJQj0kbHRfUkFOTElCCi0rb2xkX3Bvc3RpbnN0YWxs X2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0k bHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgV2hldGhlciB0byB1c2UgYSBsb2NrIGZv ciBvbGQgYXJjaGl2ZSBleHRyYWN0aW9uLgotK2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj0k bG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uCi0rCi0rIyBBIEMgY29tcGlsZXIuCi0rTFRDQz0k bHRfQ0MKLSsKLSsjIExUQ0MgY29tcGlsZXIgZmxhZ3MuCi0rTFRDRkxBR1M9JGx0X0NGTEFHUwot KwotKyMgVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcg c3ltYm9scyBhbmQgQyBuYW1lcy4KLStnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEg cHJvcGVyIEMgZGVjbGFyYXRpb24uCi0rZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9m IG5tIGludG8gYSBsaXN0IG9mIHN5bWJvbHMgdG8gbWFudWFsbHkgcmVsb2NhdGUuCi0rZ2xvYmFs X3N5bWJvbF90b19pbXBvcnQ9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2ltcG9ydAot KwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWly LgotK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBu bSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIgd2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZC4KLStn bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9JGx0X2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgKLSsKLSsjIFRoZSBuYW1l IGxpc3RlciBpbnRlcmZhY2UuCi0rbm1faW50ZXJmYWNlPSRsdF9sdF9jdl9ubV9pbnRlcmZhY2UK LSsKLSsjIFNwZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcyBmb3IgXCROTS4K LStubV9maWxlX2xpc3Rfc3BlYz0kbHRfbm1fZmlsZV9saXN0X3NwZWMKLSsKLSsjIFRoZSByb290 IHdoZXJlIHRvIHNlYXJjaCBmb3IgZGVwZW5kZW50IGxpYnJhcmllcyxhbmQgd2hlcmUgb3VyIGxp YnJhcmllcyBzaG91bGQgYmUgaW5zdGFsbGVkLgotK2x0X3N5c3Jvb3Q9JGx0X3N5c3Jvb3QKLSsK LSsjIENvbW1hbmQgdG8gdHJ1bmNhdGUgYSBiaW5hcnkgcGlwZS4KLStsdF90cnVuY2F0ZV9iaW49 JGx0X2x0X2N2X3RydW5jYXRlX2JpbgotKwotKyMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0 aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzLgotK29iamRpcj0kb2JqZGlyCi0r Ci0rIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5z IHdpdGggImZpbGUiLgotK01BR0lDX0NNRD0kTUFHSUNfQ01ECi0rCi0rIyBNdXN0IHdlIGxvY2sg ZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KLStuZWVkX2xvY2tzPSRsdF9uZWVkX2xvY2tz Ci0rCi0rIyBNYW5pZmVzdCB0b29sLgotK01BTklGRVNUX1RPT0w9JGx0X01BTklGRVNUX1RPT0wK LSsKLSsjIFRvb2wgdG8gbWFuaXB1bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1ib2wgZmls ZXMgb24gTWFjIE9TIFguCi0rRFNZTVVUSUw9JGx0X0RTWU1VVElMCi0rCi0rIyBUb29sIHRvIGNo YW5nZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWC4KLStOTUVESVQ9JGx0X05N RURJVAotKwotKyMgVG9vbCB0byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBv biBNYWMgT1MgWC4KLStMSVBPPSRsdF9MSVBPCi0rCi0rIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wg Zm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWC4KLStPVE9PTD0kbHRfT1RPT0wKLSsKLSsj IGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMg T1MgWCAxMC40LgotK09UT09MNjQ9JGx0X09UT09MNjQKLSsKLSsjIE9sZCBhcmNoaXZlIHN1ZmZp eCAobm9ybWFsbHkgImEiKS4KLStsaWJleHQ9JGxpYmV4dAotKwotKyMgU2hhcmVkIGxpYnJhcnkg c3VmZml4IChub3JtYWxseSAiLnNvIikuCi0rc2hyZXh0X2NtZHM9JGx0X3NocmV4dF9jbWRzCi0r Ci0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJv bSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4 cHN5bXNfY21kcwotKwotKyMgVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQg aW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCi0rIyByZXN0b3JlZCBhdCBsaW5rIHRpbWUu Ci0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9JGx0X3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVs aW5rCi0rCi0rIyBEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/Ci0rbmVl ZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKLSsKLSsjIERvIHdlIG5lZWQgYSB2ZXJzaW9u IGZvciBsaWJyYXJpZXM/Ci0rbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KLSsKLSsjIExpYnJh cnkgdmVyc2lvbmluZyB0eXBlLgotK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCi0rCi0rIyBT aGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCi0rcnVucGF0aF92YXI9JHJ1bnBh dGhfdmFyCi0rCi0rIyBTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgotK3NobGlicGF0aF92 YXI9JHNobGlicGF0aF92YXIKLSsKLSsjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhl IGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAotKwotKyMgRm9ybWF0IG9mIGxpYnJh cnkgbmFtZSBwcmVmaXguCi0rbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKLSsKLSsjIExp c3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVz dCBhcmUgbGlua3MuCi0rIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2Vy IGZpbmRzIHdpdGggLWxOQU1FCi0rbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5X25hbWVz X3NwZWMKLSsKLSsjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQg ZnJvbSB0aGUgcmVhbCBuYW1lLgotK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYwotKwotKyMg UGVybWlzc2lvbiBtb2RlIG92ZXJyaWRlIGZvciBpbnN0YWxsYXRpb24gb2Ygc2hhcmVkIGxpYnJh cmllcy4KLStpbnN0YWxsX292ZXJyaWRlX21vZGU9JGx0X2luc3RhbGxfb3ZlcnJpZGVfbW9kZQot KwotKyMgQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hp dmUuCi0rcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcwotKwotKyMgQ29tbWFu ZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStwb3N0 dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZHMgdXNl ZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5 LgotK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcwotKwotKyMgQXMgImZpbmlzaF9jbWRzIiwg ZXhjZXB0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0Ci0rIyBub3Qg c2hvd24uCi0rZmluaXNoX2V2YWw9JGx0X2ZpbmlzaF9ldmFsCi0rCi0rIyBXaGV0aGVyIHdlIHNo b3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2lu dG9fbGlicz0kaGFyZGNvZGVfaW50b19saWJzCi0rCi0rIyBDb21waWxlLXRpbWUgc3lzdGVtIHNl YXJjaCBwYXRoIGZvciBsaWJyYXJpZXMuCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9z eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIERldGVjdGVkIHJ1bi10aW1lIHN5c3RlbSBz ZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRs dF9jb25maWd1cmVfdGltZV9kbHNlYXJjaF9wYXRoCi0rCi0rIyBFeHBsaWNpdCBMVF9TWVNfTElC UkFSWV9QQVRIIHNldCBkdXJpbmcgLi9jb25maWd1cmUgdGltZS4KLStjb25maWd1cmVfdGltZV9s dF9zeXNfbGlicmFyeV9wYXRoPSRsdF9jb25maWd1cmVfdGltZV9sdF9zeXNfbGlicmFyeV9wYXRo Ci0rCi0rIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3N1cHBvcnQ9JGVu YWJsZV9kbG9wZW4KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRl ZC4KLStkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCi0rCi0rIyBXaGV0aGVyIGRsb3Bl biBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3Nl bGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCi0rCi0rIyBDb21tYW5kcyB0byBz dHJpcCBsaWJyYXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBsaWIKLStzdHJpcGxp Yj0kbHRfc3RyaXBsaWIKLSsKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJp ZXMuCi0rTEQ9JGx0X0xECi0rCi0rIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZp bGVzLgotK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZwotK3JlbG9hZF9jbWRzPSRsdF9yZWxv YWRfY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2 ZS4KLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzCi0rCi0rIyBBIGxhbmd1 YWdlIHNwZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcgotKwotKyMgSXMgdGhlIGNv bXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQwotKwotKyMgQ29tcGlsZXIg ZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KLStub19idWlsdGluX2ZsYWc9JGx0 X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCi0rCi0rIyBBZGRpdGlvbmFsIGNvbXBp bGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCi0rcGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfcGljCi0rCi0rIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91 Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsCi0rCi0rIyBDb21w aWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9 JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFu ZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9sdF9j dl9wcm9nX2NvbXBpbGVyX2NfbwotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3Ig YnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hp dmVfY21kc19uZWVkX2xjCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQg bGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgotK2FsbG93X2xpYnRvb2xfbGlic193 aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcwot KwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KLStleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYwotKwotKyMgQ29t cGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hp dmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YwotKwotKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVj dHMgZGlyZWN0bHkuCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19v YmplY3QKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFy Y2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kcwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxp bmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3lt c19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcwotKwotKyMgQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgotK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2 ZV9jbWRzCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kcwotKwot KyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQg ZnJvbSBidWlsZGluZwotKyMgYSBzaGFyZWQgYXJjaGl2ZS4KLSttb2R1bGVfY21kcz0kbHRfbW9k dWxlX2NtZHMKLSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kcwotKwot KyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90LgotK3dpdGhfZ251 X2xkPSRsdF93aXRoX2dudV9sZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFy aWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5kZWZpbmVk X2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rCi0rIyBGbGFnIHRoYXQgZW5mb3JjZXMg bm8gdW5kZWZpbmVkIHN5bWJvbHMuCi0rbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5l ZF9mbGFnCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVy aW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90 IGV4aXN0Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYwotKwotKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0 aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KLStoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9o YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElS L2xpYk5BTUVcJHNoYXJlZF9leHQgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVj dAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCRzaGFyZWRfZXh0IGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkg YW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCi0rIyAiYWJzb2x1dGUiLGku ZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nIFwkc2hsaWJwYXRoX3ZhciBpZiB0aGUK LSsjIGxpYnJhcnkgaXMgcmVsb2NhdGVkLgotK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0kaGFy ZGNvZGVfZGlyZWN0X2Fic29sdXRlCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgdGhlIC1M RElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgotKyMgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeS4KLStoYXJkY29kZV9taW51c19MPSRoYXJkY29kZV9taW51c19MCi0rCi0rIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFy ZGNvZGVzIERJUgotKyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9zaGxp YnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyCi0rCi0rIyBTZXQgdG8gInllcyIgaWYg YnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKLSsj IGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0 YWJsZXMgbGlua2VkCi0rIyBhZ2FpbnN0IGl0LgotK2hhcmRjb2RlX2F1dG9tYXRpYz0kaGFyZGNv ZGVfYXV0b21hdGljCi0rCi0rIyBTZXQgdG8geWVzIGlmIGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0 aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwotKyMgdG8gcnVudGltZSBwYXRoIGxpc3QuCi0raW5o ZXJpdF9ycGF0aD0kaW5oZXJpdF9ycGF0aAotKwotKyMgV2hldGhlciBsaWJ0b29sIG11c3QgbGlu ayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgotK2xpbmtf YWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnMKLSsKLSsjIFNldCB0byAieWVzIiBpZiBleHBv cnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KLSthbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5 c19leHBvcnRfc3ltYm9scwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3lt Ym9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzCi0rCi0r IyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1i b2xzLgotK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zCi0rCi0rIyBTeW1ib2xz IHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCi0raW5jbHVkZV9leHBzeW1zPSRsdF9pbmNs dWRlX2V4cHN5bXMKLSsKLSsjIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFt cyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVzLgotK3ByZWxpbmtfY21kcz0kbHRf cHJlbGlua19jbWRzCi0rCi0rIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5r aW5nIHByb2dyYW1zLgotK3Bvc3RsaW5rX2NtZHM9JGx0X3Bvc3RsaW5rX2NtZHMKLSsKLSsjIFNw ZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcy4KLStmaWxlX2xpc3Rfc3BlYz0k bHRfZmlsZV9saXN0X3NwZWMKLSsKLSsjIEhvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5 IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgotK2hhcmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0 aW9uCi0rCi0rIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCi0rCi0rX0xUX0VPRgotKwotKyAgICBj YXQgPDwnX0xUX0VPRicgPj4gIiRjZmdmaWxlIgotKwotKyMgIyMjIEJFR0lOIEZVTkNUSU9OUyBT SEFSRUQgV0lUSCBDT05GSUdVUkUKLSsKLSsjIGZ1bmNfbXVuZ2VfcGF0aF9saXN0IFZBUklBQkxF IFBBVEgKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBWQVJJQUJM RSBpcyBuYW1lIG9mIHZhcmlhYmxlIGNvbnRhaW5pbmcgX3NwYWNlXyBzZXBhcmF0ZWQgbGlzdCBv ZgotKyMgZGlyZWN0b3JpZXMgdG8gYmUgbXVuZ2VkIGJ5IHRoZSBjb250ZW50cyBvZiBQQVRILCB3 aGljaCBpcyBzdHJpbmcKLSsjIGhhdmluZyBhIGZvcm1hdDoKLSsjICJESVJbOkRJUl06IgotKyMg ICAgICAgc3RyaW5nICJESVJbIERJUl0iIHdpbGwgYmUgcHJlcGVuZGVkIHRvIFZBUklBQkxFCi0r IyAiOkRJUls6RElSXSIKLSsjICAgICAgIHN0cmluZyAiRElSWyBESVJdIiB3aWxsIGJlIGFwcGVu ZGVkIHRvIFZBUklBQkxFCi0rIyAiRElSUFs6RElSUF06OltESVJBOl1ESVJBIgotKyMgICAgICAg c3RyaW5nICJESVJQWyBESVJQXSIgd2lsbCBiZSBwcmVwZW5kZWQgdG8gVkFSSUFCTEUgYW5kIHN0 cmluZwotKyMgICAgICAgIkRJUkFbIERJUkFdIiB3aWxsIGJlIGFwcGVuZGVkIHRvIFZBUklBQkxF Ci0rIyAiRElSWzpESVJdIgotKyMgICAgICAgVkFSSUFCTEUgd2lsbCBiZSByZXBsYWNlZCBieSAi RElSWyBESVJdIgotK2Z1bmNfbXVuZ2VfcGF0aF9saXN0ICgpCi0rewotKyAgICBjYXNlIHgkMiBp bgotKyAgICB4KQotKyAgICAgICAgOzsKLSsgICAgKjopCi0rICAgICAgICBldmFsICQxPVwiYCRF Q0hPICQyIHwgJFNFRCAncy86LyAvZydgIFwkJDFcIgotKyAgICAgICAgOzsKLSsgICAgeDoqKQot KyAgICAgICAgZXZhbCAkMT1cIlwkJDEgYCRFQ0hPICQyIHwgJFNFRCAncy86LyAvZydgXCIKLSsg ICAgICAgIDs7Ci0rICAgICo6OiopCi0rICAgICAgICBldmFsICQxPVwiXCQkMVwgYCRFQ0hPICQy IHwgJFNFRCAtZSAncy8uKjo6Ly8nIC1lICdzLzovIC9nJ2BcIgotKyAgICAgICAgZXZhbCAkMT1c ImAkRUNITyAkMiB8ICRTRUQgLWUgJ3MvOjouKi8vJyAtZSAncy86LyAvZydgXCBcJCQxXCIKLSsg ICAgICAgIDs7Ci0rICAgICopCi0rICAgICAgICBldmFsICQxPVwiYCRFQ0hPICQyIHwgJFNFRCAn cy86LyAvZydgXCIKLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSt9Ci0rCi0rCi0rIyBDYWxjdWxh dGUgY2NfYmFzZW5hbWUuICBTa2lwIGtub3duIGNvbXBpbGVyIHdyYXBwZXJzIGFuZCBjcm9zcy1w cmVmaXguCi0rZnVuY19jY19iYXNlbmFtZSAoKQotK3sKLSsgICAgZm9yIGNjX3RlbXAgaW4gJCoi IjsgZG8KLSsgICAgICBjYXNlICRjY190ZW1wIGluCi0rICAgICAgICBjb21waWxlIHwgKltcXC9d Y29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0rICAgICAgICBkaXN0Y2MgfCAq W1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OwotKyAgICAgICAgXC0qKSA7 OwotKyAgICAgICAgKikgYnJlYWs7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKyAgICBmdW5j X2NjX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIiRjY190ZW1wIiB8ICRTRUQgInMlLiovJSU7IHMl XiRob3N0X2FsaWFzLSUlImAKLSt9Ci0rCi0rCi0rIyAjIyMgRU5EIEZVTkNUSU9OUyBTSEFSRUQg V0lUSCBDT05GSUdVUkUKLSsKLStfTFRfRU9GCi0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBh aXgzKikKLSsgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKyMgQUlYIHNvbWV0aW1l cyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQot KyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFi bGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KLStpZiB0ZXN0 IHNldCAhPSAiJHtDT0xMRUNUX05BTUVTK3NldH0iOyB0aGVuCi0rICBDT0xMRUNUX05BTUVTPQot KyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLStmaQotK19MVF9FT0YKLSsgICAgOzsKLSsgIGVzYWMK LSsKLSsKLStsdG1haW49JGFjX2F1eF9kaXIvbHRtYWluLnNoCi0rCi0rCi0rICAjIFdlIHVzZSBz ZWQgaW5zdGVhZCBvZiBjYXQgYmVjYXVzZSBiYXNoIG9uIERKR1BQIGdldHMgY29uZnVzZWQgaWYK LSsgICMgaWYgZmluZHMgbWl4ZWQgQ1IvTEYgYW5kIExGLW9ubHkgbGluZXMuICBTaW5jZSBzZWQg b3BlcmF0ZXMgaW4KLSsgICMgdGV4dCBtb2RlLCBpdCBwcm9wZXJseSBjb252ZXJ0cyBsaW5lcyB0 byBDUi9MRi4gIFRoaXMgYmFzaCBwcm9ibGVtCi0rICAjIGlzIHJlcG9ydGVkbHkgZml4ZWQsIGJ1 dCB3aHkgbm90IHJ1biBvbiBvbGQgdmVyc2lvbnMgdG9vPwotKyAgc2VkICckcScgIiRsdG1haW4i ID4+ICIkY2ZnZmlsZSIgXAotKyAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKLSsK LSsgICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8Ci0rICAgIChybSAtZiAiJG9maWxlIiAm JiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZSIpCi0rICBjaG1vZCAr eCAiJG9maWxlIgotKwotKyA7OwotKwotKyAgZXNhYwotK2RvbmUgIyBmb3IgYWNfdGFnCi0rCi0r Ci0rYXNfZm5fZXhpdCAwCi1kaWZmIC0tZ2l0IHlhYmFzaWMuZmxleCB5YWJhc2ljLmZsZXgKLWlu ZGV4IDFhNTViZGEuLmQzZTRiYjcgMTAwNzU1Ci0tLS0geWFiYXNpYy5mbGV4Ci0rKysgeWFiYXNp Yy5mbGV4Ci1AQCAtMzc4LDIyICszNzgsMTggQEAgRkFMU0Uge3l5bHZhbC5mbnVtPTA7IHJldHVy biB0Rk5VTTt9Ci0gICByZXR1cm4gdFNUUlNZTTsKLSB9Ci0gCi0tXCJbXlwiXSooXCJ8XG4pIHsK LS0gIGludCBjbnQ7Ci0tICBpZiAoeXl0ZXh0W3l5bGVuZy0xXT09J1xuJykgeXljb2x1bW49MTsK LS0gIGlmICh5eXRleHRbeXlsZW5nLTFdPT0nXG4nICYmIGluX3Nob3J0X2lmKSB7aW5fc2hvcnRf aWYtLTt5eWxlc3MoMCk7cmV0dXJuIHRJTVBMSUNJVEVORElGO30KLS0gIGlmICh5eXRleHRbeXls ZW5nLTFdPT0nXG4nKSB7Ci0rXCJbXiJdKihcInxcbikgewotKyAgaWYgKHl5bGVuZzwyIHx8IHl5 dGV4dFt5eWxlbmctMV09PSdcbicpIHsgLyogdW50ZXJtaW5hdGVkIHN0cmluZyBoYXMgcmVhY2hl ZCBlbmQgb2YgbGluZSwgcmVwb3J0IHF1YWxpZmllZCBlcnJvciBpbiBiaXNvbiAqLwotKyAgICAg ICAgeXljb2x1bW49MTsJCSAgICAgIAotICAgCXl5bHZhbC5zdHJpbmc9TlVMTDsKLSAgIAlyZXR1 cm4gdFNUUklORzsKLS0gIH0KLS0gIGZvcihjbnQ9MDt5eXRleHRbeXlsZW5nLWNudC0yXT09J1xc JztjbnQrKykgOwotLSAgaWYgKGNudCUyKSB7Ci0rICB9IGVsc2UgaWYgKHl5dGV4dFt5eWxlbmct Ml09PSdcXCcpIHsgLyogZmluYWwgcXVvdGUgd2FzIGVzY2FwZWQsIHNvIHB1dCBhbGwgdGV4dCBi YWNrIGFuZCByZWFkIG1vcmUgKi8KLSAgIAl5eWxlc3MoeXlsZW5nLTEpOwotIAl5eW1vcmUoKTsK LS0gIH0gZWxzZSB7Ci0rICB9IGVsc2UgeyAvKiBwcm9wZXJseSBxdW90ZWQgc3RyaW5nOyByZW1v dmUgcXVvdGVzIGFuZCByZXR1cm4gaXQgKi8KLSAJeXlsdmFsLnN0cmluZz0oY2hhciAqKW15X3N0 cmR1cCh5eXRleHQrMSk7Ci0tCSooeXlsdmFsLnN0cmluZyt5eWxlbmctMik9J1wwJzsKLS0JcmVw bGFjZSh5eWx2YWwuc3RyaW5nKTsKLSsJKih5eWx2YWwuc3RyaW5nK3N0cmxlbih5eWx2YWwuc3Ry aW5nKS0xKT0nXDAnOwotKwlyZXBsYWNlX2VzY2FwZXMoeXlsdmFsLnN0cmluZyk7Ci0gCXJldHVy biB0U1RSSU5HOwotICAgfQotIH0KLUBAIC00OTEsNyArNDg3LDcgQEAgaW50IGltcG9ydF9saWIo Y2hhciAqbmFtZSkgLyogaW1wb3J0IGxpYnJhcnkgKi8KLSAgIH0gCi0gCi0gICBpZiAoc2V2ZXJp dHlfdGhyZXNob2xkIDw9IHNOT1RFKSB7Ci0tICAgIGlmIChpc2JvdW5kKSB7ICAgICAgCi0rICAg IGlmIChpc19ib3VuZCkgeyAgICAgIAotICAgICAgIHNwcmludGYoc3RyaW5nLCJpbXBvcnRpbmcg bGlicmFyeSAnJXMnIixuYW1lKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBzcHJpbnRmKHN0cmlu ZywiaW1wb3J0aW5nIGZyb20gZmlsZSAnJXMnIixmdWxsKTsKLWRpZmYgLS1naXQgeWFiYXNpYy5o IHlhYmFzaWMuaAotaW5kZXggZDNjNTc5ZS4uNTU5NDdlZCAxMDA3NTUKLS0tLSB5YWJhc2ljLmgK LSsrKyB5YWJhc2ljLmgKLUBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBwb3Bfc3RyZWFtICh2b2lk KTsJCS8qIHBvcCBzdHJlYW0gZnJvbSBzdGFjayBhbmQgc3dpdGNoIHRvIGl0ICovCi0gdm9pZCBt eW1vdmUgKCk7CQkJLyogbW92ZSB0byBzcGVjaWZpYyBwb3NpdGlvbiBvbiBzY3JlZW4gKi8KLSB2 b2lkIGNsZWFyc2NyZWVuICgpOwkJLyogY2xlYXIgZW50aXJlIHNjcmVlbiAqLwotIGNoYXIgKmlu a2V5IChkb3VibGUpOwkJLyogZ2V0cyBjaGFyIGZyb20ga2V5Ym9hcmQsIGJsb2NrcyBhbmQgZG9l c260dCBwcmludCAqLwotLWNoYXIgKnJlcGxhY2UgKGNoYXIgKik7CQkvKiByZXBsYWNlIFxuLFxh LCBldGMuICovCi0rY2hhciAqcmVwbGFjZV9lc2NhcGVzIChjaGFyICopOwkJLyogcmVwbGFjZSBc bixcYSwgZXRjLiAqLwotIAotIC8qIGdyYXBoaWMuYyAqLwotIHZvaWQgY3JlYXRlX29wZW53aW4g KGludCk7CS8qIGNyZWF0ZSBDb21tYW5kICdvcGVud2luJyAqLwotLS0gCi0yLjI0LjEKLQpkaWZm IC0tZ2l0IGEvc3JjcGtncy95YWJhc2ljL3RlbXBsYXRlIGIvc3JjcGtncy95YWJhc2ljL3RlbXBs YXRlCmluZGV4IGQyMWVlNzJmNGRiLi5mMDgxMWNlMTU2MyAxMDA2NDQKLS0tIGEvc3JjcGtncy95 YWJhc2ljL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWFiYXNpYy90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3lhYmFzaWMnCiBwa2duYW1lPXlhYmFzaWMKIHJl dmVydHM9IjIuNzY5XzEiCi12ZXJzaW9uPTIuODYuMQordmVyc2lvbj0yLjg2LjQKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIG1ha2VkZXBlbmRzPSJsaWJYdC1kZXZlbCBu Y3Vyc2VzLWRldmVsIGxpYmZmaS1kZXZlbCIKQEAgLTEwLDcgKzEwLDcgQEAgbWFpbnRhaW5lcj0i RGlvZ28gTGVhbCA8ZGlvZ29AZGlvZ29sZWFsLmNvbT4iCiBsaWNlbnNlPSJNSVQsIEdQTC0zLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly8yNDg0LmRlL3lhYmFzaWMvIgogZGlzdGZpbGVz PSJodHRwczovLzI0ODQuZGUveWFiYXNpYy9kb3dubG9hZC95YWJhc2ljLSR7dmVyc2lvbn0udGFy Lmd6IgotY2hlY2tzdW09ZmQ5MzE3NmRkYTU4YTgwNzM3MGViMjk5MjZjNTBhMjI5Yjg1Nzg4Y2Jl YjgwZDM1NjFkOWQ1MjRmNTA4OTQyYgorY2hlY2tzdW09MDI4N2ZjYThiZmIzODAwNWJhNzIzZTM2 MTVjZmVhZTE5ZTI2MjViZWM4N2E4N2JiMDFhMDI4OTdhMzA3MDZhOQogCiBkb19pbnN0YWxsKCkg ewogCXZiaW4geWFiYXNpYwo= --===============4535745789179364028==--