ZGlmZiAtLWdpdCBhL29iai90b29scy9NR3Rvb2wuYyBiL29iai90b29scy9NR3Rvb2wuYwppbmRleCAyNjk5OTYwLi5jNjc5ODliIDEwMDY0NAotLS0gYS9vYmovdG9vbHMvTUd0b29sLmMKKysrIGIvb2JqL3Rvb2xzL01HdG9vbC5jCkBAIC0xNTYsOSArMTU2LDkgQEAKICAgICByZXR1cm4gTlVMTDsKICAgVEsoIlhGaW5kT2JqOiBzdHI6ICIrKHN0cj9zdHI6IihOVUxMKSIpKTsKICAgZW52PUVOVihjbG9uZXIpOwotICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCAiXFwuIiwisDAxIik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsICJcXF4iLCAisDAyIik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsICJcXCQiLCAisDAzIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsICJcXC4iLCJcdTAwQjAiICIwMSIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCAiXFxeIiwgIlx1MDBCMCIgIjAyIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsICJcXCQiLCAiXHUwMEIwIiAiMDMiKTsKICAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwgIlxcXFwiLCAiXFwiKTsKICAgaWYgKGZpbmRfb2JqZWN0KHN0cikpIHJldHVybiBmaW5kX29iamVjdChzdHIpOwogICBpZiAoZmlsZV9zaXplKHN0cik+MSkgewpAQCAtMTg3LDE1ICsxODcsMTUgQEAKICAgCiAgIGlmICghc3RyaW5ncChzdHIpIHx8ICFzaXplb2Yoc3RyKSB8fCAhb2JqZWN0cChlbnYpKQogICAgIHJldHVybiBOVUxMOwotICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCAisDAxIiwgIi4iKTsKKyAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwgIlx1MDBCMCIgIjAxIiwgIi4iKTsKICAgd2hpbGUoc3RyW2UrK109PSdeJykKICAgICA7CiAgIHN0cj1zdHJbLS1lLi48MV07Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsICKwMDIiLCAiXiIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCAiXHUwMEIwIiAiMDIiLCAiXiIpOwogICBpZihvYmo9VmFyVG9PYmooc3RyKSkKICAgICA7CiAgIGVsc2UgaWYoc3RyWzBdPT0nAycpCi0gICAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwgIrAwMyIsICIkIik7CisgICAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwgIlx1MDBCMCIgIjAzIiwgIiQiKTsKICAgZWxzZSBpZihzc2NhbmYoc3RyLCAiJWQiLCBudW0pJiYoaW52PWFsbF9pbnZlbnRvcnkoZW52KSkpCiAgIHsKICAgICBpZihudW0+MCYmbnVtPD1zaXplb2YoaW52KSkKQEAgLTE0MTksMTMgKzE0MTksMTMgQEAKICAgc3RyaW5nICp0bXAsKnRtcDI7CiAgIGludCBpLCBpMiwgbGVuLCBsZW4yLCBxZCwgcXM7CiAKLSAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwiXFxcXCIsIrBCU0hMIik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlxcXCIiLCKwREJMUSIpOwotICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJcXFwnIiwisFNHTFEiKTsKLSAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwiXFx8IiwisFBJUEUiKTsKLSAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwifHwiLCKwT1JPUiIpOwotICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCItPiIsIrBMQVJSIik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlxcJCIsIrBET0xSIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlxcXFwiLCJcdTAwQjAiIkJTSEwiKTsKKyAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwiXFxcIiIsIlx1MDBCMCIiREJMUSIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJcXFwnIiwiXHUwMEIwIiJTR0xRIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlxcfCIsIlx1MDBCMCIiUElQRSIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJ8fCIsIlx1MDBCMCIiT1JPUiIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCItPiIsIlx1MDBCMCIiTEFSUiIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJcXCQiLCJcdTAwQjAiIkRPTFIiKTsKICAgdG1wPXJlZ2V4cGxvZGUoc3RyLCIoXCJ8JykiKTsKICAgbGVuPXNpemVvZih0bXApOwogICBxZD1xcz0wOwpAQCAtMTQ2NCwxNSArMTQ2NCwxNSBAQAogCiBzdGF0aWMgc3RyaW5nIFVucXVvdGVMaW5lKHN0cmluZyBzdHIpCiB7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIrBCU0hMIiwiXFwiKTsKLSAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwisERCTFEiLCJcIiIpOwotICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCKwU0dMUSIsIlwnIik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIrBEUVVPIiwiIik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIrBTUVVPIiwiIik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIrBQSVBFIiwifCIpOwotICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCKwT1JPUiIsInx8Iik7Ci0gIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIrBMQVJSIiwiLT4iKTsKLSAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwisERPTFIiLCIkIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlx1MDBCMCIiQlNITCIsIlxcIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlx1MDBCMCIiREJMUSIsIlwiIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlx1MDBCMCIiU0dMUSIsIlwnIik7CisgIHN0cj1zdHJpbmdfcmVwbGFjZShzdHIsIlx1MDBCMCIiRFFVTyIsIiIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJcdTAwQjAiIlNRVU8iLCIiKTsKKyAgc3RyPXN0cmluZ19yZXBsYWNlKHN0ciwiXHUwMEIwIiJQSVBFIiwifCIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJcdTAwQjAiIk9ST1IiLCJ8fCIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJcdTAwQjAiIkxBUlIiLCItPiIpOworICBzdHI9c3RyaW5nX3JlcGxhY2Uoc3RyLCJcdTAwQjAiIkRPTFIiLCIkIik7CiAgIFRLKCJVbnF1b3RlTGluZTogc3RyOiAiK3N0cik7CiAgIHJldHVybiBzdHI7CiB9Cg==