From: Bjorn Munch Date: November 17 2010 12:27pm Subject: bzr push into mysql-5.5-mtr branch (bjorn.munch:3114 to 3116) List-Archive: http://lists.mysql.com/commits/124150 Message-Id: <201011171227.oAHCRZpp003584@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDMxMTYgQmpvcm4gTXVuY2gJMjAxMC0xMS0xNyBbbWVyZ2VdCiAgICAgIHVwbWVyZ2UgNTgwODcK CiAgICBtb2RpZmllZDoKICAgICAgY2xpZW50L215c3FsdGVzdC5jYwogICAgICBteXNxbC10ZXN0 L3IvbXlzcWx0ZXN0LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3QvbXlzcWx0ZXN0LnRlc3QKIDMx MTUgQmpvcm4gTXVuY2gJMjAxMC0xMS0xNwogICAgICBUZXN0czogbWFueSBpZi93aGlsZSBleHBy ZXNpc3NvbnMgc2ltcGxpZmllZCBhZnRlciA1NzI3NgoKICAgIG1vZGlmaWVkOgogICAgICBteXNx bC10ZXN0L2V4dHJhL2JpbmxvZ190ZXN0cy9iaW5sb2dfdHJ1bmNhdGUudGVzdAogICAgICBteXNx bC10ZXN0L2V4dHJhL2JpbmxvZ190ZXN0cy9ibGFja2hvbGUudGVzdAogICAgICBteXNxbC10ZXN0 L2V4dHJhL2JpbmxvZ190ZXN0cy9taXhfaW5ub2RiX215aXNhbV9iaW5sb2cudGVzdAogICAgICBt eXNxbC10ZXN0L2V4dHJhL3JwbF90ZXN0cy9jcmVhdGVfcmVjdXJzaXZlX2NvbnN0cnVjdC5pbmMK ICAgICAgbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMvcnBsX2Ryb3BfY3JlYXRlX3RlbXBfdGFi bGUuaW5jCiAgICAgIG15c3FsLXRlc3QvZXh0cmEvcnBsX3Rlc3RzL3JwbF9leHRyYVNsYXZlX0Nv bC50ZXN0CiAgICAgIG15c3FsLXRlc3QvZXh0cmEvcnBsX3Rlc3RzL3JwbF9pbXBsaWNpdF9jb21t aXRfYmlubG9nLnRlc3QKICAgICAgbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMvcnBsX2luc2Vy dF9kZWxheWVkLnRlc3QKICAgICAgbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMvcnBsX25vdF9u dWxsLnRlc3QKICAgICAgbXlzcWwtdGVzdC9pbmNsdWRlL2NoZWNrX3NsYXZlX2lzX3J1bm5pbmcu aW5jCiAgICAgIG15c3FsLXRlc3QvaW5jbHVkZS9jaGVja19zbGF2ZV9wYXJhbS5pbmMKICAgICAg bXlzcWwtdGVzdC9pbmNsdWRlL2RpZmZfdGFibGVzLmluYwogICAgICBteXNxbC10ZXN0L2luY2x1 ZGUvaGF2ZV9leGFtcGxlX3BsdWdpbi5pbmMKICAgICAgbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVf c2VtaXN5bmNfcGx1Z2luLmluYwogICAgICBteXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV9zaW1wbGVf cGFyc2VyLmluYwogICAgICBteXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV91ZGYuaW5jCiAgICAgIG15 c3FsLXRlc3QvaW5jbHVkZS9teXNxbF91cGdyYWRlX3ByZXBhcmF0aW9uLmluYwogICAgICBteXNx bC10ZXN0L2luY2x1ZGUvbm9fdmFsZ3JpbmRfd2l0aG91dF9iaWcuaW5jCiAgICAgIG15c3FsLXRl c3QvaW5jbHVkZS9ub3RfcGFyYWxsZWwuaW5jCiAgICAgIG15c3FsLXRlc3QvaW5jbHVkZS9ycGxf ZGlmZl90YWJsZXMuaW5jCiAgICAgIG15c3FsLXRlc3QvaW5jbHVkZS9zZXR1cF9mYWtlX3JlbGF5 X2xvZy5pbmMKICAgICAgbXlzcWwtdGVzdC9pbmNsdWRlL3Nob3dfcnBsX2RlYnVnX2luZm8uaW5j CiAgICAgIG15c3FsLXRlc3QvaW5jbHVkZS90cnVuY2F0ZV9maWxlLmluYwogICAgICBteXNxbC10 ZXN0L2luY2x1ZGUvd2FpdF9mb3Jfc2xhdmVfaW9fdG9fc3RvcC5pbmMKICAgICAgbXlzcWwtdGVz dC9pbmNsdWRlL3dhaXRfZm9yX3NsYXZlX3NxbF9lcnJvci5pbmMKICAgICAgbXlzcWwtdGVzdC9p bmNsdWRlL3dhaXRfZm9yX3NsYXZlX3NxbF90b19zdG9wLmluYwogICAgICBteXNxbC10ZXN0L2lu Y2x1ZGUvd2FpdF9mb3Jfc2xhdmVfdG9fc3RvcC5pbmMKICAgICAgbXlzcWwtdGVzdC9pbmNsdWRl L3dhaXRfc2hvd19jb25kaXRpb24uaW5jCiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvYmlubG9nL3Qv YmlubG9nX3Jvd19teXNxbGJpbmxvZ19kYl9maWx0ZXIudGVzdAogICAgICBteXNxbC10ZXN0L3N1 aXRlL2JpbmxvZy90L2JpbmxvZ19zdG1fdW5zYWZlX3dhcm5pbmcudGVzdAogICAgICBteXNxbC10 ZXN0L3N1aXRlL2JpbmxvZy90L2JpbmxvZ191bnNhZmUudGVzdAogICAgICBteXNxbC10ZXN0L3N1 aXRlL2ZlZGVyYXRlZC9mZWRlcmF0ZWRfYnVnXzI1NzE0LnRlc3QKICAgICAgbXlzcWwtdGVzdC9z dWl0ZS9wZXJmc2NoZW1hX3N0cmVzcy90L21vZGlmeS50ZXN0CiAgICAgIG15c3FsLXRlc3Qvc3Vp dGUvcGVyZnNjaGVtYV9zdHJlc3MvdC9zZXR1cC50ZXN0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUv cGVyZnNjaGVtYV9zdHJlc3MvdC93b3JrLnRlc3QKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwv dC9ycGxfY2hhbmdlX21hc3Rlci50ZXN0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBs X2NvbmN1cnJlbmN5X2Vycm9yLnRlc3QKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxf aGVhcnRiZWF0LnRlc3QKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfbXlzcWxfdXBn cmFkZS50ZXN0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3NlbWlfc3luYy50ZXN0 CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3NlbWlfc3luY19ldmVudC50ZXN0CiAg ICAgIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3Nsb3dfcXVlcnlfbG9nLnRlc3QKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfc3NsLnRlc3QKICAgICAgbXlzcWwtdGVzdC9zdWl0 ZS9zeXNfdmFycy90L3Nsb3dfbGF1bmNoX3RpbWVfZnVuYy50ZXN0CiAgICAgIG15c3FsLXRlc3Qv dC9jaGFuZ2VfdXNlci50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9leGVjdXRpb25fY29uc3RhbnRz LnRlc3QKICAgICAgbXlzcWwtdGVzdC90L2ZpeF9wcml2X3RhYmxlcy50ZXN0CiAgICAgIG15c3Fs LXRlc3QvdC9teXNxbHRlc3QudGVzdAogICAgICBteXNxbC10ZXN0L3QvbmFtZWRfcGlwZS50ZXN0 CiAgICAgIG15c3FsLXRlc3QvdC9zaG0udGVzdAogICAgICBteXNxbC10ZXN0L3Qvc3lzdGVtX215 c3FsX2RiX2ZpeDQwMTIzLnRlc3QKICAgICAgbXlzcWwtdGVzdC90L3N5c3RlbV9teXNxbF9kYl9m aXg1MDAzMC50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9zeXN0ZW1fbXlzcWxfZGJfZml4NTAxMTcu dGVzdAogMzExNCBNYWdudXMgQmzDpXVkZAkyMDEwLTExLTE1IFttZXJnZV0KICAgICAgTWVyZ2Ug NS41LWJ1ZzU4MTk1IC0+IDUuNS1tdHIKCiAgICBtb2RpZmllZDoKICAgICAgY2xpZW50L215c3Fs dGVzdC5jYwo9PT0gbW9kaWZpZWQgZmlsZSAnY2xpZW50L215c3FsdGVzdC5jYycKLS0tIGEvY2xp ZW50L215c3FsdGVzdC5jYwkyMDEwLTExLTE1IDA5OjUxOjU5ICswMDAwCisrKyBiL2NsaWVudC9t eXNxbHRlc3QuY2MJMjAxMC0xMS0xNyAxMDoxODo1MiArMDAwMApAQCAtNDg4LDcgKzQ4OCw3IEBA IFZBUiogdmFyX2luaXQoVkFSKiB2LCBjb25zdCBjaGFyICpuYW1lLAogVkFSKiB2YXJfZ2V0KGNv bnN0IGNoYXIgKnZhcl9uYW1lLCBjb25zdCBjaGFyKiogdmFyX25hbWVfZW5kLAogICAgICAgICAg ICAgIG15X2Jvb2wgcmF3LCBteV9ib29sIGlnbm9yZV9ub3RfZXhpc3RpbmcpOwogdm9pZCBldmFs X2V4cHIoVkFSKiB2LCBjb25zdCBjaGFyICpwLCBjb25zdCBjaGFyKiogcF9lbmQsCi0gICAgICAg ICAgICAgICBib29sIG9wZW5fZW5kPWZhbHNlKTsKKyAgICAgICAgICAgICAgIGJvb2wgb3Blbl9l bmQ9ZmFsc2UsIGJvb2wgYmFja3RpY2s9dHJ1ZSk7CiBteV9ib29sIG1hdGNoX2RlbGltaXRlcihp bnQgYywgY29uc3QgY2hhciAqZGVsaW0sIHVpbnQgbGVuZ3RoKTsKIHZvaWQgZHVtcF9yZXN1bHRf dG9fcmVqZWN0X2ZpbGUoY2hhciAqYnVmLCBpbnQgc2l6ZSk7CiB2b2lkIGR1bXBfd2FybmluZ19t ZXNzYWdlcygpOwpAQCAtMjMzOCw3ICsyMzM4LDggQEAgdm9pZCB2YXJfcXVlcnlfc2V0KFZBUiAq dmFyLCBjb25zdCBjaGFyCiAgICAgICBkeW5zdHJfYXBwZW5kX21lbSgmcmVzdWx0LCAiXHQiLCAx KTsKICAgICB9CiAgICAgZW5kPSByZXN1bHQuc3RyICsgcmVzdWx0Lmxlbmd0aC0xOwotICAgIGV2 YWxfZXhwcih2YXIsIHJlc3VsdC5zdHIsIChjb25zdCBjaGFyKiopICZlbmQpOworICAgIC8qIEV2 YWx1YXRpb24gc2hvdWxkIG5vdCByZWN1cnNlIHZpYSBiYWNrdGljayAqLworICAgIGV2YWxfZXhw cih2YXIsIHJlc3VsdC5zdHIsIChjb25zdCBjaGFyKiopICZlbmQsIGZhbHNlLCBmYWxzZSk7CiAg ICAgZHluc3RyX2ZyZWUoJnJlc3VsdCk7CiAgIH0KICAgZWxzZQpAQCAtMjU0OCw3ICsyNTQ5LDgg QEAgdm9pZCB2YXJfY29weShWQVIgKmRlc3QsIFZBUiAqc3JjKQogfQogCiAKLXZvaWQgZXZhbF9l eHByKFZBUiAqdiwgY29uc3QgY2hhciAqcCwgY29uc3QgY2hhciAqKnBfZW5kLCBib29sIG9wZW5f ZW5kKQordm9pZCBldmFsX2V4cHIoVkFSICp2LCBjb25zdCBjaGFyICpwLCBjb25zdCBjaGFyICoq cF9lbmQsCisgICAgICAgICAgICAgICBib29sIG9wZW5fZW5kLCBib29sIGJhY2t0aWNrKQogewog CiAgIERCVUdfRU5URVIoImV2YWxfZXhwciIpOwpAQCAtMjU3Myw3ICsyNTc1LDcgQEAgdm9pZCBl dmFsX2V4cHIoVkFSICp2LCBjb25zdCBjaGFyICpwLCBjbwogICAgIERCVUdfVk9JRF9SRVRVUk47 CiAgIH0KIAotICBpZiAoKnAgPT0gJ2AnKQorICBpZiAoKnAgPT0gJ2AnICYmIGJhY2t0aWNrKQog ICB7CiAgICAgdmFyX3F1ZXJ5X3NldCh2LCBwLCBwX2VuZCk7CiAgICAgREJVR19WT0lEX1JFVFVS TjsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2V4dHJhL2JpbmxvZ190ZXN0cy9iaW5s b2dfdHJ1bmNhdGUudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9leHRyYS9iaW5sb2dfdGVzdHMvYmlu bG9nX3RydW5jYXRlLnRlc3QJMjAxMC0wNS0yNSAyMDowMTozOCArMDAwMAorKysgYi9teXNxbC10 ZXN0L2V4dHJhL2JpbmxvZ190ZXN0cy9iaW5sb2dfdHJ1bmNhdGUudGVzdAkyMDEwLTExLTE3IDEw OjE2OjEzICswMDAwCkBAIC0xMiwxMyArMTIsMTMgQEAgZXZhbCBDUkVBVEUgVEFCTEUgdDEgKGEg SU5UKSBFTkdJTkU9JGVuZwogZXZhbCBDUkVBVEUgVEFCTEUgdDIgKGEgSU5UKSBFTkdJTkU9JGVu Z2luZTsKIElOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMSksKDIpLCgzKTsKIGxldCAkYmlubG9nX3N0 YXJ0ID0gcXVlcnlfZ2V0X3ZhbHVlKCJTSE9XIE1BU1RFUiBTVEFUVVMiLCBQb3NpdGlvbiwgMSk7 Ci1pZiAoYHNlbGVjdCBsZW5ndGgoJyRiZWZvcmVfdHJ1bmNhdGUnKSA+IDBgKSB7CitpZiAoJGJl Zm9yZV90cnVuY2F0ZSkgewogICBldmFsICRiZWZvcmVfdHJ1bmNhdGU7CiB9CiAtLWVjaG8gKioq KiBUcnVuY2F0ZSBvZiBlbXB0eSB0YWJsZSBzaGFsbCBiZSBsb2dnZWQKIFRSVU5DQVRFIFRBQkxF IHQxOwogCi1pZiAoYHNlbGVjdCBsZW5ndGgoJyRiZWZvcmVfdHJ1bmNhdGUnKSA+IDBgKSB7Citp ZiAoJGJlZm9yZV90cnVuY2F0ZSkgewogICBldmFsICRiZWZvcmVfdHJ1bmNhdGU7CiB9CiBUUlVO Q0FURSBUQUJMRSB0MjsKQEAgLTM1LDcgKzM1LDcgQEAgZXZhbCBDUkVBVEUgVEFCTEUgdDIgKGEg SU5UKSBFTkdJTkU9JGVuZwogSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKSwoMik7CiAKIGxldCAk YmlubG9nX3N0YXJ0ID0gcXVlcnlfZ2V0X3ZhbHVlKCJTSE9XIE1BU1RFUiBTVEFUVVMiLCBQb3Np dGlvbiwgMSk7Ci1pZiAoYHNlbGVjdCBsZW5ndGgoJyRiZWZvcmVfdHJ1bmNhdGUnKSA+IDBgKSB7 CitpZiAoJGJlZm9yZV90cnVuY2F0ZSkgewogICBldmFsICRiZWZvcmVfdHJ1bmNhdGU7CiB9CiAK Cj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2V4dHJhL2JpbmxvZ190ZXN0cy9ibGFja2hv bGUudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9leHRyYS9iaW5sb2dfdGVzdHMvYmxhY2tob2xlLnRl c3QJMjAxMC0wNS0yNiAxNDozNDoyNSArMDAwMAorKysgYi9teXNxbC10ZXN0L2V4dHJhL2Jpbmxv Z190ZXN0cy9ibGFja2hvbGUudGVzdAkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC0xNzMs NyArMTczLDcgQEAgaW5zZXJ0IGludG8gdDEgdmFsdWVzKDIpOwogcm9sbGJhY2s7CiAKIGxldCAk bWFzdGVyX2xvZ19wb3NfMj0gcXVlcnlfZ2V0X3ZhbHVlKFNIT1cgTUFTVEVSIFNUQVRVUywgUG9z aXRpb24sIDEpOwotaWYgKGBTRUxFQ1QgJG1hc3Rlcl9sb2dfcG9zXzIgPD4gJG1hc3Rlcl9sb2df cG9zXzFgKQoraWYgKCRtYXN0ZXJfbG9nX3Bvc18yICE9ICRtYXN0ZXJfbG9nX3Bvc18xKQogewog ICBlY2hvICRtYXN0ZXJfbG9nX3Bvc18xICRtYXN0ZXJfbG9nX3Bvc18yOwogICBkaWUgUm9sbGJh Y2tlZCB0cmFuc2FjdGlvbiBoYXMgYmVlbiBiaW5sb2dnZWQ7Cgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC9leHRyYS9iaW5sb2dfdGVzdHMvbWl4X2lubm9kYl9teWlzYW1fYmlubG9nLnRl c3QnCi0tLSBhL215c3FsLXRlc3QvZXh0cmEvYmlubG9nX3Rlc3RzL21peF9pbm5vZGJfbXlpc2Ft X2JpbmxvZy50ZXN0CTIwMTAtMDgtMjAgMDI6NTk6NTggKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9l eHRyYS9iaW5sb2dfdGVzdHMvbWl4X2lubm9kYl9teWlzYW1fYmlubG9nLnRlc3QJMjAxMC0xMS0x NyAxMDoxNjoxMyArMDAwMApAQCAtMzE5LDcgKzMxOSw3IEBAIGlmIChgc2VsZWN0IEBAYmlubG9n X2Zvcm1hdCA9ICdTVEFURU1FTlQKIHsKICAtLWxldCAkYmlubG9nX3JvbGxiYWNrPSBxdWVyeV9n ZXRfdmFsdWUoU0hPVyBCSU5MT0cgRVZFTlRTLCBQb3MsIDcpCiAgLS1sZXQgJGJpbmxvZ19xdWVy eT0gcXVlcnlfZ2V0X3ZhbHVlKFNIT1cgQklOTE9HIEVWRU5UUywgSW5mbywgNykKLSBpZiAoYFNF TEVDVCAnUk9MTEJBQ0snICE9ICckYmlubG9nX3F1ZXJ5J2ApIHsKKyBpZiAoJGJpbmxvZ19xdWVy eSAhPSBST0xMQkFDSykgewogICAtLWVjaG8gV3JvbmcgcXVlcnkgZnJvbSBTSE9XIEJJTkxPRyBF VkVOVFMuIEV4cGVjdGVkIFJPTExCQUNLLCBnb3QgJyRiaW5sb2dfcXVlcnknCiAgIC0tc291cmNl IGluY2x1ZGUvc2hvd19ycGxfZGVidWdfaW5mby5pbmMKICAgLS1kaWUgV3JvbmcgdmFsdWUgZm9y IHNsYXZlIHBhcmFtZXRlcgoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvZXh0cmEvcnBs X3Rlc3RzL2NyZWF0ZV9yZWN1cnNpdmVfY29uc3RydWN0LmluYycKLS0tIGEvbXlzcWwtdGVzdC9l eHRyYS9ycGxfdGVzdHMvY3JlYXRlX3JlY3Vyc2l2ZV9jb25zdHJ1Y3QuaW5jCTIwMTAtMTAtMjEg MDk6MjA6NTMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMvY3JlYXRlX3Jl Y3Vyc2l2ZV9jb25zdHJ1Y3QuaW5jCTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTE2Nyw3 ICsxNjcsOSBAQAogLS1sZXQgJENSQ19jcmVhdGU9CiAKICMjIyMjIyMjIGZ1bmNfcmV0dmFsICMj IyMjIyMjCi1pZiAoYFNFTEVDVCAkQ1JDX0FSR190eXBlID0gMCBBTkQgJyRDUkNfQVJHX3ZhbHVl JyAhPSAnJ2ApIHsKKyMgaWYgaW5zaWRlIGlmIGluIGxpZXUgb2YgQU5EIG9wZXJhbmQKK2lmICgk Q1JDX0FSR190eXBlID09IDApIHsKKyBpZiAoJENSQ19BUkdfdmFsdWUpIHsKICAgIyBJdCB3aWxs IGJlIHNhZmUgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGFuZCBkaXNjYXJkIHRoZSByZXR1cm4KICAg IyB2YWx1ZSwgYnV0IGl0IHdpbGwgYmUgdW5zYWZlIHRvIHVzZSByZXR1cm4gdmFsdWUgKGUuZy4s IGluCiAgICMgSU5TRVJULi4uU0VMRUNUKS4KQEAgLTE4MCwxMCArMTgyLDExIEBAIGlmIChgU0VM RUNUICRDUkNfQVJHX3R5cGUgPSAwIEFORCAnJENSQ18KICAgLS1sZXQgJENSQ19SRVRfZHJvcD0g RFJPUCBGVU5DVElPTiAkQ1JDX25hbWUKICAgLS1sZXQgJENSQ19SRVRfaXNfdG9wbGV2ZWw9IDAK ICAgLS1sZXQgJENSQ19SRVRfZGVzYz0gZnVuY3Rpb24gJENSQ19uYW1lIHJldHVybmluZyB2YWx1 ZSBmcm9tICRDUkNfQVJHX2Rlc2MKKyB9CiB9CiAKICMjIyMjIyMjIGZ1bmNfc2lkZWYgIyMjIyMj IyMKLWlmIChgU0VMRUNUICRDUkNfQVJHX3R5cGUgPSAxYCkgeworaWYgKCRDUkNfQVJHX3R5cGUg PT0gMSkgewogICAjIEl0IHdpbGwgYmUgdW5zYWZlIHRvIGNhbGwgZnVuYyBldmVuIGlmIHlvdSBk aXNjYXJkIHJldHVybiB2YWx1ZS4KICAgLS1sZXQgJENSQ19uYW1lPSBmdW5jX3NpZGVmXyRDUkNf QVJHX2xldmVsCiAgIC0tbGV0ICRDUkNfY3JlYXRlPSBDUkVBVEUgRlVOQ1RJT04gJENSQ19uYW1l KCkgUkVUVVJOUyBWQVJDSEFSKDEwMCkgQkVHSU4gSU5TRVJUIElOVE8gdGEkQ1JDX0FSR19sZXZl bCBWQUxVRVMgKDQ3KTsgJENSQ19BUkdfc3RtdF9zaWRlZjsgUkVUVVJOIDA7IEVORApAQCAtMTk3 LDcgKzIwMCw3IEBAIGlmIChgU0VMRUNUICRDUkNfQVJHX3R5cGUgPSAxYCkgewogfQogCiAjIyMj IyMjIyBwcm9jICMjIyMjIyMjCi1pZiAoYFNFTEVDVCAkQ1JDX0FSR190eXBlID0gMmApIHsKK2lm ICgkQ1JDX0FSR190eXBlID09IDIpIHsKICAgIyBJdCB3aWxsIGJlIHVuc2FmZSB0byBjYWxsIHRo aXMgcHJvY2VkdXJlLgogICAtLWxldCAkQ1JDX25hbWU9IHByb2NfJENSQ19BUkdfbGV2ZWwKICAg LS1sZXQgJENSQ19jcmVhdGU9IENSRUFURSBQUk9DRURVUkUgJENSQ19uYW1lKCkgQkVHSU4gJENS Q19BUkdfc3RtdF9zaWRlZjsgSU5TRVJUIElOVE8gdGEkQ1JDX0FSR19sZXZlbCBWQUxVRVMgKDQ3 KTsgRU5ECkBAIC0yMTEsNyArMjE0LDcgQEAgaWYgKGBTRUxFQ1QgJENSQ19BUkdfdHlwZSA9IDJg KSB7CiB9CiAKICMjIyMjIyMjIHRyaWcgIyMjIyMjIyMKLWlmIChgU0VMRUNUICRDUkNfQVJHX3R5 cGUgPSAzYCkgeworaWYgKCRDUkNfQVJHX3R5cGUgPT0gMykgewogICAjIEl0IHdpbGwgYmUgdW5z YWZlIHRvIGludm9rZSB0aGlzIHRyaWdnZXIuCiAgIC0tbGV0ICRDUkNfbmFtZT0gdHJpZ18kQ1JD X0FSR19sZXZlbAogICAtLWxldCAkQ1JDX2NyZWF0ZT0gQ1JFQVRFIFRSSUdHRVIgJENSQ19uYW1l IEJFRk9SRSBJTlNFUlQgT04gdHJpZ2dlcl90YWJsZV8kQ1JDX0FSR19sZXZlbCBGT1IgRUFDSCBS T1cgQkVHSU4gSU5TRVJUIElOVE8gdGEkQ1JDX0FSR19sZXZlbCBWQUxVRVMgKDQ3KTsgJENSQ19B Ukdfc3RtdF9zaWRlZjsgRU5ECkBAIC0yMjUsNyArMjI4LDggQEAgaWYgKGBTRUxFQ1QgJENSQ19B UkdfdHlwZSA9IDNgKSB7CiB9CiAKICMjIyMjIyMjIHZpZXdfcmV0dmFsICMjIyMjIyMjCi1pZiAo YFNFTEVDVCAkQ1JDX0FSR190eXBlID0gNCBBTkQgJyRDUkNfQVJHX3NlbF9yZXR2YWwnICE9ICcn YCkgeworaWYgKCRDUkNfQVJHX3R5cGUgPT0gNCkgeworIGlmICgkQ1JDX0FSR19zZWxfcmV0dmFs KSB7CiAgICMgSXQgd2lsbCBiZSBzYWZlIHRvIHNlbGVjdCBmcm9tIHRoaXMgdmlldyBpZiB5b3Ug ZGlzY2FyZCB0aGUgcmVzdWx0CiAgICMgc2V0LCBidXQgdW5zYWZlIHRvIHVzZSByZXN1bHQgc2V0 IChlLmcuLCBpbiBJTlNFUlQuLlNFTEVDVCkuCiAgIC0tbGV0ICRDUkNfbmFtZT0gdmlld19yZXR2 YWxfJENSQ19BUkdfbGV2ZWwKQEAgLTIzNywxMCArMjQxLDEyIEBAIGlmIChgU0VMRUNUICRDUkNf QVJHX3R5cGUgPSA0IEFORCAnJENSQ18KICAgLS1sZXQgJENSQ19SRVRfZHJvcD0gRFJPUCBWSUVX ICRDUkNfbmFtZQogICAtLWxldCAkQ1JDX1JFVF9pc190b3BsZXZlbD0gMAogICAtLWxldCAkQ1JD X1JFVF9kZXNjPSB2aWV3ICRDUkNfbmFtZSByZXR1cm5pbmcgdmFsdWUgZnJvbSAkQ1JDX0FSR19k ZXNjCisgfQogfQogCiAjIyMjIyMjIyB2aWV3X3NpZGVmICMjIyMjIyMjCi1pZiAoYFNFTEVDVCAk Q1JDX0FSR190eXBlID0gNSBBTkQgJyRDUkNfQVJHX3NlbF9zaWRlZicgIT0gJydgKSB7CitpZiAo JENSQ19BUkdfdHlwZSA9PSA1KSB7CisgaWYgICgkQ1JDX0FSR19zZWxfc2lkZWYpIHsKICAgIyBJ dCB3aWxsIGJlIHVuc2FmZSB0byBzZWxlY3QgZnJvbSB0aGlzIHZpZXcsIGV2ZW4gaWYgeW91IGRp c2NhcmQKICAgIyB0aGUgcmV0dXJuIHZhbHVlLgogICAtLWxldCAkQ1JDX25hbWU9IHZpZXdfc2lk ZWZfJENSQ19BUkdfbGV2ZWwKQEAgLTI1MiwxMCArMjU4LDExIEBAIGlmIChgU0VMRUNUICRDUkNf QVJHX3R5cGUgPSA1IEFORCAnJENSQ18KICAgLS1sZXQgJENSQ19SRVRfZHJvcD0gRFJPUCBWSUVX ICRDUkNfbmFtZQogICAtLWxldCAkQ1JDX1JFVF9pc190b3BsZXZlbD0gMAogICAtLWxldCAkQ1JD X1JFVF9kZXNjPSB2aWV3ICRDUkNfbmFtZSBpbnZva2luZyAkQ1JDX0FSR19kZXNjCisgfQogfQog CiAjIyMjIyMjIyBwcmVwICMjIyMjIyMjCi1pZiAoYFNFTEVDVCAkQ1JDX0FSR190eXBlID0gNmAp IHsKK2lmICgkQ1JDX0FSR190eXBlID09IDYpIHsKICAgIyBJdCB3aWxsIGJlIHVuc2FmZSB0byBl eGVjdXRlIHRoaXMgcHJlcGFyZWQgc3RhdGVtZW50CiAgIC0tbGV0ICRDUkNfbmFtZT0gcHJlcF8k Q1JDX0FSR19sZXZlbAogICAtLWxldCAkQ1JDX2NyZWF0ZT0gUFJFUEFSRSAkQ1JDX25hbWUgRlJP TSAiJENSQ19BUkdfc3RtdF9zaWRlZiIKQEAgLTI2OSw3ICsyNzYsNyBAQCBpZiAoYFNFTEVDVCAk Q1JDX0FSR190eXBlID0gNmApIHsKIH0KIAogIyMjIyMjIyMgbm8gcmVjdXJzaXZlIGNvbnN0cnVj dDoganVzdCByZXR1cm4gdGhlIGdpdmVuIHN0YXRlbWVudCAjIyMjIyMjIwotaWYgKGBTRUxFQ1Qg JENSQ19BUkdfdHlwZSA9IDdgKSB7CitpZiAoJENSQ19BUkdfdHlwZSA9PSA3KSB7CiAgICMgQ1JD X0FSR190eXBlPTcgaXMgYSBzcGVjaWFsIGNhc2UuIFdlIGp1c3Qgc2V0ICRDUkNfUkVUX3ggPQog ICAjICRDUkNfQVJHX3guICBUaGlzIHdheSwgdGhlICRDUkNfQVJHX3N0bXQgZ2V0cyBleGVjdXRl ZCBkaXJlY3RseQogICAjIChiZWxvdykuICBJbiBiaW5sb2dfdW5zYWZlLnRlc3QsIGl0IGlzIHVz ZWQgdG8gaW52b2tlIHRoZSB1bnNhZmUKQEAgLTI5NSw3ICszMDIsNyBAQCBpZiAoJENSQ19SRVRf c3RtdF9zaWRlZikgewogICAtLWVjaG8gKiBiaW5sb2dfZm9ybWF0ID0gU1RBVEVNRU5UOiBleHBl Y3QgJENSQ19BUkdfZXhwZWN0ZWRfbnVtYmVyX29mX3dhcm5pbmdzIHdhcm5pbmdzLgogICAtLWV2 YWwgJENSQ19SRVRfc3RtdF9zaWRlZgogICAtLWxldCAkbl93YXJuaW5ncz0gYFNIT1cgQ09VTlQo KikgV0FSTklOR1NgCi0gIGlmIChgU0VMRUNUICckbl93YXJuaW5ncycgIT0gJyRDUkNfQVJHX2V4 cGVjdGVkX251bWJlcl9vZl93YXJuaW5ncydgKSB7CisgIGlmICgkbl93YXJuaW5ncyAhPSAkQ1JD X0FSR19leHBlY3RlZF9udW1iZXJfb2Zfd2FybmluZ3MpIHsKICAgICAtLWVjaG8gKioqKioqKiog RmFpbHVyZSEgRXhwZWN0ZWQgJENSQ19BUkdfZXhwZWN0ZWRfbnVtYmVyX29mX3dhcm5pbmdzIHdh cm5pbmdzLCBnb3QgJG5fd2FybmluZ3Mgd2FybmluZ3MuICoqKioqKioqCiAgICAgU0hPVyBXQVJO SU5HUzsKICAgICBTSE9XIEJJTkxPRyBFVkVOVFM7CkBAIC0zMTIsMTQgKzMxOSwxNCBAQCBpZiAo JENSQ19SRVRfc3RtdF9zaWRlZikgewogICBSRVNFVCBNQVNURVI7CiAgIC0tZXZhbCAkQ1JDX1JF VF9zdG10X3NpZGVmCiAgIC0tbGV0ICRuX3dhcm5pbmdzPSBgU0hPVyBDT1VOVCgqKSBXQVJOSU5H U2AKLSAgaWYgKGBTRUxFQ1QgJyRuX3dhcm5pbmdzJyAhPSAnMCdgKSB7CisgIGlmICgkbl93YXJu aW5ncykgewogICAgIC0tZWNobyAqKioqKioqKiBGYWlsdXJlISBFeHBlY3RlZCAwIHdhcm5pbmdz LCBnb3QgJG5fd2FybmluZ3Mgd2FybmluZ3MuICoqKioqKioqCiAgICAgU0hPVyBXQVJOSU5HUzsK ICAgICBTSE9XIEJJTkxPRyBFVkVOVFM7CiAgICAgLS1kaWUgV3JvbmcgbnVtYmVyIG9mIHdhcm5p bmdzLgogICB9CiAgIC0tbGV0ICRiaW5sb2dfZXZlbnQ9IHF1ZXJ5X2dldF92YWx1ZShTSE9XIEJJ TkxPRyBFVkVOVFMsIEV2ZW50X3R5cGUsIDIpCi0gIGlmIChgU0VMRUNUICckYmlubG9nX2V2ZW50 JyAhPSAnTm8gc3VjaCByb3cnYCkgeworICBpZiAoJGJpbmxvZ19ldmVudCAhPSBObyBzdWNoIHJv dykgewogICAgIC0tZW5hYmxlX3F1ZXJ5X2xvZwogICAgIC0tZWNobyAqKioqKioqKiBGYWlsdXJl ISBTb21ldGhpbmcgd2FzIHdyaXR0ZW4gdG8gdGhlIGJpbmxvZyBkZXNwaXRlIFNRTF9MT0dfQklO PTAgKioqKioqKioKICAgICBTSE9XIEJJTkxPRyBFVkVOVFM7CkBAIC0zMzIsNyArMzM5LDcgQEAg aWYgKCRDUkNfUkVUX3N0bXRfc2lkZWYpIHsKICAgUkVTRVQgTUFTVEVSOwogICAtLWV2YWwgJENS Q19SRVRfc3RtdF9zaWRlZgogICAtLWxldCAkbl93YXJuaW5ncz0gYFNIT1cgQ09VTlQoKikgV0FS TklOR1NgCi0gIGlmIChgU0VMRUNUICckbl93YXJuaW5ncycgIT0gJzAnYCkgeworICBpZiAoJG5f d2FybmluZ3MpIHsKICAgICAtLWVjaG8gKioqKioqKiogRmFpbHVyZSEgRXhwZWN0ZWQgMCB3YXJu aW5ncywgZ290ICRuX3dhcm5pbmdzIHdhcm5pbmdzLiAqKioqKioqKgogICAgIFNIT1cgV0FSTklO R1M7CiAgICAgU0hPVyBCSU5MT0cgRVZFTlRTOwpAQCAtMzc1LDcgKzM4Miw3IEBAIGlmICgkQ1JD X1JFVF9zZWxfcmV0dmFsKSB7CiAgICMgZmFpbC4gIFdoZW4gdGhlIGJ1ZyBpcyBmaXhlZCwgd2Ug c2hvdWxkIGV4ZWN1dGUgdGhlIGZvbGxvd2luZy4KIAogICAjLS1sZXQgJG5fd2FybmluZ3M9IGBT SE9XIENPVU5UKCopIFdBUk5JTkdTYAotICAjaWYgKGBTRUxFQ1QgJyRuX3dhcm5pbmdzJyAhPSAn MCdgKSB7CisgICNpZiAoJG5fd2FybmluZ3MpIHsKICAgIyAgLS1lbmFibGVfcXVlcnlfbG9nCiAg ICMgIC0tZWNobyBGYWlsdXJlISBFeHBlY3RlZCAwIHdhcm5pbmdzLCBnb3QgJG5fd2FybmluZ3Mg d2FybmluZ3MuCiAgICMgIFNIT1cgV0FSTklOR1M7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwt dGVzdC9leHRyYS9ycGxfdGVzdHMvcnBsX2Ryb3BfY3JlYXRlX3RlbXBfdGFibGUuaW5jJwotLS0g YS9teXNxbC10ZXN0L2V4dHJhL3JwbF90ZXN0cy9ycGxfZHJvcF9jcmVhdGVfdGVtcF90YWJsZS5p bmMJMjAxMC0wOC0yMCAwMjo1OTo1OCArMDAwMAorKysgYi9teXNxbC10ZXN0L2V4dHJhL3JwbF90 ZXN0cy9ycGxfZHJvcF9jcmVhdGVfdGVtcF90YWJsZS5pbmMJMjAxMC0xMS0xNyAxMDoxNjoxMyAr MDAwMApAQCAtMzUsNyArMzUsNyBAQCBpZiAoYFNFTEVDVCBIRVgoQGNvbW1hbmRzKSA9IEhFWCgn Y29uZmlnCiAgICMgd2hlbiBhIGNvbW1hbmQgZW5kcy4KICAgIwogICAtLWxldCAkbj0gJHRvdF90 YWJsZQotICB3aGlsZSAoYFNFTEVDVCAkbiAhPSAwYCkKKyAgd2hpbGUgKCRuKQogICB7IAogICAg IC0tZXZhbCBEUk9QIFRFTVBPUkFSWSBUQUJMRSBJRiBFWElTVFMgbnRfdG1wXyRuCiAgICAgLS1l dmFsIENSRUFURSBURU1QT1JBUlkgVEFCTEUgbnRfdG1wXyRuICggaWQgSU5UICkgRU5HSU5FID0g TXlJc2FtCkBAIC02Miw3ICs2Miw3IEBAIGlmIChgU0VMRUNUIEhFWChAY29tbWFuZHMpID0gSEVY KCdjb25maWcKICAgIyB3aGVuIGEgY29tbWFuZCBlbmRzLgogICAjCiAgIC0tbGV0ICRuPSAkdG90 X3RhYmxlCi0gIHdoaWxlIChgU0VMRUNUICRuICE9IDBgKQorICB3aGlsZSAoJG4pCiAgIHsgCiAg ICAgLS1ldmFsIERST1AgVEVNUE9SQVJZIFRBQkxFIElGIEVYSVNUUyB0dF90bXBfJG4KICAgICAt LWV2YWwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSB0dF90bXBfJG4gKCBpZCBJTlQgKSBFTkdJTkUg PSBJbm5vZGIKQEAgLTg5LDcgKzg5LDcgQEAgaWYgKGBTRUxFQ1QgSEVYKEBjb21tYW5kcykgPSBI RVgoJ2NvbmZpZwogICAjIHdoZW4gYSBjb21tYW5kIGVuZHMuCiAgICMKICAgLS1sZXQgJG49ICR0 b3RfdGFibGUKLSAgd2hpbGUgKGBTRUxFQ1QgJG4gIT0gMGApCisgIHdoaWxlICgkbikKICAgeyAK ICAgICAtLWV2YWwgRFJPUCBUQUJMRSBJRiBFWElTVFMgbnRfJG4KICAgICAtLWV2YWwgQ1JFQVRF IFRBQkxFIG50XyRuICggaWQgSU5UICkgRU5HSU5FID0gTXlJc2FtCkBAIC0xMTYsNyArMTE2LDcg QEAgaWYgKGBTRUxFQ1QgSEVYKEBjb21tYW5kcykgPSBIRVgoJ2NvbmZpZwogICAjIHdoZW4gYSBj b21tYW5kIGVuZHMuCiAgICMKICAgLS1sZXQgJG49ICR0b3RfdGFibGUKLSAgd2hpbGUgKGBTRUxF Q1QgJG4gIT0gMGApCisgIHdoaWxlICgkbikKICAgeyAKICAgICAtLWV2YWwgRFJPUCBUQUJMRSBJ RiBFWElTVFMgdHRfJG4KICAgICAtLWV2YWwgQ1JFQVRFIFRBQkxFIHR0XyRuICggaWQgSU5UICkg RU5HSU5FID0gSW5ub2RiCkBAIC0xNjMsMTQgKzE2MywxNCBAQCBpZiAoYFNFTEVDVCBIRVgoQGNv bW1hbmRzKSA9IEhFWCgnY2xlYW4nCiAgIERST1AgVEFCTEUgSUYgRVhJU1RTIG50X3h4XzE7CiAK ICAgLS1sZXQgJG49ICR0b3RfdGFibGUKLSAgd2hpbGUgKGBTRUxFQ1QgJG4gIT0gMGApCisgIHdo aWxlICgkbikKICAgeyAKICAgICAtLWV2YWwgRFJPUCBUQUJMRSBJRiBFWElTVFMgbnRfJG4KICAg ICAtLWRlYyAkbgogICB9CiAKICAgLS1sZXQgJG49ICR0b3RfdGFibGUKLSAgd2hpbGUgKGBTRUxF Q1QgJG4gIT0gMGApCisgIHdoaWxlICgkbikKICAgeyAKICAgICAtLWV2YWwgRFJPUCBUQUJMRSBJ RiBFWElTVFMgdHRfJG4KICAgICAtLWRlYyAkbgpAQCAtNjM0LDExICs2MzQsMTEgQEAgd2hpbGUg KGBTRUxFQ1QgSEVYKEBjb21tYW5kcykgIT0gSEVYKCcnKQogICAgICAgICB7CiAgICAgICAgICAg LS1sZXQgJGRyb3BwZWRfdGVtcD0gJHRhYmxlCiAgICAgICAgIH0KLSAgICAgICAgaWYgKGBTRUxF Q1QgJG4gPSAxYCkKKyAgICAgICAgaWYgKCRuID09IDEpCiAgICAgICAgIHsKICAgICAgICAgICAt LWxldCAkdGFibGVfMT0gJHRhYmxlCiAgICAgICAgIH0KLSAgICAgICAgaWYgKGBTRUxFQ1QgJG4g PSAyYCkKKyAgICAgICAgaWYgKCRuID09IDIpCiAgICAgICAgIHsKICAgICAgICAgICAtLWxldCAk dGFibGVfMj0gJHRhYmxlCiAgICAgICAgIH0KQEAgLTg4Niw3ICs4ODYsNyBAQCB3aGlsZSAoYFNF TEVDVCBIRVgoQGNvbW1hbmRzKSAhPSBIRVgoJycpCiAgICAgLS1sZXQgJGF2YWlsYWJsZV9uX3Rl bXA9CiAgICAgLS1sZXQgJGRyb3BwZWRfbl90ZW1wPQogICAgIC0tbGV0ICRuPSAkdG90X3RhYmxl Ci0gICAgd2hpbGUgKGBTRUxFQ1QgJG4gIT0gMGApCisgICAgd2hpbGUgKCRuKQogICAgIHsgCiAg ICAgICAtLWV2YWwgRFJPUCBURU1QT1JBUlkgVEFCTEUgSUYgRVhJU1RTIG50X3RtcF8kbgogICAg ICAgLS1ldmFsIENSRUFURSBURU1QT1JBUlkgVEFCTEUgbnRfdG1wXyRuICggaWQgSU5UICkgRU5H SU5FID0gTXlJc2FtCkBAIC05MDUsNyArOTA1LDcgQEAgd2hpbGUgKGBTRUxFQ1QgSEVYKEBjb21t YW5kcykgIT0gSEVYKCcnKQogICAgIC0tbGV0ICRhdmFpbGFibGVfdF90ZW1wPQogICAgIC0tbGV0 ICRkcm9wcGVkX3RfdGVtcD0KICAgICAtLWxldCAkbj0gJHRvdF90YWJsZQotICAgIHdoaWxlIChg U0VMRUNUICRuICE9IDBgKQorICAgIHdoaWxlICgkbikKICAgICB7IAogICAgICAgLS1ldmFsIERS T1AgVEVNUE9SQVJZIFRBQkxFIElGIEVYSVNUUyB0dF90bXBfJG4KICAgICAgIC0tZXZhbCBDUkVB VEUgVEVNUE9SQVJZIFRBQkxFIHR0X3RtcF8kbiAoIGlkIElOVCApIEVOR0lORSA9IElubm9kYgpA QCAtOTI0LDcgKzkyNCw3IEBAIHdoaWxlIChgU0VMRUNUIEhFWChAY29tbWFuZHMpICE9IEhFWCgn JykKICAgICAtLWxldCAkYXZhaWxhYmxlX3Q9CiAgICAgLS1sZXQgJGRyb3BwZWRfdD0KICAgICAt LWxldCAkbj0gJHRvdF90YWJsZQotICAgIHdoaWxlIChgU0VMRUNUICRuICE9IDBgKQorICAgIHdo aWxlICgkbikKICAgICB7IAogICAgICAgLS1ldmFsIERST1AgVEFCTEUgSUYgRVhJU1RTIHR0XyRu CiAgICAgICAtLWV2YWwgQ1JFQVRFIFRBQkxFIHR0XyRuICggaWQgSU5UICkgRU5HSU5FID0gSW5u b2RiCkBAIC05NDMsNyArOTQzLDcgQEAgd2hpbGUgKGBTRUxFQ1QgSEVYKEBjb21tYW5kcykgIT0g SEVYKCcnKQogICAgIC0tbGV0ICRhdmFpbGFibGVfbj0KICAgICAtLWxldCAkZHJvcHBlZF9uPQog ICAgIC0tbGV0ICRuPSAkdG90X3RhYmxlCi0gICAgd2hpbGUgKGBTRUxFQ1QgJG4gIT0gMGApCisg ICAgd2hpbGUgKCRuKQogICAgIHsgCiAgICAgICAtLWV2YWwgRFJPUCBUQUJMRSBJRiBFWElTVFMg bnRfJG4KICAgICAgIC0tZXZhbCBDUkVBVEUgVEFCTEUgbnRfJG4gKCBpZCBJTlQgKSBFTkdJTkUg PSBNeUlzYW0KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2V4dHJhL3JwbF90ZXN0cy9y cGxfZXh0cmFTbGF2ZV9Db2wudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMv cnBsX2V4dHJhU2xhdmVfQ29sLnRlc3QJMjAxMC0wNS0yNiAxNDozNDoyNSArMDAwMAorKysgYi9t eXNxbC10ZXN0L2V4dHJhL3JwbF90ZXN0cy9ycGxfZXh0cmFTbGF2ZV9Db2wudGVzdAkyMDEwLTEx LTE3IDEwOjE2OjEzICswMDAwCkBAIC00MDYsNyArNDA2LDcgQEAgc3luY19zbGF2ZV93aXRoX21h c3RlcjsKICMgRXJyb3IgcmVhY3Rpb24gaXMgdXAgdG8gc3FsX21vZGUgb2YgdGhlIHNsYXZlIHNx bCAoYnVnIzM4MTczKQogIy0tZWNobyAqKiogQ3JlYXRlIHQ5IG9uIHNsYXZlICAqKioKICMgUGxl YXNlLCBjaGVjayBCVUcjNDc3NDEgdG8gc2VlIHdoeSB5b3UgYXJlIG5vdCB0ZXN0aW5nIE5EQi4K LWlmIChgU0VMRUNUICRlbmdpbmVfdHlwZSAhPSAnTkRCJ2ApCitpZiAoJGVuZ2luZV90eXBlICE9 IE5EQikKIHsKICAgU1RPUCBTTEFWRTsKICAgUkVTRVQgU0xBVkU7Cgo9PT0gbW9kaWZpZWQgZmls ZSAnbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMvcnBsX2ltcGxpY2l0X2NvbW1pdF9iaW5sb2cu dGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMvcnBsX2ltcGxpY2l0X2NvbW1p dF9iaW5sb2cudGVzdAkyMDEwLTA0LTIwIDA5OjEwOjQzICswMDAwCisrKyBiL215c3FsLXRlc3Qv ZXh0cmEvcnBsX3Rlc3RzL3JwbF9pbXBsaWNpdF9jb21taXRfYmlubG9nLnRlc3QJMjAxMC0xMS0x NyAxMDoxNjoxMyArMDAwMApAQCAtMzMsNyArMzMsNyBAQCBJTlNFUlQgSU5UTyB0dF8yKGRkbF9j YXNlKSBWQUxVRVMoMCk7CiAtLWVjaG8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogU0VUIEFVVE9DT01NSVQ9 IDA7CiBsZXQgJGRkbF9jYXNlcz0gNDE7Ci13aGlsZSAoYFNFTEVDVCAkZGRsX2Nhc2VzID49IDFg KQord2hpbGUgKCRkZGxfY2FzZXMgPj0gMSkKIHsKICAgLS1lY2hvIC1iLWItYi1iLWItYi1iLWIt Yi1iLWItID4+IDw8IC1iLWItYi1iLWItYi1iLWItYi1iLWItCiAgIGxldCAkaW5fdGVtcG9yYXJ5 PSAibm8iOwpAQCAtNzYsNyArNzYsNyBAQCB3aGlsZSAoYFNFTEVDVCAkZGRsX2Nhc2VzID49IDFg KQogICAjIDY6IFJPVyBFVkVOVAogICAjIDc6IENPTU1JVAogICAjCi0gIGlmIChgc2VsZWN0ICck ZW5naW5lJyA9ICdOREInYCkKKyAgaWYgKCRlbmdpbmUgPT0gTkRCKQogICB7CiAgICAgbGV0ICRj b21taXRfZXZlbnRfcm93X251bWJlcj0gNzsKICAgfQpAQCAtODQsMTAgKzg0LDEwIEBAIHdoaWxl IChgU0VMRUNUICRkZGxfY2FzZXMgPj0gMWApCiAgIGxldCAkZmlyc3RfYmlubG9nX3Bvc2l0aW9u PSBxdWVyeV9nZXRfdmFsdWUoIlNIT1cgTUFTVEVSIFNUQVRVUyIsIFBvc2l0aW9uLCAxKTsKICAg LS1lbmFibGVfcXVlcnlfbG9nCiAgIGV2YWwgSU5TRVJUIElOVE8gdHRfMShkZGxfY2FzZSkgVkFM VUVTICgkZGRsX2Nhc2VzKTsKLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDQxYCkKKyAgaWYg KCRkZGxfY2FzZXMgPT0gNDEpCiAgIHsKICAgICBsZXQgJGNtZD0gTE9BRCBJTkRFWCBJTlRPIENB Q0hFIG50XzEgSUdOT1JFIExFQVZFUzsKLSAgICBpZiAoYFNFTEVDVCAnJGVuZ2luZScgPSAnTkRC J2ApCisgICAgaWYgKCRlbmdpbmUgPT0gTkRCKQogICAgIHsKICAgICAgICMgVGhpcyBzZWVtcyB0 byBiZSByZWxhdGVkIHRvIGVwb2Nocy4KICAgICAgICMgV2UgbmVlZCB0byBjaGVjayB0aGlzIGFn YWluc3QgYW4gdXBkYXRlZCB2ZXJzaW9uIG9yIGF2b2lkIGl0LgpAQCAtOTUsNyArOTUsNyBAQCB3 aGlsZSAoYFNFTEVDVCAkZGRsX2Nhc2VzID49IDFgKQogICAgICAgbGV0ICRjb21taXRfZXZlbnRf cm93X251bWJlcj0gNjsKICAgICB9CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDQw YCkKKyAgaWYgKCRkZGxfY2FzZXMgPT0gNDApCiAgIHsKICAgICBsZXQgJGNtZD0gTE9BRCBJTkRF WCBJTlRPIENBQ0hFIHR0XzEsIHR0XzIgSUdOT1JFIExFQVZFUzsKICAgICAjCkBAIC0xMDksMTYg KzEwOSwxNiBAQCB3aGlsZSAoYFNFTEVDVCAkZGRsX2Nhc2VzID49IDFgKQogICAgICMgNTogUk9X IEVWRU5UCiAgICAgIyA2OiBDT01NSVQKICAgICAjCi0gICAgaWYgKGBTRUxFQ1QgJyRlbmdpbmUn ID0gJ05EQidgKQorICAgIGlmICgkZW5naW5lID09IE5EQikKICAgICB7CiAgICAgICBsZXQgJGNv bW1pdF9ldmVudF9yb3dfbnVtYmVyPSA2OwogICAgIH0KICAgfQotICBpZiAoYFNFTEVDVCAkZGRs X2Nhc2VzID0gMzlgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAzOSkKICAgewogICAgIGxldCAkY21k PSBBTkFMWVpFIFRBQkxFIG50XzE7CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDM4 YCkKKyAgaWYgKCRkZGxfY2FzZXMgPT0gMzgpCiAgIHsKICAgICBsZXQgJGNtZD0gQ0hFQ0sgVEFC TEUgbnRfMTsKICAgICAjCkBAIC0xMzIsMjAgKzEzMiwyMCBAQCB3aGlsZSAoYFNFTEVDVCAkZGRs X2Nhc2VzID49IDFgKQogICAgICMgNTogUk9XIEVWRU5UCiAgICAgIyA2OiBDT01NSVQKICAgICAj Ci0gICAgaWYgKGBTRUxFQ1QgJyRlbmdpbmUnID0gJ05EQidgKQorICAgIGlmICgkZW5naW5lID09 IE5EQikKICAgICB7CiAgICAgICBsZXQgJGNvbW1pdF9ldmVudF9yb3dfbnVtYmVyPSA2OwogICAg IH0KICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gMzdgKQorICBpZiAoJGRkbF9jYXNl cyA9PSAzNykKICAgewogICAgIGxldCAkY21kPSBPUFRJTUlaRSBUQUJMRSBudF8xOwogICB9Ci0g IGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSAzNmApCisgIGlmICgkZGRsX2Nhc2VzID09IDM2KQog ICB7CiAgICAgbGV0ICRjbWQ9IFJFUEFJUiBUQUJMRSBudF8xOwogICB9Ci0gIGlmIChgU0VMRUNU ICRkZGxfY2FzZXMgPSAzNWApCisgIGlmICgkZGRsX2Nhc2VzID09IDM1KQogICB7CiAgICAgbGV0 ICRjbWQ9IExPQ0sgVEFCTEVTIHR0XzEgV1JJVEU7CiAgICAgIwpAQCAtMTU5LDEyICsxNTksMTIg QEAgd2hpbGUgKGBTRUxFQ1QgJGRkbF9jYXNlcyA+PSAxYCkKICAgICAjIDU6IFJPVyBFVkVOVAog ICAgICMgNjogQ09NTUlUCiAgICAgIwotICAgIGlmIChgU0VMRUNUICckZW5naW5lJyA9ICdOREIn YCkKKyAgICBpZiAoJGVuZ2luZSA9PSBOREIpCiAgICAgewogICAgICAgbGV0ICRjb21taXRfZXZl bnRfcm93X251bWJlcj0gNjsKICAgICB9CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9 IDM0YCkKKyAgaWYgKCRkZGxfY2FzZXMgPT0gMzQpCiAgIHsKICAgICBsZXQgJGNtZD0gVU5MT0NL IFRBQkxFUzsKICAgICAjCkBAIC0xNzgsMjAgKzE3OCwyMCBAQCB3aGlsZSAoYFNFTEVDVCAkZGRs X2Nhc2VzID49IDFgKQogICAgICMgNTogUk9XIEVWRU5UCiAgICAgIyA2OiBDT01NSVQKICAgICAj Ci0gICAgaWYgKGBTRUxFQ1QgJyRlbmdpbmUnID0gJ05EQidgKQorICAgIGlmICgkZW5naW5lID09 IE5EQikKICAgICB7CiAgICAgICBsZXQgJGNvbW1pdF9ldmVudF9yb3dfbnVtYmVyPSA2OwogICAg IH0KICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gMzNgKQorICBpZiAoJGRkbF9jYXNl cyA9PSAzMykKICAgewogICAgIGxldCAkY21kPSBDUkVBVEUgVVNFUiAndXNlcidAJ2xvY2FsaG9z dCc7CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDMyYCkKKyAgaWYgKCRkZGxfY2Fz ZXMgPT0gMzIpCiAgIHsKICAgICBsZXQgJGNtZD0gR1JBTlQgQUxMIE9OICouKiBUTyAndXNlcidA J2xvY2FsaG9zdCc7CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDMxYCkKKyAgaWYg KCRkZGxfY2FzZXMgPT0gMzEpCiAgIHsKICAgICBsZXQgJGNtZD0gU0VUIFBBU1NXT1JEIEZPUiAn dXNlcidAJ2xvY2FsaG9zdCcgPSBQQVNTV09SRCgnbmV3cGFzcycpOwogICAgICMKQEAgLTIzMSwz NSArMjMxLDM1IEBAIHdoaWxlIChgU0VMRUNUICRkZGxfY2FzZXMgPj0gMWApCiAgICAgICBsZXQg JGNvbW1pdF9ldmVudF9yb3dfbnVtYmVyPSA3OwogICAgIH0KICAgfQotICBpZiAoYFNFTEVDVCAk ZGRsX2Nhc2VzID0gMzBgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAzMCkKICAgewogICAgIGxldCAk Y21kPSBSRVZPS0UgQUxMIFBSSVZJTEVHRVMsIEdSQU5UIE9QVElPTiBGUk9NICd1c2VyJ0AnbG9j YWxob3N0JzsKICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gMjlgKQorICBpZiAoJGRk bF9jYXNlcyA9PSAyOSkKICAgewogICAgIGxldCAkY21kPSBSRU5BTUUgVVNFUiAndXNlcidAJ2xv Y2FsaG9zdCcgVE8gJ3VzZXJfbmV3J0AnbG9jYWxob3N0JzsKICAgfQotICBpZiAoYFNFTEVDVCAk ZGRsX2Nhc2VzID0gMjhgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAyOCkKICAgewogICAgIGxldCAk Y21kPSBEUk9QIFVTRVIgJ3VzZXJfbmV3J0AnbG9jYWxob3N0JzsKICAgfQotICBpZiAoYFNFTEVD VCAkZGRsX2Nhc2VzID0gMjdgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAyNykKICAgewogICAgIGxl dCAkY21kPSBDUkVBVEUgRVZFTlQgZXZ0IE9OIFNDSEVEVUxFIEFUIENVUlJFTlRfVElNRVNUQU1Q ICsgSU5URVJWQUwgMSBIT1VSIERPIFNFTEVDVCAqIEZST00gdHRfMTsKICAgfQotICBpZiAoYFNF TEVDVCAkZGRsX2Nhc2VzID0gMjZgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAyNikKICAgewogICAg IGxldCAkY21kPSBBTFRFUiBFVkVOVCBldnQgQ09NTUVOVCAnZXZ0JzsKICAgfQotICBpZiAoYFNF TEVDVCAkZGRsX2Nhc2VzID0gMjVgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAyNSkKICAgewogICAg IGxldCAkY21kPSBEUk9QIEVWRU5UIGV2dDsKICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2Vz ID0gMjRgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAyNCkKICAgewogICAgIGxldCAkY21kPSBDUkVB VEUgVFJJR0dFUiB0ciBBRlRFUiBJTlNFUlQgT04gdHRfMSBGT1IgRUFDSCBST1cgVVBEQVRFIHR0 XzIgU0VUIGRkbF9jYXNlID0gZGRsX2Nhc2UgV0hFUkUgZGRsX2Nhc2U9IE5FVy5kZGxfY2FzZTsK ICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gMjNgKQorICBpZiAoJGRkbF9jYXNlcyA9 PSAyMykKICAgewogICAgIGxldCAkY21kPSBEUk9QIFRSSUdHRVIgdHI7CiAgICAgIwpAQCAtMjc3 LDQzICsyNzcsNDMgQEAgd2hpbGUgKGBTRUxFQ1QgJGRkbF9jYXNlcyA+PSAxYCkKICAgICAgIGxl dCAkY29tbWl0X2V2ZW50X3Jvd19udW1iZXI9IDU7CiAgICAgfQogICB9Ci0gIGlmIChgU0VMRUNU ICRkZGxfY2FzZXMgPSAyMmApCisgIGlmICgkZGRsX2Nhc2VzID09IDIyKQogICB7CiAgICAgbGV0 ICRjbWQ9IENSRUFURSBGVU5DVElPTiBmYyAoKSBSRVRVUk5TIFZBUkNIQVIoNjQpIFJFVFVSTiAi ZmMiOwogICB9Ci0gIGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSAyMWApCisgIGlmICgkZGRsX2Nh c2VzID09IDIxKQogICB7CiAgICAgbGV0ICRjbWQ9IEFMVEVSIEZVTkNUSU9OIGZjIENPTU1FTlQg J2ZjJzsKICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gMjBgKQorICBpZiAoJGRkbF9j YXNlcyA9PSAyMCkKICAgewogICAgIGxldCAkY21kPSBEUk9QIEZVTkNUSU9OIGZjOwogICB9Ci0g IGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSAxOWApCisgIGlmICgkZGRsX2Nhc2VzID09IDE5KQog ICB7CiAgICAgbGV0ICRjbWQ9IENSRUFURSBQUk9DRURVUkUgcGMgKCkgVVBEQVRFIHR0XzIgU0VU IGRkbF9jYXNlID0gZGRsX2Nhc2UgV0hFUkUgZGRsX2Nhc2U9IE5FVy5kZGxfY2FzZTsKICAgfQot ICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gMThgKQorICBpZiAoJGRkbF9jYXNlcyA9PSAxOCkK ICAgewogICAgIGxldCAkY21kPSBBTFRFUiBQUk9DRURVUkUgcGMgQ09NTUVOVCAncGMnOwogICB9 Ci0gIGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSAxN2ApCisgIGlmICgkZGRsX2Nhc2VzID09IDE3 KQogICB7CiAgICAgbGV0ICRjbWQ9IERST1AgUFJPQ0VEVVJFIHBjOwogICB9Ci0gIGlmIChgU0VM RUNUICRkZGxfY2FzZXMgPSAxNmApCisgIGlmICgkZGRsX2Nhc2VzID09IDE2KQogICB7CiAgICAg bGV0ICRjbWQ9IENSRUFURSBWSUVXIHYgQVMgU0VMRUNUICogRlJPTSB0dF8xOwogICB9Ci0gIGlm IChgU0VMRUNUICRkZGxfY2FzZXMgPSAxNWApCisgIGlmICgkZGRsX2Nhc2VzID09IDE1KQogICB7 CiAgICAgbGV0ICRjbWQ9IEFMVEVSIFZJRVcgdiBBUyBTRUxFQ1QgKiBGUk9NIHR0XzE7CiAgIH0K LSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDE0YCkKKyAgaWYgKCRkZGxfY2FzZXMgPT0gMTQp CiAgIHsKICAgICBsZXQgJGNtZD0gRFJPUCBWSUVXIHY7CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRk bF9jYXNlcyA9IDEzYCkKKyAgaWYgKCRkZGxfY2FzZXMgPT0gMTMpCiAgIHsKICAgICBsZXQgJGNt ZD0gQ1JFQVRFIElOREVYIGl4IE9OIHR0XzEoZGRsX2Nhc2UpOwogICAgICMKQEAgLTMyOCwxMiAr MzI4LDEyIEBAIHdoaWxlIChgU0VMRUNUICRkZGxfY2FzZXMgPj0gMWApCiAgICAgIyA2OiBDT01N SVQKICAgICAjIDc6IERETCBFVkVOVCB3aGljaCB0cmlnZ2VyZWQgdGhlIHByZXZpb3VzIGNvbW1t aXQuCiAgICAgIwotICAgIGlmIChgU0VMRUNUICckZW5naW5lJyA9ICdOREInYCkKKyAgICBpZiAo JGVuZ2luZSA9PSBOREIpCiAgICAgewogICAgICAgbGV0ICRjb21taXRfZXZlbnRfcm93X251bWJl cj0gNjsKICAgICB9CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDEyYCkKKyAgaWYg KCRkZGxfY2FzZXMgPT0gMTIpCiAgIHsKICAgICBsZXQgJGNtZD0gRFJPUCBJTkRFWCBpeCBPTiB0 dF8xOwogICAgICMKQEAgLTM0OCwxMiArMzQ4LDEyIEBAIHdoaWxlIChgU0VMRUNUICRkZGxfY2Fz ZXMgPj0gMWApCiAgICAgIyA2OiBDT01NSVQKICAgICAjIDc6IERETCBFVkVOVCB3aGljaCB0cmln Z2VyZWQgdGhlIHByZXZpb3VzIGNvbW1taXQuCiAgICAgIwotICAgIGlmIChgU0VMRUNUICckZW5n aW5lJyA9ICdOREInYCkKKyAgICBpZiAoJGVuZ2luZSA9PSBOREIpCiAgICAgewogICAgICAgbGV0 ICRjb21taXRfZXZlbnRfcm93X251bWJlcj0gNjsKICAgICB9CiAgIH0KLSAgaWYgKGBTRUxFQ1Qg JGRkbF9jYXNlcyA9IDExYCkKKyAgaWYgKCRkZGxfY2FzZXMgPT0gMTEpCiAgIHsKICAgICBsZXQg JGNtZD0gQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSB0dF94eCAoYSBpbnQpOwogICAgIGxldCAkaW5f dGVtcG9yYXJ5PSAieWVzIjsKQEAgLTQxMSw3ICs0MTEsNyBAQCB3aGlsZSAoYFNFTEVDVCAkZGRs X2Nhc2VzID49IDFgKQogICAgICAgbGV0ICRjb21taXRfZXZlbnRfcm93X251bWJlcj0gOTsKICAg ICB9CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDEwYCkKKyAgaWYgKCRkZGxfY2Fz ZXMgPT0gMTApCiAgIHsKICAgICBsZXQgJGNtZD0gQUxURVIgVEFCTEUgdHRfeHggQUREIENPTFVN TiAoYiBpbnQpOwogICAgICMKQEAgLTQzOCwxMiArNDM4LDEyIEBAIHdoaWxlIChgU0VMRUNUICRk ZGxfY2FzZXMgPj0gMWApCiAgICAgIyA1OiBST1cgRVZFTlQKICAgICAjIDY6IENPTU1JVAogICAg ICMKLSAgICBpZiAoYFNFTEVDVCAnJGVuZ2luZScgPSAnTkRCJ2ApCisgICAgaWYgKCRlbmdpbmUg PT0gTkRCKQogICAgIHsKICAgICAgIGxldCAkY29tbWl0X2V2ZW50X3Jvd19udW1iZXI9IDY7CiAg ICAgfQogICB9Ci0gIGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSA5YCkKKyAgaWYgKCRkZGxfY2Fz ZXMgPT0gOSkKICAgewogICAgIGxldCAkY21kPSBBTFRFUiBUQUJMRSB0dF94eCBSRU5BTUUgbmV3 X3R0X3h4OwogICAgICMKQEAgLTQ3MCwxMiArNDcwLDEyIEBAIHdoaWxlIChgU0VMRUNUICRkZGxf Y2FzZXMgPj0gMWApCiAgICAgIyA1OiBST1cgRVZFTlQKICAgICAjIDY6IENPTU1JVAogICAgICMK LSAgICBpZiAoYFNFTEVDVCAnJGVuZ2luZScgPSAnTkRCJ2ApCisgICAgaWYgKCRlbmdpbmUgPT0g TkRCKQogICAgIHsKICAgICAgIGxldCAkY29tbWl0X2V2ZW50X3Jvd19udW1iZXI9IDY7CiAgICAg fQogICB9Ci0gIGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSA4YCkKKyAgaWYgKCRkZGxfY2FzZXMg PT0gOCkKICAgewogICAgIGxldCAkY21kPSBEUk9QIFRFTVBPUkFSWSBUQUJMRSBJRiBFWElTVFMg bmV3X3R0X3h4OwogICAgIGxldCAkaW5fdGVtcG9yYXJ5PSAieWVzIjsKQEAgLTUyOCw3ICs1Mjgs NyBAQCB3aGlsZSAoYFNFTEVDVCAkZGRsX2Nhc2VzID49IDFgKQogICAgICMgODogUk9XIEVWRU5U CiAgICAgIyA5OiBDT01NSVQKICAgICAjCi0gICAgaWYgKGBTRUxFQ1QgJyRlbmdpbmUnID0gJ05E QidgKQorICAgIGlmICgkZW5naW5lID09IE5EQikKICAgICB7CiAgICAgICBsZXQgJGNvbW1pdF9l dmVudF9yb3dfbnVtYmVyPSA5OwogICAgIH0KQEAgLTU1MSwyNyArNTUxLDI3IEBAIHdoaWxlIChg U0VMRUNUICRkZGxfY2FzZXMgPj0gMWApCiAgICAgICBsZXQgJGNvbW1pdF9ldmVudF9yb3dfbnVt YmVyPSA5OwogICAgIH0KICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gN2ApCisgIGlm ICgkZGRsX2Nhc2VzID09IDcpCiAgIHsKICAgICBsZXQgJGNtZD0gQ1JFQVRFIFRBQkxFIHR0X3h4 IChhIGludCk7CiAgIH0KLSAgaWYgKGBTRUxFQ1QgJGRkbF9jYXNlcyA9IDZgKQorICBpZiAoJGRk bF9jYXNlcyA9PSA2KQogICB7CiAgICAgbGV0ICRjbWQ9IEFMVEVSIFRBQkxFIHR0X3h4IEFERCBD T0xVTU4gKGIgaW50KTsKICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gNWApCisgIGlm ICgkZGRsX2Nhc2VzID09IDUpCiAgIHsKICAgICBsZXQgJGNtZD0gUkVOQU1FIFRBQkxFIHR0X3h4 IFRPIG5ld190dF94eDsKICAgfQotICBpZiAoYFNFTEVDVCAkZGRsX2Nhc2VzID0gNGApCisgIGlm ICgkZGRsX2Nhc2VzID09IDQpCiAgIHsKICAgICBsZXQgJGNtZD0gVFJVTkNBVEUgVEFCTEUgbmV3 X3R0X3h4OwogICB9Ci0gIGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSAzYCkKKyAgaWYgKCRkZGxf Y2FzZXMgPT0gMykKICAgewogICAgIGxldCAkY21kPSBEUk9QIFRBQkxFIElGIEVYSVNUUyB0dF94 eCwgbmV3X3R0X3h4OwogICB9Ci0gIGlmIChgU0VMRUNUICRkZGxfY2FzZXMgPSAyYCkKKyAgaWYg KCRkZGxfY2FzZXMgPT0gMikKICAgewogICAgIGxldCAkY21kPSBDUkVBVEUgREFUQUJBU0UgZGI7 CiAgICAgIwpAQCAtNTg2LDEyICs1ODYsMTIgQEAgd2hpbGUgKGBTRUxFQ1QgJGRkbF9jYXNlcyA+ PSAxYCkKICAgICAjIDY6IENPTU1JVAogICAgICMgNzogRERMIEVWRU5UIHdoaWNoIHRyaWdnZXJl ZCB0aGUgcHJldmlvdXMgY29tbW1pdC4KICAgICAjCi0gICAgaWYgKGBTRUxFQ1QgJyRlbmdpbmUn ID0gJ05EQidgKQorICAgIGlmICgkZW5naW5lID09IE5EQikKICAgICB7CiAgICAgICBsZXQgJGNv bW1pdF9ldmVudF9yb3dfbnVtYmVyPSA2OwogICAgIH0KICAgfQotICBpZiAoYFNFTEVDVCAkZGRs X2Nhc2VzID0gMWApCisgIGlmICgkZGRsX2Nhc2VzID09IDEpCiAgIHsKICAgICBsZXQgJGNtZD0g RFJPUCBEQVRBQkFTRSBJRiBFWElTVFMgZGI7CiAgICAgIwpAQCAtNjA2LDcgKzYwNiw3IEBAIHdo aWxlIChgU0VMRUNUICRkZGxfY2FzZXMgPj0gMWApCiAgICAgIyA2OiBDT01NSVQKICAgICAjIDc6 IERETCBFVkVOVCB3aGljaCB0cmlnZ2VyZWQgdGhlIHByZXZpb3VzIGNvbW1taXQuCiAgICAgIwot ICAgIGlmIChgU0VMRUNUICckZW5naW5lJyA9ICdOREInYCkKKyAgICBpZiAoJGVuZ2luZSA9PSBO REIpCiAgICAgewogICAgICAgbGV0ICRjb21taXRfZXZlbnRfcm93X251bWJlcj0gNjsKICAgICB9 CkBAIC02MTgsMTQgKzYxOCwxNCBAQCB3aGlsZSAoYFNFTEVDVCAkZGRsX2Nhc2VzID49IDFgKQog ICAjIGNvbW1pdC4gVGhlIGZsYWcgaW5fdGVtcG9yYXJ5IGlzIHVzZWQgdG8gYXZvaWQgYWJvcnRp bmcgdGhlIHRlc3QgaW4gc3VjaAogICAjIGNhc2VzLiBUaHVzIHdlIGZvcmNlIHRoZSBjb21taXQu CiAgICMKLSAgaWYgKGBTRUxFQ1QgJGluX3RlbXBvcmFyeSA9ICJ5ZXMiYCkKKyAgaWYgKCRpbl90 ZW1wb3JhcnkgPT0gInllcyIpCiAgIHsKICAgICAtLWV2YWwgQ09NTUlUCiAgIH0KICAgbGV0ICRl dmVudF9jb21taXQ9IHF1ZXJ5X2dldF92YWx1ZSgiU0hPVyBCSU5MT0cgRVZFTlRTIEZST00gJGZp cnN0X2JpbmxvZ19wb3NpdGlvbiIsIEluZm8sICRjb21taXRfZXZlbnRfcm93X251bWJlcik7CiAg IGlmIChgU0VMRUNUIFNVQlNUUklORygiJGV2ZW50X2NvbW1pdCIsMSw2KSAhPSAiQ09NTUlUImAp CiAgIHsKLSAgICBpZiAoYFNFTEVDVCAkb2sgPSAieWVzImApCisgICAgaWYgKCRvayA9PSAieWVz IikKICAgICB7CiAgICAgICAtLWVjaG8gaXQgKmRvZXMgbm90KiBjb21taXQgdGhlIGN1cnJlbnQg dHJhbnNhY3Rpb24uCiAgICAgICAtLWVjaG8gJGNtZAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3Fs LXRlc3QvZXh0cmEvcnBsX3Rlc3RzL3JwbF9pbnNlcnRfZGVsYXllZC50ZXN0JwotLS0gYS9teXNx bC10ZXN0L2V4dHJhL3JwbF90ZXN0cy9ycGxfaW5zZXJ0X2RlbGF5ZWQudGVzdAkyMDEwLTA2LTA4 IDAyOjI3OjM0ICswMDAwCisrKyBiL215c3FsLXRlc3QvZXh0cmEvcnBsX3Rlc3RzL3JwbF9pbnNl cnRfZGVsYXllZC50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTEyMSw3ICsxMjEs NyBAQCBpZiAgKGBTRUxFQ1QgQEBnbG9iYWwuYmlubG9nX2Zvcm1hdCA9ICdTCiAKICMgVGhlIHNl Y29uZCBJTlNFUlQgREVMQVlFRCBzdGF0ZW1lbnQgaXMgdGhlIDUgaXRlbSBpZiB0d28gSU5TRVJU IERFTEFZRUQgYXJlCiAjIGhhbmRsZWQgc2VwYXJhdGVseQotICBpZiAoYFNFTEVDVCAnJHN0bXQn ID0gJ0NPTU1JVCdgKQorICBpZiAoJHN0bXQgPT0gQ09NTUlUKQogICB7CiAgICAgLS1sZXQgJHN0 bXQ9IHF1ZXJ5X2dldF92YWx1ZShTSE9XIEJJTkxPRyBFVkVOVFMgSU4gJyRiaW5sb2dfZmlsZScg RlJPTSAkX3N0YXJ0LCBJbmZvLCA1KQogICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVz dC9leHRyYS9ycGxfdGVzdHMvcnBsX25vdF9udWxsLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvZXh0 cmEvcnBsX3Rlc3RzL3JwbF9ub3RfbnVsbC50ZXN0CTIwMTAtMDEtMDcgMTU6Mzk6MTEgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9leHRyYS9ycGxfdGVzdHMvcnBsX25vdF9udWxsLnRlc3QJMjAxMC0x MS0xNyAxMDoxNjoxMyArMDAwMApAQCAtMTc3LDcgKzE3Nyw3IEBAIHN5bmNfc2xhdmVfd2l0aF9t YXN0ZXI7CiAjLS1zb3VyY2UgaW5jbHVkZS93YWl0X2Zvcl9zbGF2ZV90b19zdGFydC5pbmMKICMK ICNsZXQgJHk9MDsKLSN3aGlsZSAoYHNlbGVjdCAkeSA8IDZgKQorI3doaWxlICgkeSA8IDYpCiAj ewogIyAgY29ubmVjdGlvbiBtYXN0ZXI7CiAjCkBAIC0yMDIsMjEgKzIwMiwyMSBAQCBzeW5jX3Ns YXZlX3dpdGhfbWFzdGVyOwogIyAgYGNgIElOVCBERUZBVUxUIDUwMCwgCiAjICBQUklNQVJZIEtF WShgYWApKSBFTkdJTkU9JGVuZ2luZSBERUZBVUxUIENIQVJTRVQ9TEFUSU4xOwogIyAgCi0jICBp ZiAoYHNlbGVjdCAkeT0wYCkKKyMgIGlmICgkeT09MCkKICMgIHsKICMgICAgLS1lY2hvICoqKioq KioqKioqKiogRVhFQ1VUSU9OIFdJVEggSU5TRVJUUyAqKioqKioqKioqKioqCiAjICAgIGNvbm5l Y3Rpb24gbWFzdGVyOwogIyAgICBJTlNFUlQgSU5UTyB0MShhKSBWQUxVRVMgKDEpOwogIyAgfQog IyAgCi0jICBpZiAoYHNlbGVjdCAkeT0xYCkKKyMgIGlmICgkeT09MSkKICMgIHsKICMgICAgLS1l Y2hvICoqKioqKioqKioqKiogRVhFQ1VUSU9OIFdJVEggSU5TRVJUUyAqKioqKioqKioqKioqCiAj ICAgIGNvbm5lY3Rpb24gbWFzdGVyOwogIyAgICBJTlNFUlQgSU5UTyB0MShhLCBiKSBWQUxVRVMg KDEsIE5VTEwpOwogIyAgfQogIyAgCi0jICBpZiAoYHNlbGVjdCAkeT0yYCkKKyMgIGlmICgkeT09 MikKICMgIHsKICMgICAgLS1lY2hvICoqKioqKioqKioqKiogRVhFQ1VUSU9OIFdJVEggVVBEQVRF UyAqKioqKioqKioqKioqCiAjICAgIGNvbm5lY3Rpb24gbWFzdGVyOwpAQCAtMjI1LDE0ICsyMjUs MTQgQEAgc3luY19zbGF2ZV93aXRoX21hc3RlcjsKICMgICAgVVBEQVRFIHQzIFNFVCBiID0gTlVM TCB3aGVyZSBhPSAxOwogIyAgfQogIyAgCi0jICBpZiAoYHNlbGVjdCAkeT0zYCkKKyMgIGlmICgk eT09MykKICMgIHsKICMgICAgLS1lY2hvICoqKioqKioqKioqKiogRVhFQ1VUSU9OIFdJVEggSU5T RVJUUy9SRVBMQUNFUyAqKioqKioqKioqKioqCiAjICAgIGNvbm5lY3Rpb24gbWFzdGVyOwogIyAg ICBSRVBMQUNFIElOVE8gdDMoYSwgYikgVkFMVUVTICgxLCBudWxsKTsKICMgIH0KICMgICAKLSMg IGlmIChgc2VsZWN0ICR5PTRgKQorIyAgaWYgKCR5PT00KQogIyAgewogIyAgICAtLWVjaG8gKioq KioqKioqKioqKiBFWEVDVVRJT04gV0lUSCBVUERBVEVTL1JFUExBQ0VTICoqKioqKioqKioqKioK ICMgICAgY29ubmVjdGlvbiBtYXN0ZXI7CkBAIC0yNDAsNyArMjQwLDcgQEAgc3luY19zbGF2ZV93 aXRoX21hc3RlcjsKICMgICAgUkVQTEFDRSBJTlRPIHQzKGEsIGIpIFZBTFVFUyAoMSwgbnVsbCk7 CiAjICB9CiAjICAgCi0jICBpZiAoYHNlbGVjdCAkeT01YCkKKyMgIGlmICgkeT09NSkKICMgIHsK ICMgICAgLS1lY2hvICoqKioqKioqKioqKiogRVhFQ1VUSU9OIFdJVEggTVVMVEktUk9XIElOU0VS VFMgKioqKioqKioqKioqKgogIyAgICBjb25uZWN0aW9uIG1hc3RlcjsKCj09PSBtb2RpZmllZCBm aWxlICdteXNxbC10ZXN0L2luY2x1ZGUvY2hlY2tfc2xhdmVfaXNfcnVubmluZy5pbmMnCi0tLSBh L215c3FsLXRlc3QvaW5jbHVkZS9jaGVja19zbGF2ZV9pc19ydW5uaW5nLmluYwkyMDEwLTA1LTI2 IDE0OjM0OjI1ICswMDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS9jaGVja19zbGF2ZV9pc19y dW5uaW5nLmluYwkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC04LDEwICs4LDE4IEBACiAK IC0tZWNobyBDaGVja2luZyB0aGF0IGJvdGggc2xhdmUgdGhyZWFkcyBhcmUgcnVubmluZy4KIAor LS1sZXQgJHJ1bm5pbmc9IDEKIC0tbGV0ICRzbGF2ZV9zcWxfcnVubmluZyA9IHF1ZXJ5X2dldF92 YWx1ZShTSE9XIFNMQVZFIFNUQVRVUywgU2xhdmVfU1FMX1J1bm5pbmcsIDEpCiAtLWxldCAkc2xh dmVfaW9fcnVubmluZyA9IHF1ZXJ5X2dldF92YWx1ZShTSE9XIFNMQVZFIFNUQVRVUywgU2xhdmVf SU9fUnVubmluZywgMSkKIAotaWYgKGBTRUxFQ1QgJyRzbGF2ZV9zcWxfcnVubmluZycgIT0gJ1ll cycgT1IgJyRzbGF2ZV9pb19ydW5uaW5nJyAhPSAnWWVzJ2ApIHsKK2lmICgkc2xhdmVfc3FsX3J1 bm5pbmcgIT0gWWVzKSB7CisgIC0tbGV0ICRydW5uaW5nPSAwCit9CitpZiAoJHNsYXZlX2lvX3J1 bm5pbmcgIT0gWWVzKSB7CisgIC0tbGV0ICRydW5uaW5nPSAwCit9CisKK2lmICghJHJ1bm5pbmcp IHsKICAgLS1lY2hvIFNsYXZlIG5vdCBydW5uaW5nOiBTbGF2ZV9TUUxfUnVubmluZyA9ICRzbGF2 ZV9zcWxfcnVubmluZyBTbGF2ZV9JT19SdW5uaW5nID0gJHNsYXZlX2lvX3J1bm5pbmcKICAgLS1z b3VyY2UgaW5jbHVkZS9zaG93X3JwbF9kZWJ1Z19pbmZvLmluYwogICAtLWRpZSBFeHBlY3RlZCBz bGF2ZSB0byBiZSBydW5uaW5nLCBidXQgaXQgd2FzIG5vdCBydW5uaW5nLgoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3QvaW5jbHVkZS9jaGVja19zbGF2ZV9wYXJhbS5pbmMnCi0tLSBhL215 c3FsLXRlc3QvaW5jbHVkZS9jaGVja19zbGF2ZV9wYXJhbS5pbmMJMjAxMC0wNS0yNiAxNDozNDoy NSArMDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1ZGUvY2hlY2tfc2xhdmVfcGFyYW0uaW5jCTIw MTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTksNyArOSw3IEBACiAjIC0tc291cmNlIGluY2x1 ZGUvY2hlY2tfc2xhdmVfcGFyYW0uaW5jCiAKIC0tbGV0ICRfcGFyYW1fdmFsdWU9IHF1ZXJ5X2dl dF92YWx1ZShTSE9XIFNMQVZFIFNUQVRVUywgJHNsYXZlX3BhcmFtLCAxKQotaWYgKGBTRUxFQ1Qg JyRfcGFyYW1fdmFsdWUnICE9ICckc2xhdmVfcGFyYW1fdmFsdWUnYCkgeworaWYgKCRfcGFyYW1f dmFsdWUgIT0gJHNsYXZlX3BhcmFtX3ZhbHVlKSB7CiAgIC0tZWNobyBXcm9uZyB2YWx1ZSBmb3Ig JHNsYXZlX3BhcmFtLiBFeHBlY3RlZCAnJHNsYXZlX3BhcmFtX3ZhbHVlJywgZ290ICckX3BhcmFt X3ZhbHVlJwogICAtLXNvdXJjZSBpbmNsdWRlL3Nob3dfcnBsX2RlYnVnX2luZm8uaW5jCiAgIC0t ZGllIFdyb25nIHZhbHVlIGZvciBzbGF2ZSBwYXJhbWV0ZXIKCj09PSBtb2RpZmllZCBmaWxlICdt eXNxbC10ZXN0L2luY2x1ZGUvZGlmZl90YWJsZXMuaW5jJwotLS0gYS9teXNxbC10ZXN0L2luY2x1 ZGUvZGlmZl90YWJsZXMuaW5jCTIwMTAtMDctMDQgMDg6NDk6NDYgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9pbmNsdWRlL2RpZmZfdGFibGVzLmluYwkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBA IC02OSw3ICs2OSw3IEBAIHdoaWxlICgkX2RpZmZfaSkgewogIyBhbmQgY29ubmVjdCB0aGUgYXBw cm9wcmlhdGUgc2VydmVyLgogICBsZXQgJF9wb3M9IGBTRUxFQ1QgTE9DQVRFKCc6JywgJyRfZGlm Zl90YWJsZScpYDsKICAgbGV0ICRfZGlmZl9jb25uPWBTRUxFQ1QgU1VCU1RSKCckX2RpZmZfdGFi bGUnLCAxLCAkX3Bvcy0xKWA7Ci0gIGlmIChgU0VMRUNUICdYWCRfZGlmZl9jb25uJyA8PiAnWFgn YCkgeworICBpZiAoJF9kaWZmX2Nvbm4pIHsKICAgICBsZXQgJF9kaWZmX3RhYmxlPWBTRUxFQ1Qg U1VCU1RSKCckX2RpZmZfdGFibGUnLCAkX3BvcysxKWA7CiAgICAgY29ubmVjdGlvbiAkX2RpZmZf Y29ubjsKICAgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvaW5jbHVkZS9oYXZlX2V4 YW1wbGVfcGx1Z2luLmluYycKLS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVfZXhhbXBsZV9w bHVnaW4uaW5jCTIwMDktMTEtMTAgMTg6NDU6MTUgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9pbmNs dWRlL2hhdmVfZXhhbXBsZV9wbHVnaW4uaW5jCTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAg LTgsNyArOCw3IEBAIGlmIChgU0VMRUNUIEBAaGF2ZV9keW5hbWljX2xvYWRpbmcgIT0gJ1kKICMK ICMgQ2hlY2sgaWYgdGhlIHZhcmlhYmxlIEVYQU1QTEVfUExVR0lOIGlzIHNldAogIwotaWYgKGBT RUxFQ1QgTEVOR1RIKCckRVhBTVBMRV9QTFVHSU4nKSA9IDBgKSB7CitpZiAoISRFWEFNUExFX1BM VUdJTikgewogICAtLXNraXAgRXhhbXBsZSBwbHVnaW4gcmVxdWlyZXMgdGhlIGVudmlyb25tZW50 IHZhcmlhYmxlIFwkRVhBTVBMRV9QTFVHSU4gdG8gYmUgc2V0IChub3JtYWxseSBkb25lIGJ5IG10 cikKIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvaW5jbHVkZS9oYXZlX3NlbWlz eW5jX3BsdWdpbi5pbmMnCi0tLSBhL215c3FsLXRlc3QvaW5jbHVkZS9oYXZlX3NlbWlzeW5jX3Bs dWdpbi5pbmMJMjAwOS0xMC0yOSAwNzoxNDo1MCArMDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1 ZGUvaGF2ZV9zZW1pc3luY19wbHVnaW4uaW5jCTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAg LTgsNyArOCw3IEBAIGlmIChgU0VMRUNUIEBAaGF2ZV9keW5hbWljX2xvYWRpbmcgIT0gJ1kKICMK ICMgQ2hlY2sgaWYgdGhlIHZhcmlhYmxlIFNFTUlTWU5DX01BU1RFUl9QTFVHSU4gaXMgc2V0CiAj Ci1pZiAoYHNlbGVjdCBMRU5HVEgoJyRTRU1JU1lOQ19NQVNURVJfUExVR0lOJykgPSAwYCkKK2lm ICghJFNFTUlTWU5DX01BU1RFUl9QTFVHSU4pCiB7CiAgIHNraXAgTmVlZCBzZW1pc3luYyBwbHVn aW5zOwogfQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvaW5jbHVkZS9oYXZlX3NpbXBs ZV9wYXJzZXIuaW5jJwotLS0gYS9teXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV9zaW1wbGVfcGFyc2Vy LmluYwkyMDA5LTExLTEwIDE4OjQ1OjE1ICswMDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS9o YXZlX3NpbXBsZV9wYXJzZXIuaW5jCTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTgsNyAr OCw3IEBAIGlmIChgU0VMRUNUIEBAaGF2ZV9keW5hbWljX2xvYWRpbmcgIT0gJ1kKICMKICMgQ2hl Y2sgaWYgdGhlIHZhcmlhYmxlIFNJTVBMRV9QQVJTRVIgaXMgc2V0CiAjCi1pZiAoYFNFTEVDVCBM RU5HVEgoJyRTSU1QTEVfUEFSU0VSJykgPSAwYCkgeworaWYgKCEkU0lNUExFX1BBUlNFUikgewog ICAtLXNraXAgc2ltcGxlIHBhcnNlciByZXF1aXJlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUg XCRTSU1QTEVfUEFSU0VSIHRvIGJlIHNldCAobm9ybWFsbHkgZG9uZSBieSBtdHIpCiB9CiAKCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV91ZGYuaW5jJwotLS0gYS9t eXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV91ZGYuaW5jCTIwMDktMTEtMTAgMTg6NDU6MTUgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVfdWRmLmluYwkyMDEwLTExLTE3IDEwOjE2OjEz ICswMDAwCkBAIC04LDcgKzgsNyBAQCBpZiAoYFNFTEVDVCBAQGhhdmVfZHluYW1pY19sb2FkaW5n ICE9ICdZCiAjCiAjIENoZWNrIGlmIHRoZSB2YXJpYWJsZSBVREZfRVhBTVBMRV9MSUIgaXMgc2V0 CiAjCi1pZiAoYFNFTEVDVCBMRU5HVEgoJyRVREZfRVhBTVBMRV9MSUInKSA9IDBgKSB7CitpZiAo ISRVREZfRVhBTVBMRV9MSUIpIHsKICAgLS1za2lwIFVERiByZXF1aXJlcyB0aGUgZW52aXJvbm1l bnQgdmFyaWFibGUgXCRVREZfRVhBTVBMRV9MSUIgdG8gYmUgc2V0IChub3JtYWxseSBkb25lIGJ5 IG10cikKIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvaW5jbHVkZS9teXNxbF91 cGdyYWRlX3ByZXBhcmF0aW9uLmluYycKLS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL215c3FsX3Vw Z3JhZGVfcHJlcGFyYXRpb24uaW5jCTIwMTAtMDgtMTEgMTc6NTY6NTYgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9pbmNsdWRlL215c3FsX3VwZ3JhZGVfcHJlcGFyYXRpb24uaW5jCTIwMTAtMTEtMTcg MTA6MTY6MTMgKzAwMDAKQEAgLTE3LDcgKzE3LDcgQEAgc2VsZWN0IExFTkdUSCgiJE1ZU1FMX1VQ R1JBREUiKT4wIGFzIGhhdgogIyBUaGVyZWZvcmUsIHRydW5jYXRlIHRoZSBsb2cgdGFibGUgaW4g YWR2YW5jZSBhbmQgaXNzdWUgYSBzdGF0ZW1lbnQKICMgdGhhdCBzaG91bGQgYmUgbG9nZ2VkLgog IwotaWYgKGBTRUxFQ1QgJFZBTEdSSU5EX1RFU1RgKQoraWYgKCRWQUxHUklORF9URVNUKQogewog ICAtLWRpc2FibGVfcXVlcnlfbG9nCiAgIC0tZGlzYWJsZV9yZXN1bHRfbG9nCgo9PT0gbW9kaWZp ZWQgZmlsZSAnbXlzcWwtdGVzdC9pbmNsdWRlL25vX3ZhbGdyaW5kX3dpdGhvdXRfYmlnLmluYycK LS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL25vX3ZhbGdyaW5kX3dpdGhvdXRfYmlnLmluYwkyMDA5 LTA2LTA5IDE0OjM2OjE0ICswMDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS9ub192YWxncmlu ZF93aXRob3V0X2JpZy5pbmMJMjAxMC0xMS0xNyAxMDoxNjoxMyArMDAwMApAQCAtNSw4ICs1LDkg QEAKICMgVGhlcmVmb3JlIHdlIHJlcXVpcmUgdGhhdCB0aGUgb3B0aW9uICItLWJpZy10ZXN0IiBp cyBhbHNvIHNldC4KICMKIAotaWYgKGBTRUxFQ1QgJFZBTEdSSU5EX1RFU1QgPD4gMCBBTkQgJyRC SUdfVEVTVCcgPSAnJ2ApCi17Ci0gICAtLXNraXAgTmVlZCAiLS1iaWctdGVzdCIgd2hlbiBydW5u aW5nIHdpdGggVmFsZ3JpbmQKK2lmICgkVkFMR1JJTkRfVEVTVCkgeworICBpZiAoISRCSUdfVEVT VCkKKyAgeworICAgIC0tc2tpcCBOZWVkICItLWJpZy10ZXN0IiB3aGVuIHJ1bm5pbmcgd2l0aCBW YWxncmluZAorICB9CiB9Ci0KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUv bm90X3BhcmFsbGVsLmluYycKLS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL25vdF9wYXJhbGxlbC5p bmMJMjAxMC0wNi0xNCAwOToyMzo0OSArMDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1ZGUvbm90 X3BhcmFsbGVsLmluYwkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC0xLDMgKzEsMyBAQAot aWYgKGBTRUxFQ1QgJyRNVFJfUEFSQUxMRUwnID4gMWApIHsKK2lmICgkTVRSX1BBUkFMTEVMID4g MSkgewogICAtLXNraXAgdGVzdCByZXF1aXJlcyAtLXBhcmFsbGVsPTEKIH0KCj09PSBtb2RpZmll ZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUvcnBsX2RpZmZfdGFibGVzLmluYycKLS0tIGEvbXlz cWwtdGVzdC9pbmNsdWRlL3JwbF9kaWZmX3RhYmxlcy5pbmMJMjAxMC0wOC0xOCAwNTo1ODoyMSAr MDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1ZGUvcnBsX2RpZmZfdGFibGVzLmluYwkyMDEwLTEx LTE3IDEwOjE2OjEzICswMDAwCkBAIC04LDEzICs4LDEzIEBACiAjIC0tc291cmNlIGluY2x1ZGUv cnBsX2RpZmZfdGFibGVzLmluYwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1pZiAoYFNFTEVD VCAiWFgkZGlmZl90YWJsZSIgPSAiWFgiYCkKK2lmICghJGRpZmZfdGFibGUpCiB7CiAgIC0tZGll IGRpZmZfdGFibGUgaXMgbnVsbC4KIH0KIAogLS1sZXQgJF9zZXJ2ZXJzPSBtYXN0ZXIsIHNsYXZl Ci1pZiAoYFNFTEVDVCAiWFgkZGlmZl9zZXJ2ZXJfbGlzdCIgPD4gIlhYImApCitpZiAoJGRpZmZf c2VydmVyX2xpc3QpCiB7CiAgIC0tbGV0ICRfc2VydmVycz0gJGRpZmZfc2VydmVyX2xpc3QKIH0K QEAgLTIyLDcgKzIyLDcgQEAgaWYgKGBTRUxFQ1QgIlhYJGRpZmZfc2VydmVyX2xpc3QiIDw+ICJY WAogLS1sZXQgJF9tYXN0ZXI9IGBTRUxFQ1QgU1VCU1RSSU5HX0lOREVYKCckX3NlcnZlcnMnLCAn LCcsIDEpYAogLS1sZXQgJF9zZXJ2ZXJzPSBgU0VMRUNUIExUUklNKFNVQlNUUklORygnJF9zZXJ2 ZXJzJywgTEVOR1RIKCckX21hc3RlcicpICsgMikpYAogY29ubmVjdGlvbiAkX21hc3RlcjsKLXdo aWxlIChgU0VMRUNUICJYWCRfc2VydmVycyIgPD4gIlhYImApCit3aGlsZSAoJF9zZXJ2ZXJzKQog ewogICAtLWxldCAkX3NsYXZlPSBgU0VMRUNUIFNVQlNUUklOR19JTkRFWCgnJF9zZXJ2ZXJzJywg JywnLCAxKWAKICAgLS1sZXQgJF9zZXJ2ZXJzPSBgU0VMRUNUIExUUklNKFNVQlNUUklORygnJF9z ZXJ2ZXJzJywgTEVOR1RIKCckX3NsYXZlJykgKyAyKSlgCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlz cWwtdGVzdC9pbmNsdWRlL3NldHVwX2Zha2VfcmVsYXlfbG9nLmluYycKLS0tIGEvbXlzcWwtdGVz dC9pbmNsdWRlL3NldHVwX2Zha2VfcmVsYXlfbG9nLmluYwkyMDEwLTEwLTIxIDEzOjI0OjMxICsw MDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS9zZXR1cF9mYWtlX3JlbGF5X2xvZy5pbmMJMjAx MC0xMS0xNyAxMDoxNjoxMyArMDAwMApAQCAtNDAsOSArNDAsMTYgQEAgbGV0ICRfZmFrZV9yZWxh eV9sb2dfcHJpbnRhYmxlPSBgU0VMRUNUCiAtLWVjaG8gU2V0dGluZyB1cCBmYWtlIHJlcGxpY2F0 aW9uIGZyb20gJF9mYWtlX3JlbGF5X2xvZ19wcmludGFibGUKIAogIyBTYW5pdHkgY2hlY2suCits ZXQgJHJ1bm5pbmc9IDA7CiBsZXQgJF9zcWxfcnVubmluZz0gcXVlcnlfZ2V0X3ZhbHVlKFNIT1cg U0xBVkUgU1RBVFVTLCBTbGF2ZV9TUUxfUnVubmluZywgMSk7CiBsZXQgJF9pb19ydW5uaW5nPSBx dWVyeV9nZXRfdmFsdWUoU0hPVyBTTEFWRSBTVEFUVVMsIFNsYXZlX0lPX1J1bm5pbmcsIDEpOwot aWYgKGBTRUxFQ1QgIiRfc3FsX3J1bm5pbmciID0gIlllcyIgT1IgIiRfaW9fcnVubmluZyIgPSAi WWVzImApIHsKK2lmICgkX3NxbF9ydW5uaW5nID09IFllcykgeworICBsZXQgJHJ1bm5pbmc9IDE7 Cit9CitpZiAoJF9pb19ydW5uaW5nID09IFllcykgeworICBsZXQgJHJ1bm5pbmc9IDE7Cit9Citp ZiAoJHJ1bm5pbmcpIHsKICAgLS1lY2hvIEVycm9yOiBTbGF2ZSB3YXMgcnVubmluZyB3aGVuIHRl c3QgY2FzZSBzb3VyY2VkCiAgIC0tZWNobyBpbmNsdWRlL3NldHVwX2Zha2VfcmVwbGljYXRpb24u aW5jCiAgIC0tZWNobyBTbGF2ZV9JT19SdW5uaW5nID0gJF9pb19ydW5uaW5nOyBTbGF2ZV9TUUxf UnVubmluZyA9ICRfc3FsX3J1bm5pbmcKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2lu Y2x1ZGUvc2hvd19ycGxfZGVidWdfaW5mby5pbmMnCi0tLSBhL215c3FsLXRlc3QvaW5jbHVkZS9z aG93X3JwbF9kZWJ1Z19pbmZvLmluYwkyMDEwLTEwLTIxIDEzOjI0OjMxICswMDAwCisrKyBiL215 c3FsLXRlc3QvaW5jbHVkZS9zaG93X3JwbF9kZWJ1Z19pbmZvLmluYwkyMDEwLTExLTE3IDEwOjE2 OjEzICswMDAwCkBAIC01MCw3ICs1MCw3IEBAIGV2YWwgU0hPVyBCSU5MT0cgRVZFTlRTIElOICck YmlubG9nX25hbWUKIGxldCAkX21hc3Rlcl9jb249ICRtYXN0ZXJfY29ubmVjdGlvbjsKIGlmICgh JF9tYXN0ZXJfY29uKQogewotICBpZiAoYFNFTEVDVCAnJF9jb24nID0gJ3NsYXZlJ2ApCisgIGlm ICgkX2NvbiA9PSBzbGF2ZSkKICAgewogICAgIGxldCAkX21hc3Rlcl9jb249IG1hc3RlcjsKICAg fQpAQCAtODAsNyArODAsNyBAQCBpZiAoJF9tYXN0ZXJfY29uKQogICAtLWVjaG8KICAgLS1lY2hv ICoqKiogU0hPVyBCSU5MT0cgRVZFTlRTIG9uICRfbWFzdGVyX2NvbiAqKioqCiAgIGV2YWwgU0hP VyBCSU5MT0cgRVZFTlRTIElOICckbWFzdGVyX2JpbmxvZ19uYW1lX3NxbCc7Ci0gIGlmIChgU0VM RUNUICckbWFzdGVyX2JpbmxvZ19uYW1lX2lvJyAhPSAnJG1hc3Rlcl9iaW5sb2dfbmFtZV9zcWwn YCkKKyAgaWYgKCRtYXN0ZXJfYmlubG9nX25hbWVfaW8gIT0gJG1hc3Rlcl9iaW5sb2dfbmFtZV9z cWwpCiAgIHsKICAgICBldmFsIFNIT1cgQklOTE9HIEVWRU5UUyBJTiAnJG1hc3Rlcl9iaW5sb2df bmFtZV9pbyc7CiAgIH0KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUvdHJ1 bmNhdGVfZmlsZS5pbmMnCi0tLSBhL215c3FsLXRlc3QvaW5jbHVkZS90cnVuY2F0ZV9maWxlLmlu YwkyMDEwLTAxLTA4IDA1OjQyOjIzICswMDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS90cnVu Y2F0ZV9maWxlLmluYwkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC0xLDYgKzEsNiBAQAog IyB0cnVuY2F0ZSBhIGdpdmluZyBmaWxlLCBhbGwgY29udGVudHMgb2YgdGhlIGZpbGUgYXJlIGJl IGNsZWFyZWQKIAotaWYgKGBTRUxFQ1QgJ3gkZmlsZScgPSAneCdgKQoraWYgKCEkZmlsZSkKIHsK ICAgLS1lY2hvIFBsZWFzZSBhc3NpZ24gYSBmaWxlIG5hbWUgdG8gJGZpbGUhIQogICBleGl0OwoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvaW5jbHVkZS93YWl0X2Zvcl9zbGF2ZV9pb190 b19zdG9wLmluYycKLS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL3dhaXRfZm9yX3NsYXZlX2lvX3Rv X3N0b3AuaW5jCTIwMDktMDEtMDkgMTQ6MTI6MzEgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9pbmNs dWRlL3dhaXRfZm9yX3NsYXZlX2lvX3RvX3N0b3AuaW5jCTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAw MDAKQEAgLTE0LDcgKzE0LDcgQEAKICMgaWYgc2VydmVyIGhhcyBub3QgdXNlZCBDSEFOR0UgTUFT VEVSIHRvIGluaXRpYXRlIHNsYXZlLCBTSE9XIFNMQVZFCiAjIFNUQVRVUyB3aWxsIHJldHVybiBh biBlbXB0eSBzZXQuCiBsZXQgJF9zbGF2ZV9pb19ydW5uaW5nPSBxdWVyeV9nZXRfdmFsdWUoIlNI T1cgU0xBVkUgU1RBVFVTIiwgU2xhdmVfSU9fUnVubmluZywgMSk7Ci1pZiAoYFNFTEVDVCAnJF9z bGF2ZV9pb19ydW5uaW5nJyAhPSAnTm8gc3VjaCByb3cnYCkKK2lmICgkX3NsYXZlX2lvX3J1bm5p bmcgIT0gTm8gc3VjaCByb3cpCiB7CiAgIGxldCAkc2xhdmVfcGFyYW09IFNsYXZlX0lPX1J1bm5p bmc7CiAgIGxldCAkc2xhdmVfcGFyYW1fdmFsdWU9IE5vOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215 c3FsLXRlc3QvaW5jbHVkZS93YWl0X2Zvcl9zbGF2ZV9zcWxfZXJyb3IuaW5jJwotLS0gYS9teXNx bC10ZXN0L2luY2x1ZGUvd2FpdF9mb3Jfc2xhdmVfc3FsX2Vycm9yLmluYwkyMDEwLTEwLTIxIDEz OjI0OjMxICswMDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS93YWl0X2Zvcl9zbGF2ZV9zcWxf ZXJyb3IuaW5jCTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTM0LDcgKzM0LDcgQEAgbGV0 ICRzbGF2ZV9lcnJvcl9tZXNzYWdlPSBGYWlsZWQgd2hpbGUgdwogc291cmNlIGluY2x1ZGUvd2Fp dF9mb3Jfc2xhdmVfcGFyYW0uaW5jOwogCiBsZXQgJF9lcnJvcj0gcXVlcnlfZ2V0X3ZhbHVlKFNI T1cgU0xBVkUgU1RBVFVTLCBMYXN0X1NRTF9FcnJubywgMSk7Ci1pZiAoYFNFTEVDVCAnJF9lcnJv cicgIT0gJyRzbGF2ZV9zcWxfZXJybm8nYCkgeworaWYgKCRfZXJyb3IgIT0gJHNsYXZlX3NxbF9l cnJubykgewogICAtLWVjaG8gKioqKiBTbGF2ZSBzdG9wcGVkIHdpdGggd3JvbmcgZXJyb3IgY29k ZTogJF9lcnJvciAoZXhwZWN0ZWQgJHNsYXZlX3NxbF9lcnJubykgKioqKgogICBzb3VyY2UgaW5j bHVkZS9zaG93X3JwbF9kZWJ1Z19pbmZvLmluYzsKICAgLS1lY2hvICoqKiogU2xhdmUgc3RvcHBl ZCB3aXRoIHdyb25nIGVycm9yIGNvZGU6ICRfZXJyb3IgKGV4cGVjdGVkICRzbGF2ZV9zcWxfZXJy bm8pICoqKioKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUvd2FpdF9mb3Jf c2xhdmVfc3FsX3RvX3N0b3AuaW5jJwotLS0gYS9teXNxbC10ZXN0L2luY2x1ZGUvd2FpdF9mb3Jf c2xhdmVfc3FsX3RvX3N0b3AuaW5jCTIwMDktMDEtMDkgMTQ6MTI6MzEgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9pbmNsdWRlL3dhaXRfZm9yX3NsYXZlX3NxbF90b19zdG9wLmluYwkyMDEwLTExLTE3 IDEwOjE2OjEzICswMDAwCkBAIC0xNCw3ICsxNCw3IEBACiAjIGlmIHNlcnZlciBoYXMgbm90IHVz ZWQgQ0hBTkdFIE1BU1RFUiB0byBpbml0aWF0ZSBzbGF2ZSwgU0hPVyBTTEFWRQogIyBTVEFUVVMg d2lsbCByZXR1cm4gYW4gZW1wdHkgc2V0LgogbGV0ICRfc2xhdmVfaW9fcnVubmluZz0gcXVlcnlf Z2V0X3ZhbHVlKCJTSE9XIFNMQVZFIFNUQVRVUyIsIFNsYXZlX0lPX1J1bm5pbmcsIDEpOwotaWYg KGBTRUxFQ1QgJyRfc2xhdmVfaW9fcnVubmluZycgIT0gJ05vIHN1Y2ggcm93J2ApCitpZiAoJF9z bGF2ZV9pb19ydW5uaW5nICE9IE5vIHN1Y2ggcm93KQogewogICBsZXQgJHNsYXZlX3BhcmFtPSBT bGF2ZV9TUUxfUnVubmluZzsKICAgbGV0ICRzbGF2ZV9wYXJhbV92YWx1ZT0gTm87Cgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9pbmNsdWRlL3dhaXRfZm9yX3NsYXZlX3RvX3N0b3AuaW5j JwotLS0gYS9teXNxbC10ZXN0L2luY2x1ZGUvd2FpdF9mb3Jfc2xhdmVfdG9fc3RvcC5pbmMJMjAw OS0wMS0wOSAxNDoxMjozMSArMDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1ZGUvd2FpdF9mb3Jf c2xhdmVfdG9fc3RvcC5pbmMJMjAxMC0xMS0xNyAxMDoxNjoxMyArMDAwMApAQCAtMTQsNyArMTQs NyBAQAogIyBpZiBzZXJ2ZXIgaGFzIG5vdCB1c2VkIENIQU5HRSBNQVNURVIgdG8gaW5pdGlhdGUg c2xhdmUsIFNIT1cgU0xBVkUKICMgU1RBVFVTIHdpbGwgcmV0dXJuIGFuIGVtcHR5IHNldC4KIGxl dCAkX3NsYXZlX2lvX3J1bm5pbmc9IHF1ZXJ5X2dldF92YWx1ZSgiU0hPVyBTTEFWRSBTVEFUVVMi LCBTbGF2ZV9JT19SdW5uaW5nLCAxKTsKLWlmIChgU0VMRUNUICckX3NsYXZlX2lvX3J1bm5pbmcn ICE9ICdObyBzdWNoIHJvdydgKQoraWYgKCRfc2xhdmVfaW9fcnVubmluZyAhPSBObyBzdWNoIHJv dykKIHsKICAgbGV0ICRzbGF2ZV9lcnJvcl9tZXNzYWdlPSBGYWlsZWQgd2hpbGUgd2FpdGluZyBm b3Igc2xhdmUgdG8gc3RvcDsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvaW5jbHVk ZS93YWl0X3Nob3dfY29uZGl0aW9uLmluYycKLS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL3dhaXRf c2hvd19jb25kaXRpb24uaW5jCTIwMDktMTAtMjAgMDY6MzA6MTUgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9pbmNsdWRlL3dhaXRfc2hvd19jb25kaXRpb24uaW5jCTIwMTAtMTEtMTcgMTA6MTY6MTMg KzAwMDAKQEAgLTUwLDcgKzUwLDcgQEAgaW5jICRtYXhfcnVuX3RpbWU7CiBsZXQgJGZvdW5kPSAw OwogbGV0ICRtYXhfZW5kX3RpbWU9IGBTRUxFQ1QgVU5JWF9USU1FU1RBTVAoKSArICRtYXhfcnVu X3RpbWVgOwogCi1pZiAoYFNFTEVDVCAnJHdhaXRfZm9yX2FsbCcgIT0gJzEnYCkKK2lmICgkd2Fp dF9mb3JfYWxsICE9IDEpCiB7CiAgIHdoaWxlIChgU0VMRUNUIFVOSVhfVElNRVNUQU1QKCkgPD0g JG1heF9lbmRfdGltZSBBTkQgJGZvdW5kID0gMGApCiAgIHsKQEAgLTU4LDI0ICs1OCwyNyBAQCBp ZiAoYFNFTEVDVCAnJHdhaXRfZm9yX2FsbCcgIT0gJzEnYCkKICAgICAgcmVhbF9zbGVlcCAwLjI7 CiAgICAgIGxldCAkcm93bm89IDE7CiAgICAgIGxldCAkcHJvY2Vzc19yZXN1bHQ9IDE7Ci0gICAg IHdoaWxlIChgU0VMRUNUICRwcm9jZXNzX3Jlc3VsdCA9IDEgQU5EICRmb3VuZCA9IDBgKQorICAg ICBsZXQgJGRvX2xvb3A9IDE7CisgICAgIHdoaWxlICgkZG9fbG9vcCkKICAgICAgewogICAgICAg ICBsZXQgJGZpZWxkX3ZhbHVlPSBxdWVyeV9nZXRfdmFsdWUoJHNob3dfc3RhdGVtZW50LCAkZmll bGQsICRyb3dubyk7CiAgICAgICAgIGlmIChgU0VMRUNUICckZmllbGRfdmFsdWUnICRjb25kaXRp b25gKQogICAgICAgICB7CiAgICAgICAgICAgIGxldCAkZm91bmQ9IDE7CisJICAgbGV0ICRkb19s b29wPSAwOwogICAgICAgICB9Ci0gICAgICAgIGlmIChgU0VMRUNUICckZmllbGRfdmFsdWUnID0g J05vIHN1Y2ggcm93J2ApCisgICAgICAgIGlmICgkZmllbGRfdmFsdWUgPT0gTm8gc3VjaCByb3cp CiAgICAgICAgIHsKICAgICAgICAgICAgIyBXZSBhcmUgYmVoaW5kIHRoZSBsYXN0IHJvdyBvZiB0 aGUgcmVzdWx0IHNldC4KICAgICAgICAgICAgbGV0ICRwcm9jZXNzX3Jlc3VsdD0gMDsKKwkgICBs ZXQgJGRvX2xvb3A9IDA7CiAgICAgICAgIH0KICAgICAgICAgaW5jICRyb3dubzsKICAgICAgfQog ICB9CiB9CiAKLWlmIChgU0VMRUNUICckd2FpdF9mb3JfYWxsJyA9ICcxJ2ApCitpZiAoJHdhaXRf Zm9yX2FsbCA9PSAxKQogewogICB3aGlsZSAoYFNFTEVDVCBVTklYX1RJTUVTVEFNUCgpIDw9ICRt YXhfZW5kX3RpbWUgQU5EICRmb3VuZCA9IDBgKQogICB7CkBAIC04MywxNiArODYsMTkgQEAgaWYg KGBTRUxFQ1QgJyR3YWl0X2Zvcl9hbGwnID0gJzEnYCkKICAgICAgcmVhbF9zbGVlcCAwLjI7CiAg ICAgIGxldCAkcm93bm89IDE7CiAgICAgIGxldCAkcHJvY2Vzc19yZXN1bHQ9IDE7Ci0gICAgIHdo aWxlIChgU0VMRUNUICRwcm9jZXNzX3Jlc3VsdCA9IDEgQU5EICRmb3VuZCA9IDBgKQorICAgICBs ZXQgJGRvX2xvb3A9IDE7CisgICAgIHdoaWxlICgkZG9fbG9vcCkKICAgICAgewogICAgICAgICBs ZXQgJGZpZWxkX3ZhbHVlPSBxdWVyeV9nZXRfdmFsdWUoJHNob3dfc3RhdGVtZW50LCAkZmllbGQs ICRyb3dubyk7Ci0gICAgICAgIGlmIChgU0VMRUNUICckZmllbGRfdmFsdWUnID0gJ05vIHN1Y2gg cm93J2ApCisgICAgICAgIGlmICgkZmllbGRfdmFsdWUgPT0gTm8gc3VjaCByb3cpCiAgICAgICAg IHsKICAgICAgICAgICAgbGV0ICRmb3VuZD0gMTsKKwkgICBsZXQgJGRvX2xvb3A9IDA7CiAgICAg ICAgIH0KICAgICAgICAgaWYgKGBTRUxFQ1QgJGZvdW5kID0gMCBBTkQgTk9UICckZmllbGRfdmFs dWUnICRjb25kaXRpb25gKQogICAgICAgICB7CiAgICAgICAgICAgIGxldCBwcm9jZXNzX3Jlc3Vs dD0gMDsKKwkgICBsZXQgJGRvX2xvb3A9IDA7CiAgICAgICAgIH0KICAgICAgICAgaW5jICRyb3du bzsKICAgICAgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9teXNxbHRlc3QucmVz dWx0JwotLS0gYS9teXNxbC10ZXN0L3IvbXlzcWx0ZXN0LnJlc3VsdAkyMDEwLTExLTEwIDA4OjQy OjE0ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9teXNxbHRlc3QucmVzdWx0CTIwMTAtMTEtMTcg MTA6MTg6NTIgKzAwMDAKQEAgLTMwOCw2ICszMDgsMTAgQEAgdmFyMyB0d28gY29sdW1ucyB3aXRo IHNhbWUgbmFtZQogdmFyNCBmcm9tIHF1ZXJ5IHRoYXQgcmV0dXJucyBOVUxMCiB2YXI1IGZyb20g cXVlcnkgdGhhdCByZXR1cm5zIG5vIHJvdwogZmFpbGluZyBxdWVyeSBpbiBsZXQKK2NyZWF0ZSB0 YWJsZSB0MSAoYSB2YXJjaGFyKDEwMCkpOworaW5zZXJ0IGludG8gdDEgdmFsdWVzICgnYHNlbGVj dCA0MmAnKTsKK2BzZWxlY3QgNDJgCitkcm9wIHRhYmxlIHQxOwogbXlzcWx0ZXN0OiBBdCBsaW5l IDE6IEVycm9yIHJ1bm5pbmcgcXVlcnkgJ2ZhaWxpbmcgcXVlcnknOiAxMDY0IFlvdSBoYXZlIGFu IGVycm9yIGluIHlvdXIgU1FMIHN5bnRheDsgY2hlY2sgdGhlIG1hbnVhbCB0aGF0IGNvcnJlc3Bv bmRzIHRvIHlvdXIgTXlTUUwgc2VydmVyIHZlcnNpb24gZm9yIHRoZSByaWdodCBzeW50YXggdG8g dXNlIG5lYXIgJ2ZhaWxpbmcgcXVlcnknIGF0IGxpbmUgMQogbXlzcWx0ZXN0OiBBdCBsaW5lIDE6 IE1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgJ2ZpbGVuYW1lJyB0byBjb21tYW5kICdzb3VyY2Un CiBteXNxbHRlc3Q6IEF0IGxpbmUgMTogQ291bGQgbm90IG9wZW4gJy4vbm9uX2V4aXN0aW5nRmls ZScgZm9yIHJlYWRpbmcsIGVycm5vOiAyCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9z dWl0ZS9iaW5sb2cvdC9iaW5sb2dfcm93X215c3FsYmlubG9nX2RiX2ZpbHRlci50ZXN0JwotLS0g YS9teXNxbC10ZXN0L3N1aXRlL2JpbmxvZy90L2JpbmxvZ19yb3dfbXlzcWxiaW5sb2dfZGJfZmls dGVyLnRlc3QJMjAwOS0wOS0zMCAwMjozMToyNSArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRl L2JpbmxvZy90L2JpbmxvZ19yb3dfbXlzcWxiaW5sb2dfZGJfZmlsdGVyLnRlc3QJMjAxMC0xMS0x NyAxMDoxNjoxMyArMDAwMApAQCAtODMsMTcgKzgzLDE3IEBAIHdoaWxlKCRpKQogICAtLSBsZXQg JGZsYWdzPS0tZGF0YWJhc2U9YjQyOTQxCiAKICAgIyBjb25zdHJ1Y3QgQ0xJIGZvciBteXNxbGJp bmxvZwotICBpZihgU0VMRUNUICRpPTNgKQorICBpZigkaT09MykKICAgewogICAgIC0tIGxldCAk ZmxhZ3M9ICRmbGFncyAtLXZlcmJvc2UgLS1oZXhkdW1wCiAgIH0KIAotICBpZihgU0VMRUNUICRp PTJgKQorICBpZigkaT09MikKICAgewogICAgIC0tIGxldCAkZmxhZ3M9ICRmbGFncyAtLXZlcmJv c2UKICAgfQogCi0jICBpZihgU0VMRUNUICRpPTFgKQorIyAgaWYoJGk9PTEpCiAjICB7CiAgICAg IyBkbyBub3RoaW5nICRmbGFncyBpcyBhbHJlYWR5IHNldCBhcyBpdCBzaG91bGQgYmUKICMgIH0K Cj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2JpbmxvZy90L2JpbmxvZ19zdG1f dW5zYWZlX3dhcm5pbmcudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9iaW5sb2cvdC9iaW5s b2dfc3RtX3Vuc2FmZV93YXJuaW5nLnRlc3QJMjAxMC0wOC0xMCAxMTozMjo1NCArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL2JpbmxvZy90L2JpbmxvZ19zdG1fdW5zYWZlX3dhcm5pbmcudGVz dAkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC0xMTYsNyArMTE2LDcgQEAgRFJPUCBUQUJM RSB0MTsKIFNFVCBHTE9CQUwgbG9nX3dhcm5pbmdzID0gQG9sZF9sb2dfd2FybmluZ3M7CiAKIGxl dCAkbG9nX2Vycm9yXz0gYFNFTEVDVCBAQEdMT0JBTC5sb2dfZXJyb3JgOwotaWYoIWBzZWxlY3Qg TEVOR1RIKCckbG9nX2Vycm9yXycpYCkKK2lmKCEkbG9nX2Vycm9yXykKIHsKICAgIyBNeVNRTCBT ZXJ2ZXIgb24gd2luZG93cyBpcyBzdGFydGVkIHdpdGggLS1jb25zb2xlIGFuZCB0aHVzCiAgICMg ZG9lcyBub3Qga25vdyB0aGUgbG9jYXRpb24gb2YgaXRzIC5lcnIgbG9nLCB1c2UgZGVmYXVsdCBs b2NhdGlvbgoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvYmlubG9nL3QvYmlu bG9nX3Vuc2FmZS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2JpbmxvZy90L2JpbmxvZ191 bnNhZmUudGVzdAkyMDEwLTEwLTIxIDA5OjIwOjUzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3Vp dGUvYmlubG9nL3QvYmlubG9nX3Vuc2FmZS50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAK QEAgLTE0MSwxMSArMTQxLDExIEBAIEVORHwKICMgSW4gZWFjaCBpdGVyYXRpb24gb2YgdGhpcyBs b29wLCB3ZSBzZWxlY3Qgb25lIG1ldGhvZCB0byBtYWtlIHRoZQogIyBzdGF0ZW1lbnQgdW5zYWZl LgogLS1sZXQgJHVuc2FmZV90eXBlPSAwCi13aGlsZSAoYFNFTEVDVCAkdW5zYWZlX3R5cGUgPCA5 YCkgeword2hpbGUgKCR1bnNhZmVfdHlwZSA8IDkpIHsKIAogICAtLWVjaG8KIAotICBpZiAoYFNF TEVDVCAkdW5zYWZlX3R5cGUgPSAwYCkgeworICBpZiAoJHVuc2FmZV90eXBlID09IDApIHsKICAg ICAtLWVjaG8gPT09PSBUZXN0aW5nIFVVSUQoKSB1bnNhZmVuZXNzID09PT0KICAgICAtLWxldCAk ZGVzY18wPSB1bnNhZmUgVVVJRCgpIGZ1bmN0aW9uCiAgICAgLS1sZXQgJHN0bXRfc2lkZWZfMD0g SU5TRVJUIElOVE8gdDAgVkFMVUVTIChVVUlEKCkpCkBAIC0xNTUsNyArMTU1LDcgQEAgd2hpbGUg KGBTRUxFQ1QgJHVuc2FmZV90eXBlIDwgOWApIHsKICAgICAtLWxldCAkQ1JDX0FSR19leHBlY3Rl ZF9udW1iZXJfb2Zfd2FybmluZ3M9IDEKICAgfQogCi0gIGlmIChgU0VMRUNUICR1bnNhZmVfdHlw ZSA9IDFgKSB7CisgIGlmICgkdW5zYWZlX3R5cGUgPT0gMSkgewogICAgIC0tZWNobyA9PT09IFRl c3RpbmcgQEBob3N0bmFtZSB1bnNhZmVuZXNzID09PT0KICAgICAtLWxldCAkZGVzY18wPSB1bnNh ZmUgQEBob3N0bmFtZSB2YXJpYWJsZQogICAgIC0tbGV0ICRzdG10X3NpZGVmXzA9IElOU0VSVCBJ TlRPIHQwIFZBTFVFUyAoQEBob3N0bmFtZSkKQEAgLTE2OCw3ICsxNjgsNyBAQCB3aGlsZSAoYFNF TEVDVCAkdW5zYWZlX3R5cGUgPCA5YCkgewogICAgIC0tbGV0ICRDUkNfQVJHX2V4cGVjdGVkX251 bWJlcl9vZl93YXJuaW5ncz0gMQogICB9CiAKLSAgaWYgKGBTRUxFQ1QgJHVuc2FmZV90eXBlID0g MmApIHsKKyAgaWYgKCR1bnNhZmVfdHlwZSA9PSAyKSB7CiAgICAgLS1lY2hvID09PT0gVGVzdGlu ZyBTRUxFQ1QuLi5MSU1JVCB1bnNhZmVuZXNzID09PT0KICAgICAtLWxldCAkZGVzY18wPSB1bnNh ZmUgU0VMRUNULi4uTElNSVQgc3RhdGVtZW50CiAgICAgLS1sZXQgJHN0bXRfc2lkZWZfMD0gSU5T RVJUIElOVE8gdDAgU0VMRUNUICogRlJPTSBkYXRhX3RhYmxlIExJTUlUIDEKQEAgLTE3OCw3ICsx NzgsNyBAQCB3aGlsZSAoYFNFTEVDVCAkdW5zYWZlX3R5cGUgPCA5YCkgewogICAgIC0tbGV0ICRD UkNfQVJHX2V4cGVjdGVkX251bWJlcl9vZl93YXJuaW5ncz0gMQogICB9CiAKLSAgaWYgKGBTRUxF Q1QgJHVuc2FmZV90eXBlID0gM2ApIHsKKyAgaWYgKCR1bnNhZmVfdHlwZSA9PSAzKSB7CiAgICAg LS1lY2hvID09PT0gVGVzdGluZyBJTlNFUlQgREVMQVlFRCBzYWZlbmVzcyBhZnRlciBCVUcjNTQ1 NzkgaXMgZml4ZWQgPT09PQogICAgIC0tbGV0ICRkZXNjXzA9IHVuc2FmZSBJTlNFUlQgREVMQVlF RCBzdGF0ZW1lbnQKICAgICAtLWxldCAkc3RtdF9zaWRlZl8wPSBJTlNFUlQgREVMQVlFRCBJTlRP IHQwIFZBTFVFUyAoMSksICgyKQpAQCAtMTg4LDcgKzE4OCw3IEBAIHdoaWxlIChgU0VMRUNUICR1 bnNhZmVfdHlwZSA8IDlgKSB7CiAgICAgLS1sZXQgJENSQ19BUkdfZXhwZWN0ZWRfbnVtYmVyX29m X3dhcm5pbmdzPSAwCiAgIH0KIAotICBpZiAoYFNFTEVDVCAkdW5zYWZlX3R5cGUgPSA0YCkgewor ICBpZiAoJHVuc2FmZV90eXBlID09IDQpIHsKICAgICAtLWVjaG8gPT09PSBUZXN0aW5nIHVuc2Fm ZW5lc3Mgb2YgaW5zZXJ0IG9mIHR3byBhdXRvaW5jIHZhbHVlcyA9PT09CiAgICAgLS1sZXQgJGRl c2NfMD0gdW5zYWZlIHVwZGF0ZSBvZiB0d28gYXV0b2luYyBjb2x1bW5zCiAgICAgLS1sZXQgJHN0 bXRfc2lkZWZfMD0gSU5TRVJUIElOVE8gZG91YmxlX2F1dG9pbmNfdGFibGUgVkFMVUVTIChOVUxM KQpAQCAtMTk4LDcgKzE5OCw3IEBAIHdoaWxlIChgU0VMRUNUICR1bnNhZmVfdHlwZSA8IDlgKSB7 CiAgICAgLS1sZXQgJENSQ19BUkdfZXhwZWN0ZWRfbnVtYmVyX29mX3dhcm5pbmdzPSAxCiAgIH0K IAotICBpZiAoYFNFTEVDVCAkdW5zYWZlX3R5cGUgPSA1YCkgeworICBpZiAoJHVuc2FmZV90eXBl ID09IDUpIHsKICAgICAtLWVjaG8gPT09PSBUZXN0aW5nIHVuc2FmZW5lc3Mgb2YgVURGJ3MgPT09 PQogICAgIC0tbGV0ICRkZXNjXzA9IHVuc2FmZSBVREYKICAgICAtLWxldCAkc3RtdF9zaWRlZl8w PSBJTlNFUlQgSU5UTyB0MCBWQUxVRVMgKG15ZnVuY19pbnQoMTApKQpAQCAtMjA4LDcgKzIwOCw3 IEBAIHdoaWxlIChgU0VMRUNUICR1bnNhZmVfdHlwZSA8IDlgKSB7CiAgICAgLS1sZXQgJENSQ19B UkdfZXhwZWN0ZWRfbnVtYmVyX29mX3dhcm5pbmdzPSAxCiAgIH0KIAotICBpZiAoYFNFTEVDVCAk dW5zYWZlX3R5cGUgPSA2YCkgeworICBpZiAoJHVuc2FmZV90eXBlID09IDYpIHsKICAgICAtLWVj aG8gPT09PSBUZXN0aW5nIHVuc2FmZW5lc3Mgb2YgYWNjZXNzIHRvIG15c3FsLmdlbmVyYWxfbG9n ID09PT0KICAgICAtLWxldCAkZGVzY18wPSB1bnNhZmUgdXNlIG9mIG15c3FsLmdlbmVyYWxfbG9n CiAgICAgLS1sZXQgJHN0bXRfc2lkZWZfMD0gSU5TRVJUIElOVE8gdDAgU0VMRUNUIENPVU5UKCop IEZST00gbXlzcWwuZ2VuZXJhbF9sb2cKQEAgLTIxOCw3ICsyMTgsNyBAQCB3aGlsZSAoYFNFTEVD VCAkdW5zYWZlX3R5cGUgPCA5YCkgewogICAgIC0tbGV0ICRDUkNfQVJHX2V4cGVjdGVkX251bWJl cl9vZl93YXJuaW5ncz0gMQogICB9CiAKLSAgaWYgKGBTRUxFQ1QgJHVuc2FmZV90eXBlID0gN2Ap IHsKKyAgaWYgKCR1bnNhZmVfdHlwZSA9PSA3KSB7CiAgICAgLS1lY2hvID09PT0gVGVzdGluZyBh IHN0YXRlbWVudCB0aGF0IGlzIHVuc2FmZSBpbiBtYW55IHdheXMgPT09PQogICAgIC0tbGV0ICRk ZXNjXzA9IHN0YXRlbWVudCB0aGF0IGlzIHVuc2FmZSBpbiBtYW55IHdheXMKICAgICAjIENvbmNh dGVuYXRlIHRocmVlIHVuc2FmZSB2YWx1ZXMsIGFuZCB0aGVuIGNvbmNhdGVuYXRlIE5VTEwgdG8K QEAgLTIzMCw3ICsyMzAsNyBAQCB3aGlsZSAoYFNFTEVDVCAkdW5zYWZlX3R5cGUgPCA5YCkgewog ICAgIC0tbGV0ICRDUkNfQVJHX2V4cGVjdGVkX251bWJlcl9vZl93YXJuaW5ncz0gNgogICB9CiAK LSAgaWYgKGBTRUxFQ1QgJHVuc2FmZV90eXBlID0gOGApIHsKKyAgaWYgKCR1bnNhZmVfdHlwZSA9 PSA4KSB7CiAgICAgLS1lY2hvID09PT0gVGVzdGluZyBhIHN0YXRlbWVudCB0aGF0IGlzIHVuc2Fm ZSBzZXZlcmFsIHRpbWVzID09PT0KICAgICAtLWxldCAkZGVzY18wPSBzdGF0ZW1lbnQgdGhhdCBp cyB1bnNhZmUgc2V2ZXJhbCB0aW1lcwogICAgIC0tbGV0ICRzdG10X3NpZGVmXzA9IElOU0VSVCBJ TlRPIHRhMCBWQUxVRVMgKG11bHRpX3Vuc2FmZV9mdW5jKCkpCkBAIC0yNDksNyArMjQ5LDcgQEAg d2hpbGUgKGBTRUxFQ1QgJHVuc2FmZV90eXBlIDwgOWApIHsKICAgIyBjb25zdHJ1Y3QuIEluc3Rl YWQsIHdlIGp1c3QgaW52b2tlIHRoZSB1bnNhZmUgc3RhdGVtZW50IGRpcmVjdGx5LgogCiAgIC0t bGV0ICRjYWxsX3R5cGVfMT0gMAotICB3aGlsZSAoYFNFTEVDVCAkY2FsbF90eXBlXzEgPCA4YCkg eworICB3aGlsZSAoJGNhbGxfdHlwZV8xIDwgOCkgewogICAgICMtLWVjaG8gZGVidWc6IGxldmVs IDEsIHR5cGVzICRjYWxsX3R5cGVfMSAtPiAkdW5zYWZlX3R5cGUKICAgICAtLWxldCAkQ1JDX0FS R19sZXZlbD0gMQogICAgIC0tbGV0ICRDUkNfQVJHX3R5cGU9ICRjYWxsX3R5cGVfMQpAQCAtMjgw LDcgKzI4MCw3IEBAIHdoaWxlIChgU0VMRUNUICR1bnNhZmVfdHlwZSA8IDlgKSB7CiAgICAgICAj IGNvbnN0cnVjdC4KIAogICAgICAgLS1sZXQgJGNhbGxfdHlwZV8yPSAwCi0gICAgICB3aGlsZSAo YFNFTEVDVCAkY2FsbF90eXBlXzIgPCA3YCkgeworICAgICAgd2hpbGUgKCRjYWxsX3R5cGVfMiA8 IDcpIHsKICAgICAgICAgIy0tZWNobyBkZWJ1ZzogbGV2ZWwgMiwgdHlwZXMgJGNhbGxfdHlwZV8y IC0+ICRjYWxsX3R5cGVfMSAtPiAkdW5zYWZlX3R5cGUKICAgICAgICAgLS1sZXQgJENSQ19BUkdf bGV2ZWw9IDIKICAgICAgICAgLS1sZXQgJENSQ19BUkdfdHlwZT0gJGNhbGxfdHlwZV8yCkBAIC0z MDksNyArMzA5LDcgQEAgd2hpbGUgKGBTRUxFQ1QgJHVuc2FmZV90eXBlIDwgOWApIHsKICAgICAg ICAgICAjIGNvbnN0cnVjdC4KIAogICAgICAgICAgIC0tbGV0ICRjYWxsX3R5cGVfMz0gMAotICAg ICAgICAgIHdoaWxlIChgU0VMRUNUICRjYWxsX3R5cGVfMyA8IDdgKSB7CisgICAgICAgICAgd2hp bGUgKCRjYWxsX3R5cGVfMyA8IDcpIHsKICAgICAgICAgICAgICMtLWVjaG8gZGVidWc6IGxldmVs IDMsIHR5cGVzICRjYWxsX3R5cGVfMiAtPiAkY2FsbF90eXBlXzIgLT4gJGNhbGxfdHlwZV8xIC0+ ICR1bnNhZmVfdHlwZQogICAgICAgICAgICAgLS1sZXQgJENSQ19BUkdfbGV2ZWw9IDMKICAgICAg ICAgICAgIC0tbGV0ICRDUkNfQVJHX3R5cGU9ICRjYWxsX3R5cGVfMwoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3FsLXRlc3Qvc3VpdGUvZmVkZXJhdGVkL2ZlZGVyYXRlZF9idWdfMjU3MTQudGVzdCcK LS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mZWRlcmF0ZWQvZmVkZXJhdGVkX2J1Z18yNTcxNC50ZXN0 CTIwMDktMDItMDIgMTE6MzY6MDMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mZWRlcmF0 ZWQvZmVkZXJhdGVkX2J1Z18yNTcxNC50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAg LTEsNSArMSw1IEBACiAgIyBDaGVjayB0aGF0IHBhdGggdG8gdGhlIHNwZWNpZmljIHRlc3QgcHJv Z3JhbSBoYXMgYmVlbiBzZXR1cAotaWYgKGBzZWxlY3QgTEVOR1RIKCIkTVlTUUxfQlVHMjU3MTQi KSA9IDBgKQoraWYgKCEkTVlTUUxfQlVHMjU3MTQpCiB7CiAgIHNraXAgTmVlZCBidWcyNTcxNCB0 ZXN0IHByb2dyYW07CiB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9wZXJm c2NoZW1hX3N0cmVzcy90L21vZGlmeS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3BlcmZz Y2hlbWFfc3RyZXNzL3QvbW9kaWZ5LnRlc3QJMjAxMC0wMS0xMiAwMTo0NzoyNyArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL3BlcmZzY2hlbWFfc3RyZXNzL3QvbW9kaWZ5LnRlc3QJMjAxMC0x MS0xNyAxMDoxNjoxMyArMDAwMApAQCAtMTksNyArMTksNyBAQAogbGV0ICRoYXZlX3RhYmxlPSBg U0VMRUNUIENPVU5UKCopIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxFUwogICAgICAgICAg ICAgICAgICAgV0hFUkUgVEFCTEVfU0NIRU1BPSd0ZXN0JyBBTkQgVEFCTEVfTkFNRT0ndDEnYDsK IAotaWYgKGBTRUxFQ1QgKCRoYXZlX3RhYmxlID0gMClgKSB7CitpZiAoISRoYXZlX3RhYmxlKSB7 CiAgICAgLS1zb3VyY2Ugc3VpdGUvcGVyZnNjaGVtYV9zdHJlc3MvdC9zZXR1cC50ZXN0CiB9CiAK Cj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL3BlcmZzY2hlbWFfc3RyZXNzL3Qv c2V0dXAudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9wZXJmc2NoZW1hX3N0cmVzcy90L3Nl dHVwLnRlc3QJMjAxMC0wMS0xMiAwMTo0NzoyNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRl L3BlcmZzY2hlbWFfc3RyZXNzL3Qvc2V0dXAudGVzdAkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAw CkBAIC0yMywxMCArMjMsMTAgQEAgaWYgKGBTRUxFQ1QgVkVSU0lPTigpIExJS0UgJyVlbWJlZGRl ZCUnYAogLS1kaXNhYmxlX3F1ZXJ5X2xvZwogLS1kaXNhYmxlX3Jlc3VsdF9sb2cKIAotaWYgKGBT RUxFQ1QgTEVOR1RIKCckZW5naW5lX3R5cGUnKSA9IDBgKSB7CitpZiAoISRlbmdpbmVfdHlwZSkg ewogICBsZXQgJGVuZ2luZV90eXBlPSAkZGVmYXVsdF9lbmdpbmVfdHlwZTsKIH0KLWlmIChgU0VM RUNUICckZW5naW5lX3R5cGUnID0gJ0ZhbGNvbidgKSB7CitpZiAoJGVuZ2luZV90eXBlID09IEZh bGNvbikgewogICAtLXNvdXJjZSBpbmNsdWRlL2hhdmVfZmFsY29uLmluYwogfQogCgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9wZXJmc2NoZW1hX3N0cmVzcy90L3dvcmsudGVz dCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9wZXJmc2NoZW1hX3N0cmVzcy90L3dvcmsudGVzdAky MDEwLTAxLTEyIDAxOjQ3OjI3ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvcGVyZnNjaGVt YV9zdHJlc3MvdC93b3JrLnRlc3QJMjAxMC0xMS0xNyAxMDoxNjoxMyArMDAwMApAQCAtMTksNyAr MTksNyBAQAogbGV0ICRoYXZlX3RhYmxlPSBgU0VMRUNUIENPVU5UKCopIEZST00gSU5GT1JNQVRJ T05fU0NIRU1BLlRBQkxFUwogICAgICAgICAgICAgICAgICAgV0hFUkUgVEFCTEVfU0NIRU1BPSd0 ZXN0JyBBTkQgVEFCTEVfTkFNRT0ndDEnYDsKIAotaWYgKGBTRUxFQ1QgKCRoYXZlX3RhYmxlID0g MClgKSB7CitpZiAoISRoYXZlX3RhYmxlKSB7CiAgICAgLS1zb3VyY2Ugc3VpdGUvcGVyZnNjaGVt YV9zdHJlc3MvdC9zZXR1cC50ZXN0CiB9CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0 L3N1aXRlL3JwbC90L3JwbF9jaGFuZ2VfbWFzdGVyLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3Vp dGUvcnBsL3QvcnBsX2NoYW5nZV9tYXN0ZXIudGVzdAkyMDEwLTA1LTI2IDE0OjM0OjI1ICswMDAw CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX2NoYW5nZV9tYXN0ZXIudGVzdAkyMDEw LTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC0yMyw3ICsyMyw3IEBAIHNvdXJjZSBpbmNsdWRlL3N0 b3Bfc2xhdmUuaW5jOwogCiBsZXQgJHJlYWRfcG9zPSBxdWVyeV9nZXRfdmFsdWUoU0hPVyBTTEFW RSBTVEFUVVMsIFJlYWRfTWFzdGVyX0xvZ19Qb3MsIDEpOwogbGV0ICRleGVjX3Bvcz0gcXVlcnlf Z2V0X3ZhbHVlKFNIT1cgU0xBVkUgU1RBVFVTLCBFeGVjX01hc3Rlcl9Mb2dfUG9zLCAxKTsKLWlm IChgU0VMRUNUICRyZWFkX3BvcyA9ICRleGVjX3Bvc2ApCitpZiAoJHJlYWRfcG9zID09ICRleGVj X3BvcykKIHsKICAgc291cmNlIGluY2x1ZGUvc2hvd19ycGxfZGVidWdfaW5mby5pbmM7CiAgIGVj aG8gJ1JlYWRfTWFzdGVyX0xvZ19Qb3M6ICRyZWFkX3BvcycgPT0gJ0V4ZWNfTWFzdGVyX0xvZ19Q b3M6ICRleGVjX3Bvcyc7CkBAIC0zMiw3ICszMiw3IEBAIGlmIChgU0VMRUNUICRyZWFkX3BvcyA9 ICRleGVjX3Bvc2ApCiBjaGFuZ2UgbWFzdGVyIHRvIG1hc3Rlcl91c2VyPSdyb290JzsKIGxldCAk cmVhZF9wb3M9IHF1ZXJ5X2dldF92YWx1ZShTSE9XIFNMQVZFIFNUQVRVUywgUmVhZF9NYXN0ZXJf TG9nX1BvcywgMSk7CiBsZXQgJGV4ZWNfcG9zPSBxdWVyeV9nZXRfdmFsdWUoU0hPVyBTTEFWRSBT VEFUVVMsIEV4ZWNfTWFzdGVyX0xvZ19Qb3MsIDEpOwotaWYgKGBTRUxFQ1QgJHJlYWRfcG9zIDw+ ICRleGVjX3Bvc2ApCitpZiAoJHJlYWRfcG9zICE9ICRleGVjX3BvcykKIHsKICAgc291cmNlIGlu Y2x1ZGUvc2hvd19ycGxfZGVidWdfaW5mby5pbmM7CiAgIGVjaG8gJ1JlYWRfTWFzdGVyX0xvZ19Q b3M6ICRyZWFkX3BvcycgPD4gJ0V4ZWNfTWFzdGVyX0xvZ19Qb3M6ICRleGVjX3Bvcyc7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfY29uY3VycmVuY3lfZXJy b3IudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfY29uY3VycmVuY3lfZXJy b3IudGVzdAkyMDEwLTA0LTI4IDEyOjQ3OjQ5ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUv cnBsL3QvcnBsX2NvbmN1cnJlbmN5X2Vycm9yLnRlc3QJMjAxMC0xMS0xNyAxMDoxNjoxMyArMDAw MApAQCAtNTMsMjQgKzUzLDI0IEBAIHdoaWxlICgkdHlwZSkKIHsKICAgbGV0ICRiaW5sb2dfc3Rh cnQ9IHF1ZXJ5X2dldF92YWx1ZSgiU0hPVyBNQVNURVIgU1RBVFVTIiwgUG9zaXRpb24sIDEpOwog ICBjb25uZWN0aW9uIGNvbm4xOwotICBpZiAoYHNlbGVjdCAkdHlwZSA9IDJgKQorICBpZiAoJHR5 cGUgPT0gMikKICAgewogICAgIFNFVCBBVVRPQ09NTUlUID0gMTsKICAgICBCRUdJTjsKICAgfQot ICBpZiAoYHNlbGVjdCAkdHlwZSA9IDFgKQorICBpZiAoJHR5cGUgPT0gMSkKICAgewogICAgIFNF VCBBVVRPQ09NTUlUID0gMDsKICAgfQogICBldmFsIFVQREFURSB0IFNFVCBmID0gJ3llbGxvdyAk dHlwZScgV0hFUkUgaSA9IDM7CiAgIAogICBjb25uZWN0aW9uIGNvbm4yOwotICBpZiAoYHNlbGVj dCAkdHlwZSA9IDJgKQorICBpZiAoJHR5cGUgPT0gMikKICAgewogICAgIFNFVCBBVVRPQ09NTUlU ID0gMTsKICAgICBCRUdJTjsKICAgfQotICBpZiAoYHNlbGVjdCAkdHlwZSA9IDFgKQorICBpZiAo JHR5cGUgPT0gMSkKICAgewogICAgIFNFVCBBVVRPQ09NTUlUID0gMDsKICAgfQpAQCAtODgsMjQg Kzg4LDI0IEBAIHdoaWxlICgkdHlwZSkKIAogICBsZXQgJGJpbmxvZ19zdGFydD0gcXVlcnlfZ2V0 X3ZhbHVlKCJTSE9XIE1BU1RFUiBTVEFUVVMiLCBQb3NpdGlvbiwgMSk7CiAgIGNvbm5lY3Rpb24g Y29ubjE7Ci0gIGlmIChgc2VsZWN0ICR0eXBlID0gMmApCisgIGlmICgkdHlwZSA9PSAyKQogICB7 CiAgICAgU0VUIEFVVE9DT01NSVQgPSAxOwogICAgIEJFR0lOOwogICB9Ci0gIGlmIChgc2VsZWN0 ICR0eXBlID0gMWApCisgIGlmICgkdHlwZSA9PSAxKQogICB7CiAgICAgU0VUIEFVVE9DT01NSVQg PSAwOwogICB9CiAgIGV2YWwgVVBEQVRFIHQgU0VUIGYgPSAnZ3JheSAkdHlwZScgV0hFUkUgaSA9 IDM7CiAgIAogICBjb25uZWN0aW9uIGNvbm4yOwotICBpZiAoYHNlbGVjdCAkdHlwZSA9IDJgKQor ICBpZiAoJHR5cGUgPT0gMikKICAgewogICAgIFNFVCBBVVRPQ09NTUlUID0gMTsKICAgICBCRUdJ TjsKICAgfQotICBpZiAoYHNlbGVjdCAkdHlwZSA9IDFgKQorICBpZiAoJHR5cGUgPT0gMSkKICAg ewogICAgIFNFVCBBVVRPQ09NTUlUID0gMDsKICAgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3Fs LXRlc3Qvc3VpdGUvcnBsL3QvcnBsX2hlYXJ0YmVhdC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1 aXRlL3JwbC90L3JwbF9oZWFydGJlYXQudGVzdAkyMDEwLTA1LTI2IDE0OjM0OjI1ICswMDAwCisr KyBiL215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX2hlYXJ0YmVhdC50ZXN0CTIwMTAtMTEtMTcg MTA6MTY6MTMgKzAwMDAKQEAgLTE0Miw3ICsxNDIsNyBAQCBzb3VyY2UgaW5jbHVkZS9jaGVja19z bGF2ZV9wYXJhbS5pbmM7CiBsZXQgJHNsYXZlX3dhaXRfcGFyYW1fY291bnRlcj0gMzAwOwogbGV0 ICRzbGF2ZV92YWx1ZT0gcXVlcnlfZ2V0X3ZhbHVlKCJTSE9XIFNUQVRVUyBsaWtlICdTbGF2ZV9y ZWNlaXZlZF9oZWFydGJlYXRzJyIsIFZhbHVlLCAxKTsKICMgQ2hlY2tpbmcgdGhlIGZhY3QgdGhh dCBhdCBsZWFzdCBvbmUgaGVhcnRiZWF0IGlzIHJlY2VpdmVkCi13aGlsZSAoYHNlbGVjdCAkc2xh dmVfdmFsdWUgPSAwYCkKK3doaWxlICghJHNsYXZlX3ZhbHVlKQogewogICBkZWMgJHNsYXZlX3dh aXRfcGFyYW1fY291bnRlcjsKICAgaWYgKCEkc2xhdmVfd2FpdF9wYXJhbV9jb3VudGVyKQoKPT09 IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX215c3FsX3VwZ3JhZGUu dGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfbXlzcWxfdXBncmFkZS50ZXN0 CTIwMTAtMDQtMjggMTI6NDc6NDkgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9y cGxfbXlzcWxfdXBncmFkZS50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTMwLDcg KzMwLDcgQEAgc3luY19zbGF2ZV93aXRoX21hc3RlcjsKIGNvbm5lY3Rpb24gbWFzdGVyOwogbGV0 ICRhZnRlcl9wb3NpdGlvbj0gcXVlcnlfZ2V0X3ZhbHVlKFNIT1cgTUFTVEVSIFNUQVRVUywgUG9z aXRpb24sIDEpOwogCi1pZiAoYFNFTEVDVCAnJGJlZm9yZV9wb3NpdGlvbic9JyRhZnRlcl9wb3Np dGlvbidgKQoraWYgKCRiZWZvcmVfcG9zaXRpb24gPT0gJGFmdGVyX3Bvc2l0aW9uKQogewogICBl Y2hvIE1hc3RlciBwb3NpdGlvbiBpcyBub3QgY2hhbmdlZDsKIH0KQEAgLTQ4LDcgKzQ4LDcgQEAg Y29ubmVjdGlvbiBtYXN0ZXI7CiBsZXQgJGFmdGVyX2ZpbGU9IHF1ZXJ5X2dldF92YWx1ZShTSE9X IE1BU1RFUiBTVEFUVVMsIEZpbGUsIDEpOwogbGV0ICRhZnRlcl9wb3NpdGlvbj0gcXVlcnlfZ2V0 X3ZhbHVlKFNIT1cgTUFTVEVSIFNUQVRVUywgUG9zaXRpb24sIDEpOwogCi1pZiAoIWBTRUxFQ1Qg JyRiZWZvcmVfcG9zaXRpb24nPSckYWZ0ZXJfcG9zaXRpb24nYCkKK2lmICgkYmVmb3JlX3Bvc2l0 aW9uICE9ICRhZnRlcl9wb3NpdGlvbikKIHsKICAgZWNobyBNYXN0ZXIgcG9zaXRpb24gaGFzIGJl ZW4gY2hhbmdlZDsKIH0KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL3JwbC90 L3JwbF9zZW1pX3N5bmMudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfc2Vt aV9zeW5jLnRlc3QJMjAxMC0wNi0wMSAwODo1OTo0OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1 aXRlL3JwbC90L3JwbF9zZW1pX3N5bmMudGVzdAkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBA IC01OCw3ICs1OCw3IEBAIGVjaG8gWyBvbiBtYXN0ZXIgXTsKIAogZGlzYWJsZV9xdWVyeV9sb2c7 CiBsZXQgJHZhbHVlID0gcXVlcnlfZ2V0X3ZhbHVlKHNob3cgdmFyaWFibGVzIGxpa2UgJ3JwbF9z ZW1pX3N5bmNfbWFzdGVyX2VuYWJsZWQnLCBWYWx1ZSwgMSk7Ci1pZiAoYHNlbGVjdCAnJHZhbHVl JyA9ICdObyBzdWNoIHJvdydgKQoraWYgKCR2YWx1ZSA9PSBObyBzdWNoIHJvdykKIHsKICAgICBz ZXQgc3FsX2xvZ19iaW49MDsKICAgICBldmFsIElOU1RBTEwgUExVR0lOIHJwbF9zZW1pX3N5bmNf bWFzdGVyIFNPTkFNRSAnJFNFTUlTWU5DX01BU1RFUl9QTFVHSU4nOwpAQCAtMTIzLDcgKzEyMyw3 IEBAIGVjaG8gWyBvbiBzbGF2ZSBdOwogCiBkaXNhYmxlX3F1ZXJ5X2xvZzsKIGxldCAkdmFsdWU9 IHF1ZXJ5X2dldF92YWx1ZShzaG93IHZhcmlhYmxlcyBsaWtlICdycGxfc2VtaV9zeW5jX3NsYXZl X2VuYWJsZWQnLCBWYWx1ZSwgMSk7Ci1pZiAoYHNlbGVjdCAnJHZhbHVlJyA9ICdObyBzdWNoIHJv dydgKQoraWYgKCR2YWx1ZSA9PSBObyBzdWNoIHJvdykKIHsKICAgICBzZXQgc3FsX2xvZ19iaW49 MDsKICAgICBldmFsIElOU1RBTEwgUExVR0lOIHJwbF9zZW1pX3N5bmNfc2xhdmUgU09OQU1FICck U0VNSVNZTkNfU0xBVkVfUExVR0lOJzsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1 aXRlL3JwbC90L3JwbF9zZW1pX3N5bmNfZXZlbnQudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0 ZS9ycGwvdC9ycGxfc2VtaV9zeW5jX2V2ZW50LnRlc3QJMjAxMC0wNC0yOCAxMjo0Nzo0OSArMDAw MAorKysgYi9teXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9zZW1pX3N5bmNfZXZlbnQudGVzdAky MDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC0yMCw3ICsyMCw3IEBAIGVuYWJsZV9xdWVyeV9s b2c7CiBjb25uZWN0aW9uIG1hc3RlcjsKIGRpc2FibGVfcXVlcnlfbG9nOwogbGV0ICR2YWx1ZSA9 IHF1ZXJ5X2dldF92YWx1ZShzaG93IHZhcmlhYmxlcyBsaWtlICdycGxfc2VtaV9zeW5jX21hc3Rl cl9lbmFibGVkJywgVmFsdWUsIDEpOwotaWYgKGBzZWxlY3QgJyR2YWx1ZScgPSAnTm8gc3VjaCBy b3cnYCkKK2lmICgkdmFsdWUgPT0gTm8gc3VjaCByb3cpCiB7CiAgICAgc2V0IHNxbF9sb2dfYmlu PTA7CiAgICAgZXZhbCBJTlNUQUxMIFBMVUdJTiBycGxfc2VtaV9zeW5jX21hc3RlciBTT05BTUUg JyRTRU1JU1lOQ19NQVNURVJfUExVR0lOJzsKQEAgLTM0LDcgKzM0LDcgQEAgc291cmNlIGluY2x1 ZGUvc3RvcF9zbGF2ZS5pbmM7CiAKIGRpc2FibGVfcXVlcnlfbG9nOwogbGV0ICR2YWx1ZT0gcXVl cnlfZ2V0X3ZhbHVlKHNob3cgdmFyaWFibGVzIGxpa2UgJ3JwbF9zZW1pX3N5bmNfc2xhdmVfZW5h YmxlZCcsIFZhbHVlLCAxKTsKLWlmIChgc2VsZWN0ICckdmFsdWUnID0gJ05vIHN1Y2ggcm93J2Ap CitpZiAoJHZhbHVlID09IE5vIHN1Y2ggcm93KQogewogICAgIHNldCBzcWxfbG9nX2Jpbj0wOwog ICAgIGV2YWwgSU5TVEFMTCBQTFVHSU4gcnBsX3NlbWlfc3luY19zbGF2ZSBTT05BTUUgJyRTRU1J U1lOQ19TTEFWRV9QTFVHSU4nOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUv cnBsL3QvcnBsX3Nsb3dfcXVlcnlfbG9nLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvcnBs L3QvcnBsX3Nsb3dfcXVlcnlfbG9nLnRlc3QJMjAxMC0wNC0yOCAxMjo0Nzo0OSArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9zbG93X3F1ZXJ5X2xvZy50ZXN0CTIwMTAtMTEt MTcgMTA6MTY6MTMgKzAwMDAKQEAgLTIzMyw3ICsyMzMsNyBAQCBsZXQgJG1hc3Rlcl9zbG93X3F1 ZXJ5PSBgU0VMRUNUIGNvdW50KCopCiAtLSBzeW5jX3NsYXZlX3dpdGhfbWFzdGVyCiBsZXQgJHNs YXZlX3Nsb3dfcXVlcnk9IGBTRUxFQ1QgY291bnQoKikgPSAxIEZST00gbXlzcWwuc2xvd19sb2cg V0hFUkUgc3FsX3RleHQgbGlrZSAnJHNsb3dfcXVlcnknYDsKIAotaWYgKGBTRUxFQ1QgJG1hc3Rl cl9zbG93X3F1ZXJ5ICE9ICRzbGF2ZV9zbG93X3F1ZXJ5YCkKK2lmICgkbWFzdGVyX3Nsb3dfcXVl cnkgIT0gJHNsYXZlX3Nsb3dfcXVlcnkpCiB7CiAgIC0tIGNvbm5lY3Rpb24gbWFzdGVyCiAgIC0t IGVjaG8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAg LTI1MCw3ICsyNTAsNyBAQCBpZiAoYFNFTEVDVCAkbWFzdGVyX3Nsb3dfcXVlcnkgIT0gJHNsYXZl CiAgIC0tIGRpZSAiQXNzZXJ0aW9uIGZhaWxlZCEgTWFzdGVyIGFuZCBzbGF2ZSBzbG93IGxvZyBj b250ZW50cyBkaWZmZXIuIEJhaWxpbmcgb3V0ISIKIH0KIAotaWYgKGBTRUxFQ1QgJG1hc3Rlcl9z bG93X3F1ZXJ5ID0gJHNsYXZlX3Nsb3dfcXVlcnlgKQoraWYgKCRtYXN0ZXJfc2xvd19xdWVyeSA9 PSAkc2xhdmVfc2xvd19xdWVyeSkKIHsKICAgLS0gZWNobyAjIyMgQXNzZXJ0aW9uIGlzIGdvb2Qu IEJvdGggTWFzdGVyIGFuZCBTbGF2ZSBleGhpYml0IHRoZSAKICAgLS0gZWNobyAjIyMgc2FtZSBu dW1iZXIgb2YgcXVlcmllcyBpbiBzbG93IGxvZzogJG1hc3Rlcl9zbG93X3F1ZXJ5CkBAIC0yNzYs NyArMjc2LDcgQEAgbGV0ICRtYXN0ZXJfc2xvd19xdWVyeT0gYFNFTEVDVCBjb3VudCgqKQogLS0g c3luY19zbGF2ZV93aXRoX21hc3RlcgogbGV0ICRzbGF2ZV9zbG93X3F1ZXJ5PSBgU0VMRUNUIGNv dW50KCopID0gMSBGUk9NIG15c3FsLnNsb3dfbG9nIFdIRVJFIHNxbF90ZXh0IGxpa2UgJyRzbG93 X3F1ZXJ5J2A7CiAKLWlmIChgU0VMRUNUICRtYXN0ZXJfc2xvd19xdWVyeSAhPSAkc2xhdmVfc2xv d19xdWVyeWApCitpZiAoJG1hc3Rlcl9zbG93X3F1ZXJ5ICE9ICRzbGF2ZV9zbG93X3F1ZXJ5KQog ewogICAtLSBjb25uZWN0aW9uIG1hc3RlcgogICAtLSBlY2hvICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0yOTMsNyArMjkzLDcgQEAgaWYgKGBTRUxF Q1QgJG1hc3Rlcl9zbG93X3F1ZXJ5ICE9ICRzbGF2ZQogICAtLSBkaWUgIkFzc2VydGlvbiBmYWls ZWQhIE1hc3RlciBhbmQgc2xhdmUgc2xvdyBsb2cgY29udGVudHMgZGlmZmVyLiBCYWlsaW5nIG91 dCEiCiB9CiAKLWlmIChgU0VMRUNUICRtYXN0ZXJfc2xvd19xdWVyeSA9ICRzbGF2ZV9zbG93X3F1 ZXJ5YCkKK2lmICgkbWFzdGVyX3Nsb3dfcXVlcnkgPT0gJHNsYXZlX3Nsb3dfcXVlcnkpCiB7CiAg IC0tIGVjaG8gIyMjIEFzc2VydGlvbiBpcyBnb29kLiBCb3RoIE1hc3RlciBhbmQgU2xhdmUgZXho aWJpdCB0aGUgCiAgIC0tIGVjaG8gIyMjIHNhbWUgbnVtYmVyIG9mIHF1ZXJpZXMgaW4gc2xvdyBs b2c6ICRtYXN0ZXJfc2xvd19xdWVyeQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3Vp dGUvcnBsL3QvcnBsX3NzbC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9z c2wudGVzdAkyMDEwLTA1LTI2IDE0OjM0OjI1ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUv cnBsL3QvcnBsX3NzbC50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTc1LDcgKzc1 LDcgQEAgc291cmNlIGluY2x1ZGUvY2hlY2tfc2xhdmVfaXNfcnVubmluZy5pbgogCiBsZXQgJHNs YXZlX2NvdW50PSBgc2VsZWN0IGNvdW50KCopIGZyb20gdDFgOwogCi1pZiAoYHNlbGVjdCAkc2xh dmVfY291bnQgIT0gJG1hc3Rlcl9jb3VudGApCitpZiAoJHNsYXZlX2NvdW50ICE9ICRtYXN0ZXJf Y291bnQpCiB7CiAgIGVjaG8gbWFzdGVyIGFuZCBzbGF2ZSBkaWZmZXJlZCBpbiBudW1iZXIgb2Yg cm93czsKICAgZWNobyBtYXN0ZXI6ICRtYXN0ZXJfY291bnQ7Cgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L3Nsb3dfbGF1bmNoX3RpbWVfZnVuYy50ZXN0Jwot LS0gYS9teXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3Qvc2xvd19sYXVuY2hfdGltZV9mdW5jLnRl c3QJMjAwOC0xMi0xOSAxNToxMjoxNSArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL3N5c192 YXJzL3Qvc2xvd19sYXVuY2hfdGltZV9mdW5jLnRlc3QJMjAxMC0xMS0xNyAxMDoxNjoxMyArMDAw MApAQCAtODQsNyArODQsNyBAQCBsZXQgJHZhbHVlX2JlZm9yZT0KIENPTk5FQ1QgKGNvbm4yLGxv Y2FsaG9zdCxyb290LCwpOwogbGV0ICR2YWx1ZV9hZnRlcj0KICAgIHF1ZXJ5X2dldF92YWx1ZShz aG93IHN0YXR1cyBsaWtlICdzbG93X2xhdW5jaF90aHJlYWRzJywgVmFsdWUsIDEpOwotaWYgKCFg U0VMRUNUICR2YWx1ZV9hZnRlciA9ICR2YWx1ZV9iZWZvcmVgKQoraWYgKCR2YWx1ZV9hZnRlciAh PSAkdmFsdWVfYmVmb3JlKQogewogICAgLS1lY2hvIEVSUk9SOiBTdWJ0ZXN0IEZOX0RZTlZBUlNf MTI0XzAyIGZhaWxlZAogICAgLS1lY2hvIEEgbmV3IGNvbm5lY3QgbXVzdCBub3QgYmUgY291bnRl ZCBhcyAnc2xvd19sYXVuY2hfdGhyZWFkJyBpZgoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRl c3QvdC9jaGFuZ2VfdXNlci50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvY2hhbmdlX3VzZXIudGVz dAkyMDEwLTA4LTA5IDA4OjMyOjUwICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9jaGFuZ2VfdXNl ci50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTExNyw3ICsxMTcsNyBAQCBsZXQg JGJlZm9yZT0gcXVlcnlfZ2V0X3ZhbHVlKFNIT1cgR0xPQkFMCiAKIGxldCAkYWZ0ZXI9IHF1ZXJ5 X2dldF92YWx1ZShTSE9XIEdMT0JBTCBTVEFUVVMgTElLRSAnY29tX3NlbGVjdCcsVmFsdWUsMSk7 CiAKLWlmIChgc2VsZWN0ICRhZnRlciAhPSAkYmVmb3JlYCl7CitpZiAoJGFmdGVyICE9ICRiZWZv cmUpewogICBTSE9XIEdMT0JBTCBTVEFUVVMgTElLRSAnY29tX3NlbGVjdCc7CiAgIGRpZSBUaGUg dmFsdWUgb2YgY29tX3NlbGVjdCBjaGFuZ2VkIGR1cmluZyBjaGFuZ2VfdXNlcjsKIH0KCj09PSBt b2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvZXhlY3V0aW9uX2NvbnN0YW50cy50ZXN0JwotLS0g YS9teXNxbC10ZXN0L3QvZXhlY3V0aW9uX2NvbnN0YW50cy50ZXN0CTIwMDgtMDgtMDQgMTA6Mzg6 NTAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2V4ZWN1dGlvbl9jb25zdGFudHMudGVzdAkyMDEw LTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC00OSw3ICs0OSw3IEBAIHdoaWxlICgkaSkKICAgICBs ZXQgJGkgPSAxLy8KIAogICAgICMgQ2hlY2sgdGhhdCBteXNxbF9lcnJubyBpcyAxNDM2Ci0gICAg aWYgKGBzZWxlY3QgJG15c3FsX2Vycm5vICE9IDE0MzZgKQorICAgIGlmICgkbXlzcWxfZXJybm8g IT0gMTQzNikKICAgICB7CiAgICAgICBkaWUgV3JvbmcgZXJyb3IgdHJpZ2dlcmVkLCBleHBlY3Rl ZCAxNDM2IGJ1dCBnb3QgJG15c3FsX2Vycm5vLy8KICAgICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC90L2ZpeF9wcml2X3RhYmxlcy50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvZml4 X3ByaXZfdGFibGVzLnRlc3QJMjAwOS0wNS0xNSAxMDoxNTo1NiArMDAwMAorKysgYi9teXNxbC10 ZXN0L3QvZml4X3ByaXZfdGFibGVzLnRlc3QJMjAxMC0xMS0xNyAxMDoxNjoxMyArMDAwMApAQCAt Myw3ICszLDcgQEAKIAogIyBEb24ndCBydW4gdGhpcyB0ZXN0IGlmICRNWVNRTF9GSVhfUFJJVklM RUdFX1RBQkxFUyBpc24ndCBzZXQKICMgdG8gdGhlIGxvY2F0aW9uIG9mIG15c3FsX2ZpeF9wcml2 aWxlZ2VfdGFibGVzLnNxbAotaWYgKGBTRUxFQ1QgTEVOR1RIKCIkTVlTUUxfRklYX1BSSVZJTEVH RV9UQUJMRVMiKSA8PSAwYCkKK2lmICghJE1ZU1FMX0ZJWF9QUklWSUxFR0VfVEFCTEVTKQogewog ICBza2lwIFRlc3QgbmVlZCBNWVNRTF9GSVhfUFJJVklMRUdFX1RBQkxFUzsKIH0KCj09PSBtb2Rp ZmllZCBmaWxlICdteXNxbC10ZXN0L3QvbXlzcWx0ZXN0LnRlc3QnCi0tLSBhL215c3FsLXRlc3Qv dC9teXNxbHRlc3QudGVzdAkyMDEwLTExLTEwIDA4OjQyOjE0ICswMDAwCisrKyBiL215c3FsLXRl c3QvdC9teXNxbHRlc3QudGVzdAkyMDEwLTExLTE3IDEwOjE4OjUyICswMDAwCkBAIC04NTQsNiAr ODU0LDEzIEBAIGxldCAkdmFyMj0gYGZhaWxpbmcgcXVlcnlgOwogZWNobyAkdmFyMjsKIEVPRgog CitjcmVhdGUgdGFibGUgdDEgKGEgdmFyY2hhcigxMDApKTsKK2luc2VydCBpbnRvIHQxIHZhbHVl cyAoJ2BzZWxlY3QgNDJgJyk7CitsZXQgJGE9IGBzZWxlY3QgKiBmcm9tIHQxYDsKKyMgVGhpcyBz aG91bGQgb3V0cHV0IGBzZWxlY3QgNDJgLCBub3QgZXZhbHVhdGUgaXQgYWdhaW4gdG8gNDIKK2Vj aG8gJGE7Citkcm9wIHRhYmxlIHQxOworCiAtLWVycm9yIDEKIC0tZXhlYyAkTVlTUUxfVEVTVCA8 ICRNWVNRTFRFU1RfVkFSRElSL3RtcC9sZXQuc3FsIDI+JjEKIApAQCAtMjYxMiwxNSArMjYxOSwx NSBAQCBsZXQgJGNvdW50PSAwOwogd2hpbGUgKCRydW4pCiB7CiAgICBsZXQgJEZpZWxkPSAgIHF1 ZXJ5X2dldF92YWx1ZSgkc2hvd19zdGF0ZW1lbnQsIEZpZWxkLCAgICRyb3dubyk7Ci0gICBpZiAo YFNFTEVDVCAnJEZpZWxkJyA9ICdObyBzdWNoIHJvdydgKQorICAgaWYgKCRGaWVsZCA9PSBObyBz dWNoIHJvdykKICAgIHsKICAgICAgIGxldCAkcnVuPSAwOwogICAgfQotICAgaWYgKGBTRUxFQ1Qg JyRGaWVsZCcgPD4gJ05vIHN1Y2ggcm93J2ApCisgICBpZiAoJEZpZWxkICE9IE5vIHN1Y2ggcm93 KQogICAgewogICAgICAgbGV0ICRUeXBlPSAgICBxdWVyeV9nZXRfdmFsdWUoJHNob3dfc3RhdGVt ZW50LCBUeXBlLCAgICAkcm93bm8pOwogICAgICAgbGV0ICROdWxsPSAgICBxdWVyeV9nZXRfdmFs dWUoJHNob3dfc3RhdGVtZW50LCBOdWxsLCAgICAkcm93bm8pOwotICAgICAgaWYgKGBTRUxFQ1Qg JyROdWxsJyA9ICdZRVMnYCkKKyAgICAgIGlmICgkTnVsbCA9PSBZRVMpCiAgICAgICB7CiAgICAg ICAgICBpbmMgJGNvdW50OwogICAgICAgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv dC9uYW1lZF9waXBlLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9uYW1lZF9waXBlLnRlc3QJMjAw OS0xMS0xOSAyMzo0ODowOCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvbmFtZWRfcGlwZS50ZXN0 CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTUsNyArNSw3IEBACiAKICMgT25seSBydW4g dGhpcyB0ZXN0IGlmIG5hbWVkIHBpcGUgaXMgYXZhbGlhYmxlCiBsZXQgJG5tcD0gcXVlcnlfZ2V0 X3ZhbHVlKCJTSE9XIFZBUklBQkxFUyBMSUtFICduYW1lZF9waXBlJyIsIFZhbHVlLCAxKTsKLWlm IChgU0VMRUNUICckbm1wJyAhPSAnT04nYCl7CitpZiAoJG5tcCAhPSBPTil7CiAgIHNraXAgTm8g bmFtZWQgcGlwZSBzdXBwb3J0OwogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90 L3NobS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3Qvc2htLnRlc3QJMjAwOS0xMS0xMCAxOTozNjoz OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3Qvc2htLnRlc3QJMjAxMC0xMS0xNyAxMDoxNjoxMyAr MDAwMApAQCAtNCw3ICs0LDcgQEAKIAogIyBPbmx5IHJ1biB0aGlzIHRlc3QgaWYgc2hhcmVkIG1l bW9yeSBpcyBhdmFsaWFibGUKIGxldCAkc2htPSBxdWVyeV9nZXRfdmFsdWUoIlNIT1cgVkFSSUFC TEVTIExJS0UgJ3NoYXJlZF9tZW1vcnknIiwgVmFsdWUsIDEpOwotaWYgKGBTRUxFQ1QgJyRzaG0n ICE9ICdPTidgKXsKK2lmICgkc2htICE9IE9OKXsKICAgc2tpcCBObyBzaG0gc3VwcG9ydDsKIH0K IGxldCAkc2htX25hbWU9IHF1ZXJ5X2dldF92YWx1ZSgiU0hPVyBHTE9CQUwgVkFSSUFCTEVTIExJ S0UgJ3NoYXJlZF9tZW1vcnlfYmFzZV9uYW1lJyIsIFZhbHVlLCAxKTsKCj09PSBtb2RpZmllZCBm aWxlICdteXNxbC10ZXN0L3Qvc3lzdGVtX215c3FsX2RiX2ZpeDQwMTIzLnRlc3QnCi0tLSBhL215 c3FsLXRlc3QvdC9zeXN0ZW1fbXlzcWxfZGJfZml4NDAxMjMudGVzdAkyMDEwLTA4LTA5IDA4OjMy OjUwICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9zeXN0ZW1fbXlzcWxfZGJfZml4NDAxMjMudGVz dAkyMDEwLTExLTE3IDEwOjE2OjEzICswMDAwCkBAIC0zLDcgKzMsNyBAQAogCiAjIERvbid0IHJ1 biB0aGlzIHRlc3QgaWYgJE1ZU1FMX0ZJWF9QUklWSUxFR0VfVEFCTEVTIGlzbid0IHNldAogIyB0 byB0aGUgbG9jYXRpb24gb2YgbXlzcWxfZml4X3ByaXZpbGVnZV90YWJsZXMuc3FsCi1pZiAoYFNF TEVDVCBMRU5HVEgoIiRNWVNRTF9GSVhfUFJJVklMRUdFX1RBQkxFUyIpIDw9IDBgKQoraWYgKCEk TVlTUUxfRklYX1BSSVZJTEVHRV9UQUJMRVMpCiB7CiAgIHNraXAgVGVzdCBuZWVkIE1ZU1FMX0ZJ WF9QUklWSUxFR0VfVEFCTEVTOwogfQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9z eXN0ZW1fbXlzcWxfZGJfZml4NTAwMzAudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3N5c3RlbV9t eXNxbF9kYl9maXg1MDAzMC50ZXN0CTIwMTAtMDgtMDkgMDg6MzI6NTAgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC90L3N5c3RlbV9teXNxbF9kYl9maXg1MDAzMC50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6 MTMgKzAwMDAKQEAgLTMsNyArMyw3IEBACiAKICMgRG9uJ3QgcnVuIHRoaXMgdGVzdCBpZiAkTVlT UUxfRklYX1BSSVZJTEVHRV9UQUJMRVMgaXNuJ3Qgc2V0CiAjIHRvIHRoZSBsb2NhdGlvbiBvZiBt eXNxbF9maXhfcHJpdmlsZWdlX3RhYmxlcy5zcWwKLWlmIChgU0VMRUNUIExFTkdUSCgiJE1ZU1FM X0ZJWF9QUklWSUxFR0VfVEFCTEVTIikgPD0gMGApCitpZiAoISRNWVNRTF9GSVhfUFJJVklMRUdF X1RBQkxFUykKIHsKICAgc2tpcCBUZXN0IG5lZWRzIE1ZU1FMX0ZJWF9QUklWSUxFR0VfVEFCTEVT OwogfQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9zeXN0ZW1fbXlzcWxfZGJfZml4 NTAxMTcudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3N5c3RlbV9teXNxbF9kYl9maXg1MDExNy50 ZXN0CTIwMTAtMDgtMDkgMDg6MzI6NTAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3N5c3RlbV9t eXNxbF9kYl9maXg1MDExNy50ZXN0CTIwMTAtMTEtMTcgMTA6MTY6MTMgKzAwMDAKQEAgLTMsNyAr Myw3IEBACiAKICMgRG9uJ3QgcnVuIHRoaXMgdGVzdCBpZiAkTVlTUUxfRklYX1BSSVZJTEVHRV9U QUJMRVMgaXNuJ3Qgc2V0CiAjIHRvIHRoZSBsb2NhdGlvbiBvZiBteXNxbF9maXhfcHJpdmlsZWdl X3RhYmxlcy5zcWwKLWlmIChgU0VMRUNUIExFTkdUSCgiJE1ZU1FMX0ZJWF9QUklWSUxFR0VfVEFC TEVTIikgPD0gMGApCitpZiAoISRNWVNRTF9GSVhfUFJJVklMRUdFX1RBQkxFUykKIHsKICAgc2tp cCBUZXN0IG5lZWRzIE1ZU1FMX0ZJWF9QUklWSUxFR0VfVEFCTEVTOwogfQoKTm8gYnVuZGxlIChy ZWFzb246IHVzZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=