From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Than Ngo To: git-commits@fedoraproject.org Subject: [rpms/chromium] epel9-next: update to 121.0.6167.71 Date: Fri, 07 Aug 2026 16:05:54 GMT Message-ID: <178611875453.1.15868044789178847159.rpms-chromium-1bc897ee194d@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel9-next X-Git-Rev: 1bc897ee194d34f1e4d645bc8c3f321b8ea7da10 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDktbmV4dApDb21taXQgOiAxYmM4OTdlZTE5NGQzNGYxZTRkNjQ1YmM4YzNmMzIx YjhlYTdkYTEwCkF1dGhvciA6IFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+CkRhdGUgICA6IDIw MjQtMDEtMjNUMTQ6NDM6MjIrMDE6MDAKU3RhdHMgIDogKzI4NzgvLTE3MTUgaW4gMjcgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2Nocm9taXVtL2Mv MWJjODk3ZWUxOTRkMzRmMWU0ZDY0NWJjOGMzZjMyMWI4ZWE3ZGExMD9icmFuY2g9ZXBlbDktbmV4 dAoKTG9nOgp1cGRhdGUgdG8gMTIxLjAuNjE2Ny43MQoKLS0tCmRpZmYgLS1naXQgYS9jaHJvbWl1 bS0xMTctZWw3LWRlZmF1bHRfY29uc3RydWN0b3IucGF0Y2ggYi9jaHJvbWl1bS0xMTctZWw3LWRl ZmF1bHRfY29uc3RydWN0b3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFi Mzg2YjYuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTE3LWVsNy1kZWZhdWx0X2NvbnN0cnVjdG9y LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0t MTE3LjAuNTkzOC42Mi9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaGVhZGVyX2RpcmVj dF9mcm9tX3NlbGxlcl9zaWduYWxzLmNjLm1lIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVu dC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2hlYWRlcl9kaXJlY3RfZnJvbV9zZWxsZXJfc2lnbmFs cy5jYwotLS0tIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVudC9icm93c2VyL2ludGVyZXN0 X2dyb3VwL2hlYWRlcl9kaXJlY3RfZnJvbV9zZWxsZXJfc2lnbmFscy5jYy5tZQkyMDIzLTA5LTE2 IDA5OjQzOjQxLjcxNzU0NTIxNSArMDIwMAotKysrIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29u dGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2hlYWRlcl9kaXJlY3RfZnJvbV9zZWxsZXJfc2ln bmFscy5jYwkyMDIzLTA5LTE2IDA5OjQ4OjA3LjMxOTUzOTU4NSArMDIwMAotQEAgLTE4Nyw3ICsx ODcsOCBAQCB2b2lkIE9uSnNvbkRlY29kZWQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0Ci0gCi0gfSAg Ly8gbmFtZXNwYWNlCi0gCi0tSGVhZGVyRGlyZWN0RnJvbVNlbGxlclNpZ25hbHM6OkhlYWRlckRp cmVjdEZyb21TZWxsZXJTaWduYWxzKCkgPSBkZWZhdWx0OwotK0hlYWRlckRpcmVjdEZyb21TZWxs ZXJTaWduYWxzOjpIZWFkZXJEaXJlY3RGcm9tU2VsbGVyU2lnbmFscygpIDoKLSsgIHNlbGxlcl9z aWduYWxzXyhhYnNsOjpudWxsb3B0KSwgYXVjdGlvbl9zaWduYWxzXyhhYnNsOjpudWxsb3B0KSB7 IH0KLSAKLSBIZWFkZXJEaXJlY3RGcm9tU2VsbGVyU2lnbmFsczo6fkhlYWRlckRpcmVjdEZyb21T ZWxsZXJTaWduYWxzKCkgPSBkZWZhdWx0OwotIAoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExNy1t bmVtb25pYy1lcnJvci5wYXRjaCBiL2Nocm9taXVtLTExNy1tbmVtb25pYy1lcnJvci5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU1YjNlNS4uMDAwMDAwMAotLS0gYS9jaHJv bWl1bS0xMTctbW5lbW9uaWMtZXJyb3IucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCww IEBACi1kaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4LjQ4L3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL2NvcmUvQlVJTEQuZ24ubWUgY2hyb21pdW0tMTE3LjAuNTkzOC40OC90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9jb3JlL0JVSUxELmduCi0tLS0gY2hyb21pdW0tMTE3LjAuNTkzOC40 OC90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL0JVSUxELmduLm1lCTIwMjMtMDktMTAg MTY6NTQ6MDAuODA0Mzg1MTM5ICswMjAwCi0rKysgY2hyb21pdW0tMTE3LjAuNTkzOC40OC90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL0JVSUxELmduCTIwMjMtMDktMTAgMTY6NTQ6MTMu NTQwNjI1MDc3ICswMjAwCi1AQCAtMTY5NCw4ICsxNjk0LDYgQEAgYWN0aW9uX2ZvcmVhY2goImVs ZW1lbnRfbG9jYXRvcl90ZXN0X3BybwotICAgcHl0aG9uX3BhdGhfcm9vdCA9ICIke3Jvb3Rfb3V0 X2Rpcn0vcHlwcm90byIKLSAgIHB5dGhvbl9wYXRoX3Byb3RvID0gIiR7cHl0aG9uX3BhdGhfcm9v dH0vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sY3BfY3JpdGljYWxfcGF0aF9wcmVk aWN0b3IiCi0gCi0tICBtbmVtb25pYyA9ICJFTE9DX1BST1RPIgotLQotICAgc291cmNlX2RpciA9 ICJsY3BfY3JpdGljYWxfcGF0aF9wcmVkaWN0b3IvdGVzdF9wcm90byIKLSAgIHNvdXJjZXMgPSBy ZWJhc2VfcGF0aChbICJsY3BfaW1hZ2VfaWQuYXNjaWlwYiIgXSwgIiIsIHNvdXJjZV9kaXIpCi0g CgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTE5LXJldmVydC1hdjFlbmMtZWw5LnBhdGNoIGIvY2hy b21pdW0tMTE5LXJldmVydC1hdjFlbmMtZWw5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBiNTMzYWI5Li4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTExOS1yZXZlcnQtYXYxZW5j LWVsOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi1kaWZmIC11cCBjaHJv bWl1bS0xMTQuMC41NzM1LjM1L21lZGlhL2dwdS92YWFwaS92YWFwaV92aWRlb19lbmNvZGVfYWNj ZWxlcmF0b3IuY2MubWUgY2hyb21pdW0tMTE0LjAuNTczNS4zNS9tZWRpYS9ncHUvdmFhcGkvdmFh cGlfdmlkZW9fZW5jb2RlX2FjY2VsZXJhdG9yLmNjCi0tLS0gY2hyb21pdW0tMTE0LjAuNTczNS4z NS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZW5jb2RlX2FjY2VsZXJhdG9yLmNjLm1lCTIw MjMtMDUtMjEgMTA6MDU6MDAuMzU3ODYwMzI5ICswMjAwCi0rKysgY2hyb21pdW0tMTE0LjAuNTcz NS4zNS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZW5jb2RlX2FjY2VsZXJhdG9yLmNjCTIw MjMtMDUtMjEgMTA6MTg6MDkuNjY1NDMyNzM1ICswMjAwCi1AQCAtNDEsNyArNDEsNiBAQAotICNp bmNsdWRlICJtZWRpYS9ncHUvZ3B1X3ZpZGVvX2VuY29kZV9hY2NlbGVyYXRvcl9oZWxwZXJzLmgi Ci0gI2luY2x1ZGUgIm1lZGlhL2dwdS9oMjY0X2RwYi5oIgotICNpbmNsdWRlICJtZWRpYS9ncHUv bWFjcm9zLmgiCi0tI2luY2x1ZGUgIm1lZGlhL2dwdS92YWFwaS9hdjFfdmFhcGlfdmlkZW9fZW5j b2Rlcl9kZWxlZ2F0ZS5oIgotICNpbmNsdWRlICJtZWRpYS9ncHUvdmFhcGkvaDI2NF92YWFwaV92 aWRlb19lbmNvZGVyX2RlbGVnYXRlLmgiCi0gI2luY2x1ZGUgIm1lZGlhL2dwdS92YWFwaS92YV9z dXJmYWNlLmgiCi0gI2luY2x1ZGUgIm1lZGlhL2dwdS92YWFwaS92YWFwaV9jb21tb24uaCIKLUBA IC0yMDAsNyArMTk5LDcgQEAgYm9vbCBWYWFwaVZpZGVvRW5jb2RlQWNjZWxlcmF0b3I6OkluaXRp YQotIAotICAgY29uc3QgVmlkZW9Db2RlYyBjb2RlYyA9IFZpZGVvQ29kZWNQcm9maWxlVG9WaWRl b0NvZGVjKGNvbmZpZy5vdXRwdXRfcHJvZmlsZSk7Ci0gICBpZiAoY29kZWMgIT0gVmlkZW9Db2Rl Yzo6a0gyNjQgJiYgY29kZWMgIT0gVmlkZW9Db2RlYzo6a1ZQOCAmJgotLSAgICAgIGNvZGVjICE9 IFZpZGVvQ29kZWM6OmtWUDkgJiYgY29kZWMgIT0gVmlkZW9Db2RlYzo6a0FWMSkgewotKyAgICAg IGNvZGVjICE9IFZpZGVvQ29kZWM6OmtWUDkpIHsKLSAgICAgTUVESUFfTE9HKEVSUk9SLCBtZWRp YV9sb2cuZ2V0KCkpCi0gICAgICAgICA8PCAiVW5zdXBwb3J0ZWQgcHJvZmlsZTogIiA8PCBHZXRQ cm9maWxlTmFtZShjb25maWcub3V0cHV0X3Byb2ZpbGUpOwotICAgICByZXR1cm4gZmFsc2U7Ci1A QCAtMjkzLDcgKzI5Miw2IEBAIHZvaWQgVmFhcGlWaWRlb0VuY29kZUFjY2VsZXJhdG9yOjpJbml0 aWEKLSAgICAgICAgIGJyZWFrOwotICAgICAgIGNhc2UgVmlkZW9Db2RlYzo6a1ZQODoKLSAgICAg ICBjYXNlIFZpZGVvQ29kZWM6OmtWUDk6Ci0tICAgICAgY2FzZSBWaWRlb0NvZGVjOjprQVYxOgot ICAgICAgICAgbW9kZSA9IFZhYXBpV3JhcHBlcjo6a0VuY29kZUNvbnN0YW50UXVhbnRpemF0aW9u UGFyYW1ldGVyOwotICAgICAgICAgYnJlYWs7Ci0gICAgICAgZGVmYXVsdDoKLUBAIC0zNTYsMTIg KzM1NCw2IEBAIHZvaWQgVmFhcGlWaWRlb0VuY29kZUFjY2VsZXJhdG9yOjpJbml0aWEKLSAgICAg ICAgICAgICB2YWFwaV93cmFwcGVyXywgZXJyb3JfY2IpOwotICAgICAgIH0KLSAgICAgICBicmVh azsKLS0gICAgY2FzZSBWaWRlb0NvZGVjOjprQVYxOgotLSAgICAgIGlmICghSXNDb25maWd1cmVk Rm9yVGVzdGluZygpKSB7Ci0tICAgICAgICBlbmNvZGVyXyA9IHN0ZDo6bWFrZV91bmlxdWU8QVYx VmFhcGlWaWRlb0VuY29kZXJEZWxlZ2F0ZT4oCi0tICAgICAgICAgICAgdmFhcGlfd3JhcHBlcl8s IGVycm9yX2NiKTsKLS0gICAgICB9Ci0tICAgICAgYnJlYWs7Ci0gICAgIGRlZmF1bHQ6Ci0gICAg ICAgTk9UUkVBQ0hFRCgpIDw8ICJVbnN1cHBvcnRlZCBjb2RlYyB0eXBlICIgPDwgR2V0Q29kZWNO YW1lKG91dHB1dF9jb2RlY18pOwotICAgICAgIHJldHVybjsKLUBAIC04MzUsMTAgKzgyNyw2IEBA IFZhYXBpVmlkZW9FbmNvZGVBY2NlbGVyYXRvcjo6Q3JlYXRlRW5jb2QKLSAgICAgY2FzZSBWaWRl b0NvZGVjOjprVlA5OgotICAgICAgIHBpY3R1cmUgPSBuZXcgVmFhcGlWUDlQaWN0dXJlKHN0ZDo6 bW92ZShyZWNvbnN0cnVjdGVkX3N1cmZhY2UpKTsKLSAgICAgICBicmVhazsKLS0gICAgY2FzZSBW aWRlb0NvZGVjOjprQVYxOgotLSAgICAgIHBpY3R1cmUgPSBuZXcgVmFhcGlBVjFQaWN0dXJlKC8q ZGlzcGxheV92YV9zdXJmYWNlPSovbnVsbHB0ciwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGQ6Om1vdmUocmVjb25zdHJ1Y3RlZF9zdXJmYWNlKSk7Ci0tICAgICAgYnJl YWs7Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICB9Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMTQuMC41NzM1LjM1L21lZGlhL2dwdS9CVUlMRC5nbi5yZXZlcnQtYXYxZW5j IGNocm9taXVtLTExNC4wLjU3MzUuMzUvbWVkaWEvZ3B1L0JVSUxELmduCi0tLS0gY2hyb21pdW0t MTE0LjAuNTczNS4zNS9tZWRpYS9ncHUvQlVJTEQuZ24ucmV2ZXJ0LWF2MWVuYwkyMDIzLTA1LTE4 IDAwOjM3OjU3LjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9taXVtLTExNC4wLjU3MzUuMzUvbWVk aWEvZ3B1L0JVSUxELmduCTIwMjMtMDUtMjAgMTM6MTQ6MTAuNzU1MTgzNjMwICswMjAwCi1AQCAt MzczLDEwICszNzMsNyBAQCBzb3VyY2Vfc2V0KCJjb21tb24iKSB7Ci0gICAgICAgInZwOV9zdmNf bGF5ZXJzLmgiLAotICAgICBdCi0gICAgIGNvbmZpZ3MgKz0gWyAiLy90aGlyZF9wYXJ0eS9saWJ2 cHg6bGlidnB4X2NvbmZpZyIgXQotLSAgICBkZXBzICs9IFsKLS0gICAgICAiLy90aGlyZF9wYXJ0 eS9saWJhb206bGliYW9tcmMiLAotLSAgICAgICIvL3RoaXJkX3BhcnR5L2xpYnZweDpsaWJ2cHhy YyIsCi0tICAgIF0KLSsgICAgZGVwcyArPSBbICIvL3RoaXJkX3BhcnR5L2xpYnZweDpsaWJ2cHhy YyIgXQotICAgfQotICAgaWYgKHVzZV9saWJnYXYxX3BhcnNlcikgewotICAgICBzb3VyY2VzICs9 IFsKLWRpZmYgLXVwIGNocm9taXVtLTExNC4wLjU3MzUuMzUvbWVkaWEvZ3B1L3ZhYXBpL0JVSUxE LmduLnJldmVydC1hdjFlbmMgY2hyb21pdW0tMTE0LjAuNTczNS4zNS9tZWRpYS9ncHUvdmFhcGkv QlVJTEQuZ24KLS0tLSBjaHJvbWl1bS0xMTQuMC41NzM1LjM1L21lZGlhL2dwdS92YWFwaS9CVUlM RC5nbi5yZXZlcnQtYXYxZW5jCTIwMjMtMDUtMTggMDA6Mzc6NTcuMDAwMDAwMDAwICswMjAwCi0r KysgY2hyb21pdW0tMTE0LjAuNTczNS4zNS9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24JMjAyMy0w NS0yMCAxMzoxNDoxMC43NTYxODM2MjYgKzAyMDAKLUBAIC0zOCw4ICszOCw2IEBAIHNvdXJjZV9z ZXQoInZhYXBpIikgewotICAgc291cmNlcyA9IFsKLSAgICAgImF2MV92YWFwaV92aWRlb19kZWNv ZGVyX2RlbGVnYXRlLmNjIiwKLSAgICAgImF2MV92YWFwaV92aWRlb19kZWNvZGVyX2RlbGVnYXRl LmgiLAotLSAgICAiYXYxX3ZhYXBpX3ZpZGVvX2VuY29kZXJfZGVsZWdhdGUuY2MiLAotLSAgICAi YXYxX3ZhYXBpX3ZpZGVvX2VuY29kZXJfZGVsZWdhdGUuaCIsCi0gICAgICJoMjY0X3ZhYXBpX3Zp ZGVvX2RlY29kZXJfZGVsZWdhdGUuY2MiLAotICAgICAiaDI2NF92YWFwaV92aWRlb19kZWNvZGVy X2RlbGVnYXRlLmgiLAotICAgICAiaDI2NF92YWFwaV92aWRlb19lbmNvZGVyX2RlbGVnYXRlLmNj IiwKLUBAIC0xMDcsNyArMTA1LDYgQEAgc291cmNlX3NldCgidmFhcGkiKSB7Ci0gICAgICIvL21l ZGlhL2dwdS9jaHJvbWVvczpjb21tb24iLAotICAgICAiLy9tZWRpYS9wYXJzZXJzIiwKLSAgICAg Ii8vbW9qby9wdWJsaWMvY3BwL2JpbmRpbmdzIiwKLS0gICAgIi8vdGhpcmRfcGFydHkvbGliYW9t OmxpYmFvbXJjIiwKLSAgICAgIi8vdGhpcmRfcGFydHkvbGlidnB4OmxpYnZweHJjIiwKLSAgICAg Ii8vdGhpcmRfcGFydHkvbGlieXV2IiwKLSAgICAgIi8vdWkvZ2Z4IiwKLWRpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjLm1lIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjCi0t LS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIu Y2MubWUJMjAyMy0xMS0wMiAxNTowODozMC45MjEzMjU3NDcgKzAxMDAKLSsrKyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5jYwkyMDIzLTExLTAy IDE1OjA5OjQ2LjEyMzY5MjYwMiArMDEwMAotQEAgLTMxMjQsNiArMzEyNCw3IEBAIGJvb2wgVmFh cGlXcmFwcGVyOjpHZXRTdXBwb3J0ZWRQYWNrZWRIZWEKLSAgIHJldHVybiB0cnVlOwotIH0KLSAK LSsjaWYgMCAvL2Rpc2FibGUgQVYxIGR1ZSB0byBvbGQgbGlidmEgb24gZXBlbDkKLSBib29sIFZh YXBpV3JhcHBlcjo6R2V0TWluQVYxU2VnbWVudFNpemUoVmlkZW9Db2RlY1Byb2ZpbGUgcHJvZmls ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QmIG1p bl9zZWdfc2l6ZSkgewotICAgQ0hFQ0soIWVuZm9yY2Vfc2VxdWVuY2VfYWZmaW5pdHlfIHx8Ci1A QCAtMzE0MSw2ICszMTQyLDcgQEAgYm9vbCBWYWFwaVdyYXBwZXI6OkdldE1pbkFWMVNlZ21lbnRT aXplKAotIAotICAgcmV0dXJuIHRydWU7Ci0gfQotKyNlbmRpZgotIAotIGJvb2wgVmFhcGlXcmFw cGVyOjpCbGl0U3VyZmFjZShjb25zdCBWQVN1cmZhY2UmIHZhX3N1cmZhY2Vfc3JjLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWQVN1cmZhY2UmIHZhX3N1cmZhY2VfZGVz dCwKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L21lZGlhL2dwdS92YWFwaS92YWFw aV93cmFwcGVyLmgubWUgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbWVkaWEvZ3B1L3ZhYXBpL3Zh YXBpX3dyYXBwZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L21lZGlhL2dwdS92YWFw aS92YWFwaV93cmFwcGVyLmgubWUJMjAyMy0xMS0wMiAxNTowOTo1OC45NzM5MjgzOTUgKzAxMDAK LSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBl ci5oCTIwMjMtMTEtMDIgMTU6MTA6NDUuOTkwNzkxMTE0ICswMTAwCi1AQCAtNTUzLDkgKzU1Mywx MSBAQCBjbGFzcyBNRURJQV9HUFVfRVhQT1JUIFZhYXBpV3JhcHBlcgotICAgICAgIGJvb2wmIHBh Y2tlZF9wcHMsCi0gICAgICAgYm9vbCYgcGFja2VkX3NsaWNlKTsKLSAKLSsjaWYgMCAvL2Rpc2Fi bGUgQVYxIGR1ZSB0byBvbGQgbGlidmEgb24gZXBlbDkKLSAgIC8vIEdldHMgdGhlIG1pbmltdW0g c2VnbWVudCBibG9jayBzaXplIHN1cHBvcnRlZCBmb3IgQVYxIGVuY29kaW5nLgotICAgW1tub2Rp c2NhcmRdXSBib29sIEdldE1pbkFWMVNlZ21lbnRTaXplKFZpZGVvQ29kZWNQcm9maWxlIHByb2Zp bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qm IG1pbl9zZWdfc2l6ZSk7Ci0rI2VuZGlmCi0gCi0gICAvLyBCbGl0cyBhIFZBU3VyZmFjZSB8dmFf c3VyZmFjZV9zcmN8IGludG8gYW5vdGhlciBWQVN1cmZhY2UKLSAgIC8vIHx2YV9zdXJmYWNlX2Rl c3R8IGFwcGx5aW5nIHBpeGVsIGZvcm1hdCBjb252ZXJzaW9uLCBjcm9wcGluZwoKZGlmZiAtLWdp dCBhL2Nocm9taXVtLTEyMC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRjaCBiL2Nocm9taXVtLTEy MC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggYmI0NjFlZi4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS0xMjAtYXJtNjQtbWVtb3J5X3RhZ2dp bmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0gY2hyb21pdW0tMTIw LjAuNjA5OS4zNS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRp b25fYWxsb2MvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oLnRoYW4JMjAyMy0xMS0yNiAxMzo1MDow Ny4wMDU1MTk4NzcgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2Jhc2UvYWxsb2Nh dG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9wYXJ0aXRpb25fYWxs b2NfY29uZmlnLmgJMjAyMy0xMS0yNiAxMzo1MDo0OS43MjcyNjcyNDAgKzAxMDAKLUBAIC0xNTIs MTAgKzE1Miw3IEBACi0gICAoIUJVSUxERkxBRyhQVVRfUkVGX0NPVU5UX0lOX1BSRVZJT1VTX1NM T1QpICYmIFwKLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4pKQotIAotLSNkZWZp bmUgUEFfQ09ORklHX0hBU19NRU1PUllfVEFHR0lORygpICAgICAgICAgICAgICBcCi0tICAoZGVm aW5lZChBUkNIX0NQVV9BUk02NCkgJiYgZGVmaW5lZChfX2NsYW5nX18pICYmIFwKLS0gICAhZGVm aW5lZChBRERSRVNTX1NBTklUSVpFUikgJiYgICAgICAgICAgICAgICAgICAgXAotLSAgIChCVUlM REZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKSkpCi0rI2RlZmluZSBQQV9D T05GSUdfSEFTX01FTU9SWV9UQUdHSU5HKCkgMAotIAotICNpZiBQQV9DT05GSUcoSEFTX01FTU9S WV9UQUdHSU5HKQotIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHZvaWQqKSA9PSA4KTsKCmRpZmYgLS1n aXQgYS9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLXZlcnNpb24td2FybmluZy5wYXRjaCBiL2Nocm9t aXVtLTEyMC1lbDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAxMTJkYTY1Li4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTEyMC1lbDctY2xh bmctdmVyc2lvbi13YXJuaW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAot ZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9saWJjKysvc3JjL2lu Y2x1ZGUvX19jb25maWcubWUgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9saWJj Kysvc3JjL2luY2x1ZGUvX19jb25maWcKLS0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJk X3BhcnR5L2xpYmMrKy9zcmMvaW5jbHVkZS9fX2NvbmZpZy5tZQkyMDIzLTEyLTAzIDAwOjA1OjUx LjI1NDQ4MzQ3NCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkv bGliYysrL3NyYy9pbmNsdWRlL19fY29uZmlnCTIwMjMtMTItMDMgMDA6MDY6MDUuODcyODYzMTY4 ICswMTAwCi1AQCAtMzIsMTEgKzMyLDcgQEAKLSAKLSAvLyBXYXJuIGlmIGEgY29tcGlsZXIgdmVy c2lvbiBpcyB1c2VkIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBhbnltb3JlCi0gLy8gTExWTSBSRUxF QVNFIFVwZGF0ZSB0aGUgbWluaW11bSBjb21waWxlciB2ZXJzaW9ucwotLSMgIGlmIGRlZmluZWQo X0xJQkNQUF9DTEFOR19WRVIpCi0tIyAgICBpZiBfTElCQ1BQX0NMQU5HX1ZFUiA8IDE1MDAKLS0j ICAgICAgd2FybmluZyAiTGliYysrIG9ubHkgc3VwcG9ydHMgQ2xhbmcgMTUgYW5kIGxhdGVyIgot LSMgICAgZW5kaWYKLS0jICBlbGlmIGRlZmluZWQoX0xJQkNQUF9BUFBMRV9DTEFOR19WRVIpCi0r IyAgaWYgZGVmaW5lZChfTElCQ1BQX0FQUExFX0NMQU5HX1ZFUikKLSAjICAgIGlmIF9MSUJDUFBf QVBQTEVfQ0xBTkdfVkVSIDwgMTUwMAotICMgICAgICB3YXJuaW5nICJMaWJjKysgb25seSBzdXBw b3J0cyBBcHBsZUNsYW5nIDE1IGFuZCBsYXRlciIKLSAjICAgIGVuZGlmCgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTIwLWduLXdvcmthcm91bmQtYXRzcGkucGF0Y2ggYi9jaHJvbWl1bS0xMjAtZ24t d29ya2Fyb3VuZC1hdHNwaS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJj N2I3ZS4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS0xMjAtZ24td29ya2Fyb3VuZC1hdHNwaS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTEyMC4w LjYwOTkuMzUvYnVpbGQvY29uZmlnL2xpbnV4L2F0c3BpMi9CVUlMRC5nbi5tZSBjaHJvbWl1bS0x MjAuMC42MDk5LjM1L2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24KLS0tLSBjaHJv bWl1bS0xMjAuMC42MDk5LjM1L2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24ubWUJ MjAyMy0xMS0yNiAxNjoxNDoxNS4zNjQwNjQxMjYgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42 MDk5LjM1L2J1aWxkL2NvbmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24JMjAyMy0xMS0yNiAxNjo0 MToxNi44NzczMjE5OTAgKzAxMDAKLUBAIC0yMSw2ICsyMSw5IEBAIGlmICh1c2VfYXRrKSB7Ci0g ICAgIG1pbm9yID0gYXRzcGlfdmVyc2lvblsxXQotICAgICBtaWNybyA9IGF0c3BpX3ZlcnNpb25b Ml0KLSAKLSsgICAgIyBnbiB3b3JrYXJvdW5kIGZvciB0aGUgZXJyb3I6IEFzc2lnbm1lbnQgaGFk IG5vIGVmZmVjdAotKyAgICBwcmludCgiQVRTUEkgVmVyc2lvbjogJG1ham9yLiRtaW5vci4kbWlj cm8iKQotKwotICAgICAjIEFUU1BJIDIuNDkuOTAgbm93IGRlZmluZXMgdGhlc2UgZm9yIHVzIGFu ZCBpdCdzIGFuIGVycm9yIGZvciB1cyB0bwotICAgICAjIHJlZGVmaW5lIHRoZW0gb24gdGhlIGNv bXBpbGVyIGNvbW1hbmQgbGluZS4KLSAgICAgIyBTZWUgQVRTUEkgOTI3MzQ0YTM0Y2Q1YmY4MWZj NjRkYTQ5NjgyNDE3MzVlY2I0ZjAzYgoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1taXNzaW5n LWhlYWRlci1maWxlcy5wYXRjaCBiL2Nocm9taXVtLTEyMC1taXNzaW5nLWhlYWRlci1maWxlcy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQzZjNlZi4uMDAwMDAwMAotLS0g YS9jaHJvbWl1bS0xMjAtbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0NzAgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9j aGVja19vcC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jh c2UvY2hlY2tfb3AuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY2hlY2tfb3Au aC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjA1LjAwMDAwMDAwMCArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY2hlY2tfb3AuaAkyMDIzLTExLTA2 IDE0OjM0OjAxLjgwODg2ODk4MiArMDEwMAotQEAgLTUsNiArNSw3IEBACi0gI2lmbmRlZiBCQVNF X0NIRUNLX09QX0hfCi0gI2RlZmluZSBCQVNFX0NIRUNLX09QX0hfCi0gCi0rI2luY2x1ZGUgPGNz dGRpbnQ+Ci0gI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVk ZSA8c3RyaW5nX3ZpZXc+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2Nv bnRhaW5lcnMvZmxhdF9tYXAuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS9iYXNlL2NvbnRhaW5lcnMvZmxhdF9tYXAuaAotLS0tIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2Jhc2UvY29udGFpbmVycy9mbGF0X21hcC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIw MjMtMTEtMDEgMTk6MTA6MDUuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvYmFzZS9jb250YWluZXJzL2ZsYXRfbWFwLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTM4 NjkwODkgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAotICNpZm5kZWYgQkFTRV9DT05UQUlORVJTX0ZM QVRfTUFQX0hfCi0gI2RlZmluZSBCQVNFX0NPTlRBSU5FUlNfRkxBVF9NQVBfSF8KLSAKLSsjaW5j bHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLSAjaW5jbHVkZSA8dHVwbGU+ Ci0gI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvYmFzZS9kZWJ1Zy9wcm9maWxlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L2Jhc2UvZGVidWcvcHJvZmlsZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2Jhc2UvZGVidWcvcHJvZmlsZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTEx LTAxIDE5OjEwOjA1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L2Jhc2UvZGVidWcvcHJvZmlsZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgwOTg2OTAwNCArMDEw MAotQEAgLTgsNiArOCw3IEBACi0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotICNpbmNsdWRlIDxzdGRp bnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotIAotICNp bmNsdWRlICJiYXNlL2Jhc2VfZXhwb3J0LmgiCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9iYXNlL21lbW9yeS9yZWZfY291bnRlZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgKLS0tLSBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS9iYXNlL21lbW9yeS9yZWZfY291bnRlZC5oLm1pc3NpbmctaGVhZGVy LWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MDUuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaAkyMDIzLTExLTA2IDE0OjM0 OjAxLjgwODg2ODk4MiArMDEwMAotQEAgLTYsNiArNiw3IEBACi0gI2RlZmluZSBCQVNFX01FTU9S WV9SRUZfQ09VTlRFRF9IXwotIAotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSsjaW5jbHVkZSA8bGlt aXRzPgotIAotICNpbmNsdWRlIDxsaW1pdHM+Ci0gI2luY2x1ZGUgPHV0aWxpdHk+Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X2J1ZGdldC9l bmNvdW50ZXJlZF9zdXJmYWNlX3RyYWNrZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJl ZF9zdXJmYWNlX3RyYWNrZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9i cm93c2VyL3ByaXZhY3lfYnVkZ2V0L2VuY291bnRlcmVkX3N1cmZhY2VfdHJhY2tlci5oLm1pc3Np bmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MTMuMDAwMDAwMDAwICswMTAwCi0rKysg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9idWRnZXQvZW5j b3VudGVyZWRfc3VyZmFjZV90cmFja2VyLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTQ4NjkxMTAg KzAxMDAKLUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5j bHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8bWFwPgotIAotICNpbmNsdWRlICJiYXNlL2NvbnRh aW5lcnMvZmxhdF9zZXQuaCIKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9t ZS9icm93c2VyL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaC5t aXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nl ci93ZWJhdXRobi9hdXRoZW50aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgKLS0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJvd3Nlci93ZWJhdXRobi9hdXRoZW50aWNhdG9y X3JlcXVlc3RfZGlhbG9nX21vZGVsLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAx OToxMDoxNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJv bWUvYnJvd3Nlci93ZWJhdXRobi9hdXRoZW50aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgJ MjAyMy0xMS0wNiAxNDozNDowMS44MTc4NjkxNzQgKzAxMDAKLUBAIC04LDYgKzgsNyBAQAotICNp bmNsdWRlIDxtZW1vcnk+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8dmVjdG9yPgot KyNpbmNsdWRlIDx2YXJpYW50PgotIAotICNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5o IgotICNpbmNsdWRlICJiYXNlL2Z1bmN0aW9uYWwvY2FsbGJhY2tfZm9yd2FyZC5oIgotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9t ZS93ZWJfdmlld19pbXBsLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jaHJvbWUvd2ViX3ZpZXdfaW1wbC5jYwot LS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jaHJv bWUvd2ViX3ZpZXdfaW1wbC5jYy5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEw OjE2LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS90 ZXN0L2Nocm9tZWRyaXZlci9jaHJvbWUvd2ViX3ZpZXdfaW1wbC5jYwkyMDIzLTExLTA2IDE0OjM0 OjAxLjgxODg2OTE5NiArMDEwMAotQEAgLTExLDYgKzExLDcgQEAKLSAjaW5jbHVkZSA8cXVldWU+ Ci0gI2luY2x1ZGUgPHV0aWxpdHk+Ci0gI2luY2x1ZGUgPHZlY3Rvcj4KLSsjaW5jbHVkZSA8Y3N0 cmluZz4KLSAKLSAjaW5jbHVkZSAiYmFzZS9jaGVjay5oIgotICNpbmNsdWRlICJiYXNlL2ZpbGVz L2ZpbGVfcGF0aC5oIgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50 cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvYXV0b2ZpbGxfYWJsYXRpb25fc3R1ZHkuaC5taXNzaW5n LWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2F1dG9maWxs L2NvcmUvYnJvd3Nlci9hdXRvZmlsbF9hYmxhdGlvbl9zdHVkeS5oCi0tLS0gY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvYXV0b2ZpbGxfYWJs YXRpb25fc3R1ZHkuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjE5LjAw MDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvYXV0 b2ZpbGwvY29yZS9icm93c2VyL2F1dG9maWxsX2FibGF0aW9uX3N0dWR5LmgJMjAyMy0xMS0wNiAx NDozNDowMS44MTU4NjkxMzIgKzAxMDAKLUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxz dGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotIAot IGNsYXNzIEdVUkw7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRz L2NyYXNoL2NvcmUvYXBwL2NyYXNoX3JlcG9ydGVyX2NsaWVudC5oLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHAvY3Jh c2hfcmVwb3J0ZXJfY2xpZW50LmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25l bnRzL2NyYXNoL2NvcmUvYXBwL2NyYXNoX3JlcG9ydGVyX2NsaWVudC5oLm1pc3NpbmctaGVhZGVy LWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjAuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9jcmFzaC9jb3JlL2FwcC9jcmFzaF9yZXBvcnRlcl9j bGllbnQuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMzg2OTA4OSArMDEwMAotQEAgLTcsNiArNyw3 IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNp bmNsdWRlIDxzdHJpbmc+Ci0gCi0gI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgotZGlm ZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1l bnQvaW50ZXJuYWwvZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxl cyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9p bnRlcm5hbC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvZXZlbnRfc3RvcmFn ZV92YWxpZGF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjIxLjAw MDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvZmVh dHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgJMjAyMy0x MS0wNiAxNDozNDowMS44MTQ4NjkxMTAgKzAxMDAKLUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNs dWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5n PgotIAotIG5hbWVzcGFjZSBmZWF0dXJlX2VuZ2FnZW1lbnQgewotZGlmZiAtdXAgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvbmV2 ZXJfZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9u ZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvbmV2ZXJfZXZlbnRfc3Rv cmFnZV92YWxpZGF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjIx LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMv ZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL25ldmVyX2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9y LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTQ4NjkxMTAgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAot ICNpZm5kZWYgQ09NUE9ORU5UU19GRUFUVVJFX0VOR0FHRU1FTlRfSU5URVJOQUxfTkVWRVJfRVZF TlRfU1RPUkFHRV9WQUxJREFUT1JfSF8KLSAjZGVmaW5lIENPTVBPTkVOVFNfRkVBVFVSRV9FTkdB R0VNRU5UX0lOVEVSTkFMX05FVkVSX0VWRU5UX1NUT1JBR0VfVkFMSURBVE9SX0hfCi0gCi0rI2lu Y2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAKLSAjaW5jbHVkZSAiY29tcG9u ZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvZXZlbnRfc3RvcmFnZV92YWxpZGF0b3Iu aCIKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvb21uaWJveC9i cm93c2VyL29uX2RldmljZV9oZWFkX21vZGVsLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIvb25fZGV2aWNlX2hl YWRfbW9kZWwuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvb21uaWJv eC9icm93c2VyL29uX2RldmljZV9oZWFkX21vZGVsLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAy My0xMS0wMSAxOToxMDoyMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9jb21wb25lbnRzL29tbmlib3gvYnJvd3Nlci9vbl9kZXZpY2VfaGVhZF9tb2RlbC5oCTIw MjMtMTEtMDYgMTQ6MzQ6MDEuODE1ODY5MTMyICswMTAwCi1AQCAtNyw2ICs3LDcgQEAKLSAKLSAj aW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0 cmluZz4KLSAjaW5jbHVkZSA8dXRpbGl0eT4KLSAjaW5jbHVkZSA8dmVjdG9yPgotZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUv YnJvd3Nlci9nZW5lcmF0aW9uL3Bhc3N3b3JkX2dlbmVyYXRvci5oLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9j b3JlL2Jyb3dzZXIvZ2VuZXJhdGlvbi9wYXNzd29yZF9nZW5lcmF0b3IuaAotLS0tIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIv Z2VuZXJhdGlvbi9wYXNzd29yZF9nZW5lcmF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIz LTExLTAxIDE5OjEwOjIxLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvZ2VuZXJhdGlvbi9w YXNzd29yZF9nZW5lcmF0b3IuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAot QEAgLTcsNiArNyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxj c3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gCi0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjEwNS9jb21wb25lbnRzL3BheW1lbnRzL2NvbnRlbnQvdXRpbGl0eS9maW5nZXJwcmlu dF9wYXJzZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9j b21wb25lbnRzL3BheW1lbnRzL2NvbnRlbnQvdXRpbGl0eS9maW5nZXJwcmludF9wYXJzZXIuaAot LS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvcGF5bWVudHMvY29udGVudC91 dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEt MDEgMTk6MTA6MjEuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Y29tcG9uZW50cy9wYXltZW50cy9jb250ZW50L3V0aWxpdHkvZmluZ2VycHJpbnRfcGFyc2VyLmgJ MjAyMy0xMS0wNiAxNDozNDowMS44MTU4NjkxMzIgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAotICNp Zm5kZWYgQ09NUE9ORU5UU19QQVlNRU5UU19DT05URU5UX1VUSUxJVFlfRklOR0VSUFJJTlRfUEFS U0VSX0hfCi0gI2RlZmluZSBDT01QT05FTlRTX1BBWU1FTlRTX0NPTlRFTlRfVVRJTElUWV9GSU5H RVJQUklOVF9QQVJTRVJfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3Rk ZGVmLmg+Ci0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvZ2luL3RpbWVfY2xhbXBlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2dpbi90aW1lX2NsYW1wZXIuaAotLS0tIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2dpbi90aW1lX2NsYW1wZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAx IDE5OjEwOjI4LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dp bi90aW1lX2NsYW1wZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxODg2OTE5NiArMDEwMAotQEAg LTQ4LDcgKzQ4LDcgQEAgY2xhc3MgR0lOX0VYUE9SVCBUaW1lQ2xhbXBlciB7Ci0gICAgIGNvbnN0 IGludDY0X3QgbWljcm9zID0gbm93X21pY3JvcyAlIDEwMDA7Ci0gICAgIC8vIGFicygpIGlzIG5l Y2Vzc2FyeSBmb3IgZGV2aWNlcyB3aXRoIHRpbWVzIGJlZm9yZSB1bml4LWVwb2NoIChtb3N0IGxp a2VseQotICAgICAvLyBjb25maWd1cmVkIGluY29ycmVjdGx5KS4KLS0gICAgaWYgKGFicyhtaWNy b3MpICsga1Jlc29sdXRpb25NaWNyb3MgPCAxMDAwKSB7Ci0rICAgIGlmIChzdGQ6OmFicyhtaWNy b3MpICsga1Jlc29sdXRpb25NaWNyb3MgPCAxMDAwKSB7Ci0gICAgICAgcmV0dXJuIG5vd19taWNy b3MgLyAxMDAwOwotICAgICB9Ci0gICAgIHJldHVybiBDbGFtcFRpbWVSZXNvbHV0aW9uKG5vd19t aWNyb3MpIC8gMTAwMDsKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dwdS9jb25m aWcvZ3B1X2ZlYXR1cmVfaW5mby5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L2dwdS9jb25maWcvZ3B1X2ZlYXR1cmVfaW5mby5oCi0tLS0gY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvZ3B1L2NvbmZpZy9ncHVfZmVhdHVyZV9pbmZvLmgubWlzc2luZy1oZWFkZXIt ZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoyOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS9ncHUvY29uZmlnL2dwdV9mZWF0dXJlX2luZm8uaAkyMDIzLTExLTA2IDE0 OjM0OjAxLjgwOTg2OTAwNCArMDEwMAotQEAgLTcsNiArNyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0 ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2lu Y2x1ZGUgPHZlY3Rvcj4KLSAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9i YXNlL25ldF9leHBvcnQuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9uZXQvYmFzZS9uZXRfZXhwb3J0LmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9u ZXQvYmFzZS9uZXRfZXhwb3J0LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOTox MDozMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9uZXQvYmFz ZS9uZXRfZXhwb3J0LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MDk4NjkwMDQgKzAxMDAKLUBAIC01 LDYgKzUsOCBAQAotICNpZm5kZWYgTkVUX0JBU0VfTkVUX0VYUE9SVF9IXwotICNkZWZpbmUgTkVU X0JBU0VfTkVUX0VYUE9SVF9IXwotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotKwotIC8vIERlZmlu ZXMgTkVUX0VYUE9SVCBzbyB0aGF0IGZ1bmN0aW9uYWxpdHkgaW1wbGVtZW50ZWQgYnkgdGhlIG5l dCBtb2R1bGUgY2FuCi0gLy8gYmUgZXhwb3J0ZWQgdG8gY29uc3VtZXJzLCBhbmQgTkVUX0VYUE9S VF9QUklWQVRFIHRoYXQgYWxsb3dzIHVuaXQgdGVzdHMgdG8KLSAvLyBhY2Nlc3MgZmVhdHVyZXMg bm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgYnkgcmVhbCBjb25zdW1lcnMuCi1kaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9wZGYvZG9jdW1lbnRfYXR0YWNobWVudF9pbmZv LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvcGRmL2RvY3Vt ZW50X2F0dGFjaG1lbnRfaW5mby5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvcGRmL2Rv Y3VtZW50X2F0dGFjaG1lbnRfaW5mby5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEg MTk6MTA6MzQuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvcGRm L2RvY3VtZW50X2F0dGFjaG1lbnRfaW5mby5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE1ODY5MTMy ICswMTAwCi1AQCAtNyw2ICs3LDcgQEAKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0rI2lu Y2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAKLSAKLWRpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX2Zp bGVfcGVybWlzc2lvbi5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX2ZpbGVfcGVybWlzc2lvbi5o Ci0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tl ci9icm9rZXJfZmlsZV9wZXJtaXNzaW9uLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0w MSAxOToxMDozNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9z YW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9maWxlX3Blcm1pc3Npb24uaAkyMDIz LTExLTA2IDE0OjM0OjAxLjgwOTg2OTAwNCArMDEwMAotQEAgLTUsNiArNSw3IEBACi0gI2lmbmRl ZiBTQU5EQk9YX0xJTlVYX1NZU0NBTExfQlJPS0VSX0JST0tFUl9GSUxFX1BFUk1JU1NJT05fSF8K LSAjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTQ0FMTF9CUk9LRVJfQlJPS0VSX0ZJTEVfUEVSTUlT U0lPTl9IXwotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxiaXRzZXQ+Ci0gI2lu Y2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLWRpZmYgLXVwIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L3NlcnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL2dlbmVyaWNfc2Vuc29yL3Nl bnNvcl9yZWFkaW5nLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvZ2VuZXJpY19zZW5zb3Ivc2Vuc29yX3JlYWRp bmcuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NlcnZpY2VzL2RldmljZS9wdWJsaWMv Y3BwL2dlbmVyaWNfc2Vuc29yL3NlbnNvcl9yZWFkaW5nLmgubWlzc2luZy1oZWFkZXItZmlsZXMJ MjAyMy0xMS0wMSAxOToxMDozNS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS9zZXJ2aWNlcy9kZXZpY2UvcHVibGljL2NwcC9nZW5lcmljX3NlbnNvci9zZW5zb3Jf cmVhZGluZy5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODIwODY5MjM4ICswMTAwCi1AQCAtOCw2ICs4 LDkgQEAKLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNp bmNsdWRlIDxjc3RkZGVmPgotKyNpbmNsdWRlIDxjc3RkaW50PgotKwotICNpbmNsdWRlIDx0eXBl X3RyYWl0cz4KLSAKLSBuYW1lc3BhY2UgZGV2aWNlIHsKLWRpZmYgLXVwIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNjLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNj Ci0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4u Y2MubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDozNS4wMDAwMDAwMDAgKzAx MDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9za2lhL2V4dC9za2NvbG9yc3BhY2VfdHJm bi5jYwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxODg2OTE5NiArMDEwMAotQEAgLTMsNiArMyw3IEBA Ci0gLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAKLSAjaW5jbHVkZSAic2tpYS9leHQv c2tjb2xvcnNwYWNlX3RyZm4uaCIKLSsjaW5jbHVkZSA8Y21hdGg+Ci0gCi0gI2luY2x1ZGUgPGNt YXRoPgotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYWJz ZWlsLWNwcC9hYnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaC5taXNzaW5nLWhlYWRlci1maWxlcyBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvc3RyaW5n cy9zdHJpbmdfdmlldy5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv YWJzZWlsLWNwcC9hYnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaC5taXNzaW5nLWhlYWRlci1maWxl cwkyMDIzLTExLTAxIDE5OjEwOjM2LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3 LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MDk4NjkwMDQgKzAxMDAKLUBAIC0yNyw2ICsyNyw3IEBA Ci0gI2lmbmRlZiBBQlNMX1NUUklOR1NfU1RSSU5HX1ZJRVdfSF8KLSAjZGVmaW5lIEFCU0xfU1RS SU5HU19TVFJJTkdfVklFV19IXwotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxh bGdvcml0aG0+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0gI2luY2x1ZGUgPGNzdGRkZWY+Ci1kaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL0dM U0xBTkcvU2hhZGVyVmFycy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJWYXJzLmgKLS0t LSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL0dMU0xB TkcvU2hhZGVyVmFycy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6NTku MDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv YW5nbGUvaW5jbHVkZS9HTFNMQU5HL1NoYWRlclZhcnMuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgx MDg2OTAyNSArMDEwMAotQEAgLTEwLDYgKzEwLDcgQEAKLSAjaWZuZGVmIEdMU0xBTkdfU0hBREVS VkFSU19IXwotICNkZWZpbmUgR0xTTEFOR19TSEFERVJWQVJTX0hfCi0gCi0rI2luY2x1ZGUgPGNz dGRpbnQ+Ci0gI2luY2x1ZGUgPGFsZ29yaXRobT4KLSAjaW5jbHVkZSA8YXJyYXk+Ci0gI2luY2x1 ZGUgPGNzdGRpbnQ+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0 eS9ibGluay9wdWJsaWMvY29tbW9uL2JsdWV0b290aC93ZWJfYmx1ZXRvb3RoX2RldmljZV9pZC5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L2JsaW5rL3B1YmxpYy9jb21tb24vYmx1ZXRvb3RoL3dlYl9ibHVldG9vdGhfZGV2aWNlX2lkLmgK LS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvY29t bW9uL2JsdWV0b290aC93ZWJfYmx1ZXRvb3RoX2RldmljZV9pZC5oLm1pc3NpbmctaGVhZGVyLWZp bGVzCTIwMjMtMTEtMDEgMTk6MTA6MzcuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL2NvbW1vbi9ibHVldG9vdGgvd2Vi X2JsdWV0b290aF9kZXZpY2VfaWQuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMDg2OTAyNSArMDEw MAotQEAgLTcsNiArNyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRl IDxjc3RkaW50PgotICNpbmNsdWRlIDxhcnJheT4KLSAjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5j bHVkZSA8ZnVuY3Rpb25hbD4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJk X3BhcnR5L2Rhd24vc3JjL3RpbnQvbGFuZy9zcGlydi9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L2Rhd24vc3JjL3RpbnQvbGFuZy9zcGlydi9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oCi0tLS0g Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9sYW5nL3Nw aXJ2L3JlYWRlci9hc3RfcGFyc2VyL25hbWVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0x MS0wMSAxOToxMzo1MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS9kYXduL3NyYy90aW50L2xhbmcvc3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIv bmFtZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMDg2OTAyNSArMDEwMAotQEAgLTE1LDYgKzE1 LDcgQEAKLSAjaWZuZGVmIFNSQ19USU5UX0xBTkdfU1BJUlZfUkVBREVSX0FTVF9QQVJTRVJfTkFN RVJfSF8KLSAjZGVmaW5lIFNSQ19USU5UX0xBTkdfU1BJUlZfUkVBREVSX0FTVF9QQVJTRVJfTkFN RVJfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotICNpbmNs dWRlIDx1bm9yZGVyZWRfbWFwPgotICNpbmNsdWRlIDx2ZWN0b3I+Ci1kaWZmIC11cCBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9pcGN6L3NyYy9pcGN6L3JvdXRlcl9saW5rLmgu bWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv aXBjei9zcmMvaXBjei9yb3V0ZXJfbGluay5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvaXBjei9zcmMvaXBjei9yb3V0ZXJfbGluay5oLm1pc3NpbmctaGVhZGVyLWZp bGVzCTIwMjMtMTEtMDEgMTk6MTE6MjAuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvaXBjei9zcmMvaXBjei9yb3V0ZXJfbGluay5oCTIwMjMt MTEtMDYgMTQ6MzQ6MDEuODE5ODY5MjE3ICswMTAwCi1AQCAtNSw2ICs1LDcgQEAKLSAjaWZuZGVm IElQQ1pfU1JDX0lQQ1pfUk9VVEVSX0xJTktfSF8KLSAjZGVmaW5lIElQQ1pfU1JDX0lQQ1pfUk9V VEVSX0xJTktfSF8KLSAKLSsjaW5jbHVkZSA8bWVtb3J5PgotICNpbmNsdWRlIDxjc3RkZGVmPgot ICNpbmNsdWRlIDxmdW5jdGlvbmFsPgotICNpbmNsdWRlIDxtZW1vcnk+Ci1kaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMv c3JjL2NwcC9wYWxldHRlcy90b25lcy5jYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3JjL2Nw cC9wYWxldHRlcy90b25lcy5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3Bh cnR5L21hdGVyaWFsX2NvbG9yX3V0aWxpdGllcy9zcmMvY3BwL3BhbGV0dGVzL3RvbmVzLmNjLm1p c3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6NTMuMDAwMDAwMDAwICswMTAwCi0r KysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvbWF0ZXJpYWxfY29sb3JfdXRp bGl0aWVzL3NyYy9jcHAvcGFsZXR0ZXMvdG9uZXMuY2MJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4 NjkyMTcgKzAxMDAKLUBAIC0xNCw2ICsxNCw3IEBACi0gICogbGltaXRhdGlvbnMgdW5kZXIgdGhl IExpY2Vuc2UuCi0gICovCi0gCi0rI2luY2x1ZGUgPGNtYXRoPgotICNpbmNsdWRlICJjcHAvcGFs ZXR0ZXMvdG9uZXMuaCIKLSAKLSAjaW5jbHVkZSAiY3BwL2NhbS9jYW0uaCIKLWRpZmYgLXVwIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVy eS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4dF9yZWNvcmQuaC5taXNzaW5nLWhlYWRlci1maWxlcyBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9vcGVuc2NyZWVuL3NyYy9kaXNjb3Zl cnkvZG5zc2QvcHVibGljL2Ruc19zZF90eHRfcmVjb3JkLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS90aGlyZF9wYXJ0eS9vcGVuc2NyZWVuL3NyYy9kaXNjb3ZlcnkvZG5zc2QvcHVibGlj L2Ruc19zZF90eHRfcmVjb3JkLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOTox MTo1OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9w YXJ0eS9vcGVuc2NyZWVuL3NyYy9kaXNjb3ZlcnkvZG5zc2QvcHVibGljL2Ruc19zZF90eHRfcmVj b3JkLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTA4NjkwMjUgKzAxMDAKLUBAIC03LDYgKzcsNyBA QAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5j bHVkZSA8ZnVuY3Rpb25hbD4KLSAjaW5jbHVkZSA8bWFwPgotICNpbmNsdWRlIDxzZXQ+Ci1kaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9wZGZpdW0vY29uc3RhbnRz L2Fubm90YXRpb25fZmxhZ3MuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS90aGlyZF9wYXJ0eS9wZGZpdW0vY29uc3RhbnRzL2Fubm90YXRpb25fZmxhZ3MuaAot LS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3BkZml1bS9jb25zdGFudHMv YW5ub3RhdGlvbl9mbGFncy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTQ6 NDguMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFy dHkvcGRmaXVtL2NvbnN0YW50cy9hbm5vdGF0aW9uX2ZsYWdzLmgJMjAyMy0xMS0wNiAxNDozNDow MS44MTU4NjkxMzIgKzAxMDAKLUBAIC03LDYgKzcsOCBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQu aD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSsKLSBuYW1lc3BhY2UgcGRmaXVtIHsKLSBuYW1l c3BhY2UgYW5ub3RhdGlvbl9mbGFncyB7Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9wcm9maWxlci9pbnN0cnVtZW50YXRpb24uaC5t aXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9y dXkvc3JjL3J1eS9wcm9maWxlci9pbnN0cnVtZW50YXRpb24uaAotLS0tIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5L3Byb2ZpbGVyL2luc3RydW1lbnRhdGlv bi5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTI6MDIuMDAwMDAwMDAwICsw MTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkv cHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTM4NjkwODkg KzAxMDAKLUBAIC0xNyw2ICsxNyw3IEBAIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgot ICNkZWZpbmUgUlVZX1JVWV9QUk9GSUxFUl9JTlNUUlVNRU5UQVRJT05fSF8KLSAKLSAjaWZkZWYg UlVZX1BST0ZJTEVSCi0rI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNp bmNsdWRlIDxtdXRleD4KLSAjaW5jbHVkZSA8dmVjdG9yPgotZGlmZiAtdXAgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5o cHAubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFy dHkvc3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5ocHAKLS0tLSBjaHJvbWl1bS0xMTku MC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci9zcmMvU3lzdGVtL0xSVUNhY2hlLmhw cC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEyOjE1LjAwMDAwMDAwMCArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3Ny Yy9TeXN0ZW0vTFJVQ2FjaGUuaHBwCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICswMTAw Ci1AQCAtMTcsNiArMTcsNyBAQAotIAotICNpbmNsdWRlICJTeXN0ZW0vRGVidWcuaHBwIgotIAot KyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlIDxjc3Rk aW50PgotICNpbmNsdWRlIDxmdW5jdGlvbmFsPgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2xsdm0v bGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZt LTEwLjAvbGx2bS9saWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5jCi0tLS0gY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4w L2xsdm0vbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYy5taXNzaW5nLWhlYWRlci1maWxlcwky MDIzLTExLTAxIDE5OjEyOjQyLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZt L2xpYi9TdXBwb3J0L1VuaXgvU2lnbmFscy5pbmMJMjAyMy0xMS0wNiAxNDozNDowMS44MTQ4Njkx MTAgKzAxMDAKLUBAIC00NSw2ICs0NSw3IEBACi0gI2luY2x1ZGUgImxsdm0vU3VwcG9ydC9TYXZl QW5kUmVzdG9yZS5oIgotICNpbmNsdWRlICJsbHZtL1N1cHBvcnQvcmF3X29zdHJlYW0uaCIKLSAj aW5jbHVkZSA8YWxnb3JpdGhtPgotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJp bmc+Ci0gI2luY2x1ZGUgPHN5c2V4aXRzLmg+Ci0gI2lmZGVmIEhBVkVfQkFDS1RSQUNFCi1kaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNv cmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVybmFsL3NwZWN0cm9ncmFtLmgubWlzc2luZy1oZWFkZXIt ZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5z b3JmbG93L2xpdGUva2VybmVscy9pbnRlcm5hbC9zcGVjdHJvZ3JhbS5oCi0tLS0gY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUva2Vy bmVscy9pbnRlcm5hbC9zcGVjdHJvZ3JhbS5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEt MDEgMTk6MTM6MjAuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUva2VybmVscy9pbnRlcm5hbC9z cGVjdHJvZ3JhbS5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEzODY5MDg5ICswMTAwCi1AQCAtMzEs NiArMzEsNyBAQCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAjaWZuZGVmIFRFTlNP UkZMT1dfTElURV9LRVJORUxTX0lOVEVSTkFMX1NQRUNUUk9HUkFNX0hfCi0gI2RlZmluZSBURU5T T1JGTE9XX0xJVEVfS0VSTkVMU19JTlRFUk5BTF9TUEVDVFJPR1JBTV9IXwotIAotKyNpbmNsdWRl IDxjc3RkaW50PgotICNpbmNsdWRlIDxjb21wbGV4PgotICNpbmNsdWRlIDxkZXF1ZT4KLSAjaW5j bHVkZSA8dmVjdG9yPgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFy dHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9sYXllcnMvZXh0ZXJu YWwvdm1hL3ZrX21lbV9hbGxvYy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0aW9uLWxheWVy cy9zcmMvbGF5ZXJzL2V4dGVybmFsL3ZtYS92a19tZW1fYWxsb2MuaAotLS0tIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0aW9uLWxh eWVycy9zcmMvbGF5ZXJzL2V4dGVybmFsL3ZtYS92a19tZW1fYWxsb2MuaC5taXNzaW5nLWhlYWRl ci1maWxlcwkyMDIzLTExLTAxIDE5OjEyOjQ1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0aW9u LWxheWVycy9zcmMvbGF5ZXJzL2V4dGVybmFsL3ZtYS92a19tZW1fYWxsb2MuaAkyMDIzLTExLTA2 IDE0OjM0OjAxLjgxNzg2OTE3NCArMDEwMAotQEAgLTI4ODQsNiArMjg4NCw3IEBAIHN0YXRpYyB2 b2lkIHZtYV9hbGlnbmVkX2ZyZWUodm9pZCogVk1BX04KLSAKLSAvLyBEZWZpbmUgdGhpcyBtYWNy byB0byAxIHRvIGVuYWJsZSBmdW5jdGlvbnM6IHZtYUJ1aWxkU3RhdHNTdHJpbmcsIHZtYUZyZWVT dGF0c1N0cmluZy4KLSAjaWYgVk1BX1NUQVRTX1NUUklOR19FTkFCTEVECi0rI2luY2x1ZGUgPHN0 ZGlvLmg+Ci0gICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBWbWFVaW50MzJUb1N0cihjaGFyKiBWTUFf Tk9UX05VTEwgb3V0U3RyLCBzaXplX3Qgc3RyTGVuLCB1aW50MzJfdCBudW0pCi0gICAgIHsKLSAg ICAgICAgIHNucHJpbnRmKG91dFN0ciwgc3RyTGVuLCAiJXUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l ZCBpbnQ+KG51bSkpOwotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFy dHkvd2VicnRjL2F1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5jYy5taXNzaW5nLWhlYWRlci1m aWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvYXVkaW8vdXRp bGl0eS9jaGFubmVsX21peGVyLmNjCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRf cGFydHkvd2VicnRjL2F1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5jYy5taXNzaW5nLWhlYWRl ci1maWxlcwkyMDIzLTExLTAxIDE5OjE0OjA1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5uZWxf bWl4ZXIuY2MJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAxMDAKLUBAIC04LDYgKzgs OCBAQAotICAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRo ZSBzb3VyY2UgdHJlZS4KLSAgKi8KLSAKLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSsKLSAjaW5jbHVk ZSAiYXVkaW8vdXRpbGl0eS9jaGFubmVsX21peGVyLmgiCi0gCi0gI2luY2x1ZGUgImF1ZGlvL3V0 aWxpdHkvY2hhbm5lbF9taXhpbmdfbWF0cml4LmgiCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjQvc3BzX3BhcnNlci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgKLS0tLSBjaHJvbWl1bS0xMTku MC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjQvc3BzX3BhcnNl ci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTQ6MDYuMDAwMDAwMDAwICsw MTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2NvbW1v bl92aWRlby9oMjY0L3Nwc19wYXJzZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2OTIxNyAr MDEwMAotQEAgLTExLDYgKzExLDcgQEAKLSAjaWZuZGVmIENPTU1PTl9WSURFT19IMjY0X1NQU19Q QVJTRVJfSF8KLSAjZGVmaW5lIENPTU1PTl9WSURFT19IMjY0X1NQU19QQVJTRVJfSF8KLSAKLSsj aW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSAiYWJzbC90eXBlcy9vcHRpb25hbC5oIgotICNp bmNsdWRlICJydGNfYmFzZS9iaXRzdHJlYW1fcmVhZGVyLmgiCi0gCi1kaWZmIC11cCBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9pbmNsdWRlL21vZHVs ZV9jb21tb25fdHlwZXNfcHVibGljLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29t bW9uX3R5cGVzX3B1YmxpYy5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFy dHkvd2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzX3B1YmxpYy5oLm1p c3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTQ6MTEuMDAwMDAwMDAwICswMTAwCi0r KysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvaW5j bHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzX3B1YmxpYy5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE5 ODY5MjE3ICswMTAwCi1AQCAtMTEsNiArMTEsNyBAQAotICNpZm5kZWYgTU9EVUxFU19JTkNMVURF X01PRFVMRV9DT01NT05fVFlQRVNfUFVCTElDX0hfCi0gI2RlZmluZSBNT0RVTEVTX0lOQ0xVREVf TU9EVUxFX0NPTU1PTl9UWVBFU19QVUJMSUNfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAj aW5jbHVkZSA8bGltaXRzPgotIAotICNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCi1k aWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxl cy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFkZXIuY2MubWlzc2luZy1oZWFkZXIt ZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMv dmlkZW9fY29kaW5nL3V0aWxpdHkvaXZmX2ZpbGVfcmVhZGVyLmNjCi0tLS0gY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3V0aWxp dHkvaXZmX2ZpbGVfcmVhZGVyLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6 MTQ6MTIuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRf cGFydHkvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3V0aWxpdHkvaXZmX2ZpbGVfcmVhZGVy LmNjCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE5ODY5MjE3ICswMTAwCi1AQCAtMTAsNiArMTAsNyBA QAotIAotICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9maWxlX3Jl YWRlci5oIgotIAotKyNpbmNsdWRlIDxjc3RyaW5nPgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2lu Y2x1ZGUgPHZlY3Rvcj4KLSAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2Jh c2UvcHJlZGljdGlvbi9rYWxtYW5fZmlsdGVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvdWkvYmFzZS9wcmVkaWN0aW9uL2thbG1hbl9maWx0ZXIuaAotLS0t IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2Jhc2UvcHJlZGljdGlvbi9rYWxtYW5fZmlsdGVy LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMToyOC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9iYXNlL3ByZWRpY3Rpb24va2FsbWFu X2ZpbHRlci5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE0ODY5MTEwICswMTAwCi1AQCAtNyw2ICs3 LDggQEAKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0r Ci0gI2luY2x1ZGUgImJhc2UvY29tcG9uZW50X2V4cG9ydC5oIgotICNpbmNsdWRlICJ1aS9nZngv Z2VvbWV0cnkvbWF0cml4M19mLmgiCi0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50LmgubWlzc2luZy1oZWFkZXItZmlsZXMg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4L2dlb21ldHJ5L2xpbmVhcl9ncmFkaWVudC5o Ci0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4L2dlb21ldHJ5L2xpbmVhcl9ncmFk aWVudC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6MjguMDAwMDAwMDAw ICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4L2dlb21ldHJ5L2xpbmVh cl9ncmFkaWVudC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEyODY5MDY4ICswMTAwCi1AQCAtNyw2 ICs3LDcgQEAKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+ Ci0gI2luY2x1ZGUgPGFycmF5PgotICNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlIDxjc3Rk aW50PgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4L2xpbnV4L2RybV91 dGlsX2xpbnV4LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIz LTExLTAxIDE5OjExOjI4LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE5 ODY5MjE3ICswMTAwCi1AQCAtOSw2ICs5LDggQEAKLSAKLSAjaW5jbHVkZSAidWkvZ2Z4L2J1ZmZl cl90eXBlcy5oIgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotKwotIG5hbWVzcGFjZSB1aSB7Ci0g Ci0gaW50IEdldEZvdXJDQ0Zvcm1hdEZyb21CdWZmZXJGb3JtYXQoZ2Z4OjpCdWZmZXJGb3JtYXQg Zm9ybWF0KTsKLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuMTA5L2Nocm9tZS90ZXN0L2No cm9tZWRyaXZlci9jaHJvbWUvY2hyb21lX2ZpbmRlci5oLnRoYW4gY2hyb21pdW0tMTIwLjAuNjA5 OS4xMDkvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS9jaHJvbWVfZmluZGVyLmgKLS0t LSBjaHJvbWl1bS0xMjAuMC42MDk5LjEwOS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2hyb21l L2Nocm9tZV9maW5kZXIuaC50aGFuCTIwMjMtMTItMjAgMjM6MDk6MTAuMzk1MzM0NzIzICswMTAw Ci0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS4xMDkvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2No cm9tZS9jaHJvbWVfZmluZGVyLmgJMjAyMy0xMi0yMCAyMzowOTozNS40MzY5MTAyNjEgKzAxMDAK LUBAIC02LDYgKzYsNyBAQAotICNkZWZpbmUgQ0hST01FX1RFU1RfQ0hST01FRFJJVkVSX0NIUk9N RV9DSFJPTUVfRklOREVSX0hfCi0gCi0gI2luY2x1ZGUgPHZlY3Rvcj4KLSsjaW5jbHVkZSA8c3Ry aW5nPgotIAotICNpbmNsdWRlICJiYXNlL2Z1bmN0aW9uYWwvY2FsbGJhY2tfZm9yd2FyZC5oIgot IAoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRj aCBiL2Nocm9taXVtLTEyMC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggYjFkOTg3YS4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS0xMjAt bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NDIgKzAs MCBAQAotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVyc2lz dGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvYmFzZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9j YXRvci5jYwotLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS9tZXRyaWNzL3BlcnNpc3Rl bnRfaGlzdG9ncmFtX2FsbG9jYXRvci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEx LTI5IDIyOjM5OjQwLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYv YmFzZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9jYXRvci5jYwkyMDIzLTEyLTAz IDE3OjMxOjI1Ljc0ODQyMDE4OSArMDEwMAotQEAgLTIxOCwxMyArMjE4LDEzIEBAIFBlcnNpc3Rl bnRTcGFyc2VIaXN0b2dyYW1EYXRhTWFuYWdlcjo6TG8KLSAgICAgLy8gVGhlIHNhbXBsZS1yZWNv cmQgY291bGQgYmUgZm9yIGFueSBzcGFyc2UgaGlzdG9ncmFtLiBBZGQgdGhlIHJlZmVyZW5jZQot ICAgICAvLyB0byB0aGUgYXBwcm9wcmlhdGUgY29sbGVjdGlvbiBmb3IgbGF0ZXIgdXNlLgotICAg ICBpZiAoZm91bmRfaWQgPT0gbWF0Y2hfaWQpIHsKLS0gICAgICBmb3VuZF9yZWNvcmRzLmVtcGxh Y2VfYmFjayhyZWYsIHZhbHVlKTsKLSsgICAgICBmb3VuZF9yZWNvcmRzLmVtcGxhY2VfYmFjaygp ID0ge3JlZiwgdmFsdWV9OwotICAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAgfSBlbHNlIHsKLSAg ICAgICBzdGQ6OnZlY3RvcjxSZWZlcmVuY2VBbmRTYW1wbGU+KiBzYW1wbGVzID0KLSAgICAgICAg ICAgR2V0U2FtcGxlTWFwUmVjb3Jkc1doaWxlTG9ja2VkKGZvdW5kX2lkKTsKLSAgICAgICBDSEVD SyhzYW1wbGVzKTsKLS0gICAgICBzYW1wbGVzLT5lbXBsYWNlX2JhY2socmVmLCB2YWx1ZSk7Ci0r ICAgICAgc2FtcGxlcy0+ZW1wbGFjZV9iYWNrKCkgPSB7cmVmLCB2YWx1ZX07Ci0gICAgIH0KLSAg IH0KLSAKLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS90cmFjZV9ldmVudC90 cmFjZV9sb2cuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9iYXNlL3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5jYwotLS0tIGNocm9taXVtLTEyMC4wLjYwOTku NTYvYmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJ MjAyMy0xMS0yOSAyMjozOTo0MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUu NzQ5NDIwMjA4ICswMTAwCi1AQCAtMjE5MSw4ICsyMTkxLDggQEAgdm9pZCBUcmFjZUxvZzo6U2V0 VHJhY2VCdWZmZXJGb3JUZXN0aW5nKAotICNpZiBCVUlMREZMQUcoVVNFX1BFUkZFVFRPX0NMSUVO VF9MSUJSQVJZKQotIHZvaWQgVHJhY2VMb2c6Ok9uU2V0dXAoY29uc3QgcGVyZmV0dG86OkRhdGFT b3VyY2VCYXNlOjpTZXR1cEFyZ3MmIGFyZ3MpIHsKLSAgIEF1dG9Mb2NrIGxvY2sodHJhY2tfZXZl bnRfbG9ja18pOwotLSAgdHJhY2tfZXZlbnRfc2Vzc2lvbnNfLmVtcGxhY2VfYmFjayhhcmdzLmlu dGVybmFsX2luc3RhbmNlX2luZGV4LCAqYXJncy5jb25maWcsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFyZ3MuYmFja2VuZF90eXBlKTsKLSsgIHRyYWNrX2V2ZW50X3Nl c3Npb25zXy5lbXBsYWNlX2JhY2soKSA9IHthcmdzLmludGVybmFsX2luc3RhbmNlX2luZGV4LCAq YXJncy5jb25maWcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Mu YmFja2VuZF90eXBlfTsKLSB9Ci0gCi0gdm9pZCBUcmFjZUxvZzo6T25TdGFydChjb25zdCBwZXJm ZXR0bzo6RGF0YVNvdXJjZUJhc2U6OlN0YXJ0QXJncyYpIHsKLWRpZmYgLXVwIGNocm9taXVtLTEy MC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJt aXNzaW9uX3Byb3ZpZGVyLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNz aW9uX3Byb3ZpZGVyLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nl ci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2Mubm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo0Ny4wMDAwMDAwMDAgKzAxMDAKLSsr KyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mv b25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc0OTQy MDIwOCArMDEwMAotQEAgLTIyNiw4ICsyMjYsOCBAQCB2b2lkIE9uZVRpbWVQZXJtaXNzaW9uUHJv dmlkZXI6Ok9uU3VzcGVuCi0gCi0gICAgICAgd2hpbGUgKHJ1bGVfaXRlcmF0b3IgJiYgcnVsZV9p dGVyYXRvci0+SGFzTmV4dCgpKSB7Ci0gICAgICAgICBhdXRvIHJ1bGUgPSBydWxlX2l0ZXJhdG9y LT5OZXh0KCk7Ci0tICAgICAgICBwYXR0ZXJuc190b19kZWxldGUuZW1wbGFjZV9iYWNrKHNldHRp bmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBydWxlLT5zZWNvbmRhcnlfcGF0dGVybik7Ci0rICAgICAgICBwYXR0 ZXJuc190b19kZWxldGUuZW1wbGFjZV9iYWNrKCkgPSB7c2V0dGluZ190eXBlLCBydWxlLT5wcmlt YXJ5X3BhdHRlcm4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1 bGUtPnNlY29uZGFyeV9wYXR0ZXJufTsKLSAgICAgICAgIHBlcm1pc3Npb25zOjpQZXJtaXNzaW9u VW1hVXRpbDo6UmVjb3JkT25lVGltZVBlcm1pc3Npb25FdmVudCgKLSAgICAgICAgICAgICBzZXR0 aW5nX3R5cGUsCi0gICAgICAgICAgICAgcGVybWlzc2lvbnM6Ok9uZVRpbWVQZXJtaXNzaW9uRXZl bnQ6OkVYUElSRURfT05fU1VTUEVORCk7Ci1AQCAtMzI5LDggKzMyOSw4IEBAIHZvaWQgT25lVGlt ZVBlcm1pc3Npb25Qcm92aWRlcjo6RGVsZXRlRW4KLSAgICAgYXV0byBydWxlID0gcnVsZV9pdGVy YXRvci0+TmV4dCgpOwotICAgICBpZiAocnVsZS0+cHJpbWFyeV9wYXR0ZXJuLk1hdGNoZXMob3Jp Z2luX2d1cmwpICYmCi0gICAgICAgICBydWxlLT5zZWNvbmRhcnlfcGF0dGVybi5NYXRjaGVzKG9y aWdpbl9ndXJsKSkgewotLSAgICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soCi0t ICAgICAgICAgIGNvbnRlbnRfc2V0dGluZ190eXBlLCBydWxlLT5wcmltYXJ5X3BhdHRlcm4sIHJ1 bGUtPnNlY29uZGFyeV9wYXR0ZXJuKTsKLSsgICAgICBwYXR0ZXJuc190b19kZWxldGUuZW1wbGFj ZV9iYWNrKCkgPSB7Ci0rICAgICAgICAgIGNvbnRlbnRfc2V0dGluZ190eXBlLCBydWxlLT5wcmlt YXJ5X3BhdHRlcm4sIHJ1bGUtPnNlY29uZGFyeV9wYXR0ZXJufTsKLSAgICAgICBwZXJtaXNzaW9u czo6UGVybWlzc2lvblVtYVV0aWw6OlJlY29yZE9uZVRpbWVQZXJtaXNzaW9uRXZlbnQoCi0gICAg ICAgICAgIGNvbnRlbnRfc2V0dGluZ190eXBlLCB0cmlnZ2VyX2V2ZW50KTsKLSAgICAgfQotZGlm ZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3By b2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5j Yy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9i cm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9u YXZpZ2F0aW9uX3Rocm90dGxlLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUv YnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRf bmF2aWdhdGlvbl90aHJvdHRsZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5 IDIyOjM5OjQ4LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hy b21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2Vt ZW50X25hdmlnYXRpb25fdGhyb3R0bGUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDgg KzAxMDAKLUBAIC02Nyw4ICs2Nyw4IEBAIGJhc2U6OmZsYXRfbWFwPHN0ZDo6c3RyaW5nLCBTQU1M UHJvZmlsZUEKLSAgIC8vIFRPRE8oY3JidWcuY29tLzE0NDUwNzIpOiBBZGQgYWN0dWFsIGRvbWFp bnMgd2l0aCBhdHRyaWJ1dGUgbmFtZXMuCi0gICBwcm9maWxlX2F0dHJpYnV0ZXMtPmluc2VydChz dGQ6Om1ha2VfcGFpcigKLSAgICAgICAic3VwcG9ydGVkLnRlc3QiLAotLSAgICAgIFNBTUxQcm9m aWxlQXR0cmlidXRlcygicGxhY2Vob2xkZXJOYW1lIiwgInBsYWNlaG9sZGVyRG9tYWluIiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyVG9rZW4iKSkpOwotKyAgICAg IFNBTUxQcm9maWxlQXR0cmlidXRlc3sicGxhY2Vob2xkZXJOYW1lIiwgInBsYWNlaG9sZGVyRG9t YWluIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyVG9rZW4ifSkp OwotIAotICAgLy8gRXh0cmFjdCBkb21haW5zIGFuZCBhdHRyaWJ1dGVzIGZyb20gdGhlIGNvbW1h bmQgbGluZSBzd2l0Y2guCi0gICBjb25zdCBiYXNlOjpDb21tYW5kTGluZSYgY29tbWFuZF9saW5l ID0KLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvb21u aWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5p Ym94X2NsaWVudC5jYwotLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIv dWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IJMjAyMy0xMS0yOSAyMjozOTo1Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50 LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzQ5NDIwMjA4ICswMTAwCi1AQCAtNDc0LDEwICs0NzQs MTAgQEAgdm9pZCBDaHJvbWVPbW5pYm94Q2xpZW50OjpPbkF1dG9jb21wbGV0ZQotICAgICAgICAg ICAgICAgYWx0ZXJuYXRpdmVfbmF2X21hdGNoKTsKLSAKLSAgIC8vIFN0b3JlIHRoZSBkZXRhaWxz IG5lY2Vzc2FyeSB0byBvcGVuIHRoZSBvbW5pYm94IG1hdGNoIHZpYSBicm93c2VyIGNvbW1hbmRz LgotLSAgbG9jYXRpb25fYmFyXy0+c2V0X25hdmlnYXRpb25fcGFyYW1zKExvY2F0aW9uQmFyOjpO YXZpZ2F0aW9uUGFyYW1zKAotKyAgbG9jYXRpb25fYmFyXy0+c2V0X25hdmlnYXRpb25fcGFyYW1z KExvY2F0aW9uQmFyOjpOYXZpZ2F0aW9uUGFyYW1zewotICAgICAgIGRlc3RpbmF0aW9uX3VybCwg ZGlzcG9zaXRpb24sIHRyYW5zaXRpb24sIG1hdGNoX3NlbGVjdGlvbl90aW1lc3RhbXAsCi0gICAg ICAgZGVzdGluYXRpb25fdXJsX2VudGVyZWRfd2l0aG91dF9zY2hlbWUsCi0tICAgICAgZGVzdGlu YXRpb25fdXJsX2VudGVyZWRfd2l0aF9odHRwX3NjaGVtZSkpOwotKyAgICAgIGRlc3RpbmF0aW9u X3VybF9lbnRlcmVkX3dpdGhfaHR0cF9zY2hlbWV9KTsKLSAKLSAgIGlmIChicm93c2VyXykgewot ICAgICBhdXRvIG5hdmlnYXRpb24gPSBjaHJvbWU6Ok9wZW5DdXJyZW50VVJMKGJyb3dzZXJfKTsK LWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvc2FmZXR5 X2h1Yi9tZW51X25vdGlmaWNhdGlvbl9zZXJ2aWNlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvc2FmZXR5X2h1Yi9tZW51 X25vdGlmaWNhdGlvbl9zZXJ2aWNlLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJv bWUvYnJvd3Nlci91aS9zYWZldHlfaHViL21lbnVfbm90aWZpY2F0aW9uX3NlcnZpY2UuY2Mubm9f bWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1Mi4wMDAwMDAwMDAgKzAxMDAK LSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3NhZmV0eV9odWIv bWVudV9ub3RpZmljYXRpb25fc2VydmljZS5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NjQyMDM0 MiArMDEwMAotQEAgLTE0OCw4ICsxNDgsOCBAQCBTYWZldHlIdWJNZW51Tm90aWZpY2F0aW9uU2Vy dmljZTo6R2V0Tm90Ci0gICAvLyBUaGUgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBzaG93aW5nIHRo ZSBub3RpZmljYXRpb24gbmVlZHMgdG8gYmUgcGVyc2lzdGVkCi0gICAvLyBhcyB3ZWxsLgotICAg U2F2ZU5vdGlmaWNhdGlvbnNUb1ByZWZzKCk7Ci0tICByZXR1cm4gTWVudU5vdGlmaWNhdGlvbkVu dHJ5KG5vdGlmaWNhdGlvbl90b19zaG93LT5HZXROb3RpZmljYXRpb25Db21tYW5kSWQoKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uX3RvX3Nob3ctPkdldE5v dGlmaWNhdGlvblN0cmluZygpKTsKLSsgIHJldHVybiBNZW51Tm90aWZpY2F0aW9uRW50cnl7bm90 aWZpY2F0aW9uX3RvX3Nob3ctPkdldE5vdGlmaWNhdGlvbkNvbW1hbmRJZCgpLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb25fdG9fc2hvdy0+R2V0Tm90aWZpY2F0 aW9uU3RyaW5nKCl9OwotIH0KLSAKLSBhYnNsOjpvcHRpb25hbDxSZXN1bHRNYXA+Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Np b25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3LmNjLm5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3Mv cGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2MKLS0tLSBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25z L2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0 cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0t MTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRl ZF9wZXJtaXNzaW9uX3Byb21wdF9hc2tfdmlldy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc0OTQy MDIwOCArMDEwMAotQEAgLTU1LDEyICs1NSwxMiBAQCBzdGQ6OnZlY3RvcjxFbWJlZGRlZFBlcm1p c3Npb25Qcm9tcHRBc2tWCi0gRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0QXNrVmlldzo6R2V0QnV0 dG9uc0NvbmZpZ3VyYXRpb24oKSBjb25zdCB7Ci0gICBzdGQ6OnZlY3RvcjxCdXR0b25Db25maWd1 cmF0aW9uPiBidXR0b25zOwotICAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQocGVy bWlzc2lvbnM6OmZlYXR1cmVzOjprT25lVGltZVBlcm1pc3Npb24pKSB7Ci0tICAgIGJ1dHRvbnMu ZW1wbGFjZV9iYWNrKAotKyAgICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0gewotICAgICAgICAg bDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9BTExPV19USElTX1RJTUUp LAotLSAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93VGhpc1RpbWUsIHVpOjpCdXR0b25TdHlsZTo6 a1RvbmFsKTsKLSsgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvd1RoaXNUaW1lLCB1aTo6QnV0dG9u U3R5bGU6OmtUb25hbH07Ci0gICB9Ci0tICBidXR0b25zLmVtcGxhY2VfYmFjayhsMTBuX3V0aWw6 OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvdywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOwotKyAg YnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHtsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19Q RVJNSVNTSU9OX0FMTE9XKSwKLSsgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtB bGxvdywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OwotICAgcmV0dXJuIGJ1dHRvbnM7Ci0gfQot IAotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaC5ub19t YXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmll dy5oCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9w ZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaC5ub19tYXRj aGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUzLjAwMDAwMDAwMCArMDEwMAotKysr IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lv bnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3LmgJMjAyMy0xMi0wMyAxNzoz MToyNS43NTA0MjAyMjcgKzAxMDAKLUBAIC04Niw2ICs4Niw3IEBAIGNsYXNzIEVtYmVkZGVkUGVy bWlzc2lvblByb21wdEJhc2VWaWV3IDoKLSAgIHN0cnVjdCBSZXF1ZXN0TGluZUNvbmZpZ3VyYXRp b24gewotICAgICBjb25zdCByYXdfcHRyPGNvbnN0IGdmeDo6VmVjdG9ySWNvbj4gaWNvbjsKLSAg ICAgc3RkOjp1MTZzdHJpbmcgbWVzc2FnZTsKLSsgICAgUmVxdWVzdExpbmVDb25maWd1cmF0aW9u KGF1dG8gaSwgYXV0byBtKSA6IGljb24oaSksIG1lc3NhZ2UobSkgeyB9Ci0gICB9OwotIAotICAg c3RydWN0IEJ1dHRvbkNvbmZpZ3VyYXRpb24gewotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNz aW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVk ZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjCi0tLS0gY2hyb21pdW0tMTIwLjAu NjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJt aXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIz LTExLTI5IDIyOjM5OjUzLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTku NTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lv bl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTA0MjAyMjcgKzAx MDAKLUBAIC00OCw4ICs0OCw4IEBAIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6 OkdldFIKLSBzdGQ6OnZlY3RvcjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQb2xpY3lWaWV3OjpC dXR0b25Db25maWd1cmF0aW9uPgotIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6 OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29uc3QgewotICAgc3RkOjp2ZWN0b3I8QnV0dG9u Q29uZmlndXJhdGlvbj4gYnV0dG9uczsKLS0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKGwxMG5fdXRp bDo6R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9PS19MQUJFTCksCi0tICAgICAg ICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjprUG9saWN5T0ssIHVpOjpCdXR0b25TdHlsZTo6 a1RvbmFsKTsKLSsgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7bDEwbl91dGlsOjpHZXRTdHJp bmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX09LX0xBQkVMKSwKLSsgICAgICAgICAgICAgICAg ICAgICAgIEJ1dHRvblR5cGU6OmtQb2xpY3lPSywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9Owot ICAgcmV0dXJuIGJ1dHRvbnM7Ci0gfQotIAotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9u X3Byb21wdF9wcmV2aW91c2x5X2RlbmllZF92aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lv bnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9kZW5pZWRfdmlldy5jYwot LS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlz c2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9kZW5pZWRfdmlldy5j Yy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUzLjAwMDAwMDAwMCAr MDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3Mv cGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9kZW5pZWRf dmlldy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NjQyMDM0MiArMDEwMAotQEAgLTYzLDE4ICs2 MywxOCBAQCBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5RGVuaWVkCi0gc3RkOjp2 ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseURlbmllZFZpZXc6OkJ1dHRv bkNvbmZpZ3VyYXRpb24+Ci0gRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseURlbmll ZFZpZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29uc3QgewotICAgc3RkOjp2ZWN0b3I8 QnV0dG9uQ29uZmlndXJhdGlvbj4gYnV0dG9uczsKLS0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAot KyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKLSAgICAgICBsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfQ09OVElOVUVfTk9UX0FMTE9XSU5HKSwKLS0gICAg ICBCdXR0b25UeXBlOjprQ29udGludWVOb3RBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9u YWwpOwotKyAgICAgIEJ1dHRvblR5cGU6OmtDb250aW51ZU5vdEFsbG93aW5nLCB1aTo6QnV0dG9u U3R5bGU6OmtUb25hbH07Ci0gCi0gICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZChw ZXJtaXNzaW9uczo6ZmVhdHVyZXM6OmtPbmVUaW1lUGVybWlzc2lvbikpIHsKLS0gICAgYnV0dG9u cy5lbXBsYWNlX2JhY2soCi0rICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7Ci0gICAgICAg ICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XX1RISVNfVElN RSksCi0tICAgICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxl OjprVG9uYWwpOwotKyAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93VGhpc1RpbWUsIHVpOjpCdXR0 b25TdHlsZTo6a1RvbmFsfTsKLSAgIH0gZWxzZSB7Ci0tICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNr KAotKyAgICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0gewotICAgICAgICAgbDEwbl91dGlsOjpH ZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9BTExPV19USElTX1RJTUUpLAotLSAgICAgICAg QnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7Ci0rICAgICAgICBC dXR0b25UeXBlOjprQWxsb3csIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKLSAgIH0KLSAgIHJl dHVybiBidXR0b25zOwotIH0KLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21l L2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRf cHJldmlvdXNseV9ncmFudGVkX3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJl ZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dyYW50ZWRfdmlldy5jYwotLS0tIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMv ZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3ZpZXcuY2Mubm9f bWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1My4wMDAwMDAwMDAgKzAxMDAK LSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1p c3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92aWV3 LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUwNDIwMjI3ICswMTAwCi1AQCAtNTcsMTMgKzU3LDEz IEBAIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlHcmFudGUKLSBzdGQ6OnZlY3Rv cjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5R3JhbnRlZFZpZXc6OkJ1dHRvbkNv bmZpZ3VyYXRpb24+Ci0gRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseUdyYW50ZWRW aWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIGNvbnN0IHsKLSAgIHN0ZDo6dmVjdG9yPEJ1 dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7Ci0tICBidXR0b25zLmVtcGxhY2VfYmFjaygKLSsg IGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7Ci0gICAgICAgbDEwbl91dGlsOjpHZXRTdHJpbmdV VEYxNihJRFNfRU1CRURERURfUFJPTVBUX0NPTlRJTlVFX0FMTE9XSU5HKSwKLS0gICAgICBCdXR0 b25UeXBlOjprQ29udGludWVBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOwotKyAg ICAgIEJ1dHRvblR5cGU6OmtDb250aW51ZUFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25h bH07Ci0gCi0tICBidXR0b25zLmVtcGxhY2VfYmFjaygKLSsgIGJ1dHRvbnMuZW1wbGFjZV9iYWNr KCkgPSB7Ci0gICAgICAgbDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfRU1CRURERURfUFJP TVBUX1NUT1BfQUxMT1dJTkcpLAotLSAgICAgIEJ1dHRvblR5cGU6OmtTdG9wQWxsb3dpbmcsIHVp OjpCdXR0b25TdHlsZTo6a1RvbmFsKTsKLSsgICAgICBCdXR0b25UeXBlOjprU3RvcEFsbG93aW5n LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Ci0gICByZXR1cm4gYnV0dG9uczsKLSB9Ci0gCi1k aWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9j YXBhYmlsaXRpZXMuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjCi0tLS0gY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNj Lm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTQuMDAwMDAwMDAwICsw MTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIv Y2FwYWJpbGl0aWVzLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUwNDIwMjI3ICswMTAwCi1AQCAt MzQ2LDcgKzM0Niw3IEBAIFN0YXR1cyBQYXJzZU1vYmlsZUVtdWxhdGlvbihjb25zdCBiYXNlOjoK LSAgICAgICAgICAgICAgICAgICAgICAgICAiJ3ZlcnNpb24nIGZpZWxkIG9mIHR5cGUgc3RyaW5n Iik7Ci0gICAgICAgICB9Ci0gCi0tICAgICAgICBicmFuZHMuZW1wbGFjZV9iYWNrKCpicmFuZCwg KnZlcnNpb24pOwotKyAgICAgICAgYnJhbmRzLmVtcGxhY2VfYmFjaygpID0geypicmFuZCwgKnZl cnNpb259OwotICAgICAgIH0KLSAKLSAgICAgICBjbGllbnRfaGludHMuYnJhbmRzID0gc3RkOjpt b3ZlKGJyYW5kcyk7Ci1AQCAtMzg0LDcgKzM4NCw3IEBAIFN0YXR1cyBQYXJzZU1vYmlsZUVtdWxh dGlvbihjb25zdCBiYXNlOjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAiYSAndmVyc2lvbicg ZmllbGQgb2YgdHlwZSBzdHJpbmciKTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIGZ1bGxfdmVy c2lvbl9saXN0LmVtcGxhY2VfYmFjaygqYnJhbmQsICp2ZXJzaW9uKTsKLSsgICAgICAgIGZ1bGxf dmVyc2lvbl9saXN0LmVtcGxhY2VfYmFjaygpID0geypicmFuZCwgKnZlcnNpb259OwotICAgICAg IH0KLSAKLSAgICAgICBjbGllbnRfaGludHMuZnVsbF92ZXJzaW9uX2xpc3QgPSBzdGQ6Om1vdmUo ZnVsbF92ZXJzaW9uX2xpc3QpOwotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21w b25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGlsLmNjLm5v X21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwotLS0tIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFj dF9pbmZvX3N5bmNfdXRpbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIy OjM5OjU3LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9u ZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwkyMDIz LTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyArMDEwMAotQEAgLTE5Nyw5ICsxOTcsOSBAQCBjbGFz cyBDb250YWN0SW5mb1Byb2ZpbGVTZXR0ZXIgewotICAgICAgIENIRUNLKG9ic2VydmF0aW9ucy5l bXB0eSgpKTsKLSAgICAgICBmb3IgKGNvbnN0IHN5bmNfcGI6OkNvbnRhY3RJbmZvU3BlY2lmaWNz OjpPYnNlcnZhdGlvbiYgcHJvdG9fb2JzZXJ2YXRpb24gOgotICAgICAgICAgICAgbWV0YWRhdGEu b2JzZXJ2YXRpb25zKCkpIHsKLS0gICAgICAgIG9ic2VydmF0aW9ucy5lbXBsYWNlX2JhY2socHJv dG9fb2JzZXJ2YXRpb24udHlwZSgpLAotKyAgICAgICAgb2JzZXJ2YXRpb25zLmVtcGxhY2VfYmFj aygpID0ge3N0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHByb3RvX29ic2VydmF0aW9uLnR5cGUo KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2ZpbGVUb2tlblF1YWxp dHk6OkZvcm1TaWduYXR1cmVIYXNoKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJvdG9fb2JzZXJ2YXRpb24uZm9ybV9oYXNoKCkpKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByb3RvX29ic2VydmF0aW9uLmZvcm1faGFzaCgpKX07Ci0g ICAgICAgfQotICAgICB9Ci0gICB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nv bXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2Mu bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRz L2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJkYXRhL2F1dG9maWxsX3RhYmxlLmNjCi0tLS0gY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJk YXRhL2F1dG9maWxsX3RhYmxlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkg MjI6Mzk6NTcuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21w b25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJkYXRhL2F1dG9maWxsX3RhYmxlLmNjCTIw MjMtMTItMDMgMTc6MzE6MjUuNzUxNDIwMjQ2ICswMTAwCi1AQCAtMTc2MywxMCArMTc2MywxMCBA QCBzdGQ6OnVuaXF1ZV9wdHI8QXV0b2ZpbGxQcm9maWxlPiBBdXRvZmlsCi0gICAgIH0KLSAKLSAg ICAgYmFzZTo6c3Bhbjxjb25zdCB1aW50OF90PiBvYnNlcnZhdGlvbnNfZGF0YSA9IHMuQ29sdW1u QmxvYigzKTsKLS0gICAgZmllbGRfdHlwZV92YWx1ZXMuZW1wbGFjZV9iYWNrKAotKyAgICBmaWVs ZF90eXBlX3ZhbHVlcy5lbXBsYWNlX2JhY2soKSA9IHsKLSAgICAgICAgIHR5cGUsIHMuQ29sdW1u U3RyaW5nMTYoMSksIHMuQ29sdW1uSW50KDIpLAotICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhf dD4ob2JzZXJ2YXRpb25zX2RhdGEuYmVnaW4oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9ic2VydmF0aW9uc19kYXRhLmVuZCgpKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvYnNlcnZhdGlvbnNfZGF0YS5lbmQoKSl9OwotIAotICAgICBpZiAodHlwZSA9PSBBRERS RVNTX0hPTUVfQ09VTlRSWSkgewotICAgICAgIGNvdW50cnlfY29kZSA9IGJhc2U6OlVURjE2VG9V VEY4KHMuQ29sdW1uU3RyaW5nMTYoMSkpOwotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3Bhc3N3b3JkX21hbmFn ZXIuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21w b25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3Bhc3N3b3JkX21hbmFnZXIuY2MK LS0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9j b3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3Rvcgky MDIzLTExLTI5IDIyOjM5OjU4LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9t YW5hZ2VyLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUxNDIwMjQ2ICswMTAwCi1AQCAtNjMwLDcg KzYzMCw3IEBAIHZvaWQgUGFzc3dvcmRNYW5hZ2VyOjpPblVzZXJNb2RpZmllZE5vblAKLSAgIC8v IHxkcml2ZXJ8IG1pZ2h0IGJlIGVtcHR5IG9uIGlPUyBvciBpbiB0ZXN0cy4KLSAgIGludCBkcml2 ZXJfaWQgPSBkcml2ZXIgPyBkcml2ZXItPkdldElkKCkgOiAwOwotICAgcG9zc2libGVfdXNlcm5h bWVzXy5QdXQoCi0tICAgICAgUG9zc2libGVVc2VybmFtZUZpZWxkSWRlbnRpZmllcihkcml2ZXJf aWQsIHJlbmRlcmVyX2lkKSwKLSsgICAgICBQb3NzaWJsZVVzZXJuYW1lRmllbGRJZGVudGlmaWVy e2RyaXZlcl9pZCwgcmVuZGVyZXJfaWR9LAotICAgICAgIFBvc3NpYmxlVXNlcm5hbWVEYXRhKEdl dFNpZ25vblJlYWxtKGRyaXZlci0+R2V0TGFzdENvbW1pdHRlZFVSTCgpKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZW5kZXJlcl9pZCwgdmFsdWUsIGJhc2U6OlRpbWU6Ok5vdygpLCBk cml2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlX2F0dHJp YnV0ZV9oYXNfdXNlcm5hbWUsIGlzX2xpa2VseV9vdHApKTsKLWRpZmYgLXVwIGNocm9taXVtLTEy MC4wLjYwOTkuNTYvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFf b3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRk ZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYwotLS0tIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NraWFfb3V0 cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0x MS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJm YWNlX2ltcGxfb25fZ3B1LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUxNDIwMjQ2ICswMTAwCi1A QCAtMTU2Nyw3ICsxNTY3LDcgQEAgdm9pZCBTa2lhT3V0cHV0U3VyZmFjZUltcGxPbkdwdTo6Q29w eU91dAotIAotICAgICAgIC8vIElzc3VlIHJlYWRiYWNrcyBmcm9tIHRoZSBzdXJmYWNlczoKLSAg ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IENvcHlPdXRwdXRSZXN1bHQ6OmtOVjEyTWF4UGxh bmVzOyArK2kpIHsKLS0gICAgICAgIFNrSVNpemUgc2l6ZShwbGFuZV9zdXJmYWNlc1tpXS0+d2lk dGgoKSwgcGxhbmVfc3VyZmFjZXNbaV0tPmhlaWdodCgpKTsKLSsgICAgICAgIFNrSVNpemUgc2l6 ZXtwbGFuZV9zdXJmYWNlc1tpXS0+d2lkdGgoKSwgcGxhbmVfc3VyZmFjZXNbaV0tPmhlaWdodCgp fTsKLSAgICAgICAgIFNrSW1hZ2VJbmZvIGRzdF9pbmZvID0gU2tJbWFnZUluZm86Ok1ha2UoCi0g ICAgICAgICAgICAgc2l6ZSwgKGkgPT0gMCkgPyBrQWxwaGFfOF9Ta0NvbG9yVHlwZSA6IGtSOEc4 X3Vub3JtX1NrQ29sb3JUeXBlLAotICAgICAgICAgICAgIGtVbnByZW11bF9Ta0FscGhhVHlwZSk7 Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9h ZC9zYXZlX3BhY2thZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAu NjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNrYWdlLmNjCi0tLS0gY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNrYWdl LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6MDEuMDAwMDAwMDAw ICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvZG93bmxv YWQvc2F2ZV9wYWNrYWdlLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUyNDIwMjY1ICswMTAwCi1A QCAtNzY3LDggKzc2Nyw4IEBAIHZvaWQgU2F2ZVBhY2thZ2U6OkZpbmlzaCgpIHsKLSAgIGlmIChk b3dubG9hZF8pIHsKLSAgICAgc3RkOjp2ZWN0b3I8ZG93bmxvYWQ6OkRvd25sb2FkU2F2ZUl0ZW1E YXRhOjpJdGVtSW5mbz4gZmlsZXM7Ci0gICAgIGZvciAoYXV0byYgaXRlbSA6IHNhdmVkX3N1Y2Nl c3NfaXRlbXNfKSB7Ci0tICAgICAgZmlsZXMuZW1wbGFjZV9iYWNrKGl0ZW0uc2Vjb25kLT5mdWxs X3BhdGgoKSwgaXRlbS5zZWNvbmQtPnVybCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBp dGVtLnNlY29uZC0+cmVmZXJyZXIoKS51cmwpOwotKyAgICAgIGZpbGVzLmVtcGxhY2VfYmFjaygp ID0ge2l0ZW0uc2Vjb25kLT5mdWxsX3BhdGgoKSwgaXRlbS5zZWNvbmQtPnVybCgpLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICBpdGVtLnNlY29uZC0+cmVmZXJyZXIoKS51cmx9OwotICAgICB9 Ci0gICAgIGRvd25sb2FkOjpEb3dubG9hZFNhdmVJdGVtRGF0YTo6QXR0YWNoSXRlbURhdGEoZG93 bmxvYWRfLCBzdGQ6Om1vdmUoZmlsZXMpKTsKLSAgIH0KLWRpZmYgLXVwIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0 b3JhZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9j b250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYwot LS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3Vw L2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0x MS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91cC9pbnRlcmVzdF9ncm91cF9zdG9yYWdlLmNj CTIwMjMtMTItMDMgMTc6MzE6MjUuNzUyNDIwMjY1ICswMTAwCi1AQCAtMzAwMiwxMCArMzAwMiwx MCBAQCBEb0dldEtBbm9ueW1pdHlEYXRhKHNxbDo6RGF0YWJhc2UmIGRiLAotIAotICAgc3RkOjp2 ZWN0b3I8U3RvcmFnZUludGVyZXN0R3JvdXA6OktBbm9ueW1pdHlEYXRhPiBrX2Fub25fZGF0YTsK LSAgIHdoaWxlIChpbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5TdGVwKCkpIHsKLS0gICAga19h bm9uX2RhdGEuZW1wbGFjZV9iYWNrKAotKyAgICBrX2Fub25fZGF0YS5lbXBsYWNlX2JhY2soKSA9 IHsKLSAgICAgICAgIC8qa2V5PSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuQ29sdW1uU3Ry aW5nKDApLAotICAgICAgICAgLyppc19rX2Fub255bW91cz0qL2ludGVyZXN0X2dyb3VwX2thbm9u X3F1ZXJ5LkNvbHVtbkJvb2woMSksCi0tICAgICAgICAvKmxhc3RfdXBkYXRlZD0qL2ludGVyZXN0 X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtblRpbWUoMikpOwotKyAgICAgICAgLypsYXN0X3VwZGF0 ZWQ9Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5UaW1lKDIpfTsKLSAgIH0KLSAg IGlmICghaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuU3VjY2VlZGVkKCkpIHsKLSAgICAgcmV0 dXJuIGFic2w6Om51bGxvcHQ7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRl bnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2Mubm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIv cmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjCi0tLS0gY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9z dF9pbXBsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6MDEuMDAw MDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIv cmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjCTIwMjMtMTItMDMgMjA6NDk6 MjguMDU5MDQyNjcyICswMTAwCi1AQCAtODY4NSw3ICs4Njg1LDcgQEAgdm9pZCBSZW5kZXJGcmFt ZUhvc3RJbXBsOjpTZW5kRmVuY2VkRnJhbQotICAgZm9yIChjb25zdCBibGluazo6RmVuY2VkRnJh bWU6OlJlcG9ydGluZ0Rlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbiA6Ci0gICAgICAgIGRlc3RpbmF0 aW9ucykgewotICAgICBTZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKLS0g ICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50KGV2ZW50X3R5cGUsIGV2ZW50X2RhdGEpLCBkZXN0 aW5hdGlvbiwKLSsgICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50e2V2ZW50X3R5cGUsIGV2ZW50 X2RhdGF9LCBkZXN0aW5hdGlvbiwKLSAgICAgICAgIC8qZnJvbV9yZW5kZXJlcj0qL3RydWUsIGF0 dHJpYnV0aW9uX3JlcG9ydGluZ19ydW50aW1lX2ZlYXR1cmVzKTsKLSAgIH0KLSB9Ci1AQCAtODcy MCw3ICs4NzIwLDcgQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpTZW5kRmVuY2VkRnJhbQot ICAgfQotIAotICAgU2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29uSW50ZXJuYWwoCi0tICAg ICAgRGVzdGluYXRpb25VUkxFdmVudChkZXN0aW5hdGlvbl91cmwpLAotKyAgICAgIERlc3RpbmF0 aW9uVVJMRXZlbnR7ZGVzdGluYXRpb25fdXJsfSwKLSAgICAgICBibGluazo6RmVuY2VkRnJhbWU6 OlJlcG9ydGluZ0Rlc3RpbmF0aW9uOjprQnV5ZXIsCi0gICAgICAgLypmcm9tX3JlbmRlcmVyPSov dHJ1ZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMpOwotIH0KLUBAIC04 ODIwLDcgKzg4MjAsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6Ok1heWJlU2VuZEZlbmNl Ci0gICAgICAgICBkYXRhID0gaW5mby0+ZGF0YTsKLSAgICAgICB9Ci0gICAgICAgaW5pdGlhdG9y X3JmaC0+U2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29uSW50ZXJuYWwoCi0tICAgICAgICAg IEF1dG9tYXRpY0JlYWNvbkV2ZW50KGV2ZW50X3R5cGUsIGRhdGEpLCBkZXN0aW5hdGlvbiwKLSsg ICAgICAgICAgQXV0b21hdGljQmVhY29uRXZlbnR7ZXZlbnRfdHlwZSwgZGF0YX0sIGRlc3RpbmF0 aW9uLAotICAgICAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki9mYWxzZSwgYXR0cmlidXRpb25fcmVw b3J0aW5nX2ZlYXR1cmVzLAotICAgICAgICAgICBuYXZpZ2F0aW9uX3JlcXVlc3QuR2V0TmF2aWdh dGlvbklkKCkpOwotICAgICB9Ci1AQCAtODgzMiw3ICs4ODMyLDcgQEAgdm9pZCBSZW5kZXJGcmFt ZUhvc3RJbXBsOjpNYXliZVNlbmRGZW5jZQotICAgICBmb3IgKGJsaW5rOjpGZW5jZWRGcmFtZTo6 UmVwb3J0aW5nRGVzdGluYXRpb24gZGVzdGluYXRpb24gOgotICAgICAgICAgIGluZm8tPmRlc3Rp bmF0aW9ucykgewotICAgICAgIGluaXRpYXRvcl9yZmgtPlNlbmRGZW5jZWRGcmFtZVJlcG9ydGlu Z0JlYWNvbkludGVybmFsKAotLSAgICAgICAgICBBdXRvbWF0aWNCZWFjb25FdmVudChldmVudF90 eXBlLCBpbmZvLT5kYXRhKSwgZGVzdGluYXRpb24sCi0rICAgICAgICAgIEF1dG9tYXRpY0JlYWNv bkV2ZW50e2V2ZW50X3R5cGUsIGluZm8tPmRhdGF9LCBkZXN0aW5hdGlvbiwKLSAgICAgICAgICAg Lypmcm9tX3JlbmRlcmVyPSovZmFsc2UsIGluZm8tPmF0dHJpYnV0aW9uX3JlcG9ydGluZ19ydW50 aW1lX2ZlYXR1cmVzLAotICAgICAgICAgICBuYXZpZ2F0aW9uX3JlcXVlc3QuR2V0TmF2aWdhdGlv bklkKCkpOwotICAgICB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L25ldC9kbnMv aG9zdF9yZXNvbHZlcl9jYWNoZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNoZS5jYwotLS0tIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6MDcuMDAwMDAwMDAwICswMTAwCi0rKysgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MJMjAyMy0x Mi0wMyAxNzozMToyNS43NTQ0MjAzMDMgKzAxMDAKLUBAIC0zNjgsNyArMzY4LDcgQEAgdm9pZCBI b3N0UmVzb2x2ZXJDYWNoZTo6U2V0KAotIAotICAgc3RkOjpzdHJpbmcgZG9tYWluX25hbWUgPSBy ZXN1bHQtPmRvbWFpbl9uYW1lKCk7Ci0gICBlbnRyaWVzXy5lbXBsYWNlKAotLSAgICAgIEtleShz dGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3b3JrX2Fub255bWl6YXRpb25fa2V5KSwKLSsgICAg ICBLZXl7c3RkOjptb3ZlKGRvbWFpbl9uYW1lKSwgbmV0d29ya19hbm9ueW1pemF0aW9uX2tleX0s Ci0gICAgICAgRW50cnkoc3RkOjptb3ZlKHJlc3VsdCksIHNvdXJjZSwgc2VjdXJlLCBzdGFsZW5l c3NfZ2VuZXJhdGlvbikpOwotIAotICAgaWYgKGVudHJpZXNfLnNpemUoKSA+IG1heF9lbnRyaWVz XykgewotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaC5ub19tYXRjaGluZ19jb25zdHJ1 Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaC5u b19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjQwOjEyLjAwMDAwMDAwMCArMDEw MAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vZm9udHMvZm9udF9wYWxldHRlLmgJMjAyMy0xMi0wMyAxNzozMToyNS43NTQ0MjAz MDMgKzAxMDAKLUBAIC05Niw3ICs5Niw3IEBAIGNsYXNzIFBMQVRGT1JNX0VYUE9SVCBGb250UGFs ZXR0ZSA6IHB1YmwKLSAgICAgICBDb2xvcjo6Q29sb3JTcGFjZSBjb2xvcl9pbnRlcnBvbGF0aW9u X3NwYWNlLAotICAgICAgIGFic2w6Om9wdGlvbmFsPENvbG9yOjpIdWVJbnRlcnBvbGF0aW9uTWV0 aG9kPiBodWVfaW50ZXJwb2xhdGlvbl9tZXRob2QpIHsKLSAgICAgcmV0dXJuIGJhc2U6OkFkb3B0 UmVmKG5ldyBGb250UGFsZXR0ZSgKLS0gICAgICAgIHN0YXJ0LCBlbmQsIE5vbk5vcm1hbGl6ZWRQ ZXJjZW50YWdlcyhzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZSksCi0rICAgICAgICBz dGFydCwgZW5kLCBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXN7c3RhcnRfcGVyY2VudGFnZSwgZW5k X3BlcmNlbnRhZ2V9LAotICAgICAgICAgbm9ybWFsaXplZF9wZXJjZW50YWdlLCBhbHBoYV9tdWx0 aXBsaWVyLCBjb2xvcl9pbnRlcnBvbGF0aW9uX3NwYWNlLAotICAgICAgICAgaHVlX2ludGVycG9s YXRpb25fbWV0aG9kKSk7Ci0gICB9Ci1AQCAtMTcwLDcgKzE3MCw3IEBAIGNsYXNzIFBMQVRGT1JN X0VYUE9SVCBGb250UGFsZXR0ZSA6IHB1YmwKLSAgICAgICBkb3VibGUgbm9ybWFsaXplZF9wZXJj ZW50YWdlKSB7Ci0gICAgIGRvdWJsZSBlbmRfcGVyY2VudGFnZSA9IG5vcm1hbGl6ZWRfcGVyY2Vu dGFnZSAqIDEwMC4wOwotICAgICBkb3VibGUgc3RhcnRfcGVyY2VudGFnZSA9IDEwMC4wIC0gZW5k X3BlcmNlbnRhZ2U7Ci0tICAgIHJldHVybiBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXMoc3RhcnRf cGVyY2VudGFnZSwgZW5kX3BlcmNlbnRhZ2UpOwotKyAgICByZXR1cm4gTm9uTm9ybWFsaXplZFBl cmNlbnRhZ2Vze3N0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJjZW50YWdlfTsKLSAgIH0KLSAKLSAg IGRvdWJsZSBHZXRBbHBoYU11bHRpcGxpZXIoKSBjb25zdCB7Ci1kaWZmIC11cCBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3Bh bGV0dGVfaW50ZXJwb2xhdGlvbi5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3Bh bGV0dGVfaW50ZXJwb2xhdGlvbi5jYwotLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9u LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6MTIuMDAwMDAwMDAw ICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2MJMjAyMy0xMi0wMyAx NzozMToyNS43NTU0MjAzMjMgKzAxMDAKLUBAIC0zMSw3ICszMSw3IEBAIFZlY3RvcjxGb250UGFs ZXR0ZTo6Rm9udFBhbGV0dGVPdmVycmlkZT4KLSAgICAgICAgIGNvbG9yX2ludGVycG9sYXRpb25f c3BhY2UsIGh1ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCwgc3RhcnRfY29sb3IsCi0gICAgICAgICBl bmRfY29sb3IsIHBlcmNlbnRhZ2UsIGFscGhhX211bHRpcGxpZXIpOwotIAotLSAgICBGb250UGFs ZXR0ZTo6Rm9udFBhbGV0dGVPdmVycmlkZSByZXN1bHRfY29sb3JfcmVjb3JkKGksIHJlc3VsdF9j b2xvcik7Ci0rICAgIEZvbnRQYWxldHRlOjpGb250UGFsZXR0ZU92ZXJyaWRlIHJlc3VsdF9jb2xv cl9yZWNvcmR7c3RhdGljX2Nhc3Q8aW50PihpKSwgcmVzdWx0X2NvbG9yfTsKLSAgICAgcmVzdWx0 X2NvbG9yX3JlY29yZHMucHVzaF9iYWNrKHJlc3VsdF9jb2xvcl9yZWNvcmQpOwotICAgfQotICAg cmV0dXJuIHJlc3VsdF9jb2xvcl9yZWNvcmRzOwotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9mcGRmYXBpL3JlbmRlci9jcGRmX3JlbmRlcnN0 YXR1cy5jcHAubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90 aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9mcGRmYXBpL3JlbmRlci9jcGRmX3JlbmRlcnN0YXR1cy5j cHAKLS0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L3BkZml1bS9jb3JlL2Zw ZGZhcGkvcmVuZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNwcC5ub19tYXRjaGluZ19jb25zdHJ1Y3Rv cgkyMDIzLTExLTI5IDIyOjQxOjQ2LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvdGhpcmRfcGFydHkvcGRmaXVtL2NvcmUvZnBkZmFwaS9yZW5kZXIvY3BkZl9yZW5k ZXJzdGF0dXMuY3BwCTIwMjMtMTItMDMgMTc6MzE6MjUuNzU2NDIwMzQyICswMTAwCi1AQCAtNDkx LDcgKzQ5MSw3IEBAIHZvaWQgQ1BERl9SZW5kZXJTdGF0dXM6OlByb2Nlc3NDbGlwUGF0aCgKLSAg ICAgfSBlbHNlIHsKLSAgICAgICBtX3BEZXZpY2UtPlNldENsaXBfUGF0aEZpbGwoCi0gICAgICAg ICAgICpwUGF0aCwgJm10T2JqMkRldmljZSwKLS0gICAgICAgICAgQ0ZYX0ZpbGxSZW5kZXJPcHRp b25zKENsaXBQYXRoLkdldENsaXBUeXBlKGkpKSk7Ci0rICAgICAgICAgIENGWF9GaWxsUmVuZGVy T3B0aW9uc3tDbGlwUGF0aC5HZXRDbGlwVHlwZShpKX0pOwotICAgICB9Ci0gICB9Ci0gCi1kaWZm IC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2Vy X3V0aWwuaC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3Vp L2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaAotLS0tIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGlsLmgJMjAy My0xMi0wMyAxNzozMToyNS43NTU0MjAzMjMgKzAxMDAKLUBAIC01Miw1MyArNTIsNTMgQEAgY29u c3RleHByIGF1dG8ga0Nocm9tYXRpY2l0eU1hcCA9IGJhc2U6OgotICAgICB6Y3JfY29sb3JfbWFu YWdlcl92MV9jaHJvbWF0aWNpdHlfbmFtZXMsCi0gICAgIFByaW1hcnlWZXJzaW9uPigKLSAgICAg e3taQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ2MDFfNTI1X0xJTkUs Ci0tICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRF MTcwTSwKLS0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAg ICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpTTVBURTE3ME0s Ci0rICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ2MDFfNjI1X0xJTkUsCi0t ICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUNDcwQkcs Ci0tICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgICBQ cmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ0NzBCRywKLSsgICAg ICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAge1pDUl9DT0xP Ul9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURTE3ME0sCi0tICAgICAgUHJpbWFy eVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRFMTcwTSwKLS0gICAgICAg ICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgIFByaW1hcnlWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpTTVBURTE3ME0sCi0rICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ3MDksCi0tICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4 OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUNzA5LCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAot KyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDcwOSwg a0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJP TUFUSUNJVFlfTkFNRVNfQlQyMDIwLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKGdmeDo6Q29sb3JT cGFjZTo6UHJpbWFyeUlEOjpCVDIwMjAsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAg UHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUMjAyMCwga0RlZmF1 bHRTaW5jZVZlcnNpb259fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJ VFlfTkFNRVNfU1JHQiwKLS0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlBy aW1hcnlJRDo6QlQ3MDksIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgUHJpbWFyeVZl cnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUNzA5LCBrRGVmYXVsdFNpbmNlVmVy c2lvbn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19E SVNQTEFZUDMsCi0tICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5 SUQ6OlAzLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgIFByaW1hcnlWZXJzaW9ue2dm eDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpQMywga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAg ICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQURPQkVSR0IsCi0t ICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkFET0JFX1JH QiwKLS0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAg IFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpBRE9CRV9SR0IsCi0r ICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfV0lERV9HQU1VVF9DT0xPUl9TUElO LAotLSAgICAgIFByaW1hcnlWZXJzaW9uKAotKyAgICAgIFByaW1hcnlWZXJzaW9uewotICAgICAg ICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6V0lERV9HQU1VVF9DT0xPUl9TUElOLAot LSAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfV0lERV9H QU1VVF9DT0xPUl9TUElOX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgICAgICAgWkNSX0NPTE9SX01B TkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1dJREVfR0FNVVRfQ09MT1JfU1BJTl9TSU5DRV9W RVJTSU9OfX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVT X0JUNDcwTSwKLS0gICAgICBQcmltYXJ5VmVyc2lvbigKLSsgICAgICBQcmltYXJ5VmVyc2lvbnsK LSAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUNDcwTSwKLS0gICAgICAg ICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0JUNDcwTV9TSU5DRV9W RVJTSU9OKX0sCi0rICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9O QU1FU19CVDQ3ME1fU0lOQ0VfVkVSU0lPTn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1Yx X0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURTI0ME0sCi0tICAgICAgUHJpbWFyeVZlcnNpb24oCi0r ICAgICAgUHJpbWFyeVZlcnNpb257Ci0gICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFy eUlEOjpTTVBURTI0ME0sCi0tICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJ Q0lUWV9OQU1FU19TTVBURTI0ME1fU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICBaQ1JfQ09M T1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEUyNDBNX1NJTkNFX1ZFUlNJT059 fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfWFlaX0Q1 MCwKLS0gICAgICBQcmltYXJ5VmVyc2lvbigKLSsgICAgICBQcmltYXJ5VmVyc2lvbnsKLSAgICAg ICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlhZWl9ENTAsCi0tICAgICAgICAgIFpD Ul9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19YWVpfRDUwX1NJTkNFX1ZFUlNJ T04pfSwKLSsgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVT X1hZWl9ENTBfU0lOQ0VfVkVSU0lPTn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NI Uk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDI4XzEsCi0tICAgICAgUHJpbWFyeVZlcnNpb24oCi0r ICAgICAgUHJpbWFyeVZlcnNpb257Ci0gICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFy eUlEOjpTTVBURVNUNDI4XzEsCi0tICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9N QVRJQ0lUWV9OQU1FU19TTVBURVNUNDI4XzFfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQyOF8xX1NJTkNF X1ZFUlNJT059fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFN RVNfU01QVEVTVDQzMV8yLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKAotKyAgICAgIFByaW1hcnlW ZXJzaW9uewotICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6U01QVEVTVDQz MV8yLAotLSAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNf U01QVEVTVDQzMV8yX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MzFfMl9TSU5DRV9WRVJTSU9OfX0sCi0g ICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0ZJTE0sCi0tICAg ICAgUHJpbWFyeVZlcnNpb24oCi0rICAgICAgUHJpbWFyeVZlcnNpb257Ci0gICAgICAgICAgIGdm eDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpGSUxNLAotLSAgICAgICAgICBaQ1JfQ09MT1JfTUFO QUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfRklMTV9TSU5DRV9WRVJTSU9OKX19KTsKLSsgICAg ICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0ZJTE1fU0lOQ0Vf VkVSU0lPTn19fSk7Ci0gCi0gLy8gQSBtYXAgZnJvbSB0aGUgemNyX2NvbG9yX21hbmFnZXJfdjEg ZW90Zl9uYW1lcyBlbnVtIHZhbHVlcwotIC8vIHJlcHJlc2VudGluZyB3ZWxsLWtub3duIEVPVEZz LCB0byB0aGVpciBlcXVpdmFsZW50IFRyYW5zZmVySURzLgotQEAgLTEwNyw2OCArMTA3LDY4IEBA IGNvbnN0ZXhwciBhdXRvIGtFb3RmTWFwID0gYmFzZTo6TWFrZUZpeGUKLSAgICAgemNyX2NvbG9y X21hbmFnZXJfdjFfZW90Zl9uYW1lcywKLSAgICAgVHJhbnNmZXJWZXJzaW9uPih7Ci0gICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJTkVBUiwKLS0gICAgIFRyYW5zZmVyVmVy c2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkxJTkVBUiwKLS0gICAgICAgICAgICAg ICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dm eDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TElORUFSLAotKyAgICAgICAgICAgICAgICAgICAg IGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RG X05BTUVTX1NSR0IsCi0tICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFu c2ZlcklEOjpTUkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgVHJhbnNmZXJWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U1JHQiwga0RlZmF1bHRTaW5jZVZlcnNp b259fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFIsCi0t ICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTUkdCX0hE UiwKLS0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X1NSR0JfSERSX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNv bG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0JfSERSLAotKyAgICAgICAgICAgICAgICAgICAgIFpD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFJfU0lOQ0VfVkVSU0lPTn19LAot ICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOSwKLS0gICAgIFRyYW5z ZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUNzA5LAotLSAgICAgICAg ICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQ3MDlfU0lOQ0Vf VkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNm ZXJJRDo6QlQ3MDksCi0rICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19CVDcwOV9TSU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0JUMjA4NywKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9y U3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMjQsCi0tICAgICAgICAgICAgICAgICAgICAga0RlZmF1 bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6 OlRyYW5zZmVySUQ6OkdBTU1BMjQsCi0rICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb259fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQURPQkVS R0IsCi0gICAgICAvLyBUaGlzIGlzIGV2ZXIgc28gc2xpZ2h0bHkgaW5hY2N1cmF0ZS4gVGhlIG51 bWJlciBvdWdodCB0byBiZQotICAgICAgLy8gMi4xOTkyMTg3NWYsIG5vdCAyLjIKLS0gICAgIFRy YW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMjIsCi0tICAg ICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgIFRyYW5zZmVy VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMjIsCi0rICAgICAgICAg ICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAge1pDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfUFEsCi0tICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNw YWNlOjpUcmFuc2ZlcklEOjpQUSwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgIFRyYW5z ZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlBRLCBrRGVmYXVsdFNpbmNl VmVyc2lvbn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19ITEcsCi0t ICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpITEcsCi0t ICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19ITEdf U0lOQ0VfVkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6 VHJhbnNmZXJJRDo6SExHLAotKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VS X1YxX0VPVEZfTkFNRVNfSExHX1NJTkNFX1ZFUlNJT059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfU01QVEUxNzBNLAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6 Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U01QVEUxNzBNLAotLSAgICAgICAgICAgICAgICAgICAg IFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUxNzBNX1NJTkNFX1ZFUlNJT04p fSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNN UFRFMTcwTSwKLSsgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RG X05BTUVTX1NNUFRFMTcwTV9TSU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX1NNUFRFMjQwTSwKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNv bG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFMjQwTSwKLS0gICAgICAgICAgICAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFMjQwTV9TSU5DRV9WRVJTSU9OKX0s Ci0rICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTTVBU RTI0ME0sCi0rICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9O QU1FU19TTVBURTI0ME1fU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfRU9URl9OQU1FU19TTVBURVNUNDI4XzEsCi0tICAgICBUcmFuc2ZlclZlcnNpb24oCi0rICAg ICBUcmFuc2ZlclZlcnNpb257Ci0gICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklE OjpTTVBURVNUNDI4XzEsCi0tICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1F U19TTVBURVNUNDI4XzFfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfU01QVEVTVDQyOF8xX1NJTkNFX1ZFUlNJT059fSwKLSAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HLAotLSAgICAgVHJhbnNmZXJWZXJzaW9u KGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TE9HLAotLSAgICAgICAgICAgICAgICAgICAg IFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NJTkNFX1ZFUlNJT04pfSwKLSsg ICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkxPRywKLSsg ICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xPR19T SU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xP R19TUVJULAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJ RDo6TE9HX1NRUlQsCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19MT0dfU1FSVF9TSU5DRV9WRVJTSU9OKX0sCi0rICAgICBUcmFuc2ZlclZlcnNp b257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0dfU1FSVCwKLSsgICAgICAgICAgICAg ICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xPR19TUVJUX1NJTkNFX1ZF UlNJT059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSUVDNjE5NjZf Ml80LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKAotKyAgICAgVHJhbnNmZXJWZXJzaW9uewotICAg ICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6SUVDNjE5NjZfMl80LAotLSAgICAg ICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSUVDNjE5NjZfMl80X1NJTkNFX1ZF UlNJT04pfSwKLSsgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0lFQzYx OTY2XzJfNF9TSU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RG X05BTUVTX0JUMTM2MV9FQ0csCi0tICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNl OjpUcmFuc2ZlcklEOjpCVDEzNjFfRUNHLAotLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQxMzYxX0VDR19TSU5DRV9WRVJTSU9OKX0sCi0rICAg ICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDEzNjFfRUNH LAotKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf QlQxMzYxX0VDR19TSU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9F T1RGX05BTUVTX0JUMjAyMF8xMCwKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3Bh Y2U6OlRyYW5zZmVySUQ6OkJUMjAyMF8xMCwKLS0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09M T1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMF9TSU5DRV9WRVJTSU9OKX0sCi0rICAg ICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDIwMjBfMTAs Ci0rICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19C VDIwMjBfMTBfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19CVDIwMjBfMTIsCi0tICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNl OjpUcmFuc2ZlcklEOjpCVDIwMjBfMTIsCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTJfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAg VHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6QlQyMDIwXzEyLAot KyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQy MDIwXzEyX1NJTkNFX1ZFUlNJT059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZf TkFNRVNfU0NSR0JfTElORUFSXzgwX05JVFMsCi0tICAgICBUcmFuc2ZlclZlcnNpb24oCi0rICAg ICBUcmFuc2ZlclZlcnNpb257Ci0gICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklE OjpTQ1JHQl9MSU5FQVJfODBfTklUUywKLS0gICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9F T1RGX05BTUVTX1NDUkdCX0xJTkVBUl84MF9OSVRTX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgICAg ICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NDUkdCX0xJTkVBUl84MF9OSVRTX1NJ TkNFX1ZFUlNJT059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfR0FN TUExOCwKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6 OkdBTU1BMTgsCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19HQU1NQTE4X1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntn Zng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMTgsCi0rICAgICAgICAgICAgICAgICAg ICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTE4X1NJTkNFX1ZFUlNJT059 fSwKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfR0FNTUEyOCwKLS0gICAg IFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMjgsCi0t ICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1N QTI4X1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3Bh Y2U6OlRyYW5zZmVySUQ6OkdBTU1BMjgsCi0rICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTI4X1NJTkNFX1ZFUlNJT059fSwKLSB9KTsKLSAK LSAvLyBBIG1hcCBmcm9tIHRoZSBTRFIgemNyX2NvbG9yX21hbmFnZXJfdjEgZW90Zl9uYW1lcyBl bnVtIHZhbHVlcwotQEAgLTE3NywxOCArMTc3LDE4IEBAIGNvbnN0ZXhwciBhdXRvIGtFb3RmTWFw ID0gYmFzZTo6TWFrZUZpeGUKLSBjb25zdGV4cHIgYXV0byBrVHJhbnNmZXJNYXAgPQotICAgICBi YXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMsIFRy YW5zZmVyRm5WZXJzaW9uPih7Ci0gICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9O QU1FU19MSU5FQVIsCi0tICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVy Rm46OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgVHJhbnNmZXJG blZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJzaW9u fX0sCi0gICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCLAotLSAg ICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZuRXh0OjprU1JHQiwga0Rl ZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVk VHJhbnNmZXJGbkV4dDo6a1NSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgICAgICB7 WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOSwKLS0gICAgICAgICBUcmFuc2Zl ckZuVmVyc2lvbigKLSsgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbnsKLSAgICAgICAgICAgICAg U2tOYW1lZFRyYW5zZmVyRm5FeHQ6OmtSZWM3MDksCi0tICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQ3MDlfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICAg ICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5X1NJTkNFX1ZFUlNJT059fSwK LSAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjA4NywKLS0gICAg ICAgICBUcmFuc2ZlckZuVmVyc2lvbihnYW1tYTI0LCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAot KyAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue2dhbW1hMjQsIGtEZWZhdWx0U2luY2VWZXJzaW9u fX0sCi0gICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19BRE9CRVJHQiwK LS0gICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbihTa05hbWVkVHJhbnNmZXJGbkV4dDo6a0E5OFJH QiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAot KyAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuRXh0OjprQTk4UkdC LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0g ICAgIH0pOwotIAotIC8vIEEgbWFwIGZyb20gdGhlIEhEUiB6Y3JfY29sb3JfbWFuYWdlcl92MSBl b3RmX25hbWVzIGVudW0gdmFsdWVzCi1AQCAtMTk3LDcwICsxOTcsNzAgQEAgY29uc3RleHByIGF1 dG8ga1RyYW5zZmVyTWFwID0KLSBjb25zdGV4cHIgYXV0byBrSERSVHJhbnNmZXJNYXAgPQotICAg ICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMs IFRyYW5zZmVyRm5WZXJzaW9uPigKLSAgICAgICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19MSU5FQVIsCi0tICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFu c2ZlckZuOjprTGluZWFyLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgICBUcmFu c2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbjo6a0xpbmVhciwga0RlZmF1bHRTaW5jZVZl cnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdC X0hEUiwKLS0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oCi0rICAgICAgICAgIFRyYW5zZmVy Rm5WZXJzaW9uewotICAgICAgICAgICAgICAgU2tOYW1lZFRyYW5zZmVyRm5FeHQ6OmtTUkdCLAot LSAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCX0hEUl9T SU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RG X05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT059fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfRU9URl9OQU1FU19QUSwKLS0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tO YW1lZFRyYW5zZmVyRm46OmtQUSwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgICAgICAg VHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46OmtQUSwga0RlZmF1bHRTaW5jZVZl cnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19ITEcs Ci0tICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZuOjprSExHLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05B TUVTX0hMR19TSU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue1Nr TmFtZWRUcmFuc2ZlckZuOjprSExHLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5DRV9WRVJTSU9OfX0sCi0gICAgICAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfRVhURU5ERURTUkdCMTAsCi0tICAg ICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKAotKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbnsK LSAgICAgICAgICAgICAgIFNrTmFtZWRUcmFuc2ZlckZuRXh0OjprU1JHQkV4dGVuZGVkMTAyM092 ZXI1MTAsCi0tICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0VY VEVOREVEU1JHQjEwX1NJTkNFX1ZFUlNJT04pfX0pOwotKyAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19FWFRFTkRFRFNSR0IxMF9TSU5DRV9WRVJTSU9OfX19KTsK LSAKLSAvLyBBIG1hcCBmcm9tIHpjcl9jb2xvcl9tYW5hZ2VyX3YxIG1hdHJpeF9uYW1lcyBlbnVt IHZhbHVlcyB0bwotIC8vIGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SURzLgotIGNvbnN0ZXhwciBh dXRvIGtNYXRyaXhNYXAgPQotICAgICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9t YW5hZ2VyX3YxX21hdHJpeF9uYW1lcywgTWF0cml4VmVyc2lvbj4oCi0gICAgICAgICB7e1pDUl9D T0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19SR0IsCi0tICAgICAgICAgIE1hdHJpeFZlcnNp b24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6UkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9 LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlJH Qiwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfTUFUUklYX05BTUVTX0JUNzA5LAotLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29s b3JTcGFjZTo6TWF0cml4SUQ6OkJUNzA5LAotLSAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZh dWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNw YWNlOjpNYXRyaXhJRDo6QlQ3MDksCi0rICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRT aW5jZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05B TUVTX0JUNDcwQkcsCi0tICAgICAgICAgIE1hdHJpeFZlcnNpb24oCi0rICAgICAgICAgIE1hdHJp eFZlcnNpb257Ci0gICAgICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpCVDQ3 MEJHLAotLSAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0JU NDcwQkdfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJf VjFfTUFUUklYX05BTUVTX0JUNDcwQkdfU0lOQ0VfVkVSU0lPTn19LAotICAgICAgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQyMDIwX05DTCwKLS0gICAgICAgICAgTWF0 cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpCVDIwMjBfTkNMLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgIE1h dHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6QlQyMDIwX05DTCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQyMDIwX0NMLAotLSAgICAgICAgICBN YXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkJUMjAyMF9DTCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgICBN YXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkJUMjAyMF9DTCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfRkNDLAotLSAgICAgICAgICBNYXRyaXhW ZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkZDQywga0RlZmF1bHRTaW5jZVZlcnNp b24pfSwKLSsgICAgICAgICAgTWF0cml4VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElE OjpGQ0MsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5B R0VSX1YxX01BVFJJWF9OQU1FU19ZQ09DRywKLS0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6 OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpZQ09DRywKLS0gICAgICAgICAgICAgICAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfWUNPQ0dfU0lOQ0VfVkVSU0lPTil9LAot KyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OllDT0NH LAotKyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9O QU1FU19ZQ09DR19TSU5DRV9WRVJTSU9OfX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VS X1YxX01BVFJJWF9OQU1FU19ZRFpEWCwKLS0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNv bG9yU3BhY2U6Ok1hdHJpeElEOjpZRFpEWCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfWURaRFhfU0lOQ0VfVkVSU0lPTil9LAotKyAg ICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OllEWkRYLAot KyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1F U19ZRFpEWF9TSU5DRV9WRVJTSU9OfX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1Yx X01BVFJJWF9OQU1FU19HQlIsCi0tICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNw YWNlOjpNYXRyaXhJRDo6R0JSLAotLSAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX01BVFJJWF9OQU1FU19HQlJfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICBN YXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkdCUiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfR0JSX1NJTkNF X1ZFUlNJT059fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVT X1NNUFRFMTcwTSwKLS0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1h dHJpeElEOjpTTVBURTE3ME0sCi0tICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb24pfSwKLSsgICAgICAgICAgTWF0cml4VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6Ok1h dHJpeElEOjpTTVBURTE3ME0sCi0rICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb259fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVT X1NNUFRFMjQwTSwKLS0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1h dHJpeElEOjpTTVBURTI0ME0sCi0tICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb24pfX0pOwotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6 TWF0cml4SUQ6OlNNUFRFMjQwTSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNp bmNlVmVyc2lvbn19fSk7Ci0gCi0gLy8gQSBtYXAgZnJvbSB6Y3JfY29sb3JfbWFuYWdlcl92MSBy YW5nZV9uYW1lcyBlbnVtIHZhbHVlcyB0bwotIC8vIGdmeDo6Q29sb3JTcGFjZTo6UmFuZ2VJRHMu Ci0gY29uc3RleHByIGF1dG8ga1JhbmdlTWFwID0KLSAgICAgYmFzZTo6TWFrZUZpeGVkRmxhdE1h cDx6Y3JfY29sb3JfbWFuYWdlcl92MV9yYW5nZV9uYW1lcywgUmFuZ2VWZXJzaW9uPigKLSAgICAg ICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfUkFOR0VfTkFNRVNfTElNSVRFRCwKLS0gICAgICAg ICAgUmFuZ2VWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6UmFuZ2VJRDo6TElNSVRFRCwKLS0gICAg ICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgIFJh bmdlVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkxJTUlURUQsCi0rICAgICAgICAg ICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09M T1JfTUFOQUdFUl9WMV9SQU5HRV9OQU1FU19GVUxMLAotLSAgICAgICAgICBSYW5nZVZlcnNpb24o Z2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpGVUxMLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAot KyAgICAgICAgICBSYW5nZVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpGVUxMLCBr RGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9S QU5HRV9OQU1FU19ERVJJVkVELAotLSAgICAgICAgICBSYW5nZVZlcnNpb24oZ2Z4OjpDb2xvclNw YWNlOjpSYW5nZUlEOjpERVJJVkVELAotLSAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRT aW5jZVZlcnNpb24pfX0pOwotKyAgICAgICAgICBSYW5nZVZlcnNpb257Z2Z4OjpDb2xvclNwYWNl OjpSYW5nZUlEOjpERVJJVkVELAotKyAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb259fX0pOwotIAotIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2Nocm9tYXRpY2l0eV9uYW1l cyBUb0NvbG9yTWFuYWdlckNocm9tYXRpY2l0eSgKLSAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmlt YXJ5SUQgcHJpbWFyeUlELAotQEAgLTI4Myw0ICsyODMsNCBAQCB6Y3JfY29sb3JfbWFuYWdlcl92 MV9lb3RmX25hbWVzIFRvQ29sb3JNCi0gCi0gfSAgLy8gbmFtZXNwYWNlIHVpOjp3YXlsYW5kCi0g Ci0tI2VuZGlmICAvLyBVSV9CQVNFX1dBWUxBTkRfQ09MT1JfTUFOQUdFUl9VVElMX0hfCi1cIEtl aW4gWmVpbGVudW1icnVjaCBhbSBEYXRlaWVuZGUuCi0rI2VuZGlmICAvLyBVSV9CQVNFX1dBWUxB TkRfQ09MT1JfTUFOQUdFUl9VVElMX0hfCi1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L3VpL2d0ay9ndGtfdWkuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAu NjA5OS41Ni91aS9ndGsvZ3RrX3VpLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91aS9n dGsvZ3RrX3VpLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6NDQu MDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91aS9ndGsvZ3RrX3Vp LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzU2NDIwMzQyICswMTAwCi1AQCAtMTAxMywxMSArMTAx MywxMSBAQCB1aTo6RGlzcGxheUNvbmZpZyBHdGtVaTo6R2V0RGlzcGxheUNvbmZpCi0gICAgIEdk a1JlY3RhbmdsZSBnZW9tZXRyeTsKLSAgICAgZ2RrX21vbml0b3JfZ2V0X2dlb21ldHJ5KG1vbml0 b3IsICZnZW9tZXRyeSk7Ci0gICAgIGludCBtb25pdG9yX3NjYWxlID0gc3RkOjptYXgoMSwgZ2Rr X21vbml0b3JfZ2V0X3NjYWxlX2ZhY3Rvcihtb25pdG9yKSk7Ci0tICAgIGNvbmZpZy5kaXNwbGF5 X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNrKAotKyAgICBjb25maWcuZGlzcGxheV9nZW9tZXRyaWVz LmVtcGxhY2VfYmFjaygpID0gewotICAgICAgICAgZ2Z4OjpSZWN0KG1vbml0b3Jfc2NhbGUgKiBn ZW9tZXRyeS54LCBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkueSwKLSAgICAgICAgICAgICAgICAg ICBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkud2lkdGgsCi0gICAgICAgICAgICAgICAgICAgbW9u aXRvcl9zY2FsZSAqIGdlb21ldHJ5LmhlaWdodCksCi0tICAgICAgICBtb25pdG9yX3NjYWxlICog Zm9udF9zY2FsZSk7Ci0rICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4obW9uaXRvcl9zY2FsZSAq IGZvbnRfc2NhbGUpfTsKLSAgIH0KLSAgIHJldHVybiBjb25maWc7Ci0gfQoKZGlmZiAtLWdpdCBh L2Nocm9taXVtLTEyMC1udWxscHRyX3Qtd2l0aG91dC1uYW1lc3BhY2Utc3RkLnBhdGNoIGIvY2hy b21pdW0tMTIwLW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwNDNkNmYuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTIw LW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwyNCArMCwwIEBACi1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2Jhc2UvYWxsb2Nh dG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9wYXJ0aXRpb25fYWxs b2NfYmFzZS9zdHJpbmdzL3NhZmVfc3ByaW50Zi5oLnRoYW4gY2hyb21pdW0tMTIwLjAuNjA5OS4z NS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2Mv cGFydGl0aW9uX2FsbG9jX2Jhc2Uvc3RyaW5ncy9zYWZlX3NwcmludGYuaAotLS0tIGNocm9taXVt LTEyMC4wLjYwOTkuMzUvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFy dGl0aW9uX2FsbG9jL3BhcnRpdGlvbl9hbGxvY19iYXNlL3N0cmluZ3Mvc2FmZV9zcHJpbnRmLmgu dGhhbgkyMDIzLTExLTI2IDE4OjE5OjExLjM1NTExNzE3NiArMDEwMAotKysrIGNocm9taXVtLTEy MC4wLjYwOTkuMzUvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0 aW9uX2FsbG9jL3BhcnRpdGlvbl9hbGxvY19iYXNlL3N0cmluZ3Mvc2FmZV9zcHJpbnRmLmgJMjAy My0xMS0yNiAxODoyMDoyMS4wOTAzNjYwMzYgKzAxMDAKLUBAIC0xODQsNyArMTg0LDcgQEAgc3Ry dWN0IEFyZyB7Ci0gICAvLwotICAgLy8gV2FybmluZzogZG9uJ3QganVzdCBkbyBBcmcoTlVMTCkg aGVyZSBiZWNhdXNlIGluIHNvbWUgbGliY3MsIE5VTEwgaXMgYW4KLSAgIC8vIGFsaWFzIGZvciBu dWxscHRyIQotLSAgQXJnKG51bGxwdHJfdCBwKSA6IHR5cGUoSU5UKSB7Ci0rICBBcmcoc3RkOjpu dWxscHRyX3QgcCkgOiB0eXBlKElOVCkgewotICAgICBpbnRlZ2VyLmkgPSAwOwotICAgICAvLyBJ bnRlcm5hbGx5LCBTYWZlU3ByaW50ZiBleHBlY3RzIHRvIHJlcHJlc2VudCBudWxscyBhcyBpbnRl Z2VycyB3aG9zZQotICAgICAvLyB3aWR0aCBpcyBlcXVhbCB0byBzaXplb2YoTlVMTCksIHdoaWNo IGlzIG5vdCBuZWNlc3NhcmlseSBlcXVhbCB0bwotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdtZW50X2RhdGFf aXRlcmF0b3IuaC50aGFuIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvY29yZS9wYWludC9mcmFnbWVudF9kYXRhX2l0ZXJhdG9yLmgKLS0tLSBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvZnJh Z21lbnRfZGF0YV9pdGVyYXRvci5oLnRoYW4JMjAyMy0xMi0wNCAxMDoyMDo0NS4zNTA1NDA4OTcg KzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL2NvcmUvcGFpbnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5oCTIwMjMtMTItMDQgMTA6MjM6 MTcuMzM1MzM5NjcwICswMTAwCi1AQCAtMjEsNyArMjEsNyBAQCBjbGFzcyBGcmFnbWVudERhdGFJ dGVyYXRvckJhc2UgewotIAotICBwdWJsaWM6Ci0gICBleHBsaWNpdCBGcmFnbWVudERhdGFJdGVy YXRvckJhc2UoSGVhZCYgaGVhZCkgOiBmcmFnbWVudF9oZWFkXyhoZWFkKSB7fQotLSAgZXhwbGlj aXQgRnJhZ21lbnREYXRhSXRlcmF0b3JCYXNlKG51bGxwdHJfdCkge30KLSsgIGV4cGxpY2l0IEZy YWdtZW50RGF0YUl0ZXJhdG9yQmFzZShzdGQ6Om51bGxwdHJfdCkge30KLSAKLSAgIERhdGEqIEdl dEZyYWdtZW50RGF0YSgpIGNvbnN0IHsKLSAgICAgcmV0dXJuICFJc0RvbmUoKSA/ICZmcmFnbWVu dF9oZWFkXy5hdChpZHhfKSA6IG51bGxwdHI7CgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTIwLXR5 cGVuYW1lLnBhdGNoIGIvY2hyb21pdW0tMTIwLXR5cGVuYW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA5YTJkODc4Li4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTEyMC10eXBl bmFtZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwNSArMCwwIEBACi0tLS0gY2hyb21pdW0t MTIwLjAuNjA5OS41Ni9iYXNlL2NvbnRhaW5lcnMvbWFwX3V0aWwuaC5tZQkyMDIzLTEyLTAyIDE5 OjAwOjE5LjY5NjgwMTU2MyArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS9j b250YWluZXJzL21hcF91dGlsLmgJMjAyMy0xMi0wMiAxOTowMDo0Ny4wNDkzMzc1NDcgKzAxMDAK LUBAIC00Miw3ICs0Miw3IEBACi0gdGVtcGxhdGUgPHR5cGVuYW1lIE1hcCwKLSAgICAgICAgICAg dHlwZW5hbWUgS2V5LAotICAgICAgICAgICB0eXBlbmFtZSBNYXBwZWRFbGVtZW50VHlwZSA9Ci0t ICAgICAgICAgICAgICBzdGQ6OnBvaW50ZXJfdHJhaXRzPGludGVybmFsOjpNYXBwZWRUeXBlPE1h cD4+OjplbGVtZW50X3R5cGU+Ci0rICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnBvaW50ZXJf dHJhaXRzPGludGVybmFsOjpNYXBwZWRUeXBlPE1hcD4+OjplbGVtZW50X3R5cGU+Ci0gY29uc3Rl eHByIGNvbnN0IE1hcHBlZEVsZW1lbnRUeXBlKiBGaW5kUHRyT3JOdWxsKGNvbnN0IE1hcCYgbWFw LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBLZXkmIGtleSkgewotICAgYXV0byBpdCA9IG1hcC5maW5kKGtleSk7Ci1AQCAtNTgsNyArNTgs NyBAQAotIHRlbXBsYXRlIDx0eXBlbmFtZSBNYXAsCi0gICAgICAgICAgIHR5cGVuYW1lIEtleSwK LSAgICAgICAgICAgdHlwZW5hbWUgTWFwcGVkRWxlbWVudFR5cGUgPQotLSAgICAgICAgICAgICAg c3RkOjpwb2ludGVyX3RyYWl0czxpbnRlcm5hbDo6TWFwcGVkVHlwZTxNYXA+Pjo6ZWxlbWVudF90 eXBlPgotKyAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpwb2ludGVyX3RyYWl0czxpbnRlcm5h bDo6TWFwcGVkVHlwZTxNYXA+Pjo6ZWxlbWVudF90eXBlPgotIGNvbnN0ZXhwciBNYXBwZWRFbGVt ZW50VHlwZSogRmluZFB0ck9yTnVsbChNYXAmIG1hcCwgY29uc3QgS2V5JiBrZXkpIHsKLSAgIGF1 dG8gaXQgPSBtYXAuZmluZChrZXkpOwotICAgcmV0dXJuIGl0ICE9IG1hcC5lbmQoKSA/IHN0ZDo6 dG9fYWRkcmVzcyhpdC0+c2Vjb25kKSA6IG51bGxwdHI7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTUu MC41NzkwLjI0L2Nocm9tZS9icm93c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVf dXBkYXRlX3NlcnZpY2UuY2MubWUgY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9jaHJvbWUvYnJvd3Nl ci9kb3dubG9hZC9idWJibGUvZG93bmxvYWRfYnViYmxlX3VwZGF0ZV9zZXJ2aWNlLmNjCi0tLS0g Y2hyb21pdW0tMTE1LjAuNTc5MC4yNC9jaHJvbWUvYnJvd3Nlci9kb3dubG9hZC9idWJibGUvZG93 bmxvYWRfYnViYmxlX3VwZGF0ZV9zZXJ2aWNlLmNjLm1lCTIwMjMtMDYtMTcgMTQ6NTA6NTYuMzQy NTkxNzAyICswMjAwCi0rKysgY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9jaHJvbWUvYnJvd3Nlci9k b3dubG9hZC9idWJibGUvZG93bmxvYWRfYnViYmxlX3VwZGF0ZV9zZXJ2aWNlLmNjCTIwMjMtMDYt MTcgMTQ6NTc6NDguMDI0Mzc3Mzc1ICswMjAwCi1AQCAtOTEsNyArOTEsNyBAQCBJdGVtU29ydEtl eSBHZXRTb3J0S2V5KGNvbnN0IEl0ZW0mIGl0ZW0pCi0gLy8gSGVscGVyIHRvIGdldCBhbiBpdGVy YXRvciB0byB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBjYWNoZS4gVGhlIGNhY2hlCi0gLy8gbXVz dCBub3QgYmUgZW1wdHkuCi0gdGVtcGxhdGUgPHR5cGVuYW1lIEl0ZW0+Ci0tU29ydGVkSXRlbXM8 SXRlbT46OmNvbnN0X2l0ZXJhdG9yIEdldExhc3RJdGVyKGNvbnN0IFNvcnRlZEl0ZW1zPEl0ZW0+ JiBjYWNoZSkgewotK3R5cGVuYW1lIFNvcnRlZEl0ZW1zPEl0ZW0+Ojpjb25zdF9pdGVyYXRvciBH ZXRMYXN0SXRlcihjb25zdCBTb3J0ZWRJdGVtczxJdGVtPiYgY2FjaGUpIHsKLSAgIENIRUNLKCFj YWNoZS5lbXB0eSgpKTsKLSAgIGF1dG8gaXQgPSBjYWNoZS5lbmQoKTsKLSAgIHJldHVybiBzdGQ6 OnByZXYoaXQpOwotQEAgLTk2Nyw5ICs5NjcsOSBAQCBib29sIERvd25sb2FkQnViYmxlVXBkYXRl U2VydmljZTo6Q2FjaGVNCi0gfQotIAotIHRlbXBsYXRlIDx0eXBlbmFtZSBJZCwgdHlwZW5hbWUg SXRlbT4KLS1Tb3J0ZWRJdGVtczxJdGVtPjo6aXRlcmF0b3IKLSt0eXBlbmFtZSBTb3J0ZWRJdGVt czxJdGVtPjo6aXRlcmF0b3IKLSBEb3dubG9hZEJ1YmJsZVVwZGF0ZVNlcnZpY2U6OkNhY2hlTWFu YWdlcjo6UmVtb3ZlSXRlbUZyb21DYWNoZUJ5SXRlcigKLS0gICAgU29ydGVkSXRlbXM8SXRlbT46 Oml0ZXJhdG9yIGl0ZXIsCi0rICAgIHR5cGVuYW1lIFNvcnRlZEl0ZW1zPEl0ZW0+OjppdGVyYXRv ciBpdGVyLAotICAgICBTb3J0ZWRJdGVtczxJdGVtPiYgY2FjaGUsCi0gICAgIEl0ZXJNYXA8SWQs IEl0ZW0+JiBpdGVyX21hcCkgewotICAgQ0hFQ0soaXRlciAhPSBjYWNoZS5lbmQoKSk7Ci1kaWZm IC11cCBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRl L2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgubWUgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9j b21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5o Ci0tLS0gY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlk ZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oLm1lCTIwMjMtMDYtMTggMjE6NTI6NTMuNTE1 NjI1MjM3ICswMjAwCi0rKysgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb21wb25lbnRzL29wdGlt aXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oCTIwMjMtMDYtMTggMjE6 NTM6MDYuODgxODgxMjkzICswMjAwCi1AQCAtMTg5LDcgKzE4OSw3IEBAIGNsYXNzIFRGTGl0ZU1v ZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9kZWwKLSAgIHZvaWQgU2VuZEZvckJhdGNoRXhlY3V0aW9u KAotICAgICAgIEJhdGNoRXhlY3V0aW9uQ2FsbGJhY2sgY2FsbGJhY2tfb25fY29tcGxldGUsCi0g ICAgICAgYmFzZTo6VGltZVRpY2tzIHN0YXJ0X3RpbWUsCi0tICAgICAgTW9kZWxFeGVjdXRvcjxP dXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cykKLSsgICAg ICB0eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVm SW5wdXRWZWN0b3IgaW5wdXRzKQotICAgICAgIG92ZXJyaWRlIHsKLSAgICAgRENIRUNLKGV4ZWN1 dGlvbl90YXNrX3J1bm5lcl8tPlJ1bnNUYXNrc0luQ3VycmVudFNlcXVlbmNlKCkpOwotICAgICBE Q0hFQ0tfQ0FMTEVEX09OX1ZBTElEX1NFUVVFTkNFKHNlcXVlbmNlX2NoZWNrZXJfKTsKLWRpZmYg LXVwIGNocm9taXVtLTExNS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29y ZS9odG1sL3BhcnNlci9odG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0aC5jYy5tZSBjaHJvbWl1 bS0xMTUuMC41NzkwLjMyL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvaHRtbC9wYXJz ZXIvaHRtbF9kb2N1bWVudF9wYXJzZXJfZmFzdHBhdGguY2MKLS0tLSBjaHJvbWl1bS0xMTUuMC41 NzkwLjMyL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvaHRtbC9wYXJzZXIvaHRtbF9k b2N1bWVudF9wYXJzZXJfZmFzdHBhdGguY2MubWUJMjAyMy0wNi0xOSAxMDowMzozMi4zMTkyMTg2 NzggKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL2NvcmUvaHRtbC9wYXJzZXIvaHRtbF9kb2N1bWVudF9wYXJzZXJfZmFzdHBhdGguY2MJ MjAyMy0wNi0xOSAxMDowNDoxMi4wMjM5NDIyMzIgKzAyMDAKLUBAIC0xNjksNyArMTY5LDcgQEAg Y2xhc3MgSFRNTEZhc3RQYXRoUGFyc2VyIHsKLSAgIHVzaW5nIFNwYW4gPSBiYXNlOjpzcGFuPGNv bnN0IENoYXI+OwotICAgdXNpbmcgVVNwYW4gPSBiYXNlOjpzcGFuPGNvbnN0IFVDaGFyPjsKLSAg IC8vIDMyIG1hdGNoZXMgdGhhdCB1c2VkIGJ5IEhUTUxUb2tlbjo6QXR0cmlidXRlLgotLSAgdHlw ZWRlZiBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfc2FtZV92PENoYXIsIFVDaGFyPiwKLSsgIHR5 cGVkZWYgdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX3NhbWVfdjxDaGFyLCBVQ2hh cj4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJMaXRlcmFsQnVmZmVyPDMyPiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQ2hhckxpdGVyYWxCdWZmZXI8MzI+Pjo6dHlw ZSBMaXRlcmFsQnVmZmVyVHlwZTsKLSAgIHR5cGVkZWYgVUNoYXJMaXRlcmFsQnVmZmVyPDMyPiBV Q2hhckxpdGVyYWxCdWZmZXJUeXBlOwotZGlmZiAtdXAgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9j b250ZW50L3B1YmxpYy9icm93c2VyL3dlYl91aV9icm93c2VyX2ludGVyZmFjZV9icm9rZXJfcmVn aXN0cnkuaC5tZSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIv d2ViX3VpX2Jyb3dzZXJfaW50ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oCi0tLS0gY2hyb21pdW0t MTE2LjAuNTg0NS41MC9jb250ZW50L3B1YmxpYy9icm93c2VyL3dlYl91aV9icm93c2VyX2ludGVy ZmFjZV9icm9rZXJfcmVnaXN0cnkuaC5tZQkyMDIzLTA4LTAyIDE2OjE4OjMwLjM4MDEwODEyNSAr MDIwMAotKysrIGNocm9taXVtLTExNi4wLjU4NDUuNTAvY29udGVudC9wdWJsaWMvYnJvd3Nlci93 ZWJfdWlfYnJvd3Nlcl9pbnRlcmZhY2VfYnJva2VyX3JlZ2lzdHJ5LmgJMjAyMy0wOC0wMiAxNjoy MDo1OS42NjAwMjQ1NzggKzAyMDAKLUBAIC0xMjcsMTAgKzEyNywxMCBAQCBjbGFzcyBDT05URU5U X0VYUE9SVCBXZWJVSUJyb3dzZXJJbnRlcmZhCi0gICAvLwotICAgLy8gVE9ETyhjcmJ1Zy5jb20v MTQwNzkzNik6IFBvaW50IHRvIFdlYlVJSnNCcmlkZ2UgZG9jdW1lbnRhdGlvbi4KLSAgIHRlbXBs YXRlIDx0eXBlbmFtZSBDb250cm9sbGVyVHlwZT4KLS0gIEpzQnJpZGdlVHJhaXRzPENvbnRyb2xs ZXJUeXBlPjo6QmluZGVySW5pdGlhbGl6ZXImIEZvcldlYlVJV2l0aEpzQnJpZGdlKCkgewotKyAg dHlwZW5hbWUgSnNCcmlkZ2VUcmFpdHM8Q29udHJvbGxlclR5cGU+OjpCaW5kZXJJbml0aWFsaXpl ciYgRm9yV2ViVUlXaXRoSnNCcmlkZ2UoKSB7Ci0gICAgIHVzaW5nIFRyYWl0cyA9IEpzQnJpZGdl VHJhaXRzPENvbnRyb2xsZXJUeXBlPjsKLS0gICAgdXNpbmcgSW50ZXJmYWNlID0gVHJhaXRzOjpJ bnRlcmZhY2U7Ci0tICAgIHVzaW5nIEpzQnJpZGdlQmluZGVySW5pdGlhbGl6ZXIgPSBUcmFpdHM6 OkJpbmRlckluaXRpYWxpemVyOwotKyAgICB1c2luZyBJbnRlcmZhY2UgPSB0eXBlbmFtZSBUcmFp dHM6OkludGVyZmFjZTsKLSsgICAgdXNpbmcgSnNCcmlkZ2VCaW5kZXJJbml0aWFsaXplciA9IHR5 cGVuYW1lIFRyYWl0czo6QmluZGVySW5pdGlhbGl6ZXI7Ci0gCi0gICAgIC8vIFdlYlVJQ29udHJv bGxlcjo6R2V0VHlwZSgpIHJlcXVpcmVzIGFuIGluc3RhbnRpYXRlZCBXZWJVSUNvbnRyb2xsZXIK LSAgICAgLy8gKGJlY2F1c2UgaXQncyBhIHZpcnR1YWwgbWV0aG9kIGFuZCBjYW4ndCBiZSBzdGF0 aWMpLiBIZXJlIHdlIG9ubHkgaGF2ZQotZGlmZiAtdXAgY2hyb21pdW0tMTE2LjAuNTg0NS41MC90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWludF9wcm9wZXJ0 aWVzX3NwYXJzZS5oLm1lIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvY29yZS9wYWludC9vYmplY3RfcGFpbnRfcHJvcGVydGllc19zcGFyc2UuaAotLS0t IGNocm9taXVtLTExNi4wLjU4NDUuNTAvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9w YWludC9vYmplY3RfcGFpbnRfcHJvcGVydGllc19zcGFyc2UuaC5tZQkyMDIzLTA4LTAyIDIwOjQx OjIzLjk4NDcyOTQ2MiArMDIwMAotKysrIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9vYmplY3RfcGFpbnRfcHJvcGVydGllc19zcGFy c2UuaAkyMDIzLTA4LTAyIDIwOjQxOjUzLjczNzU4MzA5MyArMDIwMAotQEAgLTI3MCw4ICsyNzAs OCBAQCBjbGFzcyBDT1JFX0VYUE9SVCBPYmplY3RQYWludFByb3BlcnRpZXNTCi0gICAgICAgTm9k ZUxpc3QmIG5vZGVzLAotICAgICAgIE5vZGVJZCBub2RlX2lkLAotICAgICAgIGNvbnN0IFBhcmVu dFR5cGUmIHBhcmVudCwKLS0gICAgICBOb2RlVHlwZTo6U3RhdGUmJiBzdGF0ZSwKLS0gICAgICBj b25zdCBOb2RlVHlwZTo6QW5pbWF0aW9uU3RhdGUmIGFuaW1hdGlvbl9zdGF0ZSA9Ci0rICAgICAg dHlwZW5hbWUgTm9kZVR5cGU6OlN0YXRlJiYgc3RhdGUsCi0rICAgICAgY29uc3QgdHlwZW5hbWUg Tm9kZVR5cGU6OkFuaW1hdGlvblN0YXRlJiBhbmltYXRpb25fc3RhdGUgPQotICAgICAgICAgICBO b2RlVHlwZTo6QW5pbWF0aW9uU3RhdGUoKSkgewotICAgICAvLyBGaXJzdCwgY2hlY2sgaWYgd2Ug bmVlZCB0byBhZGQgYSBuZXcgbm9kZS4KLSAgICAgaWYgKCFub2Rlcy5IYXNGaWVsZChub2RlX2lk KSkgewotZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL29wdGltaXph dGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oLm1lIGNocm9taXVtLTExNy4w LjU5MzguNjIvY29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxf ZXhlY3V0b3IuaAotLS0tIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9vcHRpbWl6 YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZQkyMDIzLTA5LTE1IDEw OjIyOjUxLjg4OTY5ODQwMiArMDIwMAotKysrIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9u ZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaAkyMDIz LTA5LTE1IDEwOjI4OjI2LjcwMjcxNjIyNCArMDIwMAotQEAgLTIzNCw3ICsyMzQsNyBAQCBjbGFz cyBURkxpdGVNb2RlbEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCi0gICAvLyBTdGFydHMgdGhlIHN5 bmNocm9ub3VzIGV4ZWN1dGlvbiBvZiB0aGUgbW9kZWwuIFJldHVybnMgbW9kZWwgb3V0cHV0cy4K LSAgIC8vIE1vZGVsIG5lZWRzIHRvIGJlIGxvYWRlZC4gU3luY2hyb25vdXMgY2FsbHMgZG8gbm90 IGxvYWQgb3IgdW5sb2FkIG1vZGVsLgotICAgc3RkOjp2ZWN0b3I8YWJzbDo6b3B0aW9uYWw8T3V0 cHV0VHlwZT4+IFNlbmRGb3JCYXRjaEV4ZWN1dGlvblN5bmMoCi0tICAgICAgTW9kZWxFeGVjdXRv cjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cykKLSsg ICAgICB0eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0 UmVmSW5wdXRWZWN0b3IgaW5wdXRzKQotICAgICAgIG92ZXJyaWRlIHsKLSAgICAgRENIRUNLKGV4 ZWN1dGlvbl90YXNrX3J1bm5lcl8tPlJ1bnNUYXNrc0luQ3VycmVudFNlcXVlbmNlKCkpOwotICAg ICBEQ0hFQ0tfQ0FMTEVEX09OX1ZBTElEX1NFUVVFTkNFKHNlcXVlbmNlX2NoZWNrZXJfKTsKLUBA IC0zODksNyArMzg5LDcgQEAgY2xhc3MgVEZMaXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2Rl bAotICAgLy8gZXhlY3V0ZXMgaXQgb24gdGhlIG1vZGVsIGV4ZWN1dGlvbiB0aHJlYWQuCi0gICB2 b2lkIExvYWRNb2RlbEZpbGVBbmRCYXRjaEV4ZWN1dGUoCi0gICAgICAgQmF0Y2hFeGVjdXRpb25D YWxsYmFjayBjYWxsYmFja19vbl9jb21wbGV0ZSwKLS0gICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1 dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzKSB7Ci0rICAgICAg dHlwZW5hbWUgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklu cHV0VmVjdG9yIGlucHV0cykgewotICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+ UnVuc1Rhc2tzSW5DdXJyZW50U2VxdWVuY2UoKSk7Ci0gICAgIERDSEVDS19DQUxMRURfT05fVkFM SURfU0VRVUVOQ0Uoc2VxdWVuY2VfY2hlY2tlcl8pOwotIAotQEAgLTQwNiw3ICs0MDYsNyBAQCBj bGFzcyBURkxpdGVNb2RlbEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCi0gCi0gICAvLyBCYXRjaCBl eGVjdXRlcyB0aGUgbG9hZGVkIG1vZGVsIGZvciBpbnB1dHMuCi0gICB2b2lkIEJhdGNoRXhlY3V0 ZUxvYWRlZE1vZGVsKAotLSAgICAgIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBl Pjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMsCi0rICAgICAgdHlwZW5hbWUgTW9kZWxFeGVj dXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cywK LSAgICAgICBzdGQ6OnZlY3RvcjxhYnNsOjpvcHRpb25hbDxPdXRwdXRUeXBlPj4qIG91dHB1dHMp IHsKLSAgICAgRENIRUNLKGV4ZWN1dGlvbl90YXNrX3J1bm5lcl8tPlJ1bnNUYXNrc0luQ3VycmVu dFNlcXVlbmNlKCkpOwotICAgICBEQ0hFQ0tfQ0FMTEVEX09OX1ZBTElEX1NFUVVFTkNFKHNlcXVl bmNlX2NoZWNrZXJfKTsKLUBAIC00NjYsNyArNDY2LDcgQEAgY2xhc3MgVEZMaXRlTW9kZWxFeGVj dXRvciA6IHB1YmxpYyBNb2RlbAotICAgLy8gVW5sb2FkcyB0aGUgbW9kZWwgaWYgbmVlZGVkLgot ICAgdm9pZCBCYXRjaEV4ZWN1dGVMb2FkZWRNb2RlbEFuZFJ1bkNhbGxiYWNrKAotICAgICAgIEJh dGNoRXhlY3V0aW9uQ2FsbGJhY2sgY2FsbGJhY2tfb25fY29tcGxldGUsCi0tICAgICAgTW9kZWxF eGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0 cywKLSsgICAgICB0eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46 OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzLAotICAgICAgIEV4ZWN1dGlvblN0YXR1cyBleGVj dXRpb25fc3RhdHVzKSB7Ci0gICAgIERDSEVDSyhleGVjdXRpb25fdGFza19ydW5uZXJfLT5SdW5z VGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKLSAgICAgRENIRUNLX0NBTExFRF9PTl9WQUxJRF9T RVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4 LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVy LmNjLm1lIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIv Y29yZS9icm93c2VyL3Byb3RvX2ZldGNoZXIuY2MKLS0tLSBjaHJvbWl1bS0xMTcuMC41OTM4LjYy L2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmNj Lm1lCTIwMjMtMDktMTUgMTc6MjA6MjIuNTUwNjU3NTg2ICswMjAwCi0rKysgY2hyb21pdW0tMTE3 LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9f ZmV0Y2hlci5jYwkyMDIzLTA5LTE1IDE3OjI0OjExLjM5NjcxNjczNCArMDIwMAotQEAgLTM5OSw3 ICszOTksNyBAQCBjbGFzcyBSZXRyeWluZ0ZldGNoZXJJbXBsIGZpbmFsIDogcHVibGljCi0gICBS ZXRyeWluZ0ZldGNoZXJJbXBsKGNvbnN0IFJldHJ5aW5nRmV0Y2hlckltcGwmKSA9IGRlbGV0ZTsK LSAgIFJldHJ5aW5nRmV0Y2hlckltcGwmIG9wZXJhdG9yPShjb25zdCBSZXRyeWluZ0ZldGNoZXJJ bXBsJikgPSBkZWxldGU7Ci0gCi0tICB2b2lkIFN0YXJ0KFByb3RvRmV0Y2hlcjxSZXNwb25zZT46 OkNhbGxiYWNrIGNhbGxiYWNrKSBvdmVycmlkZSB7Ci0rICB2b2lkIFN0YXJ0KHR5cGVuYW1lIFBy b3RvRmV0Y2hlcjxSZXNwb25zZT46OkNhbGxiYWNrIGNhbGxiYWNrKSBvdmVycmlkZSB7Ci0gICAg IGNhbGxiYWNrXyA9IHN0ZDo6bW92ZShjYWxsYmFjayk7Ci0gICAgIFJldHJ5KCk7Ci0gICB9Ci1A QCAtNDM1LDcgKzQzNSw3IEBAIGNsYXNzIFJldHJ5aW5nRmV0Y2hlckltcGwgZmluYWwgOiBwdWJs aWMKLSAgIH0KLSAKLSAgIC8vIENsaWVudCBjYWxsYmFjay4KLS0gIFByb3RvRmV0Y2hlcjxSZXNw b25zZT46OkNhbGxiYWNrIGNhbGxiYWNrXzsKLSsgIHR5cGVuYW1lIFByb3RvRmV0Y2hlcjxSZXNw b25zZT46OkNhbGxiYWNrIGNhbGxiYWNrXzsKLSAKLSAgIC8vIFJldHJ5IGNvbnRyb2xzLgotICAg YmFzZTo6T25lU2hvdFRpbWVyIHRpbWVyXzsKLUBAIC01NzgsNyArNTc4LDcgQEAgUGFyYWxsZWxG ZXRjaE1hbmFnZXI8UmVxdWVzdCwgUmVzcG9uc2U+OgotIHRlbXBsYXRlIDx0eXBlbmFtZSBSZXF1 ZXN0LCB0eXBlbmFtZSBSZXNwb25zZT4KLSB2b2lkIFBhcmFsbGVsRmV0Y2hNYW5hZ2VyPFJlcXVl c3QsIFJlc3BvbnNlPjo6RmV0Y2goCi0gICAgIGNvbnN0IFJlcXVlc3QmIHJlcXVlc3QsCi0tICAg IEZldGNoZXI6OkNhbGxiYWNrIGNhbGxiYWNrKSB7Ci0rICAgIHR5cGVuYW1lIEZldGNoZXI6OkNh bGxiYWNrIGNhbGxiYWNrKSB7Ci0gICBDSEVDSyhjYWxsYmFjaykgPDwgIlVzZSBiYXNlOjpEb05v dGhpbmcoKSBpbnN0ZWFkIG9mIGVtcHR5IGNhbGxiYWNrLiI7Ci0gICBLZXlUeXBlIGtleSA9IHJl cXVlc3RzX2luX2ZsaWdodF8uQWRkKE1ha2VGZXRjaGVyKHJlcXVlc3QpKTsKLSAgIHJlcXVlc3Rz X2luX2ZsaWdodF8uTG9va3VwKGtleSktPlN0YXJ0KAotZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAu NTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0 Y2hlci5oLm1lIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3Vz ZXIvY29yZS9icm93c2VyL3Byb3RvX2ZldGNoZXIuaAotLS0tIGNocm9taXVtLTExNy4wLjU5Mzgu NjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3RvX2ZldGNoZXIu aC5tZQkyMDIzLTA5LTE1IDE3OjIwOjU2LjU0MDQ2MDM5MSArMDIwMAotKysrIGNocm9taXVtLTEx Ny4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3Rv X2ZldGNoZXIuaAkyMDIzLTA5LTE1IDE3OjIyOjE4LjI0NjIzNzgxNyArMDIwMAotQEAgLTE2NSwx MCArMTY1LDEwIEBAIGNsYXNzIFBhcmFsbGVsRmV0Y2hNYW5hZ2VyIHsKLSAKLSAgIC8vIFN0YXJ0 cyB0aGUgZmV0Y2guIFVuZGVybHlpbmcgZmV0Y2hlciBpcyBzdG9yZWQgaW50ZXJuYWxseSwgYW5k IHdpbGwgYmUKLSAgIC8vIGNsZWFuZWQgdXAgYWZ0ZXIgZmluaXNoIG9yIHdoZW4gdGhpcyBtYW5h Z2VyIGlzIGRlc3Ryb3llZC4KLS0gIHZvaWQgRmV0Y2goY29uc3QgUmVxdWVzdCYgcmVxdWVzdCwg RmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spOwotKyAgdm9pZCBGZXRjaChjb25zdCBSZXF1ZXN0 JiByZXF1ZXN0LCB0eXBlbmFtZSBGZXRjaGVyOjpDYWxsYmFjayBjYWxsYmFjayk7Ci0gCi0gIHBy aXZhdGU6Ci0tICB1c2luZyBLZXlUeXBlID0gYmFzZTo6SURNYXA8c3RkOjp1bmlxdWVfcHRyPEZl dGNoZXI+Pjo6S2V5VHlwZTsKLSsgIHVzaW5nIEtleVR5cGUgPSB0eXBlbmFtZSBiYXNlOjpJRE1h cDxzdGQ6OnVuaXF1ZV9wdHI8RmV0Y2hlcj4+OjpLZXlUeXBlOwotIAotICAgLy8gUmVtb3ZlIGZl dGNoZXIgdW5kZXIga2V5IGZyb20gcmVxdWVzdHNfaW5fZmxpZ2h0Xy4KLSAgIHZvaWQgUmVtb3Zl KEtleVR5cGUga2V5KTsKLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92OC9hc3luY19pdGVyYWJsZS5oLm1lIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3Mv Y29yZS92OC9hc3luY19pdGVyYWJsZS5oCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L2FzeW5jX2l0ZXJhYmxlLmgu bWUJMjAyMy0xMi0wNCAwMDoyOTozNS4xOTcyMDk1MzggKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdzL2NvcmUvdjgvYXN5 bmNfaXRlcmFibGUuaAkyMDIzLTEyLTA0IDAwOjMwOjI0LjQzNjIzMzI0OSArMDEwMAotQEAgLTIy MCw3ICsyMjAsNyBAQCBjbGFzcyBQYWlyQXN5bmNJdGVyYWJsZSB7Ci0gIHByaXZhdGU6Ci0gICB2 aXJ0dWFsIEl0ZXJhdGlvblNvdXJjZSogQ3JlYXRlSXRlcmF0aW9uU291cmNlKAotICAgICAgIFNj cmlwdFN0YXRlKiBzY3JpcHRfc3RhdGUsCi0tICAgICAgSXRlcmF0aW9uU291cmNlOjpLaW5kIGtp bmQsCi0rICAgICAgdHlwZW5hbWUgSXRlcmF0aW9uU291cmNlOjpLaW5kIGtpbmQsCi0gICAgICAg RXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgPSAwOwotIH07Ci0gCi1AQCAtMjYyLDcg KzI2Miw3IEBAIGNsYXNzIFZhbHVlQXN5bmNJdGVyYWJsZSB7Ci0gIHByaXZhdGU6Ci0gICB2aXJ0 dWFsIEl0ZXJhdGlvblNvdXJjZSogQ3JlYXRlSXRlcmF0aW9uU291cmNlKAotICAgICAgIFNjcmlw dFN0YXRlKiBzY3JpcHRfc3RhdGUsCi0tICAgICAgSXRlcmF0aW9uU291cmNlOjpLaW5kIGtpbmQs Ci0rICAgICAgdHlwZW5hbWUgSXRlcmF0aW9uU291cmNlOjpLaW5kIGtpbmQsCi0gICAgICAgRXhj ZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgPSAwOwotIH07Ci0gCgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTIwLXdvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRj aCBiL2Nocm9taXVtLTEyMC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwNmUyOWYuLjAwMDAwMDAKLS0t IGEvY2hyb21pdW0tMTIwLXdvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTEx NS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNjLndvcmthcm91bmRf Y2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZyBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L21lZGlh L2Jhc2UvY2RtX3Byb21pc2VfYWRhcHRlci5jYwotLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMjQv bWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNjLndvcmthcm91bmRfY2xhbmdfYnVnLXN0 cnVjdHVyZWRfYmluZGluZwkyMDIzLTA2LTA3IDIxOjQ4OjM3LjAwMDAwMDAwMCArMDIwMAotKysr IGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVyLmNj CTIwMjMtMDYtMTcgMTY6NTM6MjAuMjE2NjI4NTU3ICswMjAwCi1AQCAtOTQsNyArOTQsOSBAQCB2 b2lkIENkbVByb21pc2VBZGFwdGVyOjpSZWplY3RQcm9taXNlKHVpCi0gdm9pZCBDZG1Qcm9taXNl QWRhcHRlcjo6Q2xlYXIoQ2xlYXJSZWFzb24gcmVhc29uKSB7Ci0gICAvLyBSZWplY3QgYWxsIG91 dHN0YW5kaW5nIHByb21pc2VzLgotICAgRENIRUNLKHRocmVhZF9jaGVja2VyXy5DYWxsZWRPblZh bGlkVGhyZWFkKCkpOwotLSAgZm9yIChhdXRvJiBbcHJvbWlzZV9pZCwgcHJvbWlzZV0gOiBwcm9t aXNlc18pIHsKLSsgIGZvciAoYXV0byYgW3BfaSwgcF9lXSA6IHByb21pc2VzXykgewotKyAgICBh dXRvJiBwcm9taXNlX2lkID0gcF9pOwotKyAgICBhdXRvJiBwcm9taXNlID0gcF9lOwotICAgICBU UkFDRV9FVkVOVF9ORVNUQUJMRV9BU1lOQ19FTkQxKAotICAgICAgICAgIm1lZGlhIiwgIkNkbVBy b21pc2UiLCBUUkFDRV9JRF9XSVRIX1NDT1BFKCJDZG1Qcm9taXNlIiwgcHJvbWlzZV9pZCksCi0g ICAgICAgICAic3RhdHVzIiwgImNsZWFyZWQiKTsKLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3 OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRl eHRfd3JhcHBlci5jYy5tZSBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9z ZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MKLS0tLSBjaHJv bWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNl X3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MubWUJMjAyMy0wNi0xOSAwODowNDowMi4yODcwNzI3 MjIgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbnRlbnQvYnJvd3Nlci9zZXJ2 aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9jb250ZXh0X3dyYXBwZXIuY2MJMjAyMy0wNi0xOSAw ODoxODoyNC41NzY4MTQ5NTAgKzAyMDAKLUBAIC0xMzkzLDcgKzEzOTMsOCBAQCB2b2lkIFNlcnZp Y2VXb3JrZXJDb250ZXh0V3JhcHBlcjo6TWF5YmVQCi0gICAgIHJldHVybjsKLSAgIH0KLSAKLS0g IGF1dG8gW2RvY3VtZW50X3VybCwga2V5LCBjYWxsYmFja10gPSBzdGQ6Om1vdmUoKnJlcXVlc3Qp OwotKyAgYXV0byBbZF91LCBrZXksIGNhbGxiYWNrXSA9IHN0ZDo6bW92ZSgqcmVxdWVzdCk7Ci0r ICBhdXRvIGRvY3VtZW50X3VybCA9IGRfdTsKLSAKLSAgIERDSEVDSyhkb2N1bWVudF91cmwuaXNf dmFsaWQoKSk7Ci0gICBUUkFDRV9FVkVOVDEoIlNlcnZpY2VXb3JrZXIiLAotZGlmZiAtdXAgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91 dC9ncmlkL2dyaWRfbGF5b3V0X2FsZ29yaXRobS5jYy5tZSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L2dyaWQvZ3JpZF9sYXlvdXRf YWxnb3JpdGhtLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9jb3JlL2xheW91dC9ncmlkL2dyaWRfbGF5b3V0X2FsZ29yaXRobS5jYy5tZQky MDIzLTEyLTAzIDIyOjE3OjUwLjkyMjA4MzIwMCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYw OTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvZ3JpZC9ncmlkX2xh eW91dF9hbGdvcml0aG0uY2MJMjAyMy0xMi0wMyAyMjoyMjo1NS40Mzc0ODQzNDMgKzAxMDAKLUBA IC0zNDQ3LDcgKzM0NDcsOCBAQCB2b2lkIEdyaWRMYXlvdXRBbGdvcml0aG06OlBsYWNlR3JpZEl0 ZW1zCi0gICBEQ0hFQ0sob3V0X3Jvd19icmVha19iZXR3ZWVuKTsKLSAKLSAgIGNvbnN0IGF1dG8m IGNvbnRhaW5lcl9zcGFjZSA9IENvbnN0cmFpbnRTcGFjZSgpOwotLSAgY29uc3QgYXV0byYgW2dy aWRfaXRlbXMsIGxheW91dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJvb3RE YXRhKCk7Ci0rICBjb25zdCBhdXRvJiBbZ3JpZF9pdGVtcywgbF9kLCB0cmVlX3NpemVdID0gc2l6 aW5nX3RyZWUuVHJlZVJvb3REYXRhKCk7Ci0rICBjb25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxf ZDsKLSAKLSAgIGNvbnN0IGF1dG8qIGNhY2hlZF9sYXlvdXRfc3VidHJlZSA9IGNvbnRhaW5lcl9z cGFjZS5HZXRHcmlkTGF5b3V0U3VidHJlZSgpOwotICAgY29uc3QgYXV0byBjb250YWluZXJfd3Jp dGluZ19kaXJlY3Rpb24gPQotQEAgLTM2MTEsNyArMzYxMiw5IEBAIHZvaWQgR3JpZExheW91dEFs Z29yaXRobTo6UGxhY2VHcmlkSXRlbXMKLSAKLSAgIC8vIFRPRE8oaWtpbHBhdHJpY2spOiBVcGRh dGUgfFNldEhhc1NlZW5BbGxDaGlsZHJlbnwgYW5kIGVhcmx5IGV4aXQgaWYgdHJ1ZS4KLSAgIGNv bnN0IGF1dG8mIGNvbnN0cmFpbnRfc3BhY2UgPSBDb25zdHJhaW50U3BhY2UoKTsKLS0gIGNvbnN0 IGF1dG8mIFtncmlkX2l0ZW1zLCBsYXlvdXRfZGF0YSwgdHJlZV9zaXplXSA9IHNpemluZ190cmVl LlRyZWVSb290RGF0YSgpOwotKyAgY29uc3QgYXV0byYgW2dfaSwgbF9kLCB0cmVlX3NpemVdID0g c2l6aW5nX3RyZWUuVHJlZVJvb3REYXRhKCk7Ci0rICBjb25zdCBhdXRvJiBncmlkX2l0ZW1zID0g Z19pOwotKyAgY29uc3QgYXV0byYgbGF5b3V0X2RhdGEgPSBsX2Q7Ci0gCi0gICBjb25zdCBhdXRv KiBjYWNoZWRfbGF5b3V0X3N1YnRyZWUgPSBjb25zdHJhaW50X3NwYWNlLkdldEdyaWRMYXlvdXRT dWJ0cmVlKCk7Ci0gICBjb25zdCBhdXRvIGNvbnRhaW5lcl93cml0aW5nX2RpcmVjdGlvbiA9Cgpk aWZmIC0tZ2l0IGEvY2hyb21pdW0tMTIxLWFybTY0LW1lbW9yeV90YWdnaW5nLnBhdGNoIGIvY2hy b21pdW0tMTIxLWFybTY0LW1lbW9yeV90YWdnaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmNmODA3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjEt YXJtNjQtbWVtb3J5X3RhZ2dpbmcucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorZGlmZiAtdXAgY2hy b21pdW0tMTIxLjAuNjE2Ny41Ny9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3Ny Yy9wYXJ0aXRpb25fYWxsb2MvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oLm1lIGNocm9taXVtLTEy MS4wLjYxNjcuNTcvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0 aW9uX2FsbG9jL3BhcnRpdGlvbl9hbGxvY19jb25maWcuaAorLS0tIGNocm9taXVtLTEyMS4wLjYx NjcuNTcvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2Fs bG9jL3BhcnRpdGlvbl9hbGxvY19jb25maWcuaC5tZQkyMDI0LTAxLTE2IDE0OjIwOjUyLjQwMTg5 MDY1NyArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvYmFzZS9hbGxvY2F0b3IvcGFy dGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3BhcnRpdGlvbl9hbGxvY19jb25m aWcuaAkyMDI0LTAxLTE2IDE1OjA4OjA0LjA3MDE1NjQ3NCArMDEwMAorQEAgLTE2Miw3ICsxNjIs OCBAQCBzdGF0aWNfYXNzZXJ0KHNpemVvZih2b2lkKikgIT0gOCwgIiIpOworIAorICNpZiBkZWZp bmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiBkZWZpbmVkKF9fY2xhbmdfXykgJiYgXAorICAgICAhZGVm aW5lZChBRERSRVNTX1NBTklUSVpFUikgJiYgICAgICAgICAgICAgICAgICAgXAorLSAgICAoQlVJ TERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkpCisrICAgIChCVUlMREZM QUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKSkgJiYgXAorKyAgICBfX0dMSUJD X1BSRVJFUSgyLCAyOSkKKyAjZGVmaW5lIFBBX0NPTkZJR19IQVNfTUVNT1JZX1RBR0dJTkcoKSAx CisgI2Vsc2UKKyAjZGVmaW5lIFBBX0NPTkZJR19IQVNfTUVNT1JZX1RBR0dJTkcoKSAwCgpkaWZm IC0tZ2l0IGEvY2hyb21pdW0tMTIxLWNvbnN0ZXhwci5wYXRjaCBiL2Nocm9taXVtLTEyMS1jb25z dGV4cHIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBiNzE2Ngot LS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTEyMS1jb25zdGV4cHIucGF0Y2gKQEAgLTAsMCAr MSwxMiBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb21wb25lbnRzL3BlcmZv cm1hbmNlX21hbmFnZXIvcmVzb3VyY2VfYXR0cmlidXRpb24vcXVlcnlfcGFyYW1zLmgubWUgY2hy b21pdW0tMTIxLjAuNjE2Ny41Ny9jb21wb25lbnRzL3BlcmZvcm1hbmNlX21hbmFnZXIvcmVzb3Vy Y2VfYXR0cmlidXRpb24vcXVlcnlfcGFyYW1zLmgKKy0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3 L2NvbXBvbmVudHMvcGVyZm9ybWFuY2VfbWFuYWdlci9yZXNvdXJjZV9hdHRyaWJ1dGlvbi9xdWVy eV9wYXJhbXMuaC5tZQkyMDI0LTAxLTE4IDE3OjAwOjI0Ljc5MTU4MjQyMiArMDEwMAorKysrIGNo cm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9wZXJmb3JtYW5jZV9tYW5hZ2VyL3Jlc291 cmNlX2F0dHJpYnV0aW9uL3F1ZXJ5X3BhcmFtcy5oCTIwMjQtMDEtMTggMTc6MjI6MjEuNTIxNjgy ODQ1ICswMTAwCitAQCAtMjcsNyArMjcsNyBAQCBzdHJ1Y3QgUXVlcnlQYXJhbXMgeworICAgUXVl cnlQYXJhbXMoY29uc3QgUXVlcnlQYXJhbXMmIG90aGVyKTsKKyAgIFF1ZXJ5UGFyYW1zJiBvcGVy YXRvcj0oY29uc3QgUXVlcnlQYXJhbXMmIG90aGVyKTsKKyAKKy0gIGZyaWVuZCBjb25zdGV4cHIg Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFF1ZXJ5UGFyYW1zJiwKKysgIGZyaWVuZCBib29sIG9wZXJh dG9yPT0oY29uc3QgUXVlcnlQYXJhbXMmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgUXVlcnlQYXJhbXMmKSA9IGRlZmF1bHQ7CisgCisgICAvLyBJbmRpdmlkdWFs IHJlc291cmNlIGNvbnRleHRzIHRvIG1lYXN1cmUuCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTIx LWVsNy1jbGFuZy12ZXJzaW9uLXdhcm5pbmcucGF0Y2ggYi9jaHJvbWl1bS0xMjEtZWw3LWNsYW5n LXZlcnNpb24td2FybmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5iYzg2ZWIyCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTIxLWVsNy1jbGFuZy12ZXJz aW9uLXdhcm5pbmcucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorLS0tIGNocm9taXVtLTEyMS4wLjYx NjcuNTcvdGhpcmRfcGFydHkvbGliYysrL3NyYy9pbmNsdWRlL19fY29uZmlnLm9yaWcJMjAyNC0w MS0xNiAxODozODowMC45OTU5MzA3NzQgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3 L3RoaXJkX3BhcnR5L2xpYmMrKy9zcmMvaW5jbHVkZS9fX2NvbmZpZwkyMDI0LTAxLTE2IDE4OjQz OjQ3LjA1NjUxNzI4OSArMDEwMAorQEAgLTMyLDExICszMiw3IEBACisgCisgLy8gV2FybiBpZiBh IGNvbXBpbGVyIHZlcnNpb24gaXMgdXNlZCB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYW55bW9yZQor IC8vIExMVk0gUkVMRUFTRSBVcGRhdGUgdGhlIG1pbmltdW0gY29tcGlsZXIgdmVyc2lvbnMKKy0j ICBpZiBkZWZpbmVkKF9MSUJDUFBfQ0xBTkdfVkVSKQorLSMgICAgaWYgX0xJQkNQUF9DTEFOR19W RVIgPCAxNjAwCistIyAgICAgIHdhcm5pbmcgIkxpYmMrKyBvbmx5IHN1cHBvcnRzIENsYW5nIDE2 IGFuZCBsYXRlciIKKy0jICAgIGVuZGlmCistIyAgZWxpZiBkZWZpbmVkKF9MSUJDUFBfQVBQTEVf Q0xBTkdfVkVSKQorKyMgIGlmIGRlZmluZWQoX0xJQkNQUF9BUFBMRV9DTEFOR19WRVIpCisgIyAg ICBpZiBfTElCQ1BQX0FQUExFX0NMQU5HX1ZFUiA8IDE1MDAKKyAjICAgICAgd2FybmluZyAiTGli YysrIG9ubHkgc3VwcG9ydHMgQXBwbGVDbGFuZyAxNSBhbmQgbGF0ZXIiCisgIyAgICBlbmRpZgoK ZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMS1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRjaCBiL2No cm9taXVtLTEyMS1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zNzdkZTBkCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTIx LW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCkBAIC0wLDAgKzEsNDU5IEBACitkaWZmIC11cCBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2NoZWNrX29wLmgubWlzc2luZy1oZWFkZXItZmls ZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jaGVja19vcC5oCistLS0gY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvYmFzZS9jaGVja19vcC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMt MTEtMDEgMTk6MTA6MDUuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvYmFzZS9jaGVja19vcC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA4ODY4OTgyICswMTAwCitA QCAtNSw2ICs1LDcgQEAKKyAjaWZuZGVmIEJBU0VfQ0hFQ0tfT1BfSF8KKyAjZGVmaW5lIEJBU0Vf Q0hFQ0tfT1BfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8Y3N0ZGRlZj4K KyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDxzdHJpbmdfdmlldz4KK2RpZmYgLXVwIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY29udGFpbmVycy9mbGF0X21hcC5oLm1pc3Npbmct aGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY29udGFpbmVycy9mbGF0 X21hcC5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jb250YWluZXJzL2ZsYXRf bWFwLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDowNS4wMDAwMDAwMDAg KzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2NvbnRhaW5lcnMvZmxhdF9t YXAuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMzg2OTA4OSArMDEwMAorQEAgLTUsNiArNSw3IEBA CisgI2lmbmRlZiBCQVNFX0NPTlRBSU5FUlNfRkxBVF9NQVBfSF8KKyAjZGVmaW5lIEJBU0VfQ09O VEFJTkVSU19GTEFUX01BUF9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxm dW5jdGlvbmFsPgorICNpbmNsdWRlIDx0dXBsZT4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+Citk aWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2RlYnVnL3Byb2ZpbGVyLmgubWlz c2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9kZWJ1Zy9wcm9m aWxlci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9kZWJ1Zy9wcm9maWxlci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MDUuMDAwMDAwMDAwICswMTAw CisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9kZWJ1Zy9wcm9maWxlci5oCTIwMjMt MTEtMDYgMTQ6MzQ6MDEuODA5ODY5MDA0ICswMTAwCitAQCAtOCw2ICs4LDcgQEAKKyAjaW5jbHVk ZSA8c3RkZGVmLmg+CisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorKyNpbmNsdWRlIDxjc3RkaW50 PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgI2luY2x1ZGUgImJhc2UvYmFzZV9leHBvcnQuaCIK K2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvbWVtb3J5L3JlZl9jb3VudGVk LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9tZW1v cnkvcmVmX2NvdW50ZWQuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvbWVtb3J5 L3JlZl9jb3VudGVkLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDowNS4w MDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL21lbW9yeS9y ZWZfY291bnRlZC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA4ODY4OTgyICswMTAwCitAQCAtNiw2 ICs2LDcgQEAKKyAjZGVmaW5lIEJBU0VfTUVNT1JZX1JFRl9DT1VOVEVEX0hfCisgCisgI2luY2x1 ZGUgPHN0ZGRlZi5oPgorKyNpbmNsdWRlIDxsaW1pdHM+CisgCisgI2luY2x1ZGUgPGxpbWl0cz4K KyAjaW5jbHVkZSA8dXRpbGl0eT4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2No cm9tZS9icm93c2VyL3ByaXZhY3lfYnVkZ2V0L2VuY291bnRlcmVkX3N1cmZhY2VfdHJhY2tlci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93 c2VyL3ByaXZhY3lfYnVkZ2V0L2VuY291bnRlcmVkX3N1cmZhY2VfdHJhY2tlci5oCistLS0gY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9idWRnZXQvZW5jb3Vu dGVyZWRfc3VyZmFjZV90cmFja2VyLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAx OToxMDoxMy4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJv bWUvYnJvd3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJlZF9zdXJmYWNlX3RyYWNrZXIuaAky MDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAorQEAgLTcsNiArNyw3IEBACisgCisg I2luY2x1ZGUgPHN0ZGludC5oPgorIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxt YXA+CisgCisgI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9mbGF0X3NldC5oIgorZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvd2ViYXV0aG4vYXV0aGVudGlj YXRvcl9yZXF1ZXN0X2RpYWxvZ19tb2RlbC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3JfcmVx dWVzdF9kaWFsb2dfbW9kZWwuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9i cm93c2VyL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaC5taXNz aW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjE2LjAwMDAwMDAwMCArMDEwMAorKysr IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3dlYmF1dGhuL2F1dGhlbnRp Y2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNzg2OTE3 NCArMDEwMAorQEAgLTgsNiArOCw3IEBACisgI2luY2x1ZGUgPG1lbW9yeT4KKyAjaW5jbHVkZSA8 c3RyaW5nPgorICNpbmNsdWRlIDx2ZWN0b3I+CisrI2luY2x1ZGUgPHZhcmlhbnQ+CisgCisgI2lu Y2x1ZGUgImJhc2UvY29udGFpbmVycy9zcGFuLmgiCisgI2luY2x1ZGUgImJhc2UvZnVuY3Rpb25h bC9jYWxsYmFja19mb3J3YXJkLmgiCitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9j aHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2hyb21lL3dlYl92aWV3X2ltcGwuY2MubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL3Rlc3QvY2hyb21lZHJp dmVyL2Nocm9tZS93ZWJfdmlld19pbXBsLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Y2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS93ZWJfdmlld19pbXBsLmNjLm1pc3Npbmct aGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MTYuMDAwMDAwMDAwICswMTAwCisrKysgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS93ZWJf dmlld19pbXBsLmNjCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE4ODY5MTk2ICswMTAwCitAQCAtMTEs NiArMTEsNyBAQAorICNpbmNsdWRlIDxxdWV1ZT4KKyAjaW5jbHVkZSA8dXRpbGl0eT4KKyAjaW5j bHVkZSA8dmVjdG9yPgorKyNpbmNsdWRlIDxjc3RyaW5nPgorIAorICNpbmNsdWRlICJiYXNlL2No ZWNrLmgiCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV9wYXRoLmgiCitkaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9hdXRv ZmlsbF9hYmxhdGlvbl9zdHVkeS5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2F1dG9maWxsX2FibGF0 aW9uX3N0dWR5LmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2F1dG9m aWxsL2NvcmUvYnJvd3Nlci9hdXRvZmlsbF9hYmxhdGlvbl9zdHVkeS5oLm1pc3NpbmctaGVhZGVy LWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MTkuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvYXV0b2ZpbGxf YWJsYXRpb25fc3R1ZHkuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNTg2OTEzMiArMDEwMAorQEAg LTcsNiArNyw3IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorKyNpbmNsdWRlIDxjc3Rk aW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgY2xhc3MgR1VSTDsKK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHAvY3Jhc2hfcmVwb3J0 ZXJfY2xpZW50LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Y29tcG9uZW50cy9jcmFzaC9jb3JlL2FwcC9jcmFzaF9yZXBvcnRlcl9jbGllbnQuaAorLS0tIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHAvY3Jhc2hfcmVw b3J0ZXJfY2xpZW50LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoyMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2Ny YXNoL2NvcmUvYXBwL2NyYXNoX3JlcG9ydGVyX2NsaWVudC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEu ODEzODY5MDg5ICswMTAwCitAQCAtNyw2ICs3LDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAKKyAjaW5jbHVk ZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdlX3Zh bGlkYXRvci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nv bXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL2V2ZW50X3N0b3JhZ2VfdmFsaWRh dG9yLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2ZlYXR1cmVfZW5n YWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oLm1pc3NpbmctaGVhZGVy LWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjEuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvZXZl bnRfc3RvcmFnZV92YWxpZGF0b3IuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEw MAorQEAgLTcsNiArNyw3IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorKyNpbmNsdWRl IDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgbmFtZXNwYWNlIGZlYXR1cmVfZW5n YWdlbWVudCB7CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2Zl YXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMv ZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL25ldmVyX2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9y LmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdl bWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oLm1pc3NpbmctaGVh ZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjEuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwv bmV2ZXJfZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2 OTExMCArMDEwMAorQEAgLTUsNiArNSw3IEBACisgI2lmbmRlZiBDT01QT05FTlRTX0ZFQVRVUkVf RU5HQUdFTUVOVF9JTlRFUk5BTF9ORVZFUl9FVkVOVF9TVE9SQUdFX1ZBTElEQVRPUl9IXworICNk ZWZpbmUgQ09NUE9ORU5UU19GRUFUVVJFX0VOR0FHRU1FTlRfSU5URVJOQUxfTkVWRVJfRVZFTlRf U1RPUkFHRV9WQUxJREFUT1JfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8 c3RyaW5nPgorIAorICNpbmNsdWRlICJjb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRl cm5hbC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oIgorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvY29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIvb25fZGV2aWNlX2hlYWRfbW9kZWwu aC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRz L29tbmlib3gvYnJvd3Nlci9vbl9kZXZpY2VfaGVhZF9tb2RlbC5oCistLS0gY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvY29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIvb25fZGV2aWNlX2hlYWRfbW9k ZWwuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjIxLjAwMDAwMDAwMCAr MDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvb21uaWJveC9icm93 c2VyL29uX2RldmljZV9oZWFkX21vZGVsLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTU4NjkxMzIg KzAxMDAKK0BAIC03LDYgKzcsNyBAQAorIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKysjaW5j bHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx1dGlsaXR5Pgor ICNpbmNsdWRlIDx2ZWN0b3I+CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21w b25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL2dlbmVyYXRpb24vcGFzc3dvcmRf Z2VuZXJhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Y29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9nZW5lcmF0aW9uL3Bhc3N3 b3JkX2dlbmVyYXRvci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9w YXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9nZW5lcmF0aW9uL3Bhc3N3b3JkX2dlbmVyYXRv ci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjEuMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9wYXNzd29yZF9tYW5h Z2VyL2NvcmUvYnJvd3Nlci9nZW5lcmF0aW9uL3Bhc3N3b3JkX2dlbmVyYXRvci5oCTIwMjMtMTEt MDYgMTQ6MzQ6MDEuODE0ODY5MTEwICswMTAwCitAQCAtNyw2ICs3LDcgQEAKKyAKKyAjaW5jbHVk ZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPHN0cmluZz4K KyAKKyAKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvcGF5bWVu dHMvY29udGVudC91dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNlci5oLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvcGF5bWVudHMvY29udGVudC91 dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNlci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv Y29tcG9uZW50cy9wYXltZW50cy9jb250ZW50L3V0aWxpdHkvZmluZ2VycHJpbnRfcGFyc2VyLmgu bWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoyMS4wMDAwMDAwMDAgKzAxMDAK KysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL3BheW1lbnRzL2NvbnRlbnQv dXRpbGl0eS9maW5nZXJwcmludF9wYXJzZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNTg2OTEz MiArMDEwMAorQEAgLTUsNiArNSw3IEBACisgI2lmbmRlZiBDT01QT05FTlRTX1BBWU1FTlRTX0NP TlRFTlRfVVRJTElUWV9GSU5HRVJQUklOVF9QQVJTRVJfSF8KKyAjZGVmaW5lIENPTVBPTkVOVFNf UEFZTUVOVFNfQ09OVEVOVF9VVElMSVRZX0ZJTkdFUlBSSU5UX1BBUlNFUl9IXworIAorKyNpbmNs dWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9naW4vdGltZV9jbGFtcGVyLmgu bWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ2luL3RpbWVfY2xh bXBlci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ2luL3RpbWVfY2xhbXBlci5oLm1p c3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MjguMDAwMDAwMDAwICswMTAwCisr KysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ2luL3RpbWVfY2xhbXBlci5oCTIwMjMtMTEtMDYg MTQ6MzQ6MDEuODE4ODY5MTk2ICswMTAwCitAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBHSU5fRVhQ T1JUIFRpbWVDbGFtcGVyIHsKKyAgICAgY29uc3QgaW50NjRfdCBtaWNyb3MgPSBub3dfbWljcm9z ICUgMTAwMDsKKyAgICAgLy8gYWJzKCkgaXMgbmVjZXNzYXJ5IGZvciBkZXZpY2VzIHdpdGggdGlt ZXMgYmVmb3JlIHVuaXgtZXBvY2ggKG1vc3QgbGlrZWx5CisgICAgIC8vIGNvbmZpZ3VyZWQgaW5j b3JyZWN0bHkpLgorLSAgICBpZiAoYWJzKG1pY3JvcykgKyBrUmVzb2x1dGlvbk1pY3JvcyA8IDEw MDApIHsKKysgICAgaWYgKHN0ZDo6YWJzKG1pY3JvcykgKyBrUmVzb2x1dGlvbk1pY3JvcyA8IDEw MDApIHsKKyAgICAgICByZXR1cm4gbm93X21pY3JvcyAvIDEwMDA7CisgICAgIH0KKyAgICAgcmV0 dXJuIENsYW1wVGltZVJlc29sdXRpb24obm93X21pY3JvcykgLyAxMDAwOworZGlmZiAtdXAgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvZ3B1L2NvbmZpZy9ncHVfZmVhdHVyZV9pbmZvLmgubWlzc2lu Zy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvZ3B1L2NvbmZpZy9ncHVfZmVh dHVyZV9pbmZvLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9ncHUvY29uZmlnL2dwdV9m ZWF0dXJlX2luZm8uaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjI4LjAw MDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2dwdS9jb25maWcvZ3B1 X2ZlYXR1cmVfaW5mby5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA5ODY5MDA0ICswMTAwCitAQCAt Nyw2ICs3LDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNzdGRp bnQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbmV0L2Jhc2UvbmV0X2V4cG9ydC5oLm1pc3NpbmctaGVh ZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9iYXNlL25ldF9leHBvcnQuaAor LS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9iYXNlL25ldF9leHBvcnQuaC5taXNzaW5n LWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjMyLjAwMDAwMDAwMCArMDEwMAorKysrIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L25ldC9iYXNlL25ldF9leHBvcnQuaAkyMDIzLTExLTA2IDE0 OjM0OjAxLjgwOTg2OTAwNCArMDEwMAorQEAgLTUsNiArNSw4IEBACisgI2lmbmRlZiBORVRfQkFT RV9ORVRfRVhQT1JUX0hfCisgI2RlZmluZSBORVRfQkFTRV9ORVRfRVhQT1JUX0hfCisgCisrI2lu Y2x1ZGUgPGNzdGRpbnQ+CisrCisgLy8gRGVmaW5lcyBORVRfRVhQT1JUIHNvIHRoYXQgZnVuY3Rp b25hbGl0eSBpbXBsZW1lbnRlZCBieSB0aGUgbmV0IG1vZHVsZSBjYW4KKyAvLyBiZSBleHBvcnRl ZCB0byBjb25zdW1lcnMsIGFuZCBORVRfRVhQT1JUX1BSSVZBVEUgdGhhdCBhbGxvd3MgdW5pdCB0 ZXN0cyB0bworIC8vIGFjY2VzcyBmZWF0dXJlcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJl Y3RseSBieSByZWFsIGNvbnN1bWVycy4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3BkZi9kb2N1bWVudF9hdHRhY2htZW50X2luZm8uaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS9wZGYvZG9jdW1lbnRfYXR0YWNobWVudF9pbmZvLmgKKy0tLSBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9wZGYvZG9jdW1lbnRfYXR0YWNobWVudF9pbmZvLmgubWlz c2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDozNC4wMDAwMDAwMDAgKzAxMDAKKysr KyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9wZGYvZG9jdW1lbnRfYXR0YWNobWVudF9pbmZvLmgJ MjAyMy0xMS0wNiAxNDozNDowMS44MTU4NjkxMzIgKzAxMDAKK0BAIC03LDYgKzcsNyBAQAorIAor ICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8 c3RyaW5nPgorIAorIAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2FuZGJveC9s aW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfZmlsZV9wZXJtaXNzaW9uLmgubWlzc2luZy1oZWFk ZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jy b2tlci9icm9rZXJfZmlsZV9wZXJtaXNzaW9uLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9maWxlX3Blcm1pc3Npb24uaC5t aXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjM0LjAwMDAwMDAwMCArMDEwMAor KysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIv YnJva2VyX2ZpbGVfcGVybWlzc2lvbi5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA5ODY5MDA0ICsw MTAwCitAQCAtNSw2ICs1LDcgQEAKKyAjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTQ0FMTF9CUk9L RVJfQlJPS0VSX0ZJTEVfUEVSTUlTU0lPTl9IXworICNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVND QUxMX0JST0tFUl9CUk9LRVJfRklMRV9QRVJNSVNTSU9OX0hfCisgCisrI2luY2x1ZGUgPGNzdGRp bnQ+CisgI2luY2x1ZGUgPGJpdHNldD4KKyAjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8 c3RyaW5nPgorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2VydmljZXMvZGV2aWNl L3B1YmxpYy9jcHAvZ2VuZXJpY19zZW5zb3Ivc2Vuc29yX3JlYWRpbmcuaC5taXNzaW5nLWhlYWRl ci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9zZXJ2aWNlcy9kZXZpY2UvcHVibGljL2Nw cC9nZW5lcmljX3NlbnNvci9zZW5zb3JfcmVhZGluZy5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvZ2VuZXJpY19zZW5zb3Ivc2Vuc29yX3Jl YWRpbmcuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjM1LjAwMDAwMDAw MCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NlcnZpY2VzL2RldmljZS9wdWJs aWMvY3BwL2dlbmVyaWNfc2Vuc29yL3NlbnNvcl9yZWFkaW5nLmgJMjAyMy0xMS0wNiAxNDozNDow MS44MjA4NjkyMzggKzAxMDAKK0BAIC04LDYgKzgsOSBAQAorICNpbmNsdWRlIDxzdGRkZWYuaD4K KyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNzdGRkZWY+CisrI2luY2x1ZGUg PGNzdGRpbnQ+CisrCisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorIAorIG5hbWVzcGFjZSBkZXZp Y2UgeworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2tpYS9leHQvc2tjb2xvcnNw YWNlX3RyZm4uY2MubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv c2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4uY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9za2lhL2V4dC9za2NvbG9yc3BhY2VfdHJmbi5jYy5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIz LTExLTAxIDE5OjEwOjM1LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNjCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE4 ODY5MTk2ICswMTAwCitAQCAtMyw2ICszLDcgQEAKKyAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorIAorICNpbmNsdWRlICJza2lhL2V4dC9za2NvbG9yc3BhY2VfdHJmbi5oIgorKyNpbmNs dWRlIDxjbWF0aD4KKyAKKyAjaW5jbHVkZSA8Y21hdGg+CisgCitkaWZmIC11cCBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9zdHJpbmdf dmlldy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJk X3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgKKy0tLSBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9zdHJp bmdfdmlldy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MzYuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYWJzZWls LWNwcC9hYnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgwOTg2 OTAwNCArMDEwMAorQEAgLTI3LDYgKzI3LDcgQEAKKyAjaWZuZGVmIEFCU0xfU1RSSU5HU19TVFJJ TkdfVklFV19IXworICNkZWZpbmUgQUJTTF9TVFJJTkdTX1NUUklOR19WSUVXX0hfCisgCisrI2lu Y2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8Y2Fzc2Vy dD4KKyAjaW5jbHVkZSA8Y3N0ZGRlZj4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJWYXJzLmgubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYW5nbGUvaW5j bHVkZS9HTFNMQU5HL1NoYWRlclZhcnMuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJWYXJzLmgubWlzc2luZy1oZWFk ZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMTo1OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL0dMU0xBTkcvU2hhZGVy VmFycy5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICswMTAwCitAQCAtMTAsNiArMTAs NyBAQAorICNpZm5kZWYgR0xTTEFOR19TSEFERVJWQVJTX0hfCisgI2RlZmluZSBHTFNMQU5HX1NI QURFUlZBUlNfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8YWxnb3JpdGht PgorICNpbmNsdWRlIDxhcnJheT4KKyAjaW5jbHVkZSA8Y3N0ZGludD4KK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9jb21tb24vYmx1ZXRv b3RoL3dlYl9ibHVldG9vdGhfZGV2aWNlX2lkLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL2NvbW1vbi9ibHVldG9v dGgvd2ViX2JsdWV0b290aF9kZXZpY2VfaWQuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9jb21tb24vYmx1ZXRvb3RoL3dlYl9ibHVldG9vdGhf ZGV2aWNlX2lkLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDozNy4wMDAw MDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9ibGlu ay9wdWJsaWMvY29tbW9uL2JsdWV0b290aC93ZWJfYmx1ZXRvb3RoX2RldmljZV9pZC5oCTIwMjMt MTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICswMTAwCitAQCAtNyw2ICs3LDcgQEAKKyAKKyAjaW5j bHVkZSA8c3RkaW50Lmg+CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGFycmF5 PgorICNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9sYW5nL3Nw aXJ2L3JlYWRlci9hc3RfcGFyc2VyL25hbWVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9sYW5nL3NwaXJ2L3Jl YWRlci9hc3RfcGFyc2VyL25hbWVyLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGly ZF9wYXJ0eS9kYXduL3NyYy90aW50L2xhbmcvc3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIvbmFtZXIu aC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEzOjUwLjAwMDAwMDAwMCArMDEw MAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Rhd24vc3JjL3RpbnQv bGFuZy9zcGlydi9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEu ODEwODY5MDI1ICswMTAwCitAQCAtMTUsNiArMTUsNyBAQAorICNpZm5kZWYgU1JDX1RJTlRfTEFO R19TUElSVl9SRUFERVJfQVNUX1BBUlNFUl9OQU1FUl9IXworICNkZWZpbmUgU1JDX1RJTlRfTEFO R19TUElSVl9SRUFERVJfQVNUX1BBUlNFUl9OQU1FUl9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50 PgorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisgI2luY2x1 ZGUgPHZlY3Rvcj4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L2lwY3ovc3JjL2lwY3ovcm91dGVyX2xpbmsuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9pcGN6L3NyYy9pcGN6L3JvdXRlcl9saW5rLmgK Ky0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9pcGN6L3NyYy9pcGN6L3Jv dXRlcl9saW5rLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMToyMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9pcGN6 L3NyYy9pcGN6L3JvdXRlcl9saW5rLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAx MDAKK0BAIC01LDYgKzUsNyBAQAorICNpZm5kZWYgSVBDWl9TUkNfSVBDWl9ST1VURVJfTElOS19I XworICNkZWZpbmUgSVBDWl9TUkNfSVBDWl9ST1VURVJfTElOS19IXworIAorKyNpbmNsdWRlIDxt ZW1vcnk+CisgI2luY2x1ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisgI2lu Y2x1ZGUgPG1lbW9yeT4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3Bh cnR5L21hdGVyaWFsX2NvbG9yX3V0aWxpdGllcy9zcmMvY3BwL3BhbGV0dGVzL3RvbmVzLmNjLm1p c3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L21h dGVyaWFsX2NvbG9yX3V0aWxpdGllcy9zcmMvY3BwL3BhbGV0dGVzL3RvbmVzLmNjCistLS0gY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVz L3NyYy9jcHAvcGFsZXR0ZXMvdG9uZXMuY2MubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0w MSAxOToxMTo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90 aGlyZF9wYXJ0eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3JjL2NwcC9wYWxldHRlcy90b25l cy5jYwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2OTIxNyArMDEwMAorQEAgLTE0LDYgKzE0LDcg QEAKKyAgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAgKi8KKyAKKysjaW5jbHVk ZSA8Y21hdGg+CisgI2luY2x1ZGUgImNwcC9wYWxldHRlcy90b25lcy5oIgorIAorICNpbmNsdWRl ICJjcHAvY2FtL2NhbS5oIgorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRf cGFydHkvb3BlbnNjcmVlbi9zcmMvZGlzY292ZXJ5L2Ruc3NkL3B1YmxpYy9kbnNfc2RfdHh0X3Jl Y29yZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJk X3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4dF9y ZWNvcmQuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L29wZW5zY3Jl ZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4dF9yZWNvcmQuaC5taXNzaW5n LWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjExOjU5LjAwMDAwMDAwMCArMDEwMAorKysrIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVy eS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4dF9yZWNvcmQuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgx MDg2OTAyNSArMDEwMAorQEAgLTcsNiArNyw3IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgor IAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorICNpbmNsdWRl IDxtYXA+CisgI2luY2x1ZGUgPHNldD4KK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L3BkZml1bS9jb25zdGFudHMvYW5ub3RhdGlvbl9mbGFncy5oLm1pc3Npbmct aGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3BkZml1bS9j b25zdGFudHMvYW5ub3RhdGlvbl9mbGFncy5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvcGRmaXVtL2NvbnN0YW50cy9hbm5vdGF0aW9uX2ZsYWdzLmgubWlzc2luZy1o ZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxNDo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9wZGZpdW0vY29uc3RhbnRzL2Fubm90YXRp b25fZmxhZ3MuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNTg2OTEzMiArMDEwMAorQEAgLTcsNiAr Nyw4IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorKyNpbmNsdWRlIDxjc3RkaW50Pgor KworIG5hbWVzcGFjZSBwZGZpdW0geworIG5hbWVzcGFjZSBhbm5vdGF0aW9uX2ZsYWdzIHsKKyAK K2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5 L3Byb2ZpbGVyL2luc3RydW1lbnRhdGlvbi5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5L3Byb2ZpbGVyL2luc3RydW1l bnRhdGlvbi5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvcnV5L3Ny Yy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAy My0xMS0wMSAxOToxMjowMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9wcm9maWxlci9pbnN0cnVtZW50YXRpb24uaAky MDIzLTExLTA2IDE0OjM0OjAxLjgxMzg2OTA4OSArMDEwMAorQEAgLTE3LDYgKzE3LDcgQEAgbGlt aXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgI2RlZmluZSBSVVlfUlVZX1BST0ZJTEVSX0lO U1RSVU1FTlRBVElPTl9IXworIAorICNpZmRlZiBSVVlfUFJPRklMRVIKKysjaW5jbHVkZSA8c3Ry aW5nPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPG11dGV4PgorICNpbmNsdWRlIDx2 ZWN0b3I+CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lm dHNoYWRlci9zcmMvU3lzdGVtL0xSVUNhY2hlLmhwcC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci9zcmMvU3lzdGVtL0xS VUNhY2hlLmhwcAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0 c2hhZGVyL3NyYy9TeXN0ZW0vTFJVQ2FjaGUuaHBwLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMt MTEtMDEgMTk6MTI6MTUuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5ocHAJMjAyMy0x MS0wNiAxNDozNDowMS44MTA4NjkwMjUgKzAxMDAKK0BAIC0xNyw2ICsxNyw3IEBACisgCisgI2lu Y2x1ZGUgIlN5c3RlbS9EZWJ1Zy5ocHAiCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1 ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+ CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRl ci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvbGx2bS9saWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5j Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBwb3J0L1VuaXgv U2lnbmFscy5pbmMKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lm dHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvbGx2bS9saWIvU3VwcG9ydC9Vbml4L1NpZ25h bHMuaW5jLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTI6NDIuMDAwMDAwMDAw ICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFk ZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2xsdm0vbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmlu YwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAorQEAgLTQ1LDYgKzQ1LDcgQEAK KyAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L1NhdmVBbmRSZXN0b3JlLmgiCisgI2luY2x1ZGUgImxs dm0vU3VwcG9ydC9yYXdfb3N0cmVhbS5oIgorICNpbmNsdWRlIDxhbGdvcml0aG0+CisrI2luY2x1 ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8c3lzZXhpdHMuaD4K KyAjaWZkZWYgSEFWRV9CQUNLVFJBQ0UKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRlL2tlcm5lbHMvaW50ZXJuYWwv c3BlY3Ryb2dyYW0uaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVybmFs L3NwZWN0cm9ncmFtLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS90 ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVybmFsL3NwZWN0cm9ncmFtLmgu bWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMzoyMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNv cmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVybmFsL3NwZWN0cm9ncmFtLmgJMjAyMy0xMS0wNiAxNDoz NDowMS44MTM4NjkwODkgKzAxMDAKK0BAIC0zMSw2ICszMSw3IEBAIGxpbWl0YXRpb25zIHVuZGVy IHRoZSBMaWNlbnNlLgorICNpZm5kZWYgVEVOU09SRkxPV19MSVRFX0tFUk5FTFNfSU5URVJOQUxf U1BFQ1RST0dSQU1fSF8KKyAjZGVmaW5lIFRFTlNPUkZMT1dfTElURV9LRVJORUxTX0lOVEVSTkFM X1NQRUNUUk9HUkFNX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGNvbXBs ZXg+CisgI2luY2x1ZGUgPGRlcXVlPgorICNpbmNsdWRlIDx2ZWN0b3I+CitkaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRh dGlvbi1sYXllcnMvc3JjL2xheWVycy9leHRlcm5hbC92bWEvdmtfbWVtX2FsbG9jLmgubWlzc2lu Zy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdnVsa2Fu LWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9sYXllcnMvZXh0ZXJuYWwvdm1hL3Zr X21lbV9hbGxvYy5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdnVs a2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9sYXllcnMvZXh0ZXJuYWwvdm1h L3ZrX21lbV9hbGxvYy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTI6NDUu MDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv dnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9sYXllcnMvZXh0ZXJuYWwv dm1hL3ZrX21lbV9hbGxvYy5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE3ODY5MTc0ICswMTAwCitA QCAtMjg4NCw2ICsyODg0LDcgQEAgc3RhdGljIHZvaWQgdm1hX2FsaWduZWRfZnJlZSh2b2lkKiBW TUFfTgorIAorIC8vIERlZmluZSB0aGlzIG1hY3JvIHRvIDEgdG8gZW5hYmxlIGZ1bmN0aW9uczog dm1hQnVpbGRTdGF0c1N0cmluZywgdm1hRnJlZVN0YXRzU3RyaW5nLgorICNpZiBWTUFfU1RBVFNf U1RSSU5HX0VOQUJMRUQKKysjaW5jbHVkZSA8c3RkaW8uaD4KKyAgICAgc3RhdGljIGlubGluZSB2 b2lkIFZtYVVpbnQzMlRvU3RyKGNoYXIqIFZNQV9OT1RfTlVMTCBvdXRTdHIsIHNpemVfdCBzdHJM ZW4sIHVpbnQzMl90IG51bSkKKyAgICAgeworICAgICAgICAgc25wcmludGYob3V0U3RyLCBzdHJM ZW4sICIldSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4obnVtKSk7CitkaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvYXVkaW8vdXRpbGl0eS9jaGFu bmVsX21peGVyLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3RoaXJkX3BhcnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4ZXIuY2MKKy0tLSBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvYXVkaW8vdXRpbGl0eS9j aGFubmVsX21peGVyLmNjLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTQ6MDUu MDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv d2VicnRjL2F1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5jYwkyMDIzLTExLTA2IDE0OjM0OjAx LjgxOTg2OTIxNyArMDEwMAorQEAgLTgsNiArOCw4IEBACisgICogIGJlIGZvdW5kIGluIHRoZSBB VVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICAqLworIAorKyNp bmNsdWRlIDxjc3RyaW5nPgorKworICNpbmNsdWRlICJhdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4 ZXIuaCIKKyAKKyAjaW5jbHVkZSAiYXVkaW8vdXRpbGl0eS9jaGFubmVsX21peGluZ19tYXRyaXgu aCIKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9j b21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2NvbW1vbl92aWRlby9oMjY0L3Nw c19wYXJzZXIuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0 Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAy My0xMS0wMSAxOToxNDowNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjQvc3BzX3BhcnNlci5oCTIw MjMtMTEtMDYgMTQ6MzQ6MDEuODE5ODY5MjE3ICswMTAwCitAQCAtMTEsNiArMTEsNyBAQAorICNp Zm5kZWYgQ09NTU9OX1ZJREVPX0gyNjRfU1BTX1BBUlNFUl9IXworICNkZWZpbmUgQ09NTU9OX1ZJ REVPX0gyNjRfU1BTX1BBUlNFUl9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRl ICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisgI2luY2x1ZGUgInJ0Y19iYXNlL2JpdHN0cmVhbV9y ZWFkZXIuaCIKKyAKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaC5taXNz aW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJy dGMvbW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlwZXNfcHVibGljLmgKKy0tLSBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9pbmNsdWRlL21v ZHVsZV9jb21tb25fdHlwZXNfcHVibGljLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0w MSAxOToxNDoxMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90 aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlwZXNfcHVi bGljLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAxMDAKK0BAIC0xMSw2ICsxMSw3 IEBACisgI2lmbmRlZiBNT0RVTEVTX0lOQ0xVREVfTU9EVUxFX0NPTU1PTl9UWVBFU19QVUJMSUNf SF8KKyAjZGVmaW5lIE1PRFVMRVNfSU5DTFVERV9NT0RVTEVfQ09NTU9OX1RZUEVTX1BVQkxJQ19I XworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxsaW1pdHM+CisgCisgI2luY2x1 ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9m aWxlX3JlYWRlci5jYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmls ZV9yZWFkZXIuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJy dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFkZXIuY2MubWlzc2lu Zy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxNDoxMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy92aWRlb19j b2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFkZXIuY2MJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4 NjkyMTcgKzAxMDAKK0BAIC0xMCw2ICsxMCw3IEBACisgCisgI2luY2x1ZGUgIm1vZHVsZXMvdmlk ZW9fY29kaW5nL3V0aWxpdHkvaXZmX2ZpbGVfcmVhZGVyLmgiCisgCisrI2luY2x1ZGUgPGNzdHJp bmc+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvYmFzZS9wcmVkaWN0aW9uL2thbG1hbl9maWx0ZXIu aC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9iYXNlL3By ZWRpY3Rpb24va2FsbWFuX2ZpbHRlci5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkv YmFzZS9wcmVkaWN0aW9uL2thbG1hbl9maWx0ZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIz LTExLTAxIDE5OjExOjI4LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3VpL2Jhc2UvcHJlZGljdGlvbi9rYWxtYW5fZmlsdGVyLmgJMjAyMy0xMS0wNiAxNDozNDow MS44MTQ4NjkxMTAgKzAxMDAKK0BAIC03LDYgKzcsOCBAQAorIAorICNpbmNsdWRlIDxzdGRpbnQu aD4KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKysKKyAjaW5jbHVkZSAiYmFzZS9jb21wb25lbnRf ZXhwb3J0LmgiCisgI2luY2x1ZGUgInVpL2dmeC9nZW9tZXRyeS9tYXRyaXgzX2YuaCIKKyAKK2Rp ZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3Jh ZGllbnQuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9n ZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50LmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50LmgubWlzc2luZy1oZWFkZXItZmlsZXMJ MjAyMy0xMS0wMSAxOToxMToyOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50LmgJMjAyMy0xMS0wNiAxNDoz NDowMS44MTI4NjkwNjggKzAxMDAKK0BAIC03LDYgKzcsNyBAQAorIAorICNpbmNsdWRlIDxzdGRp bnQuaD4KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8YXJyYXk+CisgI2luY2x1 ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUgPGNzdGRpbnQ+CitkaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjEwNS91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaC5taXNzaW5nLWhlYWRlci1m aWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXgu aAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51 eC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6MjguMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xp bnV4LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAxMDAKK0BAIC05LDYgKzksOCBA QAorIAorICNpbmNsdWRlICJ1aS9nZngvYnVmZmVyX3R5cGVzLmgiCisgCisrI2luY2x1ZGUgPGNz dGRpbnQ+CisrCisgbmFtZXNwYWNlIHVpIHsKKyAKKyBpbnQgR2V0Rm91ckNDRm9ybWF0RnJvbUJ1 ZmZlckZvcm1hdChnZng6OkJ1ZmZlckZvcm1hdCBmb3JtYXQpOwoKZGlmZiAtLWdpdCBhL2Nocm9t aXVtLTEyMS1tbmVtb25pYy1lcnJvci5wYXRjaCBiL2Nocm9taXVtLTEyMS1tbmVtb25pYy1lcnJv ci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTIzOWU3Ci0tLSAv ZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTIxLW1uZW1vbmljLWVycm9yLnBhdGNoCkBAIC0wLDAg KzEsMTIgQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvY29yZS9CVUlMRC5nbi5tbmVtb25pYy1lcnJvciBjaHJvbWl1bS0xMjEuMC42 MTY3LjE2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvQlVJTEQuZ24KKy0tLSBjaHJv bWl1bS0xMjEuMC42MTY3LjE2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvQlVJTEQu Z24ubW5lbW9uaWMtZXJyb3IJMjAyMy0xMi0xOSAxODoxNDo0My4wMjc3MjM4MzIgKzAxMDAKKysr KyBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUv QlVJTEQuZ24JMjAyMy0xMi0xOSAxODozOTo0Ny40OTIzODQ2MjAgKzAxMDAKK0BAIC0xNzMxLDgg KzE3MzEsNiBAQCBhY3Rpb25fZm9yZWFjaCgiZWxlbWVudF9sb2NhdG9yX3Rlc3RfcHJvCisgICBw eXRob25fcGF0aF9yb290ID0gIiR7cm9vdF9vdXRfZGlyfS9weXByb3RvIgorICAgcHl0aG9uX3Bh dGhfcHJvdG8gPSAiJHtweXRob25fcGF0aF9yb290fS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9jb3JlL2xjcF9jcml0aWNhbF9wYXRoX3ByZWRpY3RvciIKKyAKKy0gIG1uZW1vbmljID0gIkVM T0NfUFJPVE8iCistCisgICBzb3VyY2VfZGlyID0gImxjcF9jcml0aWNhbF9wYXRoX3ByZWRpY3Rv ci90ZXN0X3Byb3RvIgorICAgc291cmNlcyA9IHJlYmFzZV9wYXRoKFsgImxjcF9pbWFnZV9pZC5h c2NpaXBiIiBdLCAiIiwgc291cmNlX2RpcikKKyAgIHNvdXJjZXMgKz0gcmViYXNlX3BhdGgoWyAi bGNwX2ltYWdlX2lkX2IuYXNjaWlwYiIgXSwgIiIsIHNvdXJjZV9kaXIpCgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTIxLW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoIGIvY2hyb21pdW0tMTIx LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjMzMmE5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjEtbm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IucGF0Y2gKQEAgLTAsMCArMSw5NDUgQEAKK2RpZmYgLXVwIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvYmFzZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9j YXRvci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jh c2UvbWV0cmljcy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2MKKy0tLSBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2Jhc2UvbWV0cmljcy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxvY2F0 b3IuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo0MC4wMDAwMDAw MDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvbWV0cmljcy9wZXJzaXN0 ZW50X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDg0MjAxODkg KzAxMDAKK0BAIC0yMTgsMTMgKzIxOCwxMyBAQCBQZXJzaXN0ZW50U3BhcnNlSGlzdG9ncmFtRGF0 YU1hbmFnZXI6OkxvCisgICAgIC8vIFRoZSBzYW1wbGUtcmVjb3JkIGNvdWxkIGJlIGZvciBhbnkg c3BhcnNlIGhpc3RvZ3JhbS4gQWRkIHRoZSByZWZlcmVuY2UKKyAgICAgLy8gdG8gdGhlIGFwcHJv cHJpYXRlIGNvbGxlY3Rpb24gZm9yIGxhdGVyIHVzZS4KKyAgICAgaWYgKGZvdW5kX2lkID09IG1h dGNoX2lkKSB7CistICAgICAgZm91bmRfcmVjb3Jkcy5lbXBsYWNlX2JhY2socmVmLCB2YWx1ZSk7 CisrICAgICAgZm91bmRfcmVjb3Jkcy5lbXBsYWNlX2JhY2soKSA9IHtyZWYsIHZhbHVlfTsKKyAg ICAgICBmb3VuZCA9IHRydWU7CisgICAgIH0gZWxzZSB7CisgICAgICAgc3RkOjp2ZWN0b3I8UmVm ZXJlbmNlQW5kU2FtcGxlPiogc2FtcGxlcyA9CisgICAgICAgICAgIEdldFNhbXBsZU1hcFJlY29y ZHNXaGlsZUxvY2tlZChmb3VuZF9pZCk7CisgICAgICAgQ0hFQ0soc2FtcGxlcyk7CistICAgICAg c2FtcGxlcy0+ZW1wbGFjZV9iYWNrKHJlZiwgdmFsdWUpOworKyAgICAgIHNhbXBsZXMtPmVtcGxh Y2VfYmFjaygpID0ge3JlZiwgdmFsdWV9OworICAgICB9CisgICB9CisgCitkaWZmIC11cCBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS90cmFjZV9ldmVudC90 cmFjZV9sb2cuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvdHJhY2VfZXZlbnQv dHJhY2VfbG9nLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NDAu MDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL3RyYWNlX2V2 ZW50L3RyYWNlX2xvZy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc0OTQyMDIwOCArMDEwMAorQEAg LTIxOTEsOCArMjE5MSw4IEBAIHZvaWQgVHJhY2VMb2c6OlNldFRyYWNlQnVmZmVyRm9yVGVzdGlu ZygKKyAjaWYgQlVJTERGTEFHKFVTRV9QRVJGRVRUT19DTElFTlRfTElCUkFSWSkKKyB2b2lkIFRy YWNlTG9nOjpPblNldHVwKGNvbnN0IHBlcmZldHRvOjpEYXRhU291cmNlQmFzZTo6U2V0dXBBcmdz JiBhcmdzKSB7CisgICBBdXRvTG9jayBsb2NrKHRyYWNrX2V2ZW50X2xvY2tfKTsKKy0gIHRyYWNr X2V2ZW50X3Nlc3Npb25zXy5lbXBsYWNlX2JhY2soYXJncy5pbnRlcm5hbF9pbnN0YW5jZV9pbmRl eCwgKmFyZ3MuY29uZmlnLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh cmdzLmJhY2tlbmRfdHlwZSk7CisrICB0cmFja19ldmVudF9zZXNzaW9uc18uZW1wbGFjZV9iYWNr KCkgPSB7YXJncy5pbnRlcm5hbF9pbnN0YW5jZV9pbmRleCwgKmFyZ3MuY29uZmlnLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLmJhY2tlbmRfdHlwZX07CisgfQor IAorIHZvaWQgVHJhY2VMb2c6Ok9uU3RhcnQoY29uc3QgcGVyZmV0dG86OkRhdGFTb3VyY2VCYXNl OjpTdGFydEFyZ3MmKSB7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9i cm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYy5u b19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93 c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYworLS0t IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9v bmVfdGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIw MjMtMTEtMjkgMjI6Mzk6NDcuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25f cHJvdmlkZXIuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDggKzAxMDAKK0BAIC0yMjYs OCArMjI2LDggQEAgdm9pZCBPbmVUaW1lUGVybWlzc2lvblByb3ZpZGVyOjpPblN1c3BlbgorIAor ICAgICAgIHdoaWxlIChydWxlX2l0ZXJhdG9yICYmIHJ1bGVfaXRlcmF0b3ItPkhhc05leHQoKSkg eworICAgICAgICAgYXV0byBydWxlID0gcnVsZV9pdGVyYXRvci0+TmV4dCgpOworLSAgICAgICAg cGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjayhzZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1h cnlfcGF0dGVybiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVs ZS0+c2Vjb25kYXJ5X3BhdHRlcm4pOworKyAgICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxh Y2VfYmFjaygpID0ge3NldHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLT5zZWNvbmRhcnlfcGF0dGVy bn07CisgICAgICAgICBwZXJtaXNzaW9uczo6UGVybWlzc2lvblVtYVV0aWw6OlJlY29yZE9uZVRp bWVQZXJtaXNzaW9uRXZlbnQoCisgICAgICAgICAgICAgc2V0dGluZ190eXBlLAorICAgICAgICAg ICAgIHBlcm1pc3Npb25zOjpPbmVUaW1lUGVybWlzc2lvbkV2ZW50OjpFWFBJUkVEX09OX1NVU1BF TkQpOworQEAgLTMyOSw4ICszMjksOCBAQCB2b2lkIE9uZVRpbWVQZXJtaXNzaW9uUHJvdmlkZXI6 OkRlbGV0ZUVuCisgICAgIGF1dG8gcnVsZSA9IHJ1bGVfaXRlcmF0b3ItPk5leHQoKTsKKyAgICAg aWYgKHJ1bGUtPnByaW1hcnlfcGF0dGVybi5NYXRjaGVzKG9yaWdpbl9ndXJsKSAmJgorICAgICAg ICAgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm4uTWF0Y2hlcyhvcmlnaW5fZ3VybCkpIHsKKy0gICAg ICBwYXR0ZXJuc190b19kZWxldGUuZW1wbGFjZV9iYWNrKAorLSAgICAgICAgICBjb250ZW50X3Nl dHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLCBydWxlLT5zZWNvbmRhcnlfcGF0dGVy bik7CisrICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjaygpID0geworKyAgICAg ICAgICBjb250ZW50X3NldHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFyeV9wYXR0ZXJuLCBydWxlLT5z ZWNvbmRhcnlfcGF0dGVybn07CisgICAgICAgcGVybWlzc2lvbnM6OlBlcm1pc3Npb25VbWFVdGls OjpSZWNvcmRPbmVUaW1lUGVybWlzc2lvbkV2ZW50KAorICAgICAgICAgICBjb250ZW50X3NldHRp bmdfdHlwZSwgdHJpZ2dlcl9ldmVudCk7CisgICAgIH0KK2RpZmYgLXVwIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJv ZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUuY2Mubm9fbWF0Y2hpbmdfY29uc3Ry dWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3By b2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5j YworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9w cm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUu Y2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo0OC4wMDAwMDAwMDAg KzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2VudGVycHJp c2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90 dGxlLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzQ5NDIwMjA4ICswMTAwCitAQCAtNjcsOCArNjcs OCBAQCBiYXNlOjpmbGF0X21hcDxzdGQ6OnN0cmluZywgU0FNTFByb2ZpbGVBCisgICAvLyBUT0RP KGNyYnVnLmNvbS8xNDQ1MDcyKTogQWRkIGFjdHVhbCBkb21haW5zIHdpdGggYXR0cmlidXRlIG5h bWVzLgorICAgcHJvZmlsZV9hdHRyaWJ1dGVzLT5pbnNlcnQoc3RkOjptYWtlX3BhaXIoCisgICAg ICAgInN1cHBvcnRlZC50ZXN0IiwKKy0gICAgICBTQU1MUHJvZmlsZUF0dHJpYnV0ZXMoInBsYWNl aG9sZGVyTmFtZSIsICJwbGFjZWhvbGRlckRvbWFpbiIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJwbGFjZWhvbGRlclRva2VuIikpKTsKKysgICAgICBTQU1MUHJvZmlsZUF0dHJpYnV0 ZXN7InBsYWNlaG9sZGVyTmFtZSIsICJwbGFjZWhvbGRlckRvbWFpbiIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJwbGFjZWhvbGRlclRva2VuIn0pKTsKKyAKKyAgIC8vIEV4dHJhY3Qg ZG9tYWlucyBhbmQgYXR0cmlidXRlcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUgc3dpdGNoLgorICAg Y29uc3QgYmFzZTo6Q29tbWFuZExpbmUmIGNvbW1hbmRfbGluZSA9CitkaWZmIC11cCBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hf Y2xpZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYv Y2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2MKKy0tLSBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29t bmlib3hfY2xpZW50LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6 NTIuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJv d3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYwkyMDIzLTEyLTAzIDE3OjMx OjI1Ljc0OTQyMDIwOCArMDEwMAorQEAgLTQ3NCwxMCArNDc0LDEwIEBAIHZvaWQgQ2hyb21lT21u aWJveENsaWVudDo6T25BdXRvY29tcGxldGUKKyAgICAgICAgICAgICAgIGFsdGVybmF0aXZlX25h dl9tYXRjaCk7CisgCisgICAvLyBTdG9yZSB0aGUgZGV0YWlscyBuZWNlc3NhcnkgdG8gb3BlbiB0 aGUgb21uaWJveCBtYXRjaCB2aWEgYnJvd3NlciBjb21tYW5kcy4KKy0gIGxvY2F0aW9uX2Jhcl8t PnNldF9uYXZpZ2F0aW9uX3BhcmFtcyhMb2NhdGlvbkJhcjo6TmF2aWdhdGlvblBhcmFtcygKKysg IGxvY2F0aW9uX2Jhcl8tPnNldF9uYXZpZ2F0aW9uX3BhcmFtcyhMb2NhdGlvbkJhcjo6TmF2aWdh dGlvblBhcmFtc3sKKyAgICAgICBkZXN0aW5hdGlvbl91cmwsIGRpc3Bvc2l0aW9uLCB0cmFuc2l0 aW9uLCBtYXRjaF9zZWxlY3Rpb25fdGltZXN0YW1wLAorICAgICAgIGRlc3RpbmF0aW9uX3VybF9l bnRlcmVkX3dpdGhvdXRfc2NoZW1lLAorLSAgICAgIGRlc3RpbmF0aW9uX3VybF9lbnRlcmVkX3dp dGhfaHR0cF9zY2hlbWUpKTsKKysgICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93aXRoX2h0 dHBfc2NoZW1lfSk7CisgCisgICBpZiAoYnJvd3Nlcl8pIHsKKyAgICAgYXV0byBuYXZpZ2F0aW9u ID0gY2hyb21lOjpPcGVuQ3VycmVudFVSTChicm93c2VyXyk7CitkaWZmIC11cCBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3NhZmV0eV9odWIvbWVudV9ub3RpZmljYXRp b25fc2VydmljZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2Nocm9tZS9icm93c2VyL3VpL3NhZmV0eV9odWIvbWVudV9ub3RpZmljYXRpb25fc2Vydmlj ZS5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvc2FmZXR5 X2h1Yi9tZW51X25vdGlmaWNhdGlvbl9zZXJ2aWNlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y CTIwMjMtMTEtMjkgMjI6Mzk6NTIuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAu NjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9zYWZldHlfaHViL21lbnVfbm90aWZpY2F0aW9uX3Nl cnZpY2UuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTY0MjAzNDIgKzAxMDAKK0BAIC0xNDgsOCAr MTQ4LDggQEAgU2FmZXR5SHViTWVudU5vdGlmaWNhdGlvblNlcnZpY2U6OkdldE5vdAorICAgLy8g VGhlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gc2hvd2luZyB0aGUgbm90aWZpY2F0aW9uIG5lZWRz IHRvIGJlIHBlcnNpc3RlZAorICAgLy8gYXMgd2VsbC4KKyAgIFNhdmVOb3RpZmljYXRpb25zVG9Q cmVmcygpOworLSAgcmV0dXJuIE1lbnVOb3RpZmljYXRpb25FbnRyeShub3RpZmljYXRpb25fdG9f c2hvdy0+R2V0Tm90aWZpY2F0aW9uQ29tbWFuZElkKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5vdGlmaWNhdGlvbl90b19zaG93LT5HZXROb3RpZmljYXRpb25TdHJpbmcoKSk7 CisrICByZXR1cm4gTWVudU5vdGlmaWNhdGlvbkVudHJ5e25vdGlmaWNhdGlvbl90b19zaG93LT5H ZXROb3RpZmljYXRpb25Db21tYW5kSWQoKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbm90aWZpY2F0aW9uX3RvX3Nob3ctPkdldE5vdGlmaWNhdGlvblN0cmluZygpfTsKKyB9Cisg CisgYWJzbDo6b3B0aW9uYWw8UmVzdWx0TWFwPgorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNz aW9uX3Byb21wdF9hc2tfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVk X3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3LmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9u X3Byb21wdF9hc2tfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIy OjM5OjUzLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21l L2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRf YXNrX3ZpZXcuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDggKzAxMDAKK0BAIC01NSwx MiArNTUsMTIgQEAgc3RkOjp2ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0QXNrVgorIEVt YmVkZGVkUGVybWlzc2lvblByb21wdEFza1ZpZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkg Y29uc3QgeworICAgc3RkOjp2ZWN0b3I8QnV0dG9uQ29uZmlndXJhdGlvbj4gYnV0dG9uczsKKyAg IGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKHBlcm1pc3Npb25zOjpmZWF0dXJlczo6 a09uZVRpbWVQZXJtaXNzaW9uKSkgeworLSAgICBidXR0b25zLmVtcGxhY2VfYmFjaygKKysgICAg YnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5n VVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1dfVEhJU19USU1FKSwKKy0gICAgICAgIEJ1dHRvblR5 cGU6OmtBbGxvd1RoaXNUaW1lLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAgICBC dXR0b25UeXBlOjprQWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworICAg fQorLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2sobDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNf UEVSTUlTU0lPTl9BTExPVyksCistICAgICAgICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjpr QWxsb3csIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsLCBrQWxsb3dJZCk7CisrICBidXR0b25zLmVt cGxhY2VfYmFjaygpID0ge2wxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05f QUxMT1cpLAorKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6 QnV0dG9uU3R5bGU6OmtUb25hbCwga0FsbG93SWR9OworICAgcmV0dXJuIGJ1dHRvbnM7CisgfQor IAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaC5ub19t YXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmll dy5oCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9w ZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaC5ub19tYXRj aGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUzLjAwMDAwMDAwMCArMDEwMAorKysr IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lv bnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3LmgJMjAyMy0xMi0wMyAxNzoz MToyNS43NTA0MjAyMjcgKzAxMDAKK0BAIC04Niw2ICs4Niw3IEBAIGNsYXNzIEVtYmVkZGVkUGVy bWlzc2lvblByb21wdEJhc2VWaWV3IDoKKyAgIHN0cnVjdCBSZXF1ZXN0TGluZUNvbmZpZ3VyYXRp b24geworICAgICBjb25zdCByYXdfcHRyPGNvbnN0IGdmeDo6VmVjdG9ySWNvbj4gaWNvbjsKKyAg ICAgc3RkOjp1MTZzdHJpbmcgbWVzc2FnZTsKKysgICAgUmVxdWVzdExpbmVDb25maWd1cmF0aW9u KGF1dG8gaSwgYXV0byBtKSA6IGljb24oaSksIG1lc3NhZ2UobSkgeyB9CisgICB9OworIAorICAg c3RydWN0IEJ1dHRvbkNvbmZpZ3VyYXRpb24geworZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNz aW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVk ZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjCistLS0gY2hyb21pdW0tMTIwLjAu NjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJt aXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIz LTExLTI5IDIyOjM5OjUzLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTku NTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lv bl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTA0MjAyMjcgKzAx MDAKK0BAIC00OCw4ICs0OCw4IEBAIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6 OkdldFIKKyBzdGQ6OnZlY3RvcjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQb2xpY3lWaWV3OjpC dXR0b25Db25maWd1cmF0aW9uPgorIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6 OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29uc3QgeworICAgc3RkOjp2ZWN0b3I8QnV0dG9u Q29uZmlndXJhdGlvbj4gYnV0dG9uczsKKy0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKGwxMG5fdXRp bDo6R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9PS19MQUJFTCksCistICAgICAg ICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjprUG9saWN5T0ssIHVpOjpCdXR0b25TdHlsZTo6 a1RvbmFsKTsKKysgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7bDEwbl91dGlsOjpHZXRTdHJp bmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX09LX0xBQkVMKSwKKysgICAgICAgICAgICAgICAg ICAgICAgIEJ1dHRvblR5cGU6OmtQb2xpY3lPSywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9Owor ICAgcmV0dXJuIGJ1dHRvbnM7CisgfQorIAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjLm5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVy L2NhcGFiaWxpdGllcy5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL3Rlc3Qv Y2hyb21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIz LTExLTI5IDIyOjM5OjU0LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTku NTYvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYwkyMDIzLTEyLTAzIDE3 OjMxOjI1Ljc1MDQyMDIyNyArMDEwMAorQEAgLTM0Niw3ICszNDYsNyBAQCBTdGF0dXMgUGFyc2VN b2JpbGVFbXVsYXRpb24oY29uc3QgYmFzZTo6CisgICAgICAgICAgICAgICAgICAgICAgICAgIid2 ZXJzaW9uJyBmaWVsZCBvZiB0eXBlIHN0cmluZyIpOworICAgICAgICAgfQorIAorLSAgICAgICAg YnJhbmRzLmVtcGxhY2VfYmFjaygqYnJhbmQsICp2ZXJzaW9uKTsKKysgICAgICAgIGJyYW5kcy5l bXBsYWNlX2JhY2soKSA9IHsqYnJhbmQsICp2ZXJzaW9ufTsKKyAgICAgICB9CisgCisgICAgICAg Y2xpZW50X2hpbnRzLmJyYW5kcyA9IHN0ZDo6bW92ZShicmFuZHMpOworQEAgLTM4NCw3ICszODQs NyBAQCBTdGF0dXMgUGFyc2VNb2JpbGVFbXVsYXRpb24oY29uc3QgYmFzZTo6CisgICAgICAgICAg ICAgICAgICAgICAgICAgImEgJ3ZlcnNpb24nIGZpZWxkIG9mIHR5cGUgc3RyaW5nIik7CisgICAg ICAgICB9CisgCistICAgICAgICBmdWxsX3ZlcnNpb25fbGlzdC5lbXBsYWNlX2JhY2soKmJyYW5k LCAqdmVyc2lvbik7CisrICAgICAgICBmdWxsX3ZlcnNpb25fbGlzdC5lbXBsYWNlX2JhY2soKSA9 IHsqYnJhbmQsICp2ZXJzaW9ufTsKKyAgICAgICB9CisgCisgICAgICAgY2xpZW50X2hpbnRzLmZ1 bGxfdmVyc2lvbl9saXN0ID0gc3RkOjptb3ZlKGZ1bGxfdmVyc2lvbl9saXN0KTsKK2RpZmYgLXVw IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIv Y29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2NvbnRhY3Rf aW5mb19zeW5jX3V0aWwuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMv YXV0b2ZpbGwvY29yZS9icm93c2VyL2NvbnRhY3RfaW5mb19zeW5jX3V0aWwuY2Mubm9fbWF0Y2hp bmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2Nv bnRhY3RfaW5mb19zeW5jX3V0aWwuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTA0MjAyMjcgKzAx MDAKK0BAIC0xOTcsOSArMTk3LDkgQEAgY2xhc3MgQ29udGFjdEluZm9Qcm9maWxlU2V0dGVyIHsK KyAgICAgICBDSEVDSyhvYnNlcnZhdGlvbnMuZW1wdHkoKSk7CisgICAgICAgZm9yIChjb25zdCBz eW5jX3BiOjpDb250YWN0SW5mb1NwZWNpZmljczo6T2JzZXJ2YXRpb24mIHByb3RvX29ic2VydmF0 aW9uIDoKKyAgICAgICAgICAgIG1ldGFkYXRhLm9ic2VydmF0aW9ucygpKSB7CistICAgICAgICBv YnNlcnZhdGlvbnMuZW1wbGFjZV9iYWNrKHByb3RvX29ic2VydmF0aW9uLnR5cGUoKSwKKysgICAg ICAgIG9ic2VydmF0aW9ucy5lbXBsYWNlX2JhY2soKSA9IHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBj aGFyPihwcm90b19vYnNlcnZhdGlvbi50eXBlKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQcm9maWxlVG9rZW5RdWFsaXR5OjpGb3JtU2lnbmF0dXJlSGFzaCgKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvX29ic2VydmF0aW9uLmZvcm1f aGFzaCgpKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b19v YnNlcnZhdGlvbi5mb3JtX2hhc2goKSl9OworICAgICAgIH0KKyAgICAgfQorICAgfQorZGlmZiAt dXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nl ci93ZWJkYXRhL2F1dG9maWxsX3RhYmxlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0 YS9hdXRvZmlsbF90YWJsZS5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50 cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmlsbF90YWJsZS5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjU3LjAwMDAwMDAwMCArMDEwMAorKysr IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIv d2ViZGF0YS9hdXRvZmlsbF90YWJsZS5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MTQyMDI0NiAr MDEwMAorQEAgLTE3NjMsMTAgKzE3NjMsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPEF1dG9maWxsUHJv ZmlsZT4gQXV0b2ZpbAorICAgICB9CisgCisgICAgIGJhc2U6OnNwYW48Y29uc3QgdWludDhfdD4g b2JzZXJ2YXRpb25zX2RhdGEgPSBzLkNvbHVtbkJsb2IoMyk7CistICAgIGZpZWxkX3R5cGVfdmFs dWVzLmVtcGxhY2VfYmFjaygKKysgICAgZmllbGRfdHlwZV92YWx1ZXMuZW1wbGFjZV9iYWNrKCkg PSB7CisgICAgICAgICB0eXBlLCBzLkNvbHVtblN0cmluZzE2KDEpLCBzLkNvbHVtbkludCgyKSwK KyAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KG9ic2VydmF0aW9uc19kYXRhLmJlZ2luKCks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbnNfZGF0YS5lbmQoKSkp OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb25zX2RhdGEuZW5kKCkp fTsKKyAKKyAgICAgaWYgKHR5cGUgPT0gQUREUkVTU19IT01FX0NPVU5UUlkpIHsKKyAgICAgICBj b3VudHJ5X2NvZGUgPSBiYXNlOjpVVEYxNlRvVVRGOChzLkNvbHVtblN0cmluZzE2KDEpKTsKK2Rp ZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNw bGF5X2VtYmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2Mubm9fbWF0Y2hp bmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2 aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYwor LS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5 X2VtYmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2Mubm9fbWF0Y2hpbmdf Y29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRl ci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUu NzUxNDIwMjQ2ICswMTAwCitAQCAtMTU2Nyw3ICsxNTY3LDcgQEAgdm9pZCBTa2lhT3V0cHV0U3Vy ZmFjZUltcGxPbkdwdTo6Q29weU91dAorIAorICAgICAgIC8vIElzc3VlIHJlYWRiYWNrcyBmcm9t IHRoZSBzdXJmYWNlczoKKyAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IENvcHlPdXRwdXRS ZXN1bHQ6OmtOVjEyTWF4UGxhbmVzOyArK2kpIHsKKy0gICAgICAgIFNrSVNpemUgc2l6ZShwbGFu ZV9zdXJmYWNlc1tpXS0+d2lkdGgoKSwgcGxhbmVfc3VyZmFjZXNbaV0tPmhlaWdodCgpKTsKKysg ICAgICAgIFNrSVNpemUgc2l6ZXtwbGFuZV9zdXJmYWNlc1tpXS0+d2lkdGgoKSwgcGxhbmVfc3Vy ZmFjZXNbaV0tPmhlaWdodCgpfTsKKyAgICAgICAgIFNrSW1hZ2VJbmZvIGRzdF9pbmZvID0gU2tJ bWFnZUluZm86Ok1ha2UoCisgICAgICAgICAgICAgc2l6ZSwgKGkgPT0gMCkgPyBrQWxwaGFfOF9T a0NvbG9yVHlwZSA6IGtSOEc4X3Vub3JtX1NrQ29sb3JUeXBlLAorICAgICAgICAgICAgIGtVbnBy ZW11bF9Ta0FscGhhVHlwZSk7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRl bnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9w YWNrYWdlLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvZG93 bmxvYWQvc2F2ZV9wYWNrYWdlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkg MjI6NDA6MDEuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250 ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNrYWdlLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUu NzUyNDIwMjY1ICswMTAwCitAQCAtNzY3LDggKzc2Nyw4IEBAIHZvaWQgU2F2ZVBhY2thZ2U6OkZp bmlzaCgpIHsKKyAgIGlmIChkb3dubG9hZF8pIHsKKyAgICAgc3RkOjp2ZWN0b3I8ZG93bmxvYWQ6 OkRvd25sb2FkU2F2ZUl0ZW1EYXRhOjpJdGVtSW5mbz4gZmlsZXM7CisgICAgIGZvciAoYXV0byYg aXRlbSA6IHNhdmVkX3N1Y2Nlc3NfaXRlbXNfKSB7CistICAgICAgZmlsZXMuZW1wbGFjZV9iYWNr KGl0ZW0uc2Vjb25kLT5mdWxsX3BhdGgoKSwgaXRlbS5zZWNvbmQtPnVybCgpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICBpdGVtLnNlY29uZC0+cmVmZXJyZXIoKS51cmwpOworKyAgICAgIGZp bGVzLmVtcGxhY2VfYmFjaygpID0ge2l0ZW0uc2Vjb25kLT5mdWxsX3BhdGgoKSwgaXRlbS5zZWNv bmQtPnVybCgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnNlY29uZC0+cmVmZXJy ZXIoKS51cmx9OworICAgICB9CisgICAgIGRvd25sb2FkOjpEb3dubG9hZFNhdmVJdGVtRGF0YTo6 QXR0YWNoSXRlbURhdGEoZG93bmxvYWRfLCBzdGQ6Om1vdmUoZmlsZXMpKTsKKyAgIH0KK2RpZmYg LXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3Vw L2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3Rf Z3JvdXBfc3RvcmFnZS5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93 c2VyL2ludGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2Mubm9fbWF0Y2hpbmdf Y29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91cC9pbnRlcmVz dF9ncm91cF9zdG9yYWdlLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUyNDIwMjY1ICswMTAwCitA QCAtMzAwMiwxMCArMzAwMiwxMCBAQCBEb0dldEtBbm9ueW1pdHlEYXRhKHNxbDo6RGF0YWJhc2Um IGRiLAorIAorICAgc3RkOjp2ZWN0b3I8U3RvcmFnZUludGVyZXN0R3JvdXA6OktBbm9ueW1pdHlE YXRhPiBrX2Fub25fZGF0YTsKKyAgIHdoaWxlIChpbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5T dGVwKCkpIHsKKy0gICAga19hbm9uX2RhdGEuZW1wbGFjZV9iYWNrKAorKyAgICBrX2Fub25fZGF0 YS5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICAgIC8qa2V5PSovaW50ZXJlc3RfZ3JvdXBfa2Fu b25fcXVlcnkuQ29sdW1uU3RyaW5nKDApLAorICAgICAgICAgLyppc19rX2Fub255bW91cz0qL2lu dGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtbkJvb2woMSksCistICAgICAgICAvKmxhc3Rf dXBkYXRlZD0qL2ludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtblRpbWUoMikpOworKyAg ICAgICAgLypsYXN0X3VwZGF0ZWQ9Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5U aW1lKDIpfTsKKyAgIH0KKyAgIGlmICghaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuU3VjY2Vl ZGVkKCkpIHsKKyAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CitkaWZmIC11cCBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNoZS5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9j YWNoZS5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVy X2NhY2hlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6MDcuMDAw MDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9uZXQvZG5zL2hvc3RfcmVz b2x2ZXJfY2FjaGUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTQ0MjAzMDMgKzAxMDAKK0BAIC0z NjgsNyArMzY4LDcgQEAgdm9pZCBIb3N0UmVzb2x2ZXJDYWNoZTo6U2V0KAorIAorICAgc3RkOjpz dHJpbmcgZG9tYWluX25hbWUgPSByZXN1bHQtPmRvbWFpbl9uYW1lKCk7CisgICBlbnRyaWVzXy5l bXBsYWNlKAorLSAgICAgIEtleShzdGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3b3JrX2Fub255 bWl6YXRpb25fa2V5KSwKKysgICAgICBLZXl7c3RkOjptb3ZlKGRvbWFpbl9uYW1lKSwgbmV0d29y a19hbm9ueW1pemF0aW9uX2tleX0sCisgICAgICAgRW50cnkoc3RkOjptb3ZlKHJlc3VsdCksIHNv dXJjZSwgc2VjdXJlLCBzdGFsZW5lc3NfZ2VuZXJhdGlvbikpOworIAorICAgaWYgKGVudHJpZXNf LnNpemUoKSA+IG1heF9lbnRyaWVzXykgeworZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUu aC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oCistLS0gY2hy b21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9m b250cy9mb250X3BhbGV0dGUuaC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIy OjQwOjEyLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9wYWxldHRlLmgJMjAyMy0x Mi0wMyAxNzozMToyNS43NTQ0MjAzMDMgKzAxMDAKK0BAIC05Niw3ICs5Niw3IEBAIGNsYXNzIFBM QVRGT1JNX0VYUE9SVCBGb250UGFsZXR0ZSA6IHB1YmwKKyAgICAgICBDb2xvcjo6Q29sb3JTcGFj ZSBjb2xvcl9pbnRlcnBvbGF0aW9uX3NwYWNlLAorICAgICAgIGFic2w6Om9wdGlvbmFsPENvbG9y OjpIdWVJbnRlcnBvbGF0aW9uTWV0aG9kPiBodWVfaW50ZXJwb2xhdGlvbl9tZXRob2QpIHsKKyAg ICAgcmV0dXJuIGJhc2U6OkFkb3B0UmVmKG5ldyBGb250UGFsZXR0ZSgKKy0gICAgICAgIHN0YXJ0 LCBlbmQsIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlcyhzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVy Y2VudGFnZSksCisrICAgICAgICBzdGFydCwgZW5kLCBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXN7 c3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNlbnRhZ2V9LAorICAgICAgICAgbm9ybWFsaXplZF9w ZXJjZW50YWdlLCBhbHBoYV9tdWx0aXBsaWVyLCBjb2xvcl9pbnRlcnBvbGF0aW9uX3NwYWNlLAor ICAgICAgICAgaHVlX2ludGVycG9sYXRpb25fbWV0aG9kKSk7CisgICB9CitAQCAtMTcwLDcgKzE3 MCw3IEBAIGNsYXNzIFBMQVRGT1JNX0VYUE9SVCBGb250UGFsZXR0ZSA6IHB1YmwKKyAgICAgICBk b3VibGUgbm9ybWFsaXplZF9wZXJjZW50YWdlKSB7CisgICAgIGRvdWJsZSBlbmRfcGVyY2VudGFn ZSA9IG5vcm1hbGl6ZWRfcGVyY2VudGFnZSAqIDEwMC4wOworICAgICBkb3VibGUgc3RhcnRfcGVy Y2VudGFnZSA9IDEwMC4wIC0gZW5kX3BlcmNlbnRhZ2U7CistICAgIHJldHVybiBOb25Ob3JtYWxp emVkUGVyY2VudGFnZXMoc3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNlbnRhZ2UpOworKyAgICBy ZXR1cm4gTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2Vze3N0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJj ZW50YWdlfTsKKyAgIH0KKyAKKyAgIGRvdWJsZSBHZXRBbHBoYU11bHRpcGxpZXIoKSBjb25zdCB7 CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYworLS0tIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMv cGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEt MjkgMjI6NDA6MTIuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9s YXRpb24uY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTU0MjAzMjMgKzAxMDAKK0BAIC0zMSw3ICsz MSw3IEBAIFZlY3RvcjxGb250UGFsZXR0ZTo6Rm9udFBhbGV0dGVPdmVycmlkZT4KKyAgICAgICAg IGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsIGh1ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCwgc3Rh cnRfY29sb3IsCisgICAgICAgICBlbmRfY29sb3IsIHBlcmNlbnRhZ2UsIGFscGhhX211bHRpcGxp ZXIpOworIAorLSAgICBGb250UGFsZXR0ZTo6Rm9udFBhbGV0dGVPdmVycmlkZSByZXN1bHRfY29s b3JfcmVjb3JkKGksIHJlc3VsdF9jb2xvcik7CisrICAgIEZvbnRQYWxldHRlOjpGb250UGFsZXR0 ZU92ZXJyaWRlIHJlc3VsdF9jb2xvcl9yZWNvcmR7c3RhdGljX2Nhc3Q8aW50PihpKSwgcmVzdWx0 X2NvbG9yfTsKKyAgICAgcmVzdWx0X2NvbG9yX3JlY29yZHMucHVzaF9iYWNrKHJlc3VsdF9jb2xv cl9yZWNvcmQpOworICAgfQorICAgcmV0dXJuIHJlc3VsdF9jb2xvcl9yZWNvcmRzOworZGlmZiAt dXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9mcGRmYXBp L3JlbmRlci9jcGRmX3JlbmRlcnN0YXR1cy5jcHAubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9mcGRmYXBpL3JlbmRl ci9jcGRmX3JlbmRlcnN0YXR1cy5jcHAKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJk X3BhcnR5L3BkZml1bS9jb3JlL2ZwZGZhcGkvcmVuZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNwcC5u b19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjQxOjQ2LjAwMDAwMDAwMCArMDEw MAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvcGRmaXVtL2NvcmUvZnBk ZmFwaS9yZW5kZXIvY3BkZl9yZW5kZXJzdGF0dXMuY3BwCTIwMjMtMTItMDMgMTc6MzE6MjUuNzU2 NDIwMzQyICswMTAwCitAQCAtNDkxLDcgKzQ5MSw3IEBAIHZvaWQgQ1BERl9SZW5kZXJTdGF0dXM6 OlByb2Nlc3NDbGlwUGF0aCgKKyAgICAgfSBlbHNlIHsKKyAgICAgICBtX3BEZXZpY2UtPlNldENs aXBfUGF0aEZpbGwoCisgICAgICAgICAgICpwUGF0aCwgJm10T2JqMkRldmljZSwKKy0gICAgICAg ICAgQ0ZYX0ZpbGxSZW5kZXJPcHRpb25zKENsaXBQYXRoLkdldENsaXBUeXBlKGkpKSk7CisrICAg ICAgICAgIENGWF9GaWxsUmVuZGVyT3B0aW9uc3tDbGlwUGF0aC5HZXRDbGlwVHlwZShpKX0pOwor ICAgICB9CisgICB9CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2Jhc2Uv d2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaAor LS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJf dXRpbC5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDA6NDQuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91aS9iYXNlL3dheWxhbmQvY29s b3JfbWFuYWdlcl91dGlsLmgJMjAyMy0xMi0wMyAxNzozMToyNS43NTU0MjAzMjMgKzAxMDAKK0BA IC01Miw1MyArNTIsNTMgQEAgY29uc3RleHByIGF1dG8ga0Nocm9tYXRpY2l0eU1hcCA9IGJhc2U6 OgorICAgICB6Y3JfY29sb3JfbWFuYWdlcl92MV9jaHJvbWF0aWNpdHlfbmFtZXMsCisgICAgIFBy aW1hcnlWZXJzaW9uPigKKyAgICAge3taQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlf TkFNRVNfQlQ2MDFfNTI1X0xJTkUsCistICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNw YWNlOjpQcmltYXJ5SUQ6OlNNUFRFMTcwTSwKKy0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVs dFNpbmNlVmVyc2lvbil9LAorKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6 UHJpbWFyeUlEOjpTTVBURTE3ME0sCisrICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb259fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFN RVNfQlQ2MDFfNjI1X0xJTkUsCistICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNl OjpQcmltYXJ5SUQ6OkJUNDcwQkcsCistICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5j ZVZlcnNpb24pfSwKKysgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1h cnlJRDo6QlQ0NzBCRywKKysgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lv bn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBU RTE3ME0sCistICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6 OlNNUFRFMTcwTSwKKy0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9 LAorKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpTTVBU RTE3ME0sCisrICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAg ICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ3MDksCistICAg ICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUNzA5LCBrRGVm YXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFj ZTo6UHJpbWFyeUlEOjpCVDcwOSwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQyMDIwLAorLSAgICAgIFByaW1h cnlWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDIwMjAsIGtEZWZhdWx0U2lu Y2VWZXJzaW9uKX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmlt YXJ5SUQ6OkJUMjAyMCwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgIHtaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU1JHQiwKKy0gICAgICBQcmltYXJ5VmVyc2lv bihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ3MDksIGtEZWZhdWx0U2luY2VWZXJzaW9u KX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJU NzA5LCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1Yx X0NIUk9NQVRJQ0lUWV9OQU1FU19ESVNQTEFZUDMsCistICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4 OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlAzLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAg ICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpQMywga0RlZmF1 bHRTaW5jZVZlcnNpb259fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJ VFlfTkFNRVNfQURPQkVSR0IsCistICAgICAgUHJpbWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNl OjpQcmltYXJ5SUQ6OkFET0JFX1JHQiwKKy0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNp bmNlVmVyc2lvbil9LAorKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJp bWFyeUlEOjpBRE9CRV9SR0IsCisrICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZl cnNpb259fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNf V0lERV9HQU1VVF9DT0xPUl9TUElOLAorLSAgICAgIFByaW1hcnlWZXJzaW9uKAorKyAgICAgIFBy aW1hcnlWZXJzaW9ueworICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6V0lE RV9HQU1VVF9DT0xPUl9TUElOLAorLSAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJP TUFUSUNJVFlfTkFNRVNfV0lERV9HQU1VVF9DT0xPUl9TUElOX1NJTkNFX1ZFUlNJT04pfSwKKysg ICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1dJREVfR0FN VVRfQ09MT1JfU1BJTl9TSU5DRV9WRVJTSU9OfX0sCisgICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfQ0hST01BVElDSVRZX05BTUVTX0JUNDcwTSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbigKKysg ICAgICBQcmltYXJ5VmVyc2lvbnsKKyAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5 SUQ6OkJUNDcwTSwKKy0gICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZ X05BTUVTX0JUNDcwTV9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19CVDQ3ME1fU0lOQ0VfVkVSU0lPTn19LAorICAgICAg e1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURTI0ME0sCistICAg ICAgUHJpbWFyeVZlcnNpb24oCisrICAgICAgUHJpbWFyeVZlcnNpb257CisgICAgICAgICAgIGdm eDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpTTVBURTI0ME0sCistICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURTI0ME1fU0lOQ0VfVkVSU0lPTil9 LAorKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01Q VEUyNDBNX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJP TUFUSUNJVFlfTkFNRVNfWFlaX0Q1MCwKKy0gICAgICBQcmltYXJ5VmVyc2lvbigKKysgICAgICBQ cmltYXJ5VmVyc2lvbnsKKyAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlhZ Wl9ENTAsCistICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1F U19YWVpfRDUwX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJf VjFfQ0hST01BVElDSVRZX05BTUVTX1hZWl9ENTBfU0lOQ0VfVkVSU0lPTn19LAorICAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDI4XzEsCistICAg ICAgUHJpbWFyeVZlcnNpb24oCisrICAgICAgUHJpbWFyeVZlcnNpb257CisgICAgICAgICAgIGdm eDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpTTVBURVNUNDI4XzEsCistICAgICAgICAgIFpDUl9D T0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDI4XzFfU0lOQ0VfVkVS U0lPTil9LAorKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFN RVNfU01QVEVTVDQyOF8xX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQzMV8yLAorLSAgICAgIFByaW1hcnlWZXJz aW9uKAorKyAgICAgIFByaW1hcnlWZXJzaW9ueworICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6 OlByaW1hcnlJRDo6U01QVEVTVDQzMV8yLAorLSAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9W MV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQzMV8yX1NJTkNFX1ZFUlNJT04pfSwKKysgICAg ICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MzFf Ml9TSU5DRV9WRVJTSU9OfX0sCisgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElD SVRZX05BTUVTX0ZJTE0sCistICAgICAgUHJpbWFyeVZlcnNpb24oCisrICAgICAgUHJpbWFyeVZl cnNpb257CisgICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpGSUxNLAorLSAg ICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfRklMTV9TSU5D RV9WRVJTSU9OKX19KTsKKysgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElD SVRZX05BTUVTX0ZJTE1fU0lOQ0VfVkVSU0lPTn19fSk7CisgCisgLy8gQSBtYXAgZnJvbSB0aGUg emNyX2NvbG9yX21hbmFnZXJfdjEgZW90Zl9uYW1lcyBlbnVtIHZhbHVlcworIC8vIHJlcHJlc2Vu dGluZyB3ZWxsLWtub3duIEVPVEZzLCB0byB0aGVpciBlcXVpdmFsZW50IFRyYW5zZmVySURzLgor QEAgLTEwNyw2OCArMTA3LDY4IEBAIGNvbnN0ZXhwciBhdXRvIGtFb3RmTWFwID0gYmFzZTo6TWFr ZUZpeGUKKyAgICAgemNyX2NvbG9yX21hbmFnZXJfdjFfZW90Zl9uYW1lcywKKyAgICAgVHJhbnNm ZXJWZXJzaW9uPih7CisgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJTkVB UiwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkxJ TkVBUiwKKy0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAg ICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TElORUFSLAor KyAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0IsCistICAgICBUcmFuc2ZlclZlcnNpb24o Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTUkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9 LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U1JH Qiwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VP VEZfTkFNRVNfU1JHQl9IRFIsCistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNl OjpUcmFuc2ZlcklEOjpTUkdCX0hEUiwKKy0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRy YW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0JfSERSLAorKyAg ICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9I RFJfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1F U19CVDcwOSwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVy SUQ6OkJUNzA5LAorLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VP VEZfTkFNRVNfQlQ3MDlfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dm eDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6QlQ3MDksCisrICAgICAgICAgICAgICAgICAgICAg WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOV9TSU5DRV9WRVJTSU9OfX0sCisg ICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjA4NywKKy0gICAgIFRyYW5z ZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMjQsCistICAgICAg ICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgIFRyYW5zZmVyVmVy c2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMjQsCisrICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VS X1YxX0VPVEZfTkFNRVNfQURPQkVSR0IsCisgICAgICAvLyBUaGlzIGlzIGV2ZXIgc28gc2xpZ2h0 bHkgaW5hY2N1cmF0ZS4gVGhlIG51bWJlciBvdWdodCB0byBiZQorICAgICAgLy8gMi4xOTkyMTg3 NWYsIG5vdCAyLjIKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5z ZmVySUQ6OkdBTU1BMjIsCistICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNp b24pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6 OkdBTU1BMjIsCisrICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwK KyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfUFEsCistICAgICBUcmFuc2Zl clZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpQUSwga0RlZmF1bHRTaW5jZVZl cnNpb24pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVy SUQ6OlBRLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfRU9URl9OQU1FU19ITEcsCistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNl OjpUcmFuc2ZlcklEOjpITEcsCistICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19ITEdfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6SExHLAorKyAgICAgICAgICAgICAgICAg ICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSExHX1NJTkNFX1ZFUlNJT059fSwK KyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUxNzBNLAorLSAgICAg VHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U01QVEUxNzBNLAor LSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01Q VEUxNzBNX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9y U3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFMTcwTSwKKysgICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFMTcwTV9TSU5DRV9WRVJTSU9OfX0sCisg ICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFMjQwTSwKKy0gICAgIFRy YW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFMjQwTSwKKy0g ICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRF MjQwTV9TSU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNw YWNlOjpUcmFuc2ZlcklEOjpTTVBURTI0ME0sCisrICAgICAgICAgICAgICAgICAgICAgWkNSX0NP TE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURTI0ME1fU0lOQ0VfVkVSU0lPTn19LAorICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURVNUNDI4XzEsCistICAgICBU cmFuc2ZlclZlcnNpb24oCisrICAgICBUcmFuc2ZlclZlcnNpb257CisgICAgICAgICAgZ2Z4OjpD b2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTTVBURVNUNDI4XzEsCistICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURVNUNDI4XzFfU0lOQ0VfVkVSU0lPTil9LAorKyAg ICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEVTVDQyOF8xX1NJTkNF X1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HLAor LSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TE9HLAor LSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9H X1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6 OlRyYW5zZmVySUQ6OkxPRywKKysgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0xPR19TSU5DRV9WRVJTSU9OfX0sCisgICAgIHtaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX0xPR19TUVJULAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6 Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TE9HX1NRUlQsCistICAgICAgICAgICAgICAgICAgICAg WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MT0dfU1FSVF9TSU5DRV9WRVJTSU9OKX0s CisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0df U1FSVCwKKysgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05B TUVTX0xPR19TUVJUX1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1Yx X0VPVEZfTkFNRVNfSUVDNjE5NjZfMl80LAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKAorKyAgICAg VHJhbnNmZXJWZXJzaW9ueworICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6 SUVDNjE5NjZfMl80LAorLSAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf SUVDNjE5NjZfMl80X1NJTkNFX1ZFUlNJT04pfSwKKysgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0lFQzYxOTY2XzJfNF9TSU5DRV9WRVJTSU9OfX0sCisgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMTM2MV9FQ0csCistICAgICBUcmFuc2ZlclZl cnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDEzNjFfRUNHLAorLSAgICAgICAg ICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQxMzYxX0VDR19T SU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpU cmFuc2ZlcklEOjpCVDEzNjFfRUNHLAorKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQxMzYxX0VDR19TSU5DRV9WRVJTSU9OfX0sCisgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMCwKKy0gICAgIFRyYW5zZmVy VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMjAyMF8xMCwKKy0gICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMF9T SU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpU cmFuc2ZlcklEOjpCVDIwMjBfMTAsCisrICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01B TkFHRVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTBfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTIsCistICAgICBUcmFuc2ZlclZl cnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDIwMjBfMTIsCistICAgICAgICAg ICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTJfU0lO Q0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJh bnNmZXJJRDo6QlQyMDIwXzEyLAorKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfQlQyMDIwXzEyX1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU0NSR0JfTElORUFSXzgwX05JVFMsCistICAgICBU cmFuc2ZlclZlcnNpb24oCisrICAgICBUcmFuc2ZlclZlcnNpb257CisgICAgICAgICAgZ2Z4OjpD b2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTQ1JHQl9MSU5FQVJfODBfTklUUywKKy0gICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NDUkdCX0xJTkVBUl84MF9OSVRTX1NJTkNF X1ZFUlNJT04pfSwKKysgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1ND UkdCX0xJTkVBUl84MF9OSVRTX1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfR0FNTUExOCwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNv bG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMTgsCistICAgICAgICAgICAgICAgICAgICAgWkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTE4X1NJTkNFX1ZFUlNJT04pfSwKKysg ICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMTgs CisrICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19H QU1NQTE4X1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZf TkFNRVNfR0FNTUEyOCwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRy YW5zZmVySUQ6OkdBTU1BMjgsCistICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19HQU1NQTI4X1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5zZmVy VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkdBTU1BMjgsCisrICAgICAgICAg ICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTI4X1NJTkNF X1ZFUlNJT059fSwKKyB9KTsKKyAKKyAvLyBBIG1hcCBmcm9tIHRoZSBTRFIgemNyX2NvbG9yX21h bmFnZXJfdjEgZW90Zl9uYW1lcyBlbnVtIHZhbHVlcworQEAgLTE3NywxOCArMTc3LDE4IEBAIGNv bnN0ZXhwciBhdXRvIGtFb3RmTWFwID0gYmFzZTo6TWFrZUZpeGUKKyBjb25zdGV4cHIgYXV0byBr VHJhbnNmZXJNYXAgPQorICAgICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5h Z2VyX3YxX2VvdGZfbmFtZXMsIFRyYW5zZmVyRm5WZXJzaW9uPih7CisgICAgICAgICB7WkNSX0NP TE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MSU5FQVIsCistICAgICAgICAgVHJhbnNmZXJGblZl cnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0s CisrICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46OmtMaW5lYXIs IGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TUkdCLAorLSAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFu c2ZlckZuRXh0OjprU1JHQiwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICAgICBUcmFu c2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbkV4dDo6a1NSR0IsIGtEZWZhdWx0U2luY2VW ZXJzaW9ufX0sCisgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcw OSwKKy0gICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbigKKysgICAgICAgICBUcmFuc2ZlckZuVmVy c2lvbnsKKyAgICAgICAgICAgICAgU2tOYW1lZFRyYW5zZmVyRm5FeHQ6OmtSZWM3MDksCistICAg ICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQ3MDlfU0lOQ0VfVkVS U0lPTil9LAorKyAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JU NzA5X1NJTkNFX1ZFUlNJT059fSwKKyAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RG X05BTUVTX0JUMjA4NywKKy0gICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbihnYW1tYTI0LCBrRGVm YXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue2dhbW1hMjQs IGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19BRE9CRVJHQiwKKy0gICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbihTa05hbWVk VHJhbnNmZXJGbkV4dDo6a0E5OFJHQiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBrRGVm YXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRU cmFuc2ZlckZuRXh0OjprQTk4UkdCLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZh dWx0U2luY2VWZXJzaW9ufX0sCisgICAgIH0pOworIAorIC8vIEEgbWFwIGZyb20gdGhlIEhEUiB6 Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25hbWVzIGVudW0gdmFsdWVzCitAQCAtMTk3LDcwICsx OTcsNzAgQEAgY29uc3RleHByIGF1dG8ga1RyYW5zZmVyTWFwID0KKyBjb25zdGV4cHIgYXV0byBr SERSVHJhbnNmZXJNYXAgPQorICAgICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9t YW5hZ2VyX3YxX2VvdGZfbmFtZXMsIFRyYW5zZmVyRm5WZXJzaW9uPigKKyAgICAgICAgIHt7WkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MSU5FQVIsCistICAgICAgICAgIFRyYW5zZmVy Rm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZuOjprTGluZWFyLCBrRGVmYXVsdFNpbmNlVmVyc2lv bil9LAorKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbjo6a0xp bmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19TUkdCX0hEUiwKKy0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24o CisrICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ueworICAgICAgICAgICAgICAgU2tOYW1lZFRy YW5zZmVyRm5FeHQ6OmtTUkdCLAorLSAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TUkdCX0hEUl9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT059fSwKKyAg ICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19QUSwKKy0gICAgICAgICAg VHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtQUSwga0RlZmF1bHRTaW5jZVZl cnNpb24pfSwKKysgICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46 OmtQUSwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19ITEcsCistICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFt ZWRUcmFuc2ZlckZuOjprSExHLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09M T1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAg IFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuOjprSExHLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5D RV9WRVJTSU9OfX0sCisgICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf RVhURU5ERURTUkdCMTAsCistICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKAorKyAgICAgICAg ICBUcmFuc2ZlckZuVmVyc2lvbnsKKyAgICAgICAgICAgICAgIFNrTmFtZWRUcmFuc2ZlckZuRXh0 OjprU1JHQkV4dGVuZGVkMTAyM092ZXI1MTAsCistICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX0VYVEVOREVEU1JHQjEwX1NJTkNFX1ZFUlNJT04pfX0pOworKyAg ICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19FWFRFTkRFRFNSR0Ix MF9TSU5DRV9WRVJTSU9OfX19KTsKKyAKKyAvLyBBIG1hcCBmcm9tIHpjcl9jb2xvcl9tYW5hZ2Vy X3YxIG1hdHJpeF9uYW1lcyBlbnVtIHZhbHVlcyB0bworIC8vIGdmeDo6Q29sb3JTcGFjZTo6TWF0 cml4SURzLgorIGNvbnN0ZXhwciBhdXRvIGtNYXRyaXhNYXAgPQorICAgICBiYXNlOjpNYWtlRml4 ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX21hdHJpeF9uYW1lcywgTWF0cml4VmVyc2lv bj4oCisgICAgICAgICB7e1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19SR0IsCist ICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6UkdCLCBr RGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29s b3JTcGFjZTo6TWF0cml4SUQ6OlJHQiwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0JUNzA5LAorLSAgICAgICAgICBN YXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkJUNzA5LAorLSAgICAgICAg ICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgICAgIE1hdHJp eFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6QlQ3MDksCisrICAgICAgICAgICAg ICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgICB7WkNSX0NPTE9S X01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0JUNDcwQkcsCistICAgICAgICAgIE1hdHJpeFZlcnNp b24oCisrICAgICAgICAgIE1hdHJpeFZlcnNpb257CisgICAgICAgICAgICAgICBnZng6OkNvbG9y U3BhY2U6Ok1hdHJpeElEOjpCVDQ3MEJHLAorLSAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfTUFUUklYX05BTUVTX0JUNDcwQkdfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgICAg ICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0JUNDcwQkdfU0lOQ0VfVkVSU0lP Tn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQyMDIw X05DTCwKKy0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElE OjpCVDIwMjBfTkNMLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9uKX0sCisrICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJ RDo6QlQyMDIwX05DTCwKKysgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQy MDIwX0NMLAorLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4 SUQ6OkJUMjAyMF9DTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbil9LAorKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4 SUQ6OkJUMjAyMF9DTCwKKysgICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfRkND LAorLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkZD Qywga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICAgICAgTWF0cml4VmVyc2lvbntnZng6 OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpGQ0MsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAg ICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZQ09DRywKKy0gICAgICAg ICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpZQ09DRywKKy0gICAg ICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfWUNP Q0dfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JT cGFjZTo6TWF0cml4SUQ6OllDT0NHLAorKyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZQ09DR19TSU5DRV9WRVJTSU9OfX0sCisgICAgICAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZRFpEWCwKKy0gICAgICAgICAg TWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpZRFpEWCwKKy0gICAgICAg ICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfWURaRFhf U0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFj ZTo6TWF0cml4SUQ6OllEWkRYLAorKyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZRFpEWF9TSU5DRV9WRVJTSU9OfX0sCisgICAgICAgICAg e1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19HQlIsCistICAgICAgICAgIE1hdHJp eFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6R0JSLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19HQlJfU0lOQ0VfVkVS U0lPTil9LAorKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4 SUQ6OkdCUiwKKysgICAgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9N QVRSSVhfTkFNRVNfR0JSX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfTUFUUklYX05BTUVTX1NNUFRFMTcwTSwKKy0gICAgICAgICAgTWF0cml4VmVyc2lv bihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpTTVBURTE3ME0sCistICAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICAgICAgTWF0cml4VmVyc2lv bntnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpTTVBURTE3ME0sCisrICAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfTUFUUklYX05BTUVTX1NNUFRFMjQwTSwKKy0gICAgICAgICAgTWF0cml4VmVyc2lv bihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpTTVBURTI0ME0sCistICAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfX0pOworKyAgICAgICAgICBNYXRyaXhWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMjQwTSwKKysgICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19fSk7CisgCisgLy8gQSBtYXAgZnJvbSB6 Y3JfY29sb3JfbWFuYWdlcl92MSByYW5nZV9uYW1lcyBlbnVtIHZhbHVlcyB0bworIC8vIGdmeDo6 Q29sb3JTcGFjZTo6UmFuZ2VJRHMuCisgY29uc3RleHByIGF1dG8ga1JhbmdlTWFwID0KKyAgICAg YmFzZTo6TWFrZUZpeGVkRmxhdE1hcDx6Y3JfY29sb3JfbWFuYWdlcl92MV9yYW5nZV9uYW1lcywg UmFuZ2VWZXJzaW9uPigKKyAgICAgICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfUkFOR0VfTkFN RVNfTElNSVRFRCwKKy0gICAgICAgICAgUmFuZ2VWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6UmFu Z2VJRDo6TElNSVRFRCwKKy0gICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9uKX0sCisrICAgICAgICAgIFJhbmdlVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6 OkxJTUlURUQsCisrICAgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19 LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9SQU5HRV9OQU1FU19GVUxMLAorLSAg ICAgICAgICBSYW5nZVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpGVUxMLCBrRGVm YXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgICBSYW5nZVZlcnNpb257Z2Z4OjpDb2xvclNw YWNlOjpSYW5nZUlEOjpGVUxMLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9SQU5HRV9OQU1FU19ERVJJVkVELAorLSAgICAgICAgICBSYW5n ZVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpERVJJVkVELAorLSAgICAgICAgICAg ICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfX0pOworKyAgICAgICAgICBSYW5nZVZl cnNpb257Z2Z4OjpDb2xvclNwYWNlOjpSYW5nZUlEOjpERVJJVkVELAorKyAgICAgICAgICAgICAg ICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fX0pOworIAorIHpjcl9jb2xvcl9tYW5hZ2Vy X3YxX2Nocm9tYXRpY2l0eV9uYW1lcyBUb0NvbG9yTWFuYWdlckNocm9tYXRpY2l0eSgKKyAgICAg Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQgcHJpbWFyeUlELAorQEAgLTI4Myw0ICsyODMsNCBA QCB6Y3JfY29sb3JfbWFuYWdlcl92MV9lb3RmX25hbWVzIFRvQ29sb3JNCisgCisgfSAgLy8gbmFt ZXNwYWNlIHVpOjp3YXlsYW5kCisgCistI2VuZGlmICAvLyBVSV9CQVNFX1dBWUxBTkRfQ09MT1Jf TUFOQUdFUl9VVElMX0hfCitcIEtlaW4gWmVpbGVudW1icnVjaCBhbSBEYXRlaWVuZGUuCisrI2Vu ZGlmICAvLyBVSV9CQVNFX1dBWUxBTkRfQ09MT1JfTUFOQUdFUl9VVElMX0hfCitkaWZmIC11cCBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2Mubm9fbWF0Y2hpbmdfY29uc3Ry dWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91aS9ndGsvZ3RrX3VpLmNjCistLS0gY2hyb21p dW0tMTIwLjAuNjA5OS41Ni91aS9ndGsvZ3RrX3VpLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9y CTIwMjMtMTEtMjkgMjI6NDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAu NjA5OS41Ni91aS9ndGsvZ3RrX3VpLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzU2NDIwMzQyICsw MTAwCitAQCAtMTAxMywxMSArMTAxMywxMSBAQCB1aTo6RGlzcGxheUNvbmZpZyBHdGtVaTo6R2V0 RGlzcGxheUNvbmZpCisgICAgIEdka1JlY3RhbmdsZSBnZW9tZXRyeTsKKyAgICAgZ2RrX21vbml0 b3JfZ2V0X2dlb21ldHJ5KG1vbml0b3IsICZnZW9tZXRyeSk7CisgICAgIGludCBtb25pdG9yX3Nj YWxlID0gc3RkOjptYXgoMSwgZ2RrX21vbml0b3JfZ2V0X3NjYWxlX2ZhY3Rvcihtb25pdG9yKSk7 CistICAgIGNvbmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNrKAorKyAgICBjb25m aWcuZGlzcGxheV9nZW9tZXRyaWVzLmVtcGxhY2VfYmFjaygpID0geworICAgICAgICAgZ2Z4OjpS ZWN0KG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS54LCBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnku eSwKKyAgICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkud2lkdGgsCisg ICAgICAgICAgICAgICAgICAgbW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LmhlaWdodCksCistICAg ICAgICBtb25pdG9yX3NjYWxlICogZm9udF9zY2FsZSk7CisrICAgICAgICBzdGF0aWNfY2FzdDxm bG9hdD4obW9uaXRvcl9zY2FsZSAqIGZvbnRfc2NhbGUpfTsKKyAgIH0KKyAgIHJldHVybiBjb25m aWc7CisgfQorZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jaHJvbWUvYnJvd3Nlci91 aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5 X2RlbmllZF92aWV3LmNjLnRoYW4gY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jaHJvbWUvYnJvd3Nl ci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91 c2x5X2RlbmllZF92aWV3LmNjCistLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jaHJvbWUvYnJv d3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2 aW91c2x5X2RlbmllZF92aWV3LmNjLnRoYW4JMjAyMy0xMi0xOSAxNzoxMzoxNS4xMTY5NDk4MTQg KzAxMDAKKysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdz L3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZGVuaWVk X3ZpZXcuY2MJMjAyMy0xMi0xOSAxNzoyNzoxOC44MDcxMDI3MTYgKzAxMDAKK0BAIC02NiwxNyAr NjYsMTcgQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseURlbmllZAorIHN0ZDo6 dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlEZW5pZWRWaWV3OjpCdXR0 b25Db25maWd1cmF0aW9uPgorIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlEZW5p ZWRWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIGNvbnN0IHsKKyAgIHN0ZDo6dmVjdG9y PEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7CistICBidXR0b25zLmVtcGxhY2VfYmFjaygK KysgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgbDEwbl91dGlsOjpHZXRTdHJp bmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX0NPTlRJTlVFX05PVF9BTExPV0lORyksCistICAg ICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlTm90QWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1Rv bmFsKTsKKysgICAgICBCdXR0b25UeXBlOjprQ29udGludWVOb3RBbGxvd2luZywgdWk6OkJ1dHRv blN0eWxlOjprVG9uYWx9OworIAorICAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQo cGVybWlzc2lvbnM6OmZlYXR1cmVzOjprT25lVGltZVBlcm1pc3Npb24pKSB7CistICAgIGJ1dHRv bnMuZW1wbGFjZV9iYWNrKAorKyAgICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0geworICAgICAg ICAgbDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9BTExPV19USElTX1RJ TUUpLAorLSAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93VGhpc1RpbWUsIHVpOjpCdXR0b25TdHls ZTo6a1RvbmFsLCBrQWxsb3dUaGlzVGltZUlkKTsKKysgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxv d1RoaXNUaW1lLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCwga0FsbG93VGhpc1RpbWVJZH07Cisg ICB9IGVsc2UgeworLSAgICBidXR0b25zLmVtcGxhY2VfYmFjayhsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg QnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICAgIGJ1dHRv bnMuZW1wbGFjZV9iYWNrKCkgPSB7bDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlT U0lPTl9BTExPVyksCisrICAgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxv dywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworICAgfQorICAgcmV0dXJuIGJ1dHRvbnM7Cisg fQorZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dyYW50 ZWRfdmlldy5jYy50aGFuIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY2hyb21lL2Jyb3dzZXIvdWkv dmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9n cmFudGVkX3ZpZXcuY2MKKy0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3Vz bHlfZ3JhbnRlZF92aWV3LmNjLnRoYW4JMjAyMy0xMi0xOSAxNzozOToxNy44MTg4MzQwMjAgKzAx MDAKKysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Bl cm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRlZF92 aWV3LmNjCTIwMjMtMTItMTkgMTc6NDQ6MTUuMzQ2MzM3ODc2ICswMTAwCitAQCAtNjEsMTMgKzYx LDEzIEBAIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlHcmFudGUKKyBzdGQ6OnZl Y3RvcjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5R3JhbnRlZFZpZXc6OkJ1dHRv bkNvbmZpZ3VyYXRpb24+CisgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseUdyYW50 ZWRWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIGNvbnN0IHsKKyAgIHN0ZDo6dmVjdG9y PEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7CistICBidXR0b25zLmVtcGxhY2VfYmFjaygK KysgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgbDEwbl91dGlsOjpHZXRTdHJp bmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX0NPTlRJTlVFX0FMTE9XSU5HKSwKKy0gICAgICBC dXR0b25UeXBlOjprQ29udGludWVBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOwor KyAgICAgIEJ1dHRvblR5cGU6OmtDb250aW51ZUFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtU b25hbH07CisgCistICBidXR0b25zLmVtcGxhY2VfYmFjaygKKysgIGJ1dHRvbnMuZW1wbGFjZV9i YWNrKCkgPSB7CisgICAgICAgbDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfRU1CRURERURf UFJPTVBUX1NUT1BfQUxMT1dJTkcpLAorLSAgICAgIEJ1dHRvblR5cGU6OmtTdG9wQWxsb3dpbmcs IHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsLCBrU3RvcEFsbG93aW5nSWQpOworKyAgICAgIEJ1dHRv blR5cGU6OmtTdG9wQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsLCBrU3RvcEFsbG93 aW5nSWR9OworICAgcmV0dXJuIGJ1dHRvbnM7CisgfQorIAorZGlmZiAtdXAgY2hyb21pdW0tMTIx LjAuNjE2Ny4xNi9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3Bhc3N3 b3JkX21hbmFnZXIuY2MudGhhbiBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2NvbXBvbmVudHMvcGFz c3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYworLS0tIGNocm9t aXVtLTEyMS4wLjYxNjcuMTYvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nl ci9wYXNzd29yZF9tYW5hZ2VyLmNjLnRoYW4JMjAyMy0xMi0xOSAxNzozOToxNy44MTk4MzQwMzkg KzAxMDAKKysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFu YWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYwkyMDIzLTEyLTE5IDE3OjQ4OjMz LjE0NDM4OTA4MSArMDEwMAorQEAgLTY2Niw3ICs2NjYsNyBAQCB2b2lkIFBhc3N3b3JkTWFuYWdl cjo6T25Vc2VyTW9kaWZpZWROb25QCisgICAgIGl0LT5zZWNvbmQubGFzdF9jaGFuZ2UgPSBiYXNl OjpUaW1lOjpOb3coKTsKKyAgIH0gZWxzZSB7CisgICAgIHBvc3NpYmxlX3VzZXJuYW1lc18uUHV0 KAorLSAgICAgICAgUG9zc2libGVVc2VybmFtZUZpZWxkSWRlbnRpZmllcihkcml2ZXJfaWQsIHJl bmRlcmVyX2lkKSwKKysgICAgICAgIFBvc3NpYmxlVXNlcm5hbWVGaWVsZElkZW50aWZpZXJ7ZHJp dmVyX2lkLCByZW5kZXJlcl9pZH0sCisgICAgICAgICBQb3NzaWJsZVVzZXJuYW1lRGF0YShHZXRT aWdub25SZWFsbShkcml2ZXItPkdldExhc3RDb21taXR0ZWRVUkwoKSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZW5kZXJlcl9pZCwgdmFsdWUsIGJhc2U6OlRpbWU6Ok5vdygpLCBk cml2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGVfYXR0 cmlidXRlX2hhc191c2VybmFtZSwKK2RpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY29u dGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYy50aGFu IGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVu ZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYworLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY29udGVu dC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYy50aGFuCTIw MjMtMTItMTkgMTc6Mzk6MTcuODI1ODM0MTU2ICswMTAwCisrKysgY2hyb21pdW0tMTIxLjAuNjE2 Ny4xNi9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBs LmNjCTIwMjMtMTItMTkgMTc6NTM6NDMuMTUzMjgzODQ3ICswMTAwCitAQCAtODU2MSw3ICs4NTYx LDcgQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpTZW5kRmVuY2VkRnJhbQorICAgZm9yIChj b25zdCBibGluazo6RmVuY2VkRnJhbWU6OlJlcG9ydGluZ0Rlc3RpbmF0aW9uJiBkZXN0aW5hdGlv biA6CisgICAgICAgIGRlc3RpbmF0aW9ucykgeworICAgICBTZW5kRmVuY2VkRnJhbWVSZXBvcnRp bmdCZWFjb25JbnRlcm5hbCgKKy0gICAgICAgIERlc3RpbmF0aW9uRW51bUV2ZW50KGV2ZW50X3R5 cGUsIGV2ZW50X2RhdGEpLCBkZXN0aW5hdGlvbiwKKysgICAgICAgIERlc3RpbmF0aW9uRW51bUV2 ZW50e2V2ZW50X3R5cGUsIGV2ZW50X2RhdGF9LCBkZXN0aW5hdGlvbiwKKyAgICAgICAgIGF0dHJp YnV0aW9uX3JlcG9ydGluZ19ydW50aW1lX2ZlYXR1cmVzKTsKKyAgIH0KKyB9CitAQCAtODU5Myw3 ICs4NTkzLDcgQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpTZW5kRmVuY2VkRnJhbQorICAg fQorIAorICAgU2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29uSW50ZXJuYWwoCistICAgICAg RGVzdGluYXRpb25VUkxFdmVudChkZXN0aW5hdGlvbl91cmwpLAorKyAgICAgIERlc3RpbmF0aW9u VVJMRXZlbnR7ZGVzdGluYXRpb25fdXJsfSwKKyAgICAgICBibGluazo6RmVuY2VkRnJhbWU6OlJl cG9ydGluZ0Rlc3RpbmF0aW9uOjprQnV5ZXIsCisgICAgICAgYXR0cmlidXRpb25fcmVwb3J0aW5n X3J1bnRpbWVfZmVhdHVyZXMpOworIH0KK0BAIC04NzMwLDcgKzg3MzAsNyBAQCB2b2lkIFJlbmRl ckZyYW1lSG9zdEltcGw6Ok1heWJlU2VuZEZlbmNlCisgICAgICAgICBkYXRhID0gaW5mby0+ZGF0 YTsKKyAgICAgICB9CisgICAgICAgaW5pdGlhdG9yX3JmaC0+U2VuZEZlbmNlZEZyYW1lUmVwb3J0 aW5nQmVhY29uSW50ZXJuYWwoCistICAgICAgICAgIEF1dG9tYXRpY0JlYWNvbkV2ZW50KGV2ZW50 X3R5cGUsIGRhdGEpLCBkZXN0aW5hdGlvbiwKKysgICAgICAgICAgQXV0b21hdGljQmVhY29uRXZl bnR7ZXZlbnRfdHlwZSwgZGF0YX0sIGRlc3RpbmF0aW9uLAorICAgICAgICAgICBhdHRyaWJ1dGlv bl9yZXBvcnRpbmdfZmVhdHVyZXMsIG5hdmlnYXRpb25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQo KSk7CisgICAgIH0KKyAgIH0gZWxzZSB7CitAQCAtODc0MSw3ICs4NzQxLDcgQEAgdm9pZCBSZW5k ZXJGcmFtZUhvc3RJbXBsOjpNYXliZVNlbmRGZW5jZQorICAgICBmb3IgKGJsaW5rOjpGZW5jZWRG cmFtZTo6UmVwb3J0aW5nRGVzdGluYXRpb24gZGVzdGluYXRpb24gOgorICAgICAgICAgIGluZm8t PmRlc3RpbmF0aW9ucykgeworICAgICAgIGluaXRpYXRvcl9yZmgtPlNlbmRGZW5jZWRGcmFtZVJl cG9ydGluZ0JlYWNvbkludGVybmFsKAorLSAgICAgICAgICBBdXRvbWF0aWNCZWFjb25FdmVudChl dmVudF90eXBlLCBpbmZvLT5kYXRhKSwgZGVzdGluYXRpb24sCisrICAgICAgICAgIEF1dG9tYXRp Y0JlYWNvbkV2ZW50e2V2ZW50X3R5cGUsIGluZm8tPmRhdGF9LCBkZXN0aW5hdGlvbiwKKyAgICAg ICAgICAgaW5mby0+YXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMsCisgICAg ICAgICAgIG5hdmlnYXRpb25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQoKSk7CisgICAgIH0KK2Rp ZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvYmFzZS9uaXgvbWltZV91dGlsX3hkZy5jYy5t ZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2Jhc2Uvbml4L21pbWVfdXRpbF94ZGcuY2MKKy0tLSBj aHJvbWl1bS0xMjEuMC42MTY3LjU3L2Jhc2Uvbml4L21pbWVfdXRpbF94ZGcuY2MubWUJMjAyNC0w MS0yMSAxNjo1NDoxNS4yNjE4NDQ0NDggKzAxMDAKKysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3 L2Jhc2Uvbml4L21pbWVfdXRpbF94ZGcuY2MJMjAyNC0wMS0yMSAxNjo1NTo0OC43MDU1Nzc0MjQg KzAxMDAKK0BAIC01Niw3ICs1Niw3IEBAIHZvaWQgTG9hZEFsbE1pbWVDYWNoZUZpbGVzKE1pbWVU eXBlTWFwJgorICAgZm9yIChjb25zdCBhdXRvJiBwYXRoIDogR2V0WERHRGF0YVNlYXJjaExvY2F0 aW9ucyhlbnYuZ2V0KCkpKSB7CisgICAgIEZpbGVQYXRoIG1pbWVfY2FjaGUgPSBwYXRoLkFwcGVu ZCgibWltZS9taW1lLmNhY2hlIik7CisgICAgIGlmIChHZXRGaWxlSW5mbyhtaW1lX2NhY2hlLCAm aW5mbykgJiYgUGFyc2VNaW1lVHlwZXMobWltZV9jYWNoZSwgbWFwKSkgeworLSAgICAgIGZpbGVz LmVtcGxhY2VfYmFjayhtaW1lX2NhY2hlLCBpbmZvLmxhc3RfbW9kaWZpZWQpOworKyAgICAgIGZp bGVzLmVtcGxhY2VfYmFjaygpID0ge21pbWVfY2FjaGUsIGluZm8ubGFzdF9tb2RpZmllZH07Cisg ICAgIH0KKyAgIH0KKyB9CitkaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbXBvbmVu dHMvcGVyZm9ybWFuY2VfbWFuYWdlci93b3JrZXJfd2F0Y2hlci5jYy5tZSBjaHJvbWl1bS0xMjEu MC42MTY3LjU3L2NvbXBvbmVudHMvcGVyZm9ybWFuY2VfbWFuYWdlci93b3JrZXJfd2F0Y2hlci5j YworLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9wZXJmb3JtYW5jZV9tYW5h Z2VyL3dvcmtlcl93YXRjaGVyLmNjLm1lCTIwMjQtMDEtMjEgMTg6MTE6MzEuMzk3ODU5NjA4ICsw MTAwCisrKysgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb21wb25lbnRzL3BlcmZvcm1hbmNlX21h bmFnZXIvd29ya2VyX3dhdGNoZXIuY2MJMjAyNC0wMS0yMSAxODoyMDowNy43MTU0MTUwMzcgKzAx MDAKK0BAIC0yMzksNyArMjM5LDcgQEAgdm9pZCBXb3JrZXJXYXRjaGVyOjpPbldvcmtlckNyZWF0 ZWQoCisgICBEQ0hFQ0soaW5zZXJ0aW9uX3Jlc3VsdC5zZWNvbmQpOworIAorICAgYWJzbDo6dmlz aXQoCistICAgICAgYmFzZTo6T3ZlcmxvYWRlZCgKKysgICAgICBiYXNlOjpPdmVybG9hZGVkewor ICAgICAgICAgICBbJiwKKyAgICAgICAgICAgIHRoaXNdKGNvbnN0IGNvbnRlbnQ6Okdsb2JhbFJl bmRlckZyYW1lSG9zdElkJiByZW5kZXJfZnJhbWVfaG9zdF9pZCkgeworICAgICAgICAgICAgIEFk ZEZyYW1lQ2xpZW50Q29ubmVjdGlvbihpbnNlcnRpb25fcmVzdWx0LmZpcnN0LT5zZWNvbmQuZ2V0 KCksCitAQCAtMjQ4LDcgKzI0OCw3IEBAIHZvaWQgV29ya2VyV2F0Y2hlcjo6T25Xb3JrZXJDcmVh dGVkKAorICAgICAgICAgICBbJiwgdGhpc10oYmxpbms6OkRlZGljYXRlZFdvcmtlclRva2VuIGRl ZGljYXRlZF93b3JrZXJfdG9rZW4pIHsKKyAgICAgICAgICAgICBDb25uZWN0RGVkaWNhdGVkV29y a2VyQ2xpZW50KGluc2VydGlvbl9yZXN1bHQuZmlyc3QtPnNlY29uZC5nZXQoKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZGljYXRlZF93b3JrZXJfdG9rZW4p OworLSAgICAgICAgICB9KSwKKysgICAgICAgICAgfX0sCisgICAgICAgY3JlYXRvcik7CisgfQor IAorQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIFdvcmtlcldhdGNoZXI6Ok9uQmVmb3JlV29ya2Vy RGVzdHJvCisgICAvLyBGaXJzdCBkaXNjb25uZWN0IHRoZSBjcmVhdG9yJ3Mgbm9kZSBmcm9tIHRo aXMgd29ya2VyIG5vZGUuCisgCisgICBhYnNsOjp2aXNpdCgKKy0gICAgICBiYXNlOjpPdmVybG9h ZGVkKAorKyAgICAgIGJhc2U6Ok92ZXJsb2FkZWR7CisgICAgICAgICAgIFsmLAorICAgICAgICAg ICAgdGhpc10oY29uc3QgY29udGVudDo6R2xvYmFsUmVuZGVyRnJhbWVIb3N0SWQmIHJlbmRlcl9m cmFtZV9ob3N0X2lkKSB7CisgICAgICAgICAgICAgUmVtb3ZlRnJhbWVDbGllbnRDb25uZWN0aW9u KHdvcmtlcl9ub2RlLmdldCgpLAorQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIFdvcmtlcldhdGNo ZXI6Ok9uQmVmb3JlV29ya2VyRGVzdHJvCisgICAgICAgICAgIFsmLCB0aGlzXShibGluazo6RGVk aWNhdGVkV29ya2VyVG9rZW4gZGVkaWNhdGVkX3dvcmtlcl90b2tlbikgeworICAgICAgICAgICAg IERpc2Nvbm5lY3REZWRpY2F0ZWRXb3JrZXJDbGllbnQod29ya2VyX25vZGUuZ2V0KCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWRpY2F0ZWRfd29ya2Vy X3Rva2VuKTsKKy0gICAgICAgICAgfSksCisrICAgICAgICAgIH19LAorICAgICAgIGNyZWF0b3Ip OworIAorICAgLy8gRGlzY29ubmVjdCBhbGwgY2hpbGQgd29ya2VycyBiZWZvcmUgZGVzdHJveWlu ZyB0aGUgbm9kZS4KK0BAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCBXb3JrZXJXYXRjaGVyOjpPbkNv bnRyb2xsZWVBZGRlZCgKKyAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNsaWVudF91dWlkLAorICAg ICBjb25zdCBjb250ZW50OjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mbyYgY2xpZW50X2luZm8pIHsK KyAgIGFic2w6OnZpc2l0KAorLSAgICAgIGJhc2U6Ok92ZXJsb2FkZWQoCisrICAgICAgYmFzZTo6 T3ZlcmxvYWRlZHsKKyAgICAgICAgICAgWyYsIHRoaXNdKGNvbnRlbnQ6Okdsb2JhbFJlbmRlckZy YW1lSG9zdElkIHJlbmRlcl9mcmFtZV9ob3N0X2lkKSB7CisgICAgICAgICAgICAgLy8gRm9yIHdp bmRvdyBjbGllbnRzLCBpdCBpcyBuZWNlc3NhcnkgdG8gd2FpdCB1bnRpbCB0aGUgbmF2aWdhdGlv bgorICAgICAgICAgICAgIC8vIGhhcyBjb21taXR0ZWQgdG8gYSBSZW5kZXJGcmFtZUhvc3QuCitA QCAtNDg0LDcgKzQ4NCw3IEBAIHZvaWQgV29ya2VyV2F0Y2hlcjo6T25Db250cm9sbGVlQWRkZWQo CisgICAgICAgICAgICAgICBDb25uZWN0U2hhcmVkV29ya2VyQ2xpZW50KHNlcnZpY2Vfd29ya2Vy X25vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF93 b3JrZXJfdG9rZW4pOworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgfSksCisrICAgICAgICAg IH19LAorICAgICAgIGNsaWVudF9pbmZvKTsKKyB9CisgCitAQCAtNTI0LDcgKzUyNCw3IEBAIHZv aWQgV29ya2VyV2F0Y2hlcjo6T25Db250cm9sbGVlUmVtb3ZlZCgKKyAgICAgcmV0dXJuOworIAor ICAgYWJzbDo6dmlzaXQoCistICAgICAgYmFzZTo6T3ZlcmxvYWRlZCgKKysgICAgICBiYXNlOjpP dmVybG9hZGVkeworICAgICAgICAgICBbJiwgdGhpc10oY29udGVudDo6R2xvYmFsUmVuZGVyRnJh bWVIb3N0SWQgcmVuZGVyX2ZyYW1lX2hvc3RfaWQpIHsKKyAgICAgICAgICAgICBSZW1vdmVGcmFt ZUNsaWVudENvbm5lY3Rpb24od29ya2VyX25vZGUsIHJlbmRlcl9mcmFtZV9ob3N0X2lkKTsKKyAg ICAgICAgICAgfSwKK0BAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBXb3JrZXJXYXRjaGVyOjpPbkNv bnRyb2xsZWVSZW1vdmVkKAorICAgICAgICAgICB9LAorICAgICAgICAgICBbJiwgdGhpc10oYmxp bms6OlNoYXJlZFdvcmtlclRva2VuIHNoYXJlZF93b3JrZXJfdG9rZW4pIHsKKyAgICAgICAgICAg ICBEaXNjb25uZWN0U2hhcmVkV29ya2VyQ2xpZW50KHdvcmtlcl9ub2RlLCBzaGFyZWRfd29ya2Vy X3Rva2VuKTsKKy0gICAgICAgICAgfSksCisrICAgICAgICAgIH19LAorICAgICAgIGNsaWVudCk7 CisgfQorIAorQEAgLTgxMCw3ICs4MTAsNyBAQCB2b2lkIFdvcmtlcldhdGNoZXI6OkNvbm5lY3RB bGxTZXJ2aWNlV29yCisgCisgICBmb3IgKGNvbnN0IGF1dG8mIGt2IDogaXQtPnNlY29uZCkgewor ICAgICBhYnNsOjp2aXNpdCgKKy0gICAgICAgIGJhc2U6Ok92ZXJsb2FkZWQoCisrICAgICAgICBi YXNlOjpPdmVybG9hZGVkeworICAgICAgICAgICAgIFsmLCB0aGlzXShjb250ZW50OjpHbG9iYWxS ZW5kZXJGcmFtZUhvc3RJZCByZW5kZXJfZnJhbWVfaG9zdF9pZCkgeworICAgICAgICAgICAgICAg QWRkRnJhbWVDbGllbnRDb25uZWN0aW9uKHNlcnZpY2Vfd29ya2VyX25vZGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyX2ZyYW1lX2hvc3RfaWQpOworQEAg LTgyMiw3ICs4MjIsNyBAQCB2b2lkIFdvcmtlcldhdGNoZXI6OkNvbm5lY3RBbGxTZXJ2aWNlV29y CisgICAgICAgICAgICAgWyYsIHRoaXNdKGJsaW5rOjpTaGFyZWRXb3JrZXJUb2tlbiBzaGFyZWRf d29ya2VyX3Rva2VuKSB7CisgICAgICAgICAgICAgICBDb25uZWN0U2hhcmVkV29ya2VyQ2xpZW50 KHNlcnZpY2Vfd29ya2VyX25vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNoYXJlZF93b3JrZXJfdG9rZW4pOworLSAgICAgICAgICAgIH0pLAorKyAgICAgICAg ICAgIH19LAorICAgICAgICAga3Yuc2Vjb25kKTsKKyAgIH0KKyB9CitAQCAtODM3LDcgKzgzNyw3 IEBAIHZvaWQgV29ya2VyV2F0Y2hlcjo6RGlzY29ubmVjdEFsbFNlcnZpY2UKKyAKKyAgIGZvciAo Y29uc3QgYXV0byYga3YgOiBpdC0+c2Vjb25kKSB7CisgICAgIGFic2w6OnZpc2l0KAorLSAgICAg ICAgYmFzZTo6T3ZlcmxvYWRlZCgKKysgICAgICAgIGJhc2U6Ok92ZXJsb2FkZWR7CisgICAgICAg ICAgICAgWyYsIHRoaXNdKAorICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50OjpHbG9iYWxS ZW5kZXJGcmFtZUhvc3RJZCYgcmVuZGVyX2ZyYW1lX2hvc3RfaWQpIHsKKyAgICAgICAgICAgICAg IFJlbW92ZUZyYW1lQ2xpZW50Q29ubmVjdGlvbihzZXJ2aWNlX3dvcmtlcl9ub2RlLAorQEAgLTg1 MSw3ICs4NTEsNyBAQCB2b2lkIFdvcmtlcldhdGNoZXI6OkRpc2Nvbm5lY3RBbGxTZXJ2aWNlCisg ICAgICAgICAgICAgWyYsIHRoaXNdKGNvbnN0IGJsaW5rOjpTaGFyZWRXb3JrZXJUb2tlbiYgc2hh cmVkX3dvcmtlcl90b2tlbikgeworICAgICAgICAgICAgICAgRGlzY29ubmVjdFNoYXJlZFdvcmtl ckNsaWVudChzZXJ2aWNlX3dvcmtlcl9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaGFyZWRfd29ya2VyX3Rva2VuKTsKKy0gICAgICAgICAgICB9KSwK KysgICAgICAgICAgICB9fSwKKyAgICAgICAgIGt2LnNlY29uZCk7CisgICB9CisgfQorZGlmZiAt dXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvZmlyc3RfcGFydHlfc2V0 cy9maXJzdF9wYXJ0eV9zZXRfcGFyc2VyLmNjLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29u dGVudC9icm93c2VyL2ZpcnN0X3BhcnR5X3NldHMvZmlyc3RfcGFydHlfc2V0X3BhcnNlci5jYwor LS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL2ZpcnN0X3BhcnR5X3Nl dHMvZmlyc3RfcGFydHlfc2V0X3BhcnNlci5jYy5tZQkyMDI0LTAxLTIxIDE4OjQwOjUyLjI4NDM4 OTI4NiArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL2Zp cnN0X3BhcnR5X3NldHMvZmlyc3RfcGFydHlfc2V0X3BhcnNlci5jYwkyMDI0LTAxLTIxIDE4OjQx OjE3LjI3Njg0MDIyMiArMDEwMAorQEAgLTc2NCw3ICs3NjQsNyBAQCBGaXJzdFBhcnR5U2V0UGFy c2VyOjpQYXJzZVNldHNGcm9tRW50ZXJwCisgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5H ZXRQb2xpY3lTZXRzRnJvbUxpc3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeS5G aW5kTGlzdChrRmlyc3RQYXJ0eVNldFBvbGljeUFkZGl0aW9uc0ZpZWxkKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgUG9saWN5U2V0VHlwZTo6a0FkZGl0aW9uKSk7CistICAgIHJldHVybiBQ YXJzZWRQb2xpY3lTZXRMaXN0cyhzdGQ6Om1vdmUocmVwbGFjZW1lbnRzKSwgc3RkOjptb3ZlKGFk ZGl0aW9ucykpOworKyAgICByZXR1cm4gUGFyc2VkUG9saWN5U2V0TGlzdHN7c3RkOjptb3ZlKHJl cGxhY2VtZW50cyksIHN0ZDo6bW92ZShhZGRpdGlvbnMpfTsKKyAgIH0oKTsKKyAKKyAgIGNvbnRl eHQuUG9zdFByb2Nlc3NTZXRMaXN0cyhzZXRfbGlzdHMpOworZGlmZiAtdXAgY2hyb21pdW0tMTIx LjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaGVhZGVyX2RpcmVjdF9m cm9tX3NlbGxlcl9zaWduYWxzLmgubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jy b3dzZXIvaW50ZXJlc3RfZ3JvdXAvaGVhZGVyX2RpcmVjdF9mcm9tX3NlbGxlcl9zaWduYWxzLmgK Ky0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91 cC9oZWFkZXJfZGlyZWN0X2Zyb21fc2VsbGVyX3NpZ25hbHMuaC5tZQkyMDI0LTAxLTIxIDE5OjMw OjAwLjUzNjM4Nzg0NCArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9i cm93c2VyL2ludGVyZXN0X2dyb3VwL2hlYWRlcl9kaXJlY3RfZnJvbV9zZWxsZXJfc2lnbmFscy5o CTIwMjQtMDEtMjEgMjA6Mjk6NTAuMjM2Mjg3NTE0ICswMTAwCitAQCAtMTMzLDYgKzEzMyw3IEBA IGNsYXNzIENPTlRFTlRfRVhQT1JUIEhlYWRlckRpcmVjdEZyb21TZWwKKyAKKyAgICAgLy8gVGhl IEFkLUF1Y3Rpb24tU2lnbmFscyByZXNwb25zZSBzZXJ2ZWQgYnkgYG9yaWdpbmAuCisgICAgIHN0 ZDo6c3RyaW5nIHJlc3BvbnNlX2pzb247CisrICAgIFVucHJvY2Vzc2VkUmVzcG9uc2UoYXV0byB1 LCBhdXRvIHMpIDogb3JpZ2luKHUpLCByZXNwb25zZV9qc29uKHMpIHsgfQorICAgfTsKKyAKKyAg IC8vIEluZm9ybWF0aW9uIGZyb20gUGFyc2VBbmRGaW5kKCkgY2FsbHMgdXNlZCBieSBQYXJzZUFu ZEZpbmRDb21wbGV0ZWQuCitkaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbnRlbnQv YnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9tYWluX3Jlc291cmNlX2xvYWRl cl9pbnRlcmNlcHRvci5jYy5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nl ci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9tYWluX3Jlc291cmNlX2xvYWRlcl9pbnRl cmNlcHRvci5jYworLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL3Nl cnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX21haW5fcmVzb3VyY2VfbG9hZGVyX2ludGVyY2Vw dG9yLmNjLm1lCTIwMjQtMDEtMjEgMjE6NTg6NDguNzczMzY2MzAxICswMTAwCisrKysgY2hyb21p dW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2VydmljZV93 b3JrZXJfbWFpbl9yZXNvdXJjZV9sb2FkZXJfaW50ZXJjZXB0b3IuY2MJMjAyNC0wMS0yMSAyMjow MjoxNy45NTYwODYxNjcgKzAxMDAKK0BAIC0zNjAsMTAgKzM2MCwxMCBAQCBTZXJ2aWNlV29ya2Vy TWFpblJlc291cmNlTG9hZGVySW50ZXJjZXB0CisgICB9CisgICBhdXRvKiBzdG9yYWdlX3BhcnRp dGlvbiA9IHByb2Nlc3MtPkdldFN0b3JhZ2VQYXJ0aXRpb24oKTsKKyAKKy0gIHJldHVybiBhYnNs Ojp2aXNpdChiYXNlOjpPdmVybG9hZGVkKFsmLCB0aGlzXShhdXRvIHRva2VuKSB7CisrICByZXR1 cm4gYWJzbDo6dmlzaXQoYmFzZTo6T3ZlcmxvYWRlZHtbJiwgdGhpc10oYXV0byB0b2tlbikgewor ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldFN0b3JhZ2VLZXlGcm9tV29ya2VySG9z dChzdG9yYWdlX3BhcnRpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIG9yaWdpbik7CistICAgICAgICAgICAgICAg ICAgICAgfSksCisrICAgICAgICAgICAgICAgICAgICAgfX0sCisgICAgICAgICAgICAgICAgICAg ICAgKndvcmtlcl90b2tlbl8pOworIH0KKyAKK2RpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcu NTcvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRhaW5l cl9ob3N0LmNjLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL3NlcnZp Y2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRhaW5lcl9ob3N0LmNjCistLS0gY2hyb21pdW0t MTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2VydmljZV93b3Jr ZXJfY29udGFpbmVyX2hvc3QuY2MubWUJMjAyNC0wMS0yMSAyMjowNDozMC40NDY0NTQ2OTcgKzAx MDAKKysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dv cmtlci9zZXJ2aWNlX3dvcmtlcl9jb250YWluZXJfaG9zdC5jYwkyMDI0LTAxLTIxIDIyOjA1OjIy Ljg0NzM5MTQ4MSArMDEwMAorQEAgLTg3MCw3ICs4NzAsNyBAQCBTZXJ2aWNlV29ya2VyQ29udGFp bmVySG9zdDo6R2V0Q2xpZW50VHlwCisgICBEQ0hFQ0tfQ0FMTEVEX09OX1ZBTElEX1NFUVVFTkNF KHNlcXVlbmNlX2NoZWNrZXJfKTsKKyAgIERDSEVDSyhjbGllbnRfaW5mb18pOworICAgcmV0dXJu IGFic2w6OnZpc2l0KAorLSAgICAgIGJhc2U6Ok92ZXJsb2FkZWQoCisrICAgICAgYmFzZTo6T3Zl cmxvYWRlZHsKKyAgICAgICAgICAgW10oR2xvYmFsUmVuZGVyRnJhbWVIb3N0SWQgcmVuZGVyX2Zy YW1lX2hvc3RfaWQpIHsKKyAgICAgICAgICAgICByZXR1cm4gYmxpbms6Om1vam9tOjpTZXJ2aWNl V29ya2VyQ2xpZW50VHlwZTo6a1dpbmRvdzsKKyAgICAgICAgICAgfSwKK0BAIC04NzksNyArODc5 LDcgQEAgU2VydmljZVdvcmtlckNvbnRhaW5lckhvc3Q6OkdldENsaWVudFR5cAorICAgICAgICAg ICB9LAorICAgICAgICAgICBbXShibGluazo6U2hhcmVkV29ya2VyVG9rZW4gc2hhcmVkX3dvcmtl cl90b2tlbikgeworICAgICAgICAgICAgIHJldHVybiBibGluazo6bW9qb206OlNlcnZpY2VXb3Jr ZXJDbGllbnRUeXBlOjprU2hhcmVkV29ya2VyOworLSAgICAgICAgICB9KSwKKysgICAgICAgICAg fX0sCisgICAgICAgKmNsaWVudF9pbmZvXyk7CisgfQorIAorZGlmZiAtdXAgY2hyb21pdW0tMTIx LjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvd29ya2VyX2hvc3QvZGVkaWNhdGVkX3dvcmtlcl9o b3N0LmNjLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL3dvcmtlcl9o b3N0L2RlZGljYXRlZF93b3JrZXJfaG9zdC5jYworLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcv Y29udGVudC9icm93c2VyL3dvcmtlcl9ob3N0L2RlZGljYXRlZF93b3JrZXJfaG9zdC5jYy5tZQky MDI0LTAxLTIxIDIyOjM3OjAwLjk2OTQxNjE0OCArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYx NjcuNTcvY29udGVudC9icm93c2VyL3dvcmtlcl9ob3N0L2RlZGljYXRlZF93b3JrZXJfaG9zdC5j YwkyMDI0LTAxLTIxIDIyOjM4OjA3Ljc1NDUyODMzNSArMDEwMAorQEAgLTI1MSw3ICsyNTEsNyBA QCB2b2lkIERlZGljYXRlZFdvcmtlckhvc3Q6OlN0YXJ0U2NyaXB0TG9hCisgICBSZW5kZXJGcmFt ZUhvc3RJbXBsKiBjcmVhdG9yX3JlbmRlcl9mcmFtZV9ob3N0ID0gbnVsbHB0cjsKKyAgIERlZGlj YXRlZFdvcmtlckhvc3QqIGNyZWF0b3Jfd29ya2VyID0gbnVsbHB0cjsKKyAKKy0gIGFic2w6OnZp c2l0KGJhc2U6Ok92ZXJsb2FkZWQoCisrICBhYnNsOjp2aXNpdChiYXNlOjpPdmVybG9hZGVkewor ICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBHbG9iYWxSZW5kZXJGcmFtZUhvc3RJZCYgcmVu ZGVyX2ZyYW1lX2hvc3RfaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgIGNyZWF0b3JfcmVuZGVy X2ZyYW1lX2hvc3QgPQorICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmRlckZyYW1lSG9zdElt cGw6OkZyb21JRChyZW5kZXJfZnJhbWVfaG9zdF9pZCk7CitAQCAtMjU5LDcgKzI1OSw3IEBAIHZv aWQgRGVkaWNhdGVkV29ya2VySG9zdDo6U3RhcnRTY3JpcHRMb2EKKyAgICAgICAgICAgICAgICAg ICBbJl0oYmxpbms6OkRlZGljYXRlZFdvcmtlclRva2VuIGRlZGljYXRlZF93b3JrZXJfdG9rZW4p IHsKKyAgICAgICAgICAgICAgICAgICAgIGNyZWF0b3Jfd29ya2VyID0gc2VydmljZV8tPkdldERl ZGljYXRlZFdvcmtlckhvc3RGcm9tVG9rZW4oCisgICAgICAgICAgICAgICAgICAgICAgICAgZGVk aWNhdGVkX3dvcmtlcl90b2tlbik7CistICAgICAgICAgICAgICAgICAgfSksCisrICAgICAgICAg ICAgICAgICAgfX0sCisgICAgICAgICAgICAgICBjcmVhdG9yXyk7CisgCisgICBpZiAoIWNyZWF0 b3JfcmVuZGVyX2ZyYW1lX2hvc3QgJiYgIWNyZWF0b3Jfd29ya2VyKSB7CgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTIxLW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2ggYi9jaHJv bWl1bS0xMjEtbnVsbHB0cl90LXdpdGhvdXQtbmFtZXNwYWNlLXN0ZC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGVmYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvY2hy b21pdW0tMTIxLW51bGxwdHJfdC13aXRob3V0LW5hbWVzcGFjZS1zdGQucGF0Y2gKQEAgLTAsMCAr MSwxMiBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdtZW50X2RhdGFfaXRlcmF0b3IuaC50aGFuIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9m cmFnbWVudF9kYXRhX2l0ZXJhdG9yLmgKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5o LnRoYW4JMjAyMy0xMi0wNCAxMDoyMDo0NS4zNTA1NDA4OTcgKzAxMDAKKysrKyBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvZnJhZ21l bnRfZGF0YV9pdGVyYXRvci5oCTIwMjMtMTItMDQgMTA6MjM6MTcuMzM1MzM5NjcwICswMTAwCitA QCAtMjEsNyArMjEsNyBAQCBjbGFzcyBGcmFnbWVudERhdGFJdGVyYXRvckJhc2UgeworIAorICBw dWJsaWM6CisgICBleHBsaWNpdCBGcmFnbWVudERhdGFJdGVyYXRvckJhc2UoSGVhZCYgaGVhZCkg OiBmcmFnbWVudF9oZWFkXyhoZWFkKSB7fQorLSAgZXhwbGljaXQgRnJhZ21lbnREYXRhSXRlcmF0 b3JCYXNlKG51bGxwdHJfdCkge30KKysgIGV4cGxpY2l0IEZyYWdtZW50RGF0YUl0ZXJhdG9yQmFz ZShzdGQ6Om51bGxwdHJfdCkge30KKyAKKyAgIERhdGEqIEdldEZyYWdtZW50RGF0YSgpIGNvbnN0 IHsKKyAgICAgcmV0dXJuICFJc0RvbmUoKSA/ICZmcmFnbWVudF9oZWFkXy5hdChpZHhfKSA6IG51 bGxwdHI7CgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTIxLXB5dGhvbjMtaW52YWxpZC1lc2NhcGUt c2VxdWVuY2UucGF0Y2ggYi9jaHJvbWl1bS0xMjEtcHl0aG9uMy1pbnZhbGlkLWVzY2FwZS1zZXF1 ZW5jZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmJmNWI0Ci0t LSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTIxLXB5dGhvbjMtaW52YWxpZC1lc2NhcGUtc2Vx dWVuY2UucGF0Y2gKQEAgLTAsMCArMSw3NyBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2 Ny41Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6 ZS9odG1sX2dlbmVyYXRpb25fY29udHJvbGxlci5weS5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3 L3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL2h0 bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLnB5CistLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90 aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9odG1s X2dlbmVyYXRpb25fY29udHJvbGxlci5weS5tZQkyMDI0LTAxLTE1IDIwOjQ4OjI4LjE3NzM5NzEw MiArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQv Y29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xs ZXIucHkJMjAyNC0wMS0xNSAyMDo0ODo0Ni40Mjc3NjgzMjggKzAxMDAKK0BAIC0xOCw3ICsxOCw3 IEBAIGNsYXNzIEhUTUxHZW5lcmF0aW9uQ29udHJvbGxlcihvYmplY3QpOgorIAorICAgZGVmIEdl dEhUTUxGb3JJbmxpbmVTdHlsZXNoZWV0KHNlbGYsIGNvbnRlbnRzKToKKyAgICAgaWYgc2VsZi5j dXJyZW50X21vZHVsZSBpcyBOb25lOgorLSAgICAgIGlmIHJlLnNlYXJjaCgndXJsXCguK1wpJywg Y29udGVudHMpOgorKyAgICAgIGlmIHJlLnNlYXJjaChyJ3VybFwoLitcKScsIGNvbnRlbnRzKToK KyAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAnRGVmYXVsdCBIVE1MR2Vu ZXJhdGlvbkNvbnRyb2xsZXIgY2Fubm90IGhhbmRsZSBpbmxpbmUgc3R5bGUgdXJscycpCisgICAg ICAgcmV0dXJuIGNvbnRlbnRzCitkaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJk X3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL2pzX3V0aWxz LnB5Lm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9u L3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvanNfdXRpbHMucHkKKy0tLSBjaHJvbWl1bS0xMjEu MC42MTY3LjU3L3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVs Y2FuaXplL2pzX3V0aWxzLnB5Lm1lCTIwMjQtMDEtMTUgMjA6NDk6MzkuMzYzODQ1MDgzICswMTAw CisrKysgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24v cHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9qc191dGlscy5weQkyMDI0LTAxLTE1IDIwOjQ5OjU3 LjQwNzIxMjA5OCArMDEwMAorQEAgLTQsNCArNCw0IEBACisgCisgCisgZGVmIEVzY2FwZUpTSWZO ZWVkZWQoanMpOgorLSAgcmV0dXJuIGpzLnJlcGxhY2UoJzwvc2NyaXB0PicsICc8XC9zY3JpcHQ+ JykKKysgIHJldHVybiBqcy5yZXBsYWNlKHInPC9zY3JpcHQ+Jywgcic8XC9zY3JpcHQ+JykKK2Rp ZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9u L3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvcGFyc2VfaHRtbF9kZXBzLnB5Lm1lIGNocm9taXVt LTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9w eV92dWxjYW5pemUvcGFyc2VfaHRtbF9kZXBzLnB5CistLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41 Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9w YXJzZV9odG1sX2RlcHMucHkubWUJMjAyNC0wMS0xNSAyMDo1MDoxMS44MTk1MDUyNTQgKzAxMDAK KysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9w eV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3BhcnNlX2h0bWxfZGVwcy5weQkyMDI0LTAxLTE1IDIw OjUwOjM4LjYxMTA1MDIxMyArMDEwMAorQEAgLTI5Myw2ICsyOTMsNiBAQCBjbGFzcyBIVE1MTW9k dWxlUGFyc2VyKCk6CisgICAgICAgaHRtbCA9ICcnCisgICAgIGVsc2U6CisgICAgICAgaWYgaHRt bC5maW5kKCc8IC9zY3JpcHQ+JykgIT0gLTE6CistICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Vz Y2FwZSBzY3JpcHQgdGFncyB3aXRoIDxcL3NjcmlwdD4nKQorKyAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKHInRXNjYXBlIHNjcmlwdCB0YWdzIHdpdGggPFwvc2NyaXB0PicpCisgCisgICAgIHJldHVy biBIVE1MTW9kdWxlUGFyc2VyUmVzdWx0cyhodG1sKQorZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAu NjE2Ny41Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNh bml6ZS9zdHlsZV9zaGVldC5weS5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5 L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3N0eWxlX3NoZWV0LnB5 CistLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24v cHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9zdHlsZV9zaGVldC5weS5tZQkyMDI0LTAxLTE1IDIw OjQ4OjU5LjkxNzA0MjcwOSArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRf cGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvc3R5bGVfc2hl ZXQucHkJMjAyNC0wMS0xNSAyMDo0OToyNC40MDI1NDA3NjEgKzAxMDAKK0BAIC02MCw3ICs2MCw3 IEBAIGNsYXNzIFBhcnNlZFN0eWxlU2hlZXQob2JqZWN0KToKKyAgICAgICByZXR1cm4gJ3VybChk YXRhOmltYWdlLyVzO2Jhc2U2NCwlcyknICUgKGV4dFsxOl0sIGRhdGEuZGVjb2RlKCd1dGYtOCcp KQorIAorICAgICAjIEknbSBhc3N1bWluZyB3ZSBvbmx5IGhhdmUgdXJsKCkncyBhc3NvY2lhdGVk IHdpdGggaW1hZ2VzCistICAgIHJldHVybiByZS5zdWIoJ3VybFwoKD9QPHF1b3RlPiJ8XCd8KSg/ UDx1cmw+W14iXCcoKV0qKSg/UD1xdW90ZSlcKScsCisrICAgIHJldHVybiByZS5zdWIocid1cmxc KCg/UDxxdW90ZT4ifFwnfCkoP1A8dXJsPlteIlwnKCldKikoP1A9cXVvdGUpXCknLAorICAgICAg ICAgICAgICAgICAgIElubGluZVVybCwgc2VsZi5jb250ZW50cykKKyAKKyAgIGRlZiBBcHBlbmRE aXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKHNlbGYsIGRlcGVuZGVudF9maWxlbmFtZXMpOgor QEAgLTcyLDcgKzcyLDcgQEAgY2xhc3MgUGFyc2VkU3R5bGVTaGVldChvYmplY3QpOgorICAgICAg IHJhaXNlIEV4Y2VwdGlvbignQGltcG9ydHMgYXJlIG5vdCBzdXBwb3J0ZWQnKQorIAorICAgICBt YXRjaGVzID0gcmUuZmluZGFsbCgKKy0gICAgICAgICd1cmxcKCg/OlsifFwnXT8pKFteIlwnKCld KikoPzpbInxcJ10/KVwpJywKKysgICAgICAgIHIndXJsXCgoPzpbInxcJ10/KShbXiJcJygpXSop KD86WyJ8XCddPylcKScsCisgICAgICAgICBzZWxmLmNvbnRlbnRzKQorIAorICAgICBkZWYgcmVz b2x2ZV91cmwodXJsKToKK2RpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFy dHkvdnVsa2FuLWRlcHMvdnVsa2FuLXRvb2xzL3NyYy9zY3JpcHRzL2duL2dlbmVyYXRlX3Z1bGth bl9pY2RfanNvbi5weS5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L3Z1bGth bi1kZXBzL3Z1bGthbi10b29scy9zcmMvc2NyaXB0cy9nbi9nZW5lcmF0ZV92dWxrYW5faWNkX2pz b24ucHkKKy0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBz L3Z1bGthbi10b29scy9zcmMvc2NyaXB0cy9nbi9nZW5lcmF0ZV92dWxrYW5faWNkX2pzb24ucHku bWUJMjAyNC0wMS0xNSAyMDo1MDo1Ni44MTA0MjA0MDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjEu MC42MTY3LjU3L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi10b29scy9zcmMvc2NyaXB0 cy9nbi9nZW5lcmF0ZV92dWxrYW5faWNkX2pzb24ucHkJMjAyNC0wMS0xNSAyMDo1MjozMy41MDYz ODcyNjEgKzAxMDAKK0BAIC0yOCw3ICsyOCw3IEBAIGltcG9ydCBwbGF0Zm9ybQorIGltcG9ydCBz eXMKKyAKKyBkZWYgZ2xvYl9zbGFzaChkaXJuYW1lKToKKy0gICAgIiIiTGlrZSByZWd1bGFyIGds b2IgYnV0IHJlcGxhY2VzIFwgd2l0aCAvIGluIHJldHVybmVkIHBhdGhzLiIiIgorKyAgICAiIiJM aWtlIHJlZ3VsYXIgZ2xvYiBidXQgcmVwbGFjZXMgXFwgd2l0aCAvIGluIHJldHVybmVkIHBhdGhz LiIiIgorICAgICByZXR1cm4gW3MucmVwbGFjZSgnXFwnLCAnLycpIGZvciBzIGluIGdsb2IuZ2xv YihkaXJuYW1lKV0KKyAKKyBkZWYgbWFpbigpOgorZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2 Ny41Ny90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRhdGlvbi1sYXllcnMvc3Jj L3NjcmlwdHMvZ24vZ2VuZXJhdGVfdnVsa2FuX2xheWVyc19qc29uLnB5Lm1lIGNocm9taXVtLTEy MS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5 ZXJzL3NyYy9zY3JpcHRzL2duL2dlbmVyYXRlX3Z1bGthbl9sYXllcnNfanNvbi5weQorLS0tIGNo cm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlk YXRpb24tbGF5ZXJzL3NyYy9zY3JpcHRzL2duL2dlbmVyYXRlX3Z1bGthbl9sYXllcnNfanNvbi5w eS5tZQkyMDI0LTAxLTE1IDIwOjUyOjM4LjAxNjQ3OTAwMCArMDEwMAorKysrIGNocm9taXVtLTEy MS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5 ZXJzL3NyYy9zY3JpcHRzL2duL2dlbmVyYXRlX3Z1bGthbl9sYXllcnNfanNvbi5weQkyMDI0LTAx LTE1IDIwOjUyOjQ4Ljg2MzY5OTY0MCArMDEwMAorQEAgLTI4LDcgKzI4LDcgQEAgaW1wb3J0IHBs YXRmb3JtCisgaW1wb3J0IHN5cworIAorIGRlZiBnbG9iX3NsYXNoKGRpcm5hbWUpOgorLSAgICAi IiJMaWtlIHJlZ3VsYXIgZ2xvYiBidXQgcmVwbGFjZXMgXCB3aXRoIC8gaW4gcmV0dXJuZWQgcGF0 aHMuIiIiCisrICAgICIiIkxpa2UgcmVndWxhciBnbG9iIGJ1dCByZXBsYWNlcyBcXCB3aXRoIC8g aW4gcmV0dXJuZWQgcGF0aHMuIiIiCisgICAgIHJldHVybiBbcy5yZXBsYWNlKCdcXCcsICcvJykg Zm9yIHMgaW4gZ2xvYi5nbG9iKGRpcm5hbWUpXQorIAorIGRlZiBtYWluKCk6CgpkaWZmIC0tZ2l0 IGEvY2hyb21pdW0tMTIxLXJldmVydC1hdjFlbmMtZWw5LnBhdGNoIGIvY2hyb21pdW0tMTIxLXJl dmVydC1hdjFlbmMtZWw5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjNkZWJiZTYKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjEtcmV2ZXJ0LWF2MWVuYy1l bDkucGF0Y2gKQEAgLTAsMCArMSwxMjEgQEAKK2RpZmYgLXVwIGNocm9taXVtLTExNC4wLjU3MzUu MzUvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3ZpZGVvX2VuY29kZV9hY2NlbGVyYXRvci5jYy5tZSBj aHJvbWl1bS0xMTQuMC41NzM1LjM1L21lZGlhL2dwdS92YWFwaS92YWFwaV92aWRlb19lbmNvZGVf YWNjZWxlcmF0b3IuY2MKKy0tLSBjaHJvbWl1bS0xMTQuMC41NzM1LjM1L21lZGlhL2dwdS92YWFw aS92YWFwaV92aWRlb19lbmNvZGVfYWNjZWxlcmF0b3IuY2MubWUJMjAyMy0wNS0yMSAxMDowNTow MC4zNTc4NjAzMjkgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTQuMC41NzM1LjM1L21lZGlhL2dwdS92 YWFwaS92YWFwaV92aWRlb19lbmNvZGVfYWNjZWxlcmF0b3IuY2MJMjAyMy0wNS0yMSAxMDoxODow OS42NjU0MzI3MzUgKzAyMDAKK0BAIC00MSw3ICs0MSw2IEBACisgI2luY2x1ZGUgIm1lZGlhL2dw dS9ncHVfdmlkZW9fZW5jb2RlX2FjY2VsZXJhdG9yX2hlbHBlcnMuaCIKKyAjaW5jbHVkZSAibWVk aWEvZ3B1L2gyNjRfZHBiLmgiCisgI2luY2x1ZGUgIm1lZGlhL2dwdS9tYWNyb3MuaCIKKy0jaW5j bHVkZSAibWVkaWEvZ3B1L3ZhYXBpL2F2MV92YWFwaV92aWRlb19lbmNvZGVyX2RlbGVnYXRlLmgi CisgI2luY2x1ZGUgIm1lZGlhL2dwdS92YWFwaS9oMjY0X3ZhYXBpX3ZpZGVvX2VuY29kZXJfZGVs ZWdhdGUuaCIKKyAjaW5jbHVkZSAibWVkaWEvZ3B1L3ZhYXBpL3ZhX3N1cmZhY2UuaCIKKyAjaW5j bHVkZSAibWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX2NvbW1vbi5oIgorQEAgLTIwMCw3ICsxOTksNyBA QCBib29sIFZhYXBpVmlkZW9FbmNvZGVBY2NlbGVyYXRvcjo6SW5pdGlhCisgCisgICBjb25zdCBW aWRlb0NvZGVjIGNvZGVjID0gVmlkZW9Db2RlY1Byb2ZpbGVUb1ZpZGVvQ29kZWMoY29uZmlnLm91 dHB1dF9wcm9maWxlKTsKKyAgIGlmIChjb2RlYyAhPSBWaWRlb0NvZGVjOjprSDI2NCAmJiBjb2Rl YyAhPSBWaWRlb0NvZGVjOjprVlA4ICYmCistICAgICAgY29kZWMgIT0gVmlkZW9Db2RlYzo6a1ZQ OSAmJiBjb2RlYyAhPSBWaWRlb0NvZGVjOjprQVYxKSB7CisrICAgICAgY29kZWMgIT0gVmlkZW9D b2RlYzo6a1ZQOSkgeworICAgICBNRURJQV9MT0coRVJST1IsIG1lZGlhX2xvZy5nZXQoKSkKKyAg ICAgICAgIDw8ICJVbnN1cHBvcnRlZCBwcm9maWxlOiAiIDw8IEdldFByb2ZpbGVOYW1lKGNvbmZp Zy5vdXRwdXRfcHJvZmlsZSk7CisgICAgIHJldHVybiBmYWxzZTsKK0BAIC0yOTMsNyArMjkyLDYg QEAgdm9pZCBWYWFwaVZpZGVvRW5jb2RlQWNjZWxlcmF0b3I6OkluaXRpYQorICAgICAgICAgYnJl YWs7CisgICAgICAgY2FzZSBWaWRlb0NvZGVjOjprVlA4OgorICAgICAgIGNhc2UgVmlkZW9Db2Rl Yzo6a1ZQOToKKy0gICAgICBjYXNlIFZpZGVvQ29kZWM6OmtBVjE6CisgICAgICAgICBtb2RlID0g VmFhcGlXcmFwcGVyOjprRW5jb2RlQ29uc3RhbnRRdWFudGl6YXRpb25QYXJhbWV0ZXI7CisgICAg ICAgICBicmVhazsKKyAgICAgICBkZWZhdWx0OgorQEAgLTM1NiwxMiArMzU0LDYgQEAgdm9pZCBW YWFwaVZpZGVvRW5jb2RlQWNjZWxlcmF0b3I6OkluaXRpYQorICAgICAgICAgICAgIHZhYXBpX3dy YXBwZXJfLCBlcnJvcl9jYik7CisgICAgICAgfQorICAgICAgIGJyZWFrOworLSAgICBjYXNlIFZp ZGVvQ29kZWM6OmtBVjE6CistICAgICAgaWYgKCFJc0NvbmZpZ3VyZWRGb3JUZXN0aW5nKCkpIHsK Ky0gICAgICAgIGVuY29kZXJfID0gc3RkOjptYWtlX3VuaXF1ZTxBVjFWYWFwaVZpZGVvRW5jb2Rl ckRlbGVnYXRlPigKKy0gICAgICAgICAgICB2YWFwaV93cmFwcGVyXywgZXJyb3JfY2IpOworLSAg ICAgIH0KKy0gICAgICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICBOT1RSRUFDSEVEKCkg PDwgIlVuc3VwcG9ydGVkIGNvZGVjIHR5cGUgIiA8PCBHZXRDb2RlY05hbWUob3V0cHV0X2NvZGVj Xyk7CisgICAgICAgcmV0dXJuOworQEAgLTgzNSwxMCArODI3LDYgQEAgVmFhcGlWaWRlb0VuY29k ZUFjY2VsZXJhdG9yOjpDcmVhdGVFbmNvZAorICAgICBjYXNlIFZpZGVvQ29kZWM6OmtWUDk6Cisg ICAgICAgcGljdHVyZSA9IG5ldyBWYWFwaVZQOVBpY3R1cmUoc3RkOjptb3ZlKHJlY29uc3RydWN0 ZWRfc3VyZmFjZSkpOworICAgICAgIGJyZWFrOworLSAgICBjYXNlIFZpZGVvQ29kZWM6OmtBVjE6 CistICAgICAgcGljdHVyZSA9IG5ldyBWYWFwaUFWMVBpY3R1cmUoLypkaXNwbGF5X3ZhX3N1cmZh Y2U9Ki9udWxscHRyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6 bW92ZShyZWNvbnN0cnVjdGVkX3N1cmZhY2UpKTsKKy0gICAgICBicmVhazsKKyAgICAgZGVmYXVs dDoKKyAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgIH0KK2RpZmYgLXVwIGNocm9taXVtLTExNC4w LjU3MzUuMzUvbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduLnJldmVydC1hdjFlbmMgY2hyb21pdW0t MTE0LjAuNTczNS4zNS9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24KKy0tLSBjaHJvbWl1bS0xMTQu MC41NzM1LjM1L21lZGlhL2dwdS92YWFwaS9CVUlMRC5nbi5yZXZlcnQtYXYxZW5jCTIwMjMtMDUt MTggMDA6Mzc6NTcuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE0LjAuNTczNS4zNS9t ZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24JMjAyMy0wNS0yMCAxMzoxNDoxMC43NTYxODM2MjYgKzAy MDAKK0BAIC0zOCw4ICszOCw2IEBAIHNvdXJjZV9zZXQoInZhYXBpIikgeworICAgc291cmNlcyA9 IFsKKyAgICAgImF2MV92YWFwaV92aWRlb19kZWNvZGVyX2RlbGVnYXRlLmNjIiwKKyAgICAgImF2 MV92YWFwaV92aWRlb19kZWNvZGVyX2RlbGVnYXRlLmgiLAorLSAgICAiYXYxX3ZhYXBpX3ZpZGVv X2VuY29kZXJfZGVsZWdhdGUuY2MiLAorLSAgICAiYXYxX3ZhYXBpX3ZpZGVvX2VuY29kZXJfZGVs ZWdhdGUuaCIsCisgICAgICJoMjY0X3ZhYXBpX3ZpZGVvX2RlY29kZXJfZGVsZWdhdGUuY2MiLAor ICAgICAiaDI2NF92YWFwaV92aWRlb19kZWNvZGVyX2RlbGVnYXRlLmgiLAorICAgICAiaDI2NF92 YWFwaV92aWRlb19lbmNvZGVyX2RlbGVnYXRlLmNjIiwKK0BAIC0xMDcsNyArMTA1LDYgQEAgc291 cmNlX3NldCgidmFhcGkiKSB7CisgICAgICIvL21lZGlhL2dwdS9jaHJvbWVvczpjb21tb24iLAor ICAgICAiLy9tZWRpYS9wYXJzZXJzIiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3BwL2JpbmRpbmdz IiwKKy0gICAgIi8vdGhpcmRfcGFydHkvbGliYW9tOmxpYmFvbXJjIiwKKyAgICAgIi8vdGhpcmRf cGFydHkvbGlidnB4OmxpYnZweHJjIiwKKyAgICAgIi8vdGhpcmRfcGFydHkvbGlieXV2IiwKKyAg ICAgIi8vdWkvZ2Z4IiwKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L21lZGlhL2dw dS92YWFwaS92YWFwaV93cmFwcGVyLmNjLm1lIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L21lZGlh L2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv bWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuY2MubWUJMjAyMy0xMS0wMiAxNTowODozMC45 MjEzMjU3NDcgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9tZWRpYS9ncHUvdmFh cGkvdmFhcGlfd3JhcHBlci5jYwkyMDIzLTExLTAyIDE1OjA5OjQ2LjEyMzY5MjYwMiArMDEwMAor QEAgLTMxMjQsNiArMzEyNCw3IEBAIGJvb2wgVmFhcGlXcmFwcGVyOjpHZXRTdXBwb3J0ZWRQYWNr ZWRIZWEKKyAgIHJldHVybiB0cnVlOworIH0KKyAKKysjaWYgMCAvL2Rpc2FibGUgQVYxIGR1ZSB0 byBvbGQgbGlidmEgb24gZXBlbDkKKyBib29sIFZhYXBpV3JhcHBlcjo6R2V0TWluQVYxU2VnbWVu dFNpemUoVmlkZW9Db2RlY1Byb2ZpbGUgcHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QmIG1pbl9zZWdfc2l6ZSkgeworICAgQ0hFQ0soIWVu Zm9yY2Vfc2VxdWVuY2VfYWZmaW5pdHlfIHx8CitAQCAtMzE0MSw2ICszMTQyLDcgQEAgYm9vbCBW YWFwaVdyYXBwZXI6OkdldE1pbkFWMVNlZ21lbnRTaXplKAorIAorICAgcmV0dXJuIHRydWU7Cisg fQorKyNlbmRpZgorIAorIGJvb2wgVmFhcGlXcmFwcGVyOjpCbGl0U3VyZmFjZShjb25zdCBWQVN1 cmZhY2UmIHZhX3N1cmZhY2Vfc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBWQVN1cmZhY2UmIHZhX3N1cmZhY2VfZGVzdCwKK2RpZmYgLXVwIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgubWUgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaAorLS0tIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgubWUJMjAyMy0x MS0wMiAxNTowOTo1OC45NzM5MjgzOTUgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5oCTIwMjMtMTEtMDIgMTU6MTA6NDUuOTkw NzkxMTE0ICswMTAwCitAQCAtNTUzLDkgKzU1MywxMSBAQCBjbGFzcyBNRURJQV9HUFVfRVhQT1JU IFZhYXBpV3JhcHBlcgorICAgICAgIGJvb2wmIHBhY2tlZF9wcHMsCisgICAgICAgYm9vbCYgcGFj a2VkX3NsaWNlKTsKKyAKKysjaWYgMCAvL2Rpc2FibGUgQVYxIGR1ZSB0byBvbGQgbGlidmEgb24g ZXBlbDkKKyAgIC8vIEdldHMgdGhlIG1pbmltdW0gc2VnbWVudCBibG9jayBzaXplIHN1cHBvcnRl ZCBmb3IgQVYxIGVuY29kaW5nLgorICAgW1tub2Rpc2NhcmRdXSBib29sIEdldE1pbkFWMVNlZ21l bnRTaXplKFZpZGVvQ29kZWNQcm9maWxlIHByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QmIG1pbl9zZWdfc2l6ZSk7CisrI2VuZGlmCisg CisgICAvLyBCbGl0cyBhIFZBU3VyZmFjZSB8dmFfc3VyZmFjZV9zcmN8IGludG8gYW5vdGhlciBW QVN1cmZhY2UKKyAgIC8vIHx2YV9zdXJmYWNlX2Rlc3R8IGFwcGx5aW5nIHBpeGVsIGZvcm1hdCBj b252ZXJzaW9uLCBjcm9wcGluZworZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9tZWRp YS9ncHUvQlVJTEQuZ24udGhhbiBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L21lZGlhL2dwdS9CVUlM RC5nbgorLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvbWVkaWEvZ3B1L0JVSUxELmduLnRoYW4J MjAyNC0wMS0xNSAyMjowOToyMS4wMTAwMjkxNDcgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjEuMC42 MTY3LjU3L21lZGlhL2dwdS9CVUlMRC5nbgkyMDI0LTAxLTE1IDIyOjEwOjA1LjE5MjI1OTM0MCAr MDEwMAorQEAgLTM5MSwxMCArMzkxLDcgQEAgc291cmNlX3NldCgiY29tbW9uIikgeworICAgICAg ICJ2cDlfc3ZjX2xheWVyc19zdGF0ZWZ1bC5oIiwKKyAgICAgXQorICAgICBjb25maWdzICs9IFsg Ii8vdGhpcmRfcGFydHkvbGlidnB4OmxpYnZweF9jb25maWciIF0KKy0gICAgZGVwcyArPSBbCist ICAgICAgIi8vdGhpcmRfcGFydHkvbGliYW9tOmxpYmFvbXJjIiwKKy0gICAgICAiLy90aGlyZF9w YXJ0eS9saWJ2cHg6bGlidnB4cmMiLAorLSAgICBdCisrICAgIGRlcHMgKz0gWyAiLy90aGlyZF9w YXJ0eS9saWJ2cHg6bGlidnB4cmMiIF0KKyAgIH0KKyAgIGlmICh1c2VfbGliZ2F2MV9wYXJzZXIp IHsKKyAgICAgc291cmNlcyArPSBbCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTIxLXJ1c3QtY2xh bmdfbGliLnBhdGNoIGIvY2hyb21pdW0tMTIxLXJ1c3QtY2xhbmdfbGliLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMzI3ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9j aHJvbWl1bS0xMjEtcnVzdC1jbGFuZ19saWIucGF0Y2gKQEAgLTAsMCArMSw1NSBAQAorZGlmZiAt dXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9idWlsZC9jb25maWcvY2xhbmcvQlVJTEQuZ24ucnVz dC1jbGFuZ19saWIgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9idWlsZC9jb25maWcvY2xhbmcvQlVJ TEQuZ24KKy0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2J1aWxkL2NvbmZpZy9jbGFuZy9CVUlM RC5nbi5ydXN0LWNsYW5nX2xpYgkyMDI0LTAxLTEwIDE2OjQzOjAxLjAwMDAwMDAwMCArMDEwMAor KysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvYnVpbGQvY29uZmlnL2NsYW5nL0JVSUxELmduCTIw MjQtMDEtMjAgMTk6NTE6MzguNDgxOTkyNzk5ICswMTAwCitAQCAtMTEyLDYgKzExMiw3IEBAIHRl bXBsYXRlKCJjbGFuZ19saWIiKSB7CisgICAgICAgX3ByZWZpeCA9ICJsaWIiCisgICAgICAgX3N1 ZmZpeCA9ICIiCisgICAgICAgX2V4dCA9ICJhIgorKyAgICAgIF9saWJwcmVmaXggPSAiIgorICAg ICAgIGlmIChpc193aW4pIHsKKyAgICAgICAgIF9kaXIgPSAid2luZG93cyIKKyAgICAgICAgIF9w cmVmaXggPSAiIgorQEAgLTEyNyw3ICsxMjgsMzMgQEAgdGVtcGxhdGUoImNsYW5nX2xpYiIpIHsK KyAgICAgICAgIH0KKyAgICAgICB9IGVsc2UgaWYgKGlzX2FwcGxlKSB7CisgICAgICAgICBfZGly ID0gImRhcndpbiIKKy0gICAgICB9IGVsc2UgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zKSB7 CisrICAgICAgfSBlbHNlIGlmIChpc19saW51eCkgeworKyAgICAgICAgaWYgKGN1cnJlbnRfY3B1 ID09ICJ4NjQiKSB7CisrICAgICAgICAgIF9kaXIgPSAieDg2XzY0LXJlZGhhdC1saW51eC1nbnUi CisrICAgICAgICAgIF9zdWZmaXggPSIteDg2XzY0IgorKyAgICAgICAgfSBlbHNlIGlmIChjdXJy ZW50X2NwdSA9PSAieDg2IikgeworKyAgICAgICAgICBfZGlyID0gImkzODYtcmVkaGF0LWxpbnV4 LWdudSIKKysgICAgICAgICAgX3N1ZmZpeCA9ICItaTM4NiIKKysgICAgICAgIH0gZWxzZSBpZiAo Y3VycmVudF9jcHUgPT0gImFybTY0IikgeworKyAgICAgICAgICBfZGlyID0gImFhcmNoNjQtcmVk aGF0LWxpbnV4LWdudSIKKysgICAgICAgICAgX3N1ZmZpeCA9ICItYWFyY2g2NCIKKysgICAgICAg IH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIpIHsKKysgICAgICAgICAgX2RpciA9ICJh cm1oZi1yZWRoYXQtbGludXgtZ251IgorKyAgICAgICAgICBfc3VmZml4ID0gIi1hcm1oZiIKKysg ICAgICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICAgICAgICBf ZGlyID0gInBvd2VycGM2NGxlLXJlZGhhdC1saW51eC1nbnUiCisrICAgICAgICAgIF9zdWZmaXgg PSAiLXBvd2VycGM2NGxlIgorKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgYXNzZXJ0KGZh bHNlKSAgIyBVbmhhbmRsZWQgY3B1IHR5cGUKKysgICAgICAgIH0KKysgICAgICAgICMgZGlmZmVy ZW50IGNsYW5nIGxpYiBkaXIgaW4gZmVkb3JhL2VwZWwKKysgICAgICAgIGlmIChjbGFuZ192ZXJz aW9uID09ICIxNyIpIHsKKysgICAgICAgICAgX3N1ZmZpeCA9ICIiCisrICAgICAgICB9IGVsc2Ug aWYgKGNsYW5nX3ZlcnNpb24gPT0gIjE2IiB8fCBjbGFuZ192ZXJzaW9uID09ICIxNCIpIHsKKysg ICAgICAgICAgX2xpYnByZWZpeCA9ICI2NCIKKysgICAgICAgICAgX2RpciA9ICIiCisrICAgICAg ICB9CisrICAgICAgfSBlbHNlIGlmIChpc19jaHJvbWVvcykgeworICAgICAgICAgaWYgKGN1cnJl bnRfY3B1ID09ICJ4NjQiKSB7CisgICAgICAgICAgIF9kaXIgPSAieDg2XzY0LXVua25vd24tbGlu dXgtZ251IgorICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IikgeworQEAg LTE2Niw3ICsxOTMsNyBAQCB0ZW1wbGF0ZSgiY2xhbmdfbGliIikgeworICAgICAgICAgYXNzZXJ0 KGZhbHNlKSAgIyBVbmhhbmRsZWQgdGFyZ2V0IHBsYXRmb3JtCisgICAgICAgfQorIAorLSAgICAg IF9jbGFuZ19saWJfZGlyID0gIiRjbGFuZ19iYXNlX3BhdGgvbGliL2NsYW5nLyRjbGFuZ192ZXJz aW9uL2xpYiIKKysgICAgICBfY2xhbmdfbGliX2RpciA9ICIkY2xhbmdfYmFzZV9wYXRoL2xpYiR7 X2xpYnByZWZpeH0vY2xhbmcvJGNsYW5nX3ZlcnNpb24vbGliIgorICAgICAgIF9saWJfZmlsZSA9 ICIke19wcmVmaXh9Y2xhbmdfcnQuJHtfbGlibmFtZX0ke19zdWZmaXh9LiR7X2V4dH0iCisgICAg ICAgbGlicyA9IFsgIiRfY2xhbmdfbGliX2Rpci8kX2Rpci8kX2xpYl9maWxlIiBdCisgICAgIH0K CmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMjEtc3lzdGVtLW9sZC1mZm1wZWcucGF0Y2ggYi9jaHJv bWl1bS0xMjEtc3lzdGVtLW9sZC1mZm1wZWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMDM5OGU1YgotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTEyMS1zeXN0 ZW0tb2xkLWZmbXBlZy5wYXRjaApAQCAtMCwwICsxLDM0IEBACitkaWZmIC11cCBjaHJvbWl1bS0x MjEuMC42MTY3LjU3L21lZGlhL2ZmbXBlZy9mZm1wZWdfY29tbW9uLmNjLm1lIGNocm9taXVtLTEy MS4wLjYxNjcuNTcvbWVkaWEvZmZtcGVnL2ZmbXBlZ19jb21tb24uY2MKKy0tLSBjaHJvbWl1bS0x MjEuMC42MTY3LjU3L21lZGlhL2ZmbXBlZy9mZm1wZWdfY29tbW9uLmNjLm1lCTIwMjQtMDEtMTYg MTA6NTQ6MzguOTk0MTczOTExICswMTAwCisrKysgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9tZWRp YS9mZm1wZWcvZmZtcGVnX2NvbW1vbi5jYwkyMDI0LTAxLTE2IDExOjA2OjIwLjk3NDE2MDYxMiAr MDEwMAorQEAgLTcxMCw4ICs3MTAsMTMgQEAgYm9vbCBBVlN0cmVhbVRvVmlkZW9EZWNvZGVyQ29u ZmlnKGNvbnN0CisgICB9CisgCisgICBWaWRlb1RyYW5zZm9ybWF0aW9uIHZpZGVvX3RyYW5zZm9y bWF0aW9uID0gVmlkZW9UcmFuc2Zvcm1hdGlvbigpOworKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05f SU5UIDwgQVZfVkVSU0lPTl9JTlQoNjAsIDMxLCAxMDIpCisrICBmb3IgKGludCBpID0gMDsgaSA8 IHN0cmVhbS0+bmJfc2lkZV9kYXRhOyBpKyspIHsKKysgICAgY29uc3QgYXV0byYgc2lkZV9kYXRh ID0gc3RyZWFtLT5zaWRlX2RhdGFbaV07CisrI2Vsc2UKKyAgIGZvciAoaW50IGkgPSAwOyBpIDwg c3RyZWFtLT5jb2RlY3Bhci0+bmJfY29kZWRfc2lkZV9kYXRhOyArK2kpIHsKKyAgICAgY29uc3Qg YXV0byYgc2lkZV9kYXRhID0gc3RyZWFtLT5jb2RlY3Bhci0+Y29kZWRfc2lkZV9kYXRhW2ldOwor KyNlbmRpZgorICAgICBzd2l0Y2ggKHNpZGVfZGF0YS50eXBlKSB7CisgICAgICAgY2FzZSBBVl9Q S1RfREFUQV9ESVNQTEFZTUFUUklYOiB7CisgICAgICAgICBDSEVDS19FUShzaWRlX2RhdGEuc2l6 ZSwgc2l6ZW9mKGludDMyX3QpICogMyAqIDMpOworZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2 Ny41Ny9tZWRpYS9maWx0ZXJzL2F1ZGlvX3ZpZGVvX21ldGFkYXRhX2V4dHJhY3Rvci5jYy5tZSBj aHJvbWl1bS0xMjEuMC42MTY3LjU3L21lZGlhL2ZpbHRlcnMvYXVkaW9fdmlkZW9fbWV0YWRhdGFf ZXh0cmFjdG9yLmNjCistLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9tZWRpYS9maWx0ZXJzL2F1 ZGlvX3ZpZGVvX21ldGFkYXRhX2V4dHJhY3Rvci5jYy5tZQkyMDI0LTAxLTE2IDExOjEyOjI3LjUy MTUzNDE1MSArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvbWVkaWEvZmlsdGVycy9h dWRpb192aWRlb19tZXRhZGF0YV9leHRyYWN0b3IuY2MJMjAyNC0wMS0xNiAxMToxNTowOC43MTcz MzcwMjYgKzAxMDAKK0BAIC0xMTMsOCArMTEzLDEzIEBAIGJvb2wgQXVkaW9WaWRlb01ldGFkYXRh RXh0cmFjdG9yOjpFeHRyYWMKKyAgICAgaWYgKCFzdHJlYW0pCisgICAgICAgY29udGludWU7Cisg CisrI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgPCBBVl9WRVJTSU9OX0lOVCg2MCwgMzEsIDEw MikKKysgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzdHJlYW0tPm5iX3NpZGVfZGF0YTsgaisrKSB7 CisrICAgICAgY29uc3QgQVZQYWNrZXRTaWRlRGF0YSYgc2QgPSBzdHJlYW0tPnNpZGVfZGF0YVtq XTsKKysjZWxzZQorICAgICBmb3IgKGludCBqID0gMDsgaiA8IHN0cmVhbS0+Y29kZWNwYXItPm5i X2NvZGVkX3NpZGVfZGF0YTsgaisrKSB7CisgICAgICAgY29uc3QgQVZQYWNrZXRTaWRlRGF0YSYg c2QgPSBzdHJlYW0tPmNvZGVjcGFyLT5jb2RlZF9zaWRlX2RhdGFbal07CisrI2VuZGlmCisgICAg ICAgaWYgKHNkLnR5cGUgPT0gQVZfUEtUX0RBVEFfRElTUExBWU1BVFJJWCkgeworICAgICAgICAg Q0hFQ0tfRVEoc2Quc2l6ZSwgc2l6ZW9mKGludDMyX3QpICogMyAqIDMpOworICAgICAgICAgcm90 YXRpb25fID0gVmlkZW9UcmFuc2Zvcm1hdGlvbjo6RnJvbUZGbXBlZ0Rpc3BsYXlNYXRyaXgoCgpk aWZmIC0tZ2l0IGEvY2hyb21pdW0tMTIxLXR5cGVuYW1lLnBhdGNoIGIvY2hyb21pdW0tMTIxLXR5 cGVuYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4M2U2MmMK LS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMjEtdHlwZW5hbWUucGF0Y2gKQEAgLTAsMCAr MSwyNTkgQEAKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvY29udGFpbmVycy9tYXBf dXRpbC5oLm1lCTIwMjMtMTItMDIgMTk6MDA6MTkuNjk2ODAxNTYzICswMTAwCisrKysgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9iYXNlL2NvbnRhaW5lcnMvbWFwX3V0aWwuaAkyMDIzLTEyLTAyIDE5 OjAwOjQ3LjA0OTMzNzU0NyArMDEwMAorQEAgLTQyLDcgKzQyLDcgQEAKKyB0ZW1wbGF0ZSA8dHlw ZW5hbWUgTWFwLAorICAgICAgICAgICB0eXBlbmFtZSBLZXksCisgICAgICAgICAgIHR5cGVuYW1l IE1hcHBlZEVsZW1lbnRUeXBlID0KKy0gICAgICAgICAgICAgIHN0ZDo6cG9pbnRlcl90cmFpdHM8 aW50ZXJuYWw6Ok1hcHBlZFR5cGU8TWFwPj46OmVsZW1lbnRfdHlwZT4KKysgICAgICAgICAgICAg IHR5cGVuYW1lIHN0ZDo6cG9pbnRlcl90cmFpdHM8aW50ZXJuYWw6Ok1hcHBlZFR5cGU8TWFwPj46 OmVsZW1lbnRfdHlwZT4KKyBjb25zdGV4cHIgY29uc3QgTWFwcGVkRWxlbWVudFR5cGUqIEZpbmRQ dHJPck51bGwoY29uc3QgTWFwJiBtYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IEtleSYga2V5KSB7CisgICBhdXRvIGl0ID0gbWFwLmZp bmQoa2V5KTsKK0BAIC01OCw3ICs1OCw3IEBACisgdGVtcGxhdGUgPHR5cGVuYW1lIE1hcCwKKyAg ICAgICAgICAgdHlwZW5hbWUgS2V5LAorICAgICAgICAgICB0eXBlbmFtZSBNYXBwZWRFbGVtZW50 VHlwZSA9CistICAgICAgICAgICAgICBzdGQ6OnBvaW50ZXJfdHJhaXRzPGludGVybmFsOjpNYXBw ZWRUeXBlPE1hcD4+OjplbGVtZW50X3R5cGU+CisrICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6 OnBvaW50ZXJfdHJhaXRzPGludGVybmFsOjpNYXBwZWRUeXBlPE1hcD4+OjplbGVtZW50X3R5cGU+ CisgY29uc3RleHByIE1hcHBlZEVsZW1lbnRUeXBlKiBGaW5kUHRyT3JOdWxsKE1hcCYgbWFwLCBj b25zdCBLZXkmIGtleSkgeworICAgYXV0byBpdCA9IG1hcC5maW5kKGtleSk7CisgICByZXR1cm4g aXQgIT0gbWFwLmVuZCgpID8gc3RkOjp0b19hZGRyZXNzKGl0LT5zZWNvbmQpIDogbnVsbHB0cjsK K2RpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93bmxvYWQv YnViYmxlL2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYy5tZSBjaHJvbWl1bS0xMTUu MC41NzkwLjI0L2Nocm9tZS9icm93c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVf dXBkYXRlX3NlcnZpY2UuY2MKKy0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L2Nocm9tZS9icm93 c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfdXBkYXRlX3NlcnZpY2UuY2MubWUJ MjAyMy0wNi0xNyAxNDo1MDo1Ni4zNDI1OTE3MDIgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTUuMC41 NzkwLjI0L2Nocm9tZS9icm93c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfdXBk YXRlX3NlcnZpY2UuY2MJMjAyMy0wNi0xNyAxNDo1Nzo0OC4wMjQzNzczNzUgKzAyMDAKK0BAIC05 MSw3ICs5MSw3IEBAIEl0ZW1Tb3J0S2V5IEdldFNvcnRLZXkoY29uc3QgSXRlbSYgaXRlbSkKKyAv LyBIZWxwZXIgdG8gZ2V0IGFuIGl0ZXJhdG9yIHRvIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGNh Y2hlLiBUaGUgY2FjaGUKKyAvLyBtdXN0IG5vdCBiZSBlbXB0eS4KKyB0ZW1wbGF0ZSA8dHlwZW5h bWUgSXRlbT4KKy1Tb3J0ZWRJdGVtczxJdGVtPjo6Y29uc3RfaXRlcmF0b3IgR2V0TGFzdEl0ZXIo Y29uc3QgU29ydGVkSXRlbXM8SXRlbT4mIGNhY2hlKSB7CisrdHlwZW5hbWUgU29ydGVkSXRlbXM8 SXRlbT46OmNvbnN0X2l0ZXJhdG9yIEdldExhc3RJdGVyKGNvbnN0IFNvcnRlZEl0ZW1zPEl0ZW0+ JiBjYWNoZSkgeworICAgQ0hFQ0soIWNhY2hlLmVtcHR5KCkpOworICAgYXV0byBpdCA9IGNhY2hl LmVuZCgpOworICAgcmV0dXJuIHN0ZDo6cHJldihpdCk7CitAQCAtOTY3LDkgKzk2Nyw5IEBAIGJv b2wgRG93bmxvYWRCdWJibGVVcGRhdGVTZXJ2aWNlOjpDYWNoZU0KKyB9CisgCisgdGVtcGxhdGUg PHR5cGVuYW1lIElkLCB0eXBlbmFtZSBJdGVtPgorLVNvcnRlZEl0ZW1zPEl0ZW0+OjppdGVyYXRv cgorK3R5cGVuYW1lIFNvcnRlZEl0ZW1zPEl0ZW0+OjppdGVyYXRvcgorIERvd25sb2FkQnViYmxl VXBkYXRlU2VydmljZTo6Q2FjaGVNYW5hZ2VyOjpSZW1vdmVJdGVtRnJvbUNhY2hlQnlJdGVyKAor LSAgICBTb3J0ZWRJdGVtczxJdGVtPjo6aXRlcmF0b3IgaXRlciwKKysgICAgdHlwZW5hbWUgU29y dGVkSXRlbXM8SXRlbT46Oml0ZXJhdG9yIGl0ZXIsCisgICAgIFNvcnRlZEl0ZW1zPEl0ZW0+JiBj YWNoZSwKKyAgICAgSXRlck1hcDxJZCwgSXRlbT4mIGl0ZXJfbWFwKSB7CisgICBDSEVDSyhpdGVy ICE9IGNhY2hlLmVuZCgpKTsKK2RpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29tcG9u ZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZSBj aHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUv dGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgKKy0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbXBv bmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgubWUJ MjAyMy0wNi0xOCAyMTo1Mjo1My41MTU2MjUyMzcgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTUuMC41 NzkwLjMyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4 ZWN1dG9yLmgJMjAyMy0wNi0xOCAyMTo1MzowNi44ODE4ODEyOTMgKzAyMDAKK0BAIC0xODksNyAr MTg5LDcgQEAgY2xhc3MgVEZMaXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2RlbAorICAgdm9p ZCBTZW5kRm9yQmF0Y2hFeGVjdXRpb24oCisgICAgICAgQmF0Y2hFeGVjdXRpb25DYWxsYmFjayBj YWxsYmFja19vbl9jb21wbGV0ZSwKKyAgICAgICBiYXNlOjpUaW1lVGlja3Mgc3RhcnRfdGltZSwK Ky0gICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5w dXRWZWN0b3IgaW5wdXRzKQorKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlw ZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCisgICAgICAgb3ZlcnJp ZGUgeworICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVuc1Rhc2tzSW5DdXJy ZW50U2VxdWVuY2UoKSk7CisgICAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uoc2Vx dWVuY2VfY2hlY2tlcl8pOworZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2h0bWwvcGFyc2VyL2h0bWxfZG9jdW1lbnRfcGFyc2Vy X2Zhc3RwYXRoLmNjLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxpbmsv cmVuZGVyZXIvY29yZS9odG1sL3BhcnNlci9odG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0aC5j YworLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv Y29yZS9odG1sL3BhcnNlci9odG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0aC5jYy5tZQkyMDIz LTA2LTE5IDEwOjAzOjMyLjMxOTIxODY3OCArMDIwMAorKysrIGNocm9taXVtLTExNS4wLjU3OTAu MzIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9odG1sL3BhcnNlci9odG1sX2RvY3Vt ZW50X3BhcnNlcl9mYXN0cGF0aC5jYwkyMDIzLTA2LTE5IDEwOjA0OjEyLjAyMzk0MjIzMiArMDIw MAorQEAgLTE2OSw3ICsxNjksNyBAQCBjbGFzcyBIVE1MRmFzdFBhdGhQYXJzZXIgeworICAgdXNp bmcgU3BhbiA9IGJhc2U6OnNwYW48Y29uc3QgQ2hhcj47CisgICB1c2luZyBVU3BhbiA9IGJhc2U6 OnNwYW48Y29uc3QgVUNoYXI+OworICAgLy8gMzIgbWF0Y2hlcyB0aGF0IHVzZWQgYnkgSFRNTFRv a2VuOjpBdHRyaWJ1dGUuCistICB0eXBlZGVmIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19zYW1l X3Y8Q2hhciwgVUNoYXI+LAorKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0 ZDo6aXNfc2FtZV92PENoYXIsIFVDaGFyPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBV Q2hhckxpdGVyYWxCdWZmZXI8MzI+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExDaGFy TGl0ZXJhbEJ1ZmZlcjwzMj4+Ojp0eXBlIExpdGVyYWxCdWZmZXJUeXBlOworICAgdHlwZWRlZiBV Q2hhckxpdGVyYWxCdWZmZXI8MzI+IFVDaGFyTGl0ZXJhbEJ1ZmZlclR5cGU7CitkaWZmIC11cCBj aHJvbWl1bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIvd2ViX3VpX2Jyb3dz ZXJfaW50ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oLm1lIGNocm9taXVtLTExNi4wLjU4NDUuNTAv Y29udGVudC9wdWJsaWMvYnJvd3Nlci93ZWJfdWlfYnJvd3Nlcl9pbnRlcmZhY2VfYnJva2VyX3Jl Z2lzdHJ5LmgKKy0tLSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dz ZXIvd2ViX3VpX2Jyb3dzZXJfaW50ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oLm1lCTIwMjMtMDgt MDIgMTY6MTg6MzAuMzgwMTA4MTI1ICswMjAwCisrKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9j b250ZW50L3B1YmxpYy9icm93c2VyL3dlYl91aV9icm93c2VyX2ludGVyZmFjZV9icm9rZXJfcmVn aXN0cnkuaAkyMDIzLTA4LTAyIDE2OjIwOjU5LjY2MDAyNDU3OCArMDIwMAorQEAgLTEyNywxMCAr MTI3LDEwIEBAIGNsYXNzIENPTlRFTlRfRVhQT1JUIFdlYlVJQnJvd3NlckludGVyZmEKKyAgIC8v CisgICAvLyBUT0RPKGNyYnVnLmNvbS8xNDA3OTM2KTogUG9pbnQgdG8gV2ViVUlKc0JyaWRnZSBk b2N1bWVudGF0aW9uLgorICAgdGVtcGxhdGUgPHR5cGVuYW1lIENvbnRyb2xsZXJUeXBlPgorLSAg SnNCcmlkZ2VUcmFpdHM8Q29udHJvbGxlclR5cGU+OjpCaW5kZXJJbml0aWFsaXplciYgRm9yV2Vi VUlXaXRoSnNCcmlkZ2UoKSB7CisrICB0eXBlbmFtZSBKc0JyaWRnZVRyYWl0czxDb250cm9sbGVy VHlwZT46OkJpbmRlckluaXRpYWxpemVyJiBGb3JXZWJVSVdpdGhKc0JyaWRnZSgpIHsKKyAgICAg dXNpbmcgVHJhaXRzID0gSnNCcmlkZ2VUcmFpdHM8Q29udHJvbGxlclR5cGU+OworLSAgICB1c2lu ZyBJbnRlcmZhY2UgPSBUcmFpdHM6OkludGVyZmFjZTsKKy0gICAgdXNpbmcgSnNCcmlkZ2VCaW5k ZXJJbml0aWFsaXplciA9IFRyYWl0czo6QmluZGVySW5pdGlhbGl6ZXI7CisrICAgIHVzaW5nIElu dGVyZmFjZSA9IHR5cGVuYW1lIFRyYWl0czo6SW50ZXJmYWNlOworKyAgICB1c2luZyBKc0JyaWRn ZUJpbmRlckluaXRpYWxpemVyID0gdHlwZW5hbWUgVHJhaXRzOjpCaW5kZXJJbml0aWFsaXplcjsK KyAKKyAgICAgLy8gV2ViVUlDb250cm9sbGVyOjpHZXRUeXBlKCkgcmVxdWlyZXMgYW4gaW5zdGFu dGlhdGVkIFdlYlVJQ29udHJvbGxlcgorICAgICAvLyAoYmVjYXVzZSBpdCdzIGEgdmlydHVhbCBt ZXRob2QgYW5kIGNhbid0IGJlIHN0YXRpYykuIEhlcmUgd2Ugb25seSBoYXZlCitkaWZmIC11cCBj aHJvbWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFp bnQvb2JqZWN0X3BhaW50X3Byb3BlcnRpZXNfc3BhcnNlLmgubWUgY2hyb21pdW0tMTE2LjAuNTg0 NS41MC90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWludF9w cm9wZXJ0aWVzX3NwYXJzZS5oCistLS0gY2hyb21pdW0tMTE2LjAuNTg0NS41MC90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWludF9wcm9wZXJ0aWVzX3NwYXJz ZS5oLm1lCTIwMjMtMDgtMDIgMjA6NDE6MjMuOTg0NzI5NDYyICswMjAwCisrKysgY2hyb21pdW0t MTE2LjAuNTg0NS41MC90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVj dF9wYWludF9wcm9wZXJ0aWVzX3NwYXJzZS5oCTIwMjMtMDgtMDIgMjA6NDE6NTMuNzM3NTgzMDkz ICswMjAwCitAQCAtMjcwLDggKzI3MCw4IEBAIGNsYXNzIENPUkVfRVhQT1JUIE9iamVjdFBhaW50 UHJvcGVydGllc1MKKyAgICAgICBOb2RlTGlzdCYgbm9kZXMsCisgICAgICAgTm9kZUlkIG5vZGVf aWQsCisgICAgICAgY29uc3QgUGFyZW50VHlwZSYgcGFyZW50LAorLSAgICAgIE5vZGVUeXBlOjpT dGF0ZSYmIHN0YXRlLAorLSAgICAgIGNvbnN0IE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSYgYW5p bWF0aW9uX3N0YXRlID0KKysgICAgICB0eXBlbmFtZSBOb2RlVHlwZTo6U3RhdGUmJiBzdGF0ZSwK KysgICAgICBjb25zdCB0eXBlbmFtZSBOb2RlVHlwZTo6QW5pbWF0aW9uU3RhdGUmIGFuaW1hdGlv bl9zdGF0ZSA9CisgICAgICAgICAgIE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSgpKSB7CisgICAg IC8vIEZpcnN0LCBjaGVjayBpZiB3ZSBuZWVkIHRvIGFkZCBhIG5ldyBub2RlLgorICAgICBpZiAo IW5vZGVzLkhhc0ZpZWxkKG5vZGVfaWQpKSB7CitkaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4 LjYyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1 dG9yLmgubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL29wdGltaXphdGlvbl9n dWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oCistLS0gY2hyb21pdW0tMTE3LjAuNTkz OC42Mi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVj dXRvci5oLm1lCTIwMjMtMDktMTUgMTA6MjI6NTEuODg5Njk4NDAyICswMjAwCisrKysgY2hyb21p dW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0 ZV9tb2RlbF9leGVjdXRvci5oCTIwMjMtMDktMTUgMTA6Mjg6MjYuNzAyNzE2MjI0ICswMjAwCitA QCAtMjM0LDcgKzIzNCw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9k ZWwKKyAgIC8vIFN0YXJ0cyB0aGUgc3luY2hyb25vdXMgZXhlY3V0aW9uIG9mIHRoZSBtb2RlbC4g UmV0dXJucyBtb2RlbCBvdXRwdXRzLgorICAgLy8gTW9kZWwgbmVlZHMgdG8gYmUgbG9hZGVkLiBT eW5jaHJvbm91cyBjYWxscyBkbyBub3QgbG9hZCBvciB1bmxvYWQgbW9kZWwuCisgICBzdGQ6OnZl Y3RvcjxhYnNsOjpvcHRpb25hbDxPdXRwdXRUeXBlPj4gU2VuZEZvckJhdGNoRXhlY3V0aW9uU3lu YygKKy0gICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVm SW5wdXRWZWN0b3IgaW5wdXRzKQorKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0 VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCisgICAgICAgb3Zl cnJpZGUgeworICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVuc1Rhc2tzSW5D dXJyZW50U2VxdWVuY2UoKSk7CisgICAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uo c2VxdWVuY2VfY2hlY2tlcl8pOworQEAgLTM4OSw3ICszODksNyBAQCBjbGFzcyBURkxpdGVNb2Rl bEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCisgICAvLyBleGVjdXRlcyBpdCBvbiB0aGUgbW9kZWwg ZXhlY3V0aW9uIHRocmVhZC4KKyAgIHZvaWQgTG9hZE1vZGVsRmlsZUFuZEJhdGNoRXhlY3V0ZSgK KyAgICAgICBCYXRjaEV4ZWN1dGlvbkNhbGxiYWNrIGNhbGxiYWNrX29uX2NvbXBsZXRlLAorLSAg ICAgIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZl Y3RvciBpbnB1dHMpIHsKKysgICAgICB0eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUs IElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzKSB7CisgICAgIERDSEVDSyhl eGVjdXRpb25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKKyAg ICAgRENIRUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7Cisg CitAQCAtNDA2LDcgKzQwNiw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMg TW9kZWwKKyAKKyAgIC8vIEJhdGNoIGV4ZWN1dGVzIHRoZSBsb2FkZWQgbW9kZWwgZm9yIGlucHV0 cy4KKyAgIHZvaWQgQmF0Y2hFeGVjdXRlTG9hZGVkTW9kZWwoCistICAgICAgTW9kZWxFeGVjdXRv cjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cywKKysg ICAgICB0eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0 UmVmSW5wdXRWZWN0b3IgaW5wdXRzLAorICAgICAgIHN0ZDo6dmVjdG9yPGFic2w6Om9wdGlvbmFs PE91dHB1dFR5cGU+Piogb3V0cHV0cykgeworICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVu bmVyXy0+UnVuc1Rhc2tzSW5DdXJyZW50U2VxdWVuY2UoKSk7CisgICAgIERDSEVDS19DQUxMRURf T05fVkFMSURfU0VRVUVOQ0Uoc2VxdWVuY2VfY2hlY2tlcl8pOworQEAgLTQ2Niw3ICs0NjYsNyBA QCBjbGFzcyBURkxpdGVNb2RlbEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCisgICAvLyBVbmxvYWRz IHRoZSBtb2RlbCBpZiBuZWVkZWQuCisgICB2b2lkIEJhdGNoRXhlY3V0ZUxvYWRlZE1vZGVsQW5k UnVuQ2FsbGJhY2soCisgICAgICAgQmF0Y2hFeGVjdXRpb25DYWxsYmFjayBjYWxsYmFja19vbl9j b21wbGV0ZSwKKy0gICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNv bnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzLAorKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8 T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMsCisgICAg ICAgRXhlY3V0aW9uU3RhdHVzIGV4ZWN1dGlvbl9zdGF0dXMpIHsKKyAgICAgRENIRUNLKGV4ZWN1 dGlvbl90YXNrX3J1bm5lcl8tPlJ1bnNUYXNrc0luQ3VycmVudFNlcXVlbmNlKCkpOworICAgICBE Q0hFQ0tfQ0FMTEVEX09OX1ZBTElEX1NFUVVFTkNFKHNlcXVlbmNlX2NoZWNrZXJfKTsKK2RpZmYg LXVwIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29y ZS9icm93c2VyL3Byb3RvX2ZldGNoZXIuY2MubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21w b25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5jYworLS0t IGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9i cm93c2VyL3Byb3RvX2ZldGNoZXIuY2MubWUJMjAyMy0wOS0xNSAxNzoyMDoyMi41NTA2NTc1ODYg KzAyMDAKKysrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91 c2VyL2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmNjCTIwMjMtMDktMTUgMTc6MjQ6MTEuMzk2 NzE2NzM0ICswMjAwCitAQCAtMzk5LDcgKzM5OSw3IEBAIGNsYXNzIFJldHJ5aW5nRmV0Y2hlcklt cGwgZmluYWwgOiBwdWJsaWMKKyAgIFJldHJ5aW5nRmV0Y2hlckltcGwoY29uc3QgUmV0cnlpbmdG ZXRjaGVySW1wbCYpID0gZGVsZXRlOworICAgUmV0cnlpbmdGZXRjaGVySW1wbCYgb3BlcmF0b3I9 KGNvbnN0IFJldHJ5aW5nRmV0Y2hlckltcGwmKSA9IGRlbGV0ZTsKKyAKKy0gIHZvaWQgU3RhcnQo UHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2spIG92ZXJyaWRlIHsKKysg IHZvaWQgU3RhcnQodHlwZW5hbWUgUHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2Fs bGJhY2spIG92ZXJyaWRlIHsKKyAgICAgY2FsbGJhY2tfID0gc3RkOjptb3ZlKGNhbGxiYWNrKTsK KyAgICAgUmV0cnkoKTsKKyAgIH0KK0BAIC00MzUsNyArNDM1LDcgQEAgY2xhc3MgUmV0cnlpbmdG ZXRjaGVySW1wbCBmaW5hbCA6IHB1YmxpYworICAgfQorIAorICAgLy8gQ2xpZW50IGNhbGxiYWNr LgorLSAgUHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2tfOworKyAgdHlw ZW5hbWUgUHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2tfOworIAorICAg Ly8gUmV0cnkgY29udHJvbHMuCisgICBiYXNlOjpPbmVTaG90VGltZXIgdGltZXJfOworQEAgLTU3 OCw3ICs1NzgsNyBAQCBQYXJhbGxlbEZldGNoTWFuYWdlcjxSZXF1ZXN0LCBSZXNwb25zZT46Cisg dGVtcGxhdGUgPHR5cGVuYW1lIFJlcXVlc3QsIHR5cGVuYW1lIFJlc3BvbnNlPgorIHZvaWQgUGFy YWxsZWxGZXRjaE1hbmFnZXI8UmVxdWVzdCwgUmVzcG9uc2U+OjpGZXRjaCgKKyAgICAgY29uc3Qg UmVxdWVzdCYgcmVxdWVzdCwKKy0gICAgRmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spIHsKKysg ICAgdHlwZW5hbWUgRmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spIHsKKyAgIENIRUNLKGNhbGxi YWNrKSA8PCAiVXNlIGJhc2U6OkRvTm90aGluZygpIGluc3RlYWQgb2YgZW1wdHkgY2FsbGJhY2su IjsKKyAgIEtleVR5cGUga2V5ID0gcmVxdWVzdHNfaW5fZmxpZ2h0Xy5BZGQoTWFrZUZldGNoZXIo cmVxdWVzdCkpOworICAgcmVxdWVzdHNfaW5fZmxpZ2h0Xy5Mb29rdXAoa2V5KS0+U3RhcnQoCitk aWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2Vy L2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmgubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9j b21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5oCist LS0gY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3Jl L2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5oLm1lCTIwMjMtMDktMTUgMTc6MjA6NTYuNTQwNDYwMzkx ICswMjAwCisrKysgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRf dXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5oCTIwMjMtMDktMTUgMTc6MjI6MTguMjQ2 MjM3ODE3ICswMjAwCitAQCAtMTY1LDEwICsxNjUsMTAgQEAgY2xhc3MgUGFyYWxsZWxGZXRjaE1h bmFnZXIgeworIAorICAgLy8gU3RhcnRzIHRoZSBmZXRjaC4gVW5kZXJseWluZyBmZXRjaGVyIGlz IHN0b3JlZCBpbnRlcm5hbGx5LCBhbmQgd2lsbCBiZQorICAgLy8gY2xlYW5lZCB1cCBhZnRlciBm aW5pc2ggb3Igd2hlbiB0aGlzIG1hbmFnZXIgaXMgZGVzdHJveWVkLgorLSAgdm9pZCBGZXRjaChj b25zdCBSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaGVyOjpDYWxsYmFjayBjYWxsYmFjayk7CisrICB2 b2lkIEZldGNoKGNvbnN0IFJlcXVlc3QmIHJlcXVlc3QsIHR5cGVuYW1lIEZldGNoZXI6OkNhbGxi YWNrIGNhbGxiYWNrKTsKKyAKKyAgcHJpdmF0ZToKKy0gIHVzaW5nIEtleVR5cGUgPSBiYXNlOjpJ RE1hcDxzdGQ6OnVuaXF1ZV9wdHI8RmV0Y2hlcj4+OjpLZXlUeXBlOworKyAgdXNpbmcgS2V5VHlw ZSA9IHR5cGVuYW1lIGJhc2U6OklETWFwPHN0ZDo6dW5pcXVlX3B0cjxGZXRjaGVyPj46OktleVR5 cGU7CisgCisgICAvLyBSZW1vdmUgZmV0Y2hlciB1bmRlciBrZXkgZnJvbSByZXF1ZXN0c19pbl9m bGlnaHRfLgorICAgdm9pZCBSZW1vdmUoS2V5VHlwZSBrZXkpOworZGlmZiAtdXAgY2hyb21pdW0t MTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4 L2FzeW5jX2l0ZXJhYmxlLmgubWUgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L2FzeW5jX2l0ZXJhYmxlLmgKKy0tLSBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdzL2Nv cmUvdjgvYXN5bmNfaXRlcmFibGUuaC5tZQkyMDIzLTEyLTA0IDAwOjI5OjM1LjE5NzIwOTUzOCAr MDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVy ZXIvYmluZGluZ3MvY29yZS92OC9hc3luY19pdGVyYWJsZS5oCTIwMjMtMTItMDQgMDA6MzA6MjQu NDM2MjMzMjQ5ICswMTAwCitAQCAtMjIwLDcgKzIyMCw3IEBAIGNsYXNzIFBhaXJBc3luY0l0ZXJh YmxlIHsKKyAgcHJpdmF0ZToKKyAgIHZpcnR1YWwgSXRlcmF0aW9uU291cmNlKiBDcmVhdGVJdGVy YXRpb25Tb3VyY2UoCisgICAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdF9zdGF0ZSwKKy0gICAgICBJ dGVyYXRpb25Tb3VyY2U6OktpbmQga2luZCwKKysgICAgICB0eXBlbmFtZSBJdGVyYXRpb25Tb3Vy Y2U6OktpbmQga2luZCwKKyAgICAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSA9 IDA7CisgfTsKKyAKK0BAIC0yNjIsNyArMjYyLDcgQEAgY2xhc3MgVmFsdWVBc3luY0l0ZXJhYmxl IHsKKyAgcHJpdmF0ZToKKyAgIHZpcnR1YWwgSXRlcmF0aW9uU291cmNlKiBDcmVhdGVJdGVyYXRp b25Tb3VyY2UoCisgICAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdF9zdGF0ZSwKKy0gICAgICBJdGVy YXRpb25Tb3VyY2U6OktpbmQga2luZCwKKysgICAgICB0eXBlbmFtZSBJdGVyYXRpb25Tb3VyY2U6 OktpbmQga2luZCwKKyAgICAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSA9IDA7 CisgfTsKKyAKK2RpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvYmFzZS9mdW5jdGlvbmFs L2JpbmRfaW50ZXJuYWwuaC5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2Jhc2UvZnVuY3Rpb25h bC9iaW5kX2ludGVybmFsLmgKKy0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2Jhc2UvZnVuY3Rp b25hbC9iaW5kX2ludGVybmFsLmgubWUJMjAyNC0wMS0yMSAxNjoxMDowOS44MDkwMzc1ODEgKzAx MDAKKysrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2Jhc2UvZnVuY3Rpb25hbC9iaW5kX2ludGVy bmFsLmgJMjAyNC0wMS0yMSAxNjo0NjozMy43NTkzOTczMDMgKzAxMDAKK0BAIC0xNTMzLDExICsx NTMzLDExIEBAIHRlbXBsYXRlIDxpbnQgaSwKKyAgICAgICAgICAgdHlwZW5hbWUgUGFyYW0+Cisg c3RydWN0IFBhcmFtQ2FuQmVCb3VuZCB7CisgIHByaXZhdGU6CistICB1c2luZyBVbndyYXBwZWRQ YXJhbSA9IEJpbmRBcmd1bWVudDxpPjo6dGVtcGxhdGUgRm9yd2FyZGVkQXM8CisrICB1c2luZyBV bndyYXBwZWRQYXJhbSA9IHR5cGVuYW1lIEJpbmRBcmd1bWVudDxpPjo6dGVtcGxhdGUgRm9yd2Fy ZGVkQXM8CisgICAgICAgVW53cmFwcGVkPjo6dGVtcGxhdGUgVG9QYXJhbVdpdGhUeXBlPFBhcmFt PjsKKy0gIHVzaW5nIFBhcmFtU3RvcmFnZSA9IEJpbmRBcmd1bWVudDxpPjo6dGVtcGxhdGUgVG9Q YXJhbVdpdGhUeXBlPAorKyAgdXNpbmcgUGFyYW1TdG9yYWdlID0gdHlwZW5hbWUgQmluZEFyZ3Vt ZW50PGk+Ojp0ZW1wbGF0ZSBUb1BhcmFtV2l0aFR5cGU8CisgICAgICAgUGFyYW0+Ojp0ZW1wbGF0 ZSBTdG9yZWRBczxTdG9yYWdlPjsKKy0gIHVzaW5nIEJvdW5kU3RvcmFnZSA9CisrICB1c2luZyBC b3VuZFN0b3JhZ2UgPSB0eXBlbmFtZQorICAgICAgIEJpbmRBcmd1bWVudDxpPjo6dGVtcGxhdGUg Qm91bmRBczxBcmc+Ojp0ZW1wbGF0ZSBTdG9yZWRBczxTdG9yYWdlPjsKKyAKKyAgIC8vIFdlIGZv cmJpZCBjYWxsYmFja3MgZnJvbSB1c2luZyByYXdfcHRyIGFzIGEgcGFyYW1ldGVyLiBIb3dldmVy LCB3ZSBhbGxvdworZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9tb2pvL3B1YmxpYy9j cHAvYmluZGluZ3MvYXJyYXlfdHJhaXRzLmgubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9tb2pv L3B1YmxpYy9jcHAvYmluZGluZ3MvYXJyYXlfdHJhaXRzLmgKKy0tLSBjaHJvbWl1bS0xMjEuMC42 MTY3LjU3L21vam8vcHVibGljL2NwcC9iaW5kaW5ncy9hcnJheV90cmFpdHMuaC5tZQkyMDI0LTAx LTIxIDE3OjIzOjM3Ljc4NjYwNjQyOCArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcv bW9qby9wdWJsaWMvY3BwL2JpbmRpbmdzL2FycmF5X3RyYWl0cy5oCTIwMjQtMDEtMjEgMTc6MjM6 NTguNTgyMTI3MTAzICswMTAwCitAQCAtOTAsNyArOTAsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg Q29udGFpbmVyPgorICAgICB7IGNbaV0gfSAtPiBzdGQ6OnNhbWVfYXM8dHlwZW5hbWUgQ29udGFp bmVyOjpyZWZlcmVuY2U+OworICAgfQorIHN0cnVjdCBBcnJheVRyYWl0czxDb250YWluZXI+IHsK Ky0gIHVzaW5nIEVsZW1lbnQgPSBDb250YWluZXI6OnZhbHVlX3R5cGU7CisrICB1c2luZyBFbGVt ZW50ID0gdHlwZW5hbWUgQ29udGFpbmVyOjp2YWx1ZV90eXBlOworIAorICAgLy8gdmVjdG9yLWxp a2UgY29udGFpbmVycyBoYXZlIG5vIGJ1aWx0LWluIG51bGwuCisgICBzdGF0aWMgYm9vbCBJc051 bGwoY29uc3QgQ29udGFpbmVyJiBjKSB7IHJldHVybiBmYWxzZTsgfQorZGlmZiAtdXAgY2hyb21p dW0tMTIxLjAuNjE2Ny41Ny9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL21vZGVs X2V4ZWN1dGlvbi9tb2RlbF9leGVjdXRpb25fdXRpbC5oLm1lIGNocm9taXVtLTEyMS4wLjYxNjcu NTcvY29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS9tb2RlbF9leGVjdXRpb24vbW9k ZWxfZXhlY3V0aW9uX3V0aWwuaAorLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50 cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS9tb2RlbF9leGVjdXRpb24vbW9kZWxfZXhlY3V0aW9u X3V0aWwuaC5tZQkyMDI0LTAxLTIxIDE3OjMzOjQwLjAzMDg5NzgzOCArMDEwMAorKysrIGNocm9t aXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS9tb2Rl bF9leGVjdXRpb24vbW9kZWxfZXhlY3V0aW9uX3V0aWwuaAkyMDI0LTAxLTIxIDE3OjM0OjExLjUx ODcwNTI2NiArMDEwMAorQEAgLTI1LDcgKzI1LDcgQEAgdm9pZCBTZXRFeGVjdXRpb25SZXF1ZXN0 VGVtcGxhdGUoCisgCisgICAvLyBSZXF1ZXN0IGlzIHNldCBieSB0aGUgZmVhdHVyZSBhbmQgc2hv dWxkIGFsd2F5cyBiZSB0eXBlZC4KKyAgIGF1dG8gdHlwZWRfcmVxdWVzdCA9CistICAgICAgc3Rh dGljX2Nhc3Q8Y29uc3QgRmVhdHVyZVR5cGU6OlJlcXVlc3QmPihyZXF1ZXN0X21ldGFkYXRhKTsK KysgICAgICBzdGF0aWNfY2FzdDxjb25zdCB0eXBlbmFtZSBGZWF0dXJlVHlwZTo6UmVxdWVzdCY+ KHJlcXVlc3RfbWV0YWRhdGEpOworICAgKihsb2dnaW5nX2RhdGEtPm11dGFibGVfcmVxdWVzdF9k YXRhKCkpID0gdHlwZWRfcmVxdWVzdDsKKyB9CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42 MTY3LjU3L2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvbW9kZWxfcXVhbGl0eS9t b2RlbF9xdWFsaXR5X2xvZ19lbnRyeS5oLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9u ZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS9tb2RlbF9xdWFsaXR5L21vZGVsX3F1YWxpdHlf bG9nX2VudHJ5LmgKKy0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbXBvbmVudHMvb3B0aW1p emF0aW9uX2d1aWRlL2NvcmUvbW9kZWxfcXVhbGl0eS9tb2RlbF9xdWFsaXR5X2xvZ19lbnRyeS5o Lm1lCTIwMjQtMDEtMjEgMTc6MzI6NDIuMzY3NDE3NjE5ICswMTAwCisrKysgY2hyb21pdW0tMTIx LjAuNjE2Ny41Ny9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL21vZGVsX3F1YWxp dHkvbW9kZWxfcXVhbGl0eV9sb2dfZW50cnkuaAkyMDI0LTAxLTIxIDE3OjMzOjI1LjczMjUzMTE5 OCArMDEwMAorQEAgLTI5LDcgKzI5LDcgQEAgY2xhc3MgTW9kZWxRdWFsaXR5TG9nRW50cnkgewor ICAgfQorIAorICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZlYXR1cmVUeXBlPgorLSAgRmVhdHVyZVR5 cGU6OlF1YWxpdHkqIHF1YWxpdHlfZGF0YSgpIHsKKysgIHR5cGVuYW1lIEZlYXR1cmVUeXBlOjpR dWFsaXR5KiBxdWFsaXR5X2RhdGEoKSB7CisgICAgIHJldHVybiBGZWF0dXJlVHlwZTo6R2V0TG9n Z2luZ0RhdGEoKmxvZ19haV9kYXRhX3JlcXVlc3RfKQorICAgICAgICAgLT5tdXRhYmxlX3F1YWxp dHlfZGF0YSgpOworICAgfQoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEyMS12OC1jKysyMC5wYXRj aCBiL2Nocm9taXVtLTEyMS12OC1jKysyMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zYjNiYjUwCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTIxLXY4LWMr KzIwLnBhdGNoCkBAIC0wLDAgKzEsNzQzIEBACitjb21taXQgOTQwYWY5ZjJjODdiNDM2NTU5Yjk3 YzUzNzYzYWE5ZWFhZjEyNTRlYgorQXV0aG9yOiBKZXJlbXkgUm9tYW4gPGpicm9tYW5AY2hyb21p dW0ub3JnPgorRGF0ZTogICBXZWQgTm92IDE1IDE2OjI0OjU0IDIwMjMgKzAwMDAKKworICAgIFVz ZSBDKysyMCBmZWF0dXJlcyB0byBzaW1wbGlmeSBibGluazo6TmF0aXZlVmFsdWVUcmFpdHNCYXNl LgorICAgIAorICAgIFRoZXNlIGFsbG93IHNvbWUgb2YgdGhlIG1ldGFwcm9ncmFtbWluZyBiaXRz IHRvIGJlIHNpbXBsaWZpZWQgYSBsaXR0bGUuCisgICAgCisgICAgQ2hhbmdlLUlkOiBJMDUyYjQz OTc1ODZkMjEzNDg0MDE2MTZlMTc5MmFmZGI5NjYyZjk3NQorICAgIFJldmlld2VkLW9uOiBodHRw czovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNTAz MDMzNQorICAgIFJldmlld2VkLWJ5OiBZdWtpIFNoaWlubyA8eXVraXNoaWlub0BjaHJvbWl1bS5v cmc+CisgICAgQ29tbWl0LVF1ZXVlOiBKZXJlbXkgUm9tYW4gPGpicm9tYW5AY2hyb21pdW0ub3Jn PgorICAgIENyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTIyNDk3OH0KKwor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdzL2NvcmUvdjgv bmF0aXZlX3ZhbHVlX3RyYWl0cy5oIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGlu Z3MvY29yZS92OC9uYXRpdmVfdmFsdWVfdHJhaXRzLmgKK2luZGV4IDdmYzkxZDE0YWNjNzEuLjFl NWEwNzkwZGY2ZGEgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5k aW5ncy9jb3JlL3Y4L25hdGl2ZV92YWx1ZV90cmFpdHMuaAorKysrIGIvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92OC9uYXRpdmVfdmFsdWVfdHJhaXRzLmgKK0BAIC01 LDYgKzUsNyBAQAorICNpZm5kZWYgVEhJUkRfUEFSVFlfQkxJTktfUkVOREVSRVJfQklORElOR1Nf Q09SRV9WOF9OQVRJVkVfVkFMVUVfVFJBSVRTX0hfCisgI2RlZmluZSBUSElSRF9QQVJUWV9CTElO S19SRU5ERVJFUl9CSU5ESU5HU19DT1JFX1Y4X05BVElWRV9WQUxVRV9UUkFJVFNfSF8KKyAKKysj aW5jbHVkZSA8Y29uY2VwdHM+CisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorIAorICNpbmNsdWRl ICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L2lkbF90eXBlc19i YXNlLmgiCitAQCAtMzAsNyArMzEsNyBAQCBjbGFzcyBFeGNlcHRpb25TdGF0ZTsKKyAvLyAgICAg cmV0dXJuIHRvSW50MzIoaXNvbGF0ZSwgdmFsdWUsIGV4Y2VwdGlvblN0YXRlLCBOb3JtYWxDb252 ZXJzaW9uKTsKKyAvLyAgIH0KKyAvLyB9CistdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1l IFNGSU5BRUhlbHBlciA9IHZvaWQ+CisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisgc3RydWN0IE5h dGl2ZVZhbHVlVHJhaXRzOworIAorIC8vIFRoaXMgZGVjbGFyYXRpb24gc2VydmVzIG9ubHkgYXMg YSBibHVlcHJpbnQgZm9yIHNwZWNpYWxpemF0aW9uczogdGhlCitAQCAtNDUsMjIgKzQ2LDE1IEBA IHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czsKKyAKKyBuYW1lc3BhY2UgYmluZGluZ3MgeworIAor LXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHZvaWQ+Cistc3RydWN0IE5hdGl2ZVZh bHVlVHJhaXRzSGFzSXNOdWxsIDogc3RkOjpmYWxzZV90eXBlIHt9OworLQorIHRlbXBsYXRlIDx0 eXBlbmFtZSBUPgorLXN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0c0hhc0lzTnVsbDwKKy0gICAgVCwK Ky0gICAgc3RkOjp2b2lkX3Q8ZGVjbHR5cGUoc3RkOjpkZWNsdmFsPFQ+KCkuSXNOdWxsKCkpPj4g OiBzdGQ6OnRydWVfdHlwZSB7fTsKKytzdHJ1Y3QgSW1wbFR5cGVGb3IgeworKyAgdXNpbmcgdHlw ZSA9IFQ7CisrfTsKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFs dWVUcmFpdHNIYXNOdWxsVmFsdWUgeworLSAgLy8gdHJ1ZSBpZiB8VHwgc3VwcG9ydHMgSURMIG51 bGwgdmFsdWUuCistICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPQorLSAgICAgIC8vIFNj cmlwdFZhbHVlLCBTdHJpbmcsIGFuZCB1bmlvbiB0eXBlcyBoYXZlIElzTnVsbCBtZW1iZXIgZnVu Y3Rpb24uCistICAgICAgYmluZGluZ3M6Ok5hdGl2ZVZhbHVlVHJhaXRzSGFzSXNOdWxsPFQ+Ojp2 YWx1ZSB8fAorLSAgICAgIC8vIFBvaW50ZXIgdHlwZXMgaGF2ZSBudWxscHRyIGFzIElETCBudWxs IHZhbHVlLgorLSAgICAgIHN0ZDo6aXNfcG9pbnRlcjxUPjo6dmFsdWU7CisrICByZXF1aXJlcyBz dGQ6OmRlcml2ZWRfZnJvbTxULCBJRExCYXNlPgorK3N0cnVjdCBJbXBsVHlwZUZvcjxUPiB7Cisr ICB1c2luZyB0eXBlID0gdHlwZW5hbWUgVDo6SW1wbFR5cGU7CisgfTsKKyAKKyB9ICAvLyBuYW1l c3BhY2UgYmluZGluZ3MKK0BAIC03OCwzNyArNzIsMTcgQEAgc3RydWN0IE5hdGl2ZVZhbHVlVHJh aXRzSGFzTnVsbFZhbHVlIHsKKyAvLyBJZiBwcmVzZW50LCB8TnVsbFZhbHVlKCl8IHdpbGwgYmUg dXNlZCB3aGVuIGNvbnZlcnRpbmcgZnJvbSB0aGUgbnVsbGFibGUgdHlwZQorIC8vIFQ/LCBhbmQg c2hvdWxkIGJlIHVzZWQgaWYgdGhlIGltcGwgdHlwZSBoYXMgYW4gZXhpc3RpbmcgIm51bGwiIHN0 YXRlLiBJZiBub3QKKyAvLyBwcmVzZW50LCBXVEY6Ok9wdGlvbmFsIHdpbGwgYmUgdXNlZCB0byB3 cmFwIHRoZSB0eXBlLgorLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBTRklOQUVIZWxw ZXIgPSB2b2lkPgorLXN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2UgeworLSAgU1RBVElDX09O TFkoTmF0aXZlVmFsdWVUcmFpdHNCYXNlKTsKKy0KKy0gIHVzaW5nIEltcGxUeXBlID0gVDsKKy0K Ky0gIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNfbnVsbF92YWx1ZSA9CistICAgICAgYmluZGlu Z3M6Ok5hdGl2ZVZhbHVlVHJhaXRzSGFzTnVsbFZhbHVlPEltcGxUeXBlPjo6dmFsdWU7CistCist ICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gRXh0cmFBcmdzPgorLSAgc3RhdGljIGRlY2x0eXBlKGF1 dG8pIEFyZ3VtZW50VmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgYXJndW1lbnRfaW5kZXgsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvblN0YXRlJiBleGNl cHRpb25fc3RhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRy YUFyZ3MuLi4gZXh0cmFfYXJncykgeworLSAgICByZXR1cm4gTmF0aXZlVmFsdWVUcmFpdHM8c3Rk OjpyZW1vdmVfcG9pbnRlcl90PFQ+Pjo6TmF0aXZlVmFsdWUoCistICAgICAgICBpc29sYXRlLCB2 YWx1ZSwgZXhjZXB0aW9uX3N0YXRlLAorLSAgICAgICAgc3RkOjpmb3J3YXJkPEV4dHJhQXJncz4o ZXh0cmFfYXJncykuLi4pOworLSAgfQorLX07CistCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cist c3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzQmFzZTwKKy0gICAgVCwKKy0gICAgc3RkOjplbmFibGVf aWZfdDxzdGQ6OmlzX2Jhc2Vfb2Y8SURMQmFzZSwgVD46OnZhbHVlPj4geworK3N0cnVjdCBOYXRp dmVWYWx1ZVRyYWl0c0Jhc2UgeworICAgU1RBVElDX09OTFkoTmF0aXZlVmFsdWVUcmFpdHNCYXNl KTsKKyAKKy0gIHVzaW5nIEltcGxUeXBlID0gdHlwZW5hbWUgVDo6SW1wbFR5cGU7CisrICB1c2lu ZyBJbXBsVHlwZSA9IGJpbmRpbmdzOjpJbXBsVHlwZUZvcjxUPjo6dHlwZTsKKyAKKysgIC8vIFBv aW50ZXIgdHlwZXMgaGF2ZSBudWxscHRyIGFzIElETCBudWxsIHZhbHVlLgorKyAgLy8gU2NyaXB0 VmFsdWUsIFN0cmluZywgYW5kIHVuaW9uIHR5cGVzIGhhdmUgSXNOdWxsIG1lbWJlciBmdW5jdGlv bi4KKyAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNfbnVsbF92YWx1ZSA9CistICAgICAgYmlu ZGluZ3M6Ok5hdGl2ZVZhbHVlVHJhaXRzSGFzTnVsbFZhbHVlPEltcGxUeXBlPjo6dmFsdWU7Cisr ICAgICAgc3RkOjppc19wb2ludGVyX3Y8SW1wbFR5cGU+IHx8CisrICAgICAgcmVxdWlyZXMoSW1w bFR5cGUgdmFsdWUpIHsgdmFsdWUuSXNOdWxsKCk7IH07CisgCisgICB0ZW1wbGF0ZSA8dHlwZW5h bWUuLi4gRXh0cmFBcmdzPgorICAgc3RhdGljIGRlY2x0eXBlKGF1dG8pIEFyZ3VtZW50VmFsdWUo djg6Oklzb2xhdGUqIGlzb2xhdGUsCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvYmluZGluZ3MvY29yZS92OC9uYXRpdmVfdmFsdWVfdHJhaXRzX2J1ZmZlcl9zb3VyY2Vz LmNjIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92OC9uYXRpdmVf dmFsdWVfdHJhaXRzX2J1ZmZlcl9zb3VyY2VzLmNjCitpbmRleCA1MDhlYTZkOGVlYTQ4Li4xOGRl NzFkODQwMjNmIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGlu Z3MvY29yZS92OC9uYXRpdmVfdmFsdWVfdHJhaXRzX2J1ZmZlcl9zb3VyY2VzLmNjCisrKysgYi90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L25hdGl2ZV92YWx1ZV90 cmFpdHNfYnVmZmVyX3NvdXJjZXMuY2MKK0BAIC03LDYgKzcsNyBAQAorICNpbmNsdWRlICJ0aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2NvcmVfZXhwb3J0LmgiCisgI2luY2x1ZGUgInRo aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvZXhlY3V0aW9uX2NvbnRleHQvZXhlY3V0aW9u X2NvbnRleHQuaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9m cmFtZS93ZWJfZmVhdHVyZS5oIgorKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9jb3JlL3R5cGVkX2FycmF5cy9mbGV4aWJsZV9hcnJheV9idWZmZXJfdmlldy5oIgorICNpbmNs dWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3R5cGVkX2FycmF5cy90eXBlZF9m bGV4aWJsZV9hcnJheV9idWZmZXJfdmlldy5oIgorIAorIG5hbWVzcGFjZSBibGluayB7CitAQCAt Njk4LDEyICs2OTksMTEgQEAgRE9NQXJyYXlCdWZmZXJCYXNlKiBOYXRpdmVWYWx1ZVRyYWl0czwK KyAvLyBBcnJheUJ1ZmZlclZpZXcKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1Ob3RTaGFy ZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8CistICAgIE5vdFNoYXJlZDxUPiwKKy0gICAgdHlwZW5h bWUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2Jhc2Vfb2Y8RE9NQXJyYXlCdWZmZXJWaWV3LCBU Pjo6dmFsdWU+Pjo6CistICAgIE5hdGl2ZVZhbHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAorLSAg ICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKKy0gICAgICAgICAgICAg ICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworKyAgcmVxdWlyZXMgc3RkOjpk ZXJpdmVkX2Zyb208VCwgRE9NQXJyYXlCdWZmZXJWaWV3PgorK05vdFNoYXJlZDxUPiBOYXRpdmVW YWx1ZVRyYWl0czxOb3RTaGFyZWQ8VD4+OjpOYXRpdmVWYWx1ZSgKKysgICAgdjg6Oklzb2xhdGUq IGlzb2xhdGUsCisrICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorKyAgICBFeGNlcHRp b25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisgICByZXR1cm4gTmF0aXZlVmFsdWVJbXBsPAor ICAgICAgIFJlY2lwZVRyYWl0PE5vdFNoYXJlZDxUPj4sIFRvRE9NVmlld1R5cGU8VCwga05vdFNo YXJlZD4sCisgICAgICAgTnVsbGFibGl0eTo6a0lzTm90TnVsbGFibGUsIEJ1ZmZlclNpemVDaGVj azo6a0NoZWNrLAorQEAgLTcxMiwxMyArNzEyLDEyIEBAIE5vdFNoYXJlZDxUPiBOYXRpdmVWYWx1 ZVRyYWl0czwKKyB9CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CistTm90U2hhcmVkPFQ+IE5h dGl2ZVZhbHVlVHJhaXRzPAorLSAgICBOb3RTaGFyZWQ8VD4sCistICAgIHR5cGVuYW1lIHN0ZDo6 ZW5hYmxlX2lmX3Q8c3RkOjppc19iYXNlX29mPERPTUFycmF5QnVmZmVyVmlldywgVD46OnZhbHVl Pj46OgorLSAgICBBcmd1bWVudFZhbHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAorLSAgICAgICAg ICAgICAgICAgIGludCBhcmd1bWVudF9pbmRleCwKKy0gICAgICAgICAgICAgICAgICB2ODo6TG9j YWw8djg6OlZhbHVlPiB2YWx1ZSwKKy0gICAgICAgICAgICAgICAgICBFeGNlcHRpb25TdGF0ZSYg ZXhjZXB0aW9uX3N0YXRlKSB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxULCBET01B cnJheUJ1ZmZlclZpZXc+CisrTm90U2hhcmVkPFQ+IE5hdGl2ZVZhbHVlVHJhaXRzPE5vdFNoYXJl ZDxUPj46OkFyZ3VtZW50VmFsdWUoCisrICAgIHY4OjpJc29sYXRlKiBpc29sYXRlLAorKyAgICBp bnQgYXJndW1lbnRfaW5kZXgsCisrICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorKyAg ICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisgICByZXR1cm4gQXJndW1lbnRW YWx1ZUltcGw8CisgICAgICAgUmVjaXBlVHJhaXQ8Tm90U2hhcmVkPFQ+PiwgVG9ET01WaWV3VHlw ZTxULCBrTm90U2hhcmVkPiwKKyAgICAgICBOdWxsYWJsaXR5OjprSXNOb3ROdWxsYWJsZSwgQnVm ZmVyU2l6ZUNoZWNrOjprQ2hlY2ssCitAQCAtNzI5LDEyICs3MjgsMTEgQEAgTm90U2hhcmVkPFQ+ IE5hdGl2ZVZhbHVlVHJhaXRzPAorIC8vIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3Cisg CisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CistTWF5YmVTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFp dHM8CistICAgIE1heWJlU2hhcmVkPFQ+LAorLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90 PHN0ZDo6aXNfYmFzZV9vZjxET01BcnJheUJ1ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+OjoKKy0gICAg TmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCistICAgICAgICAgICAgICAgIHY4OjpM b2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorLSAgICAgICAgICAgICAgICBFeGNlcHRpb25TdGF0ZSYg ZXhjZXB0aW9uX3N0YXRlKSB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxULCBET01B cnJheUJ1ZmZlclZpZXc+CisrTWF5YmVTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8TWF5YmVT aGFyZWQ8VD4+OjpOYXRpdmVWYWx1ZSgKKysgICAgdjg6Oklzb2xhdGUqIGlzb2xhdGUsCisrICAg IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorKyAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0 aW9uX3N0YXRlKSB7CisgICByZXR1cm4gTmF0aXZlVmFsdWVJbXBsPFJlY2lwZVRyYWl0PE1heWJl U2hhcmVkPFQ+PiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9ET01WaWV3VHlwZTxULCBr TWF5YmVTaGFyZWQ+LAorICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsYWJsaXR5OjprSXNO b3ROdWxsYWJsZSwgQnVmZmVyU2l6ZUNoZWNrOjprQ2hlY2ssCitAQCAtNzQzLDEzICs3NDEsMTIg QEAgTWF5YmVTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8CisgfQorIAorIHRlbXBsYXRlIDx0 eXBlbmFtZSBUPgorLU1heWJlU2hhcmVkPFQ+IE5hdGl2ZVZhbHVlVHJhaXRzPAorLSAgICBNYXli ZVNoYXJlZDxUPiwKKy0gICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2Jhc2Vf b2Y8RE9NQXJyYXlCdWZmZXJWaWV3LCBUPjo6dmFsdWU+Pjo6CistICAgIEFyZ3VtZW50VmFsdWUo djg6Oklzb2xhdGUqIGlzb2xhdGUsCistICAgICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50X2lu ZGV4LAorLSAgICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorLSAg ICAgICAgICAgICAgICAgIEV4Y2VwdGlvblN0YXRlJiBleGNlcHRpb25fc3RhdGUpIHsKKysgIHJl cXVpcmVzIHN0ZDo6ZGVyaXZlZF9mcm9tPFQsIERPTUFycmF5QnVmZmVyVmlldz4KKytNYXliZVNo YXJlZDxUPiBOYXRpdmVWYWx1ZVRyYWl0czxNYXliZVNoYXJlZDxUPj46OkFyZ3VtZW50VmFsdWUo CisrICAgIHY4OjpJc29sYXRlKiBpc29sYXRlLAorKyAgICBpbnQgYXJndW1lbnRfaW5kZXgsCisr ICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorKyAgICBFeGNlcHRpb25TdGF0ZSYgZXhj ZXB0aW9uX3N0YXRlKSB7CisgICByZXR1cm4gQXJndW1lbnRWYWx1ZUltcGw8UmVjaXBlVHJhaXQ8 TWF5YmVTaGFyZWQ8VD4+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvRE9NVmlld1R5 cGU8VCwga01heWJlU2hhcmVkPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsYWJs aXR5OjprSXNOb3ROdWxsYWJsZSwgQnVmZmVyU2l6ZUNoZWNrOjprQ2hlY2ssCitAQCAtNzYwLDEy ICs3NTcsMTIgQEAgTWF5YmVTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8CisgLy8gW0FsbG93 U2hhcmVkLCBCdWZmZXJTb3VyY2VUeXBlTm9TaXplTGltaXRdIEFycmF5QnVmZmVyVmlldworIAor IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorLU1heWJlU2hhcmVkPFQ+IE5hdGl2ZVZhbHVlVHJhaXRz PAorLSAgICBJRExCdWZmZXJTb3VyY2VUeXBlTm9TaXplTGltaXQ8TWF5YmVTaGFyZWQ8VD4+LAor LSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxET01BcnJheUJ1 ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+OjoKKy0gICAgTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlz b2xhdGUsCistICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorLSAg ICAgICAgICAgICAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisrICByZXF1 aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxULCBET01BcnJheUJ1ZmZlclZpZXc+CisrTWF5YmVTaGFy ZWQ8VD4KKytOYXRpdmVWYWx1ZVRyYWl0czxJRExCdWZmZXJTb3VyY2VUeXBlTm9TaXplTGltaXQ8 TWF5YmVTaGFyZWQ8VD4+Pjo6TmF0aXZlVmFsdWUoCisrICAgIHY4OjpJc29sYXRlKiBpc29sYXRl LAorKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKKysgICAgRXhjZXB0aW9uU3RhdGUm IGV4Y2VwdGlvbl9zdGF0ZSkgeworICAgcmV0dXJuIE5hdGl2ZVZhbHVlSW1wbDwKKyAgICAgICBS ZWNpcGVUcmFpdDxNYXliZVNoYXJlZDxUPj4sIFRvRE9NVmlld1R5cGU8VCwga01heWJlU2hhcmVk PiwKKyAgICAgICBOdWxsYWJsaXR5OjprSXNOb3ROdWxsYWJsZSwgQnVmZmVyU2l6ZUNoZWNrOjpr RG9Ob3RDaGVjaywKK0BAIC03NzQsMTMgKzc3MSwxMiBAQCBNYXliZVNoYXJlZDxUPiBOYXRpdmVW YWx1ZVRyYWl0czwKKyB9CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CistTWF5YmVTaGFyZWQ8 VD4gTmF0aXZlVmFsdWVUcmFpdHM8CistICAgIElETEJ1ZmZlclNvdXJjZVR5cGVOb1NpemVMaW1p dDxNYXliZVNoYXJlZDxUPj4sCistICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjpp c19iYXNlX29mPERPTUFycmF5QnVmZmVyVmlldywgVD46OnZhbHVlPj46OgorLSAgICBBcmd1bWVu dFZhbHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAorLSAgICAgICAgICAgICAgICAgIGludCBhcmd1 bWVudF9pbmRleCwKKy0gICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1 ZSwKKy0gICAgICAgICAgICAgICAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7 CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxULCBET01BcnJheUJ1ZmZlclZpZXc+Cisr TWF5YmVTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8SURMQnVmZmVyU291cmNlVHlwZU5vU2l6 ZUxpbWl0PAorKyAgICBNYXliZVNoYXJlZDxUPj4+OjpBcmd1bWVudFZhbHVlKHY4OjpJc29sYXRl KiBpc29sYXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhcmd1 bWVudF9pbmRleCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ODo6TG9j YWw8djg6OlZhbHVlPiB2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisgICByZXR1cm4gQXJndW1lbnRW YWx1ZUltcGw8CisgICAgICAgUmVjaXBlVHJhaXQ8TWF5YmVTaGFyZWQ8VD4+LCBUb0RPTVZpZXdU eXBlPFQsIGtNYXliZVNoYXJlZD4sCisgICAgICAgTnVsbGFibGl0eTo6a0lzTm90TnVsbGFibGUs IEJ1ZmZlclNpemVDaGVjazo6a0RvTm90Q2hlY2ssCitAQCAtNzkxLDEyICs3ODcsMTEgQEAgTWF5 YmVTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8CisgLy8gTnVsbGFibGUgQXJyYXlCdWZmZXJW aWV3CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CistTm90U2hhcmVkPFQ+IE5hdGl2ZVZhbHVl VHJhaXRzPAorLSAgICBJRExOdWxsYWJsZTxOb3RTaGFyZWQ8VD4+LAorLSAgICB0eXBlbmFtZSBz dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxET01BcnJheUJ1ZmZlclZpZXcsIFQ+Ojp2 YWx1ZT4+OjoKKy0gICAgTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCistICAgICAg ICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorLSAgICAgICAgICAgICAgICBF eGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2 ZWRfZnJvbTxULCBET01BcnJheUJ1ZmZlclZpZXc+CisrTm90U2hhcmVkPFQ+IE5hdGl2ZVZhbHVl VHJhaXRzPElETE51bGxhYmxlPE5vdFNoYXJlZDxUPj4+OjpOYXRpdmVWYWx1ZSgKKysgICAgdjg6 Oklzb2xhdGUqIGlzb2xhdGUsCisrICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorKyAg ICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisgICByZXR1cm4gTmF0aXZlVmFs dWVJbXBsPAorICAgICAgIFJlY2lwZVRyYWl0PE5vdFNoYXJlZDxUPj4sIFRvRE9NVmlld1R5cGU8 VCwga05vdFNoYXJlZD4sCisgICAgICAgTnVsbGFibGl0eTo6a0lzTnVsbGFibGUsIEJ1ZmZlclNp emVDaGVjazo6a0NoZWNrLAorQEAgLTgwNSwxMyArODAwLDEyIEBAIE5vdFNoYXJlZDxUPiBOYXRp dmVWYWx1ZVRyYWl0czwKKyB9CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CistTm90U2hhcmVk PFQ+IE5hdGl2ZVZhbHVlVHJhaXRzPAorLSAgICBJRExOdWxsYWJsZTxOb3RTaGFyZWQ8VD4+LAor LSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxET01BcnJheUJ1 ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+OjoKKy0gICAgQXJndW1lbnRWYWx1ZSh2ODo6SXNvbGF0ZSog aXNvbGF0ZSwKKy0gICAgICAgICAgICAgICAgICBpbnQgYXJndW1lbnRfaW5kZXgsCistICAgICAg ICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCistICAgICAgICAgICAgICAg ICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworKyAgcmVxdWlyZXMgc3RkOjpk ZXJpdmVkX2Zyb208VCwgRE9NQXJyYXlCdWZmZXJWaWV3PgorK05vdFNoYXJlZDxUPiBOYXRpdmVW YWx1ZVRyYWl0czxJRExOdWxsYWJsZTxOb3RTaGFyZWQ8VD4+Pjo6QXJndW1lbnRWYWx1ZSgKKysg ICAgdjg6Oklzb2xhdGUqIGlzb2xhdGUsCisrICAgIGludCBhcmd1bWVudF9pbmRleCwKKysgICAg djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCisrICAgIEV4Y2VwdGlvblN0YXRlJiBleGNlcHRp b25fc3RhdGUpIHsKKyAgIHJldHVybiBBcmd1bWVudFZhbHVlSW1wbDwKKyAgICAgICBSZWNpcGVU cmFpdDxOb3RTaGFyZWQ8VD4+LCBUb0RPTVZpZXdUeXBlPFQsIGtOb3RTaGFyZWQ+LAorICAgICAg IE51bGxhYmxpdHk6OmtJc051bGxhYmxlLCBCdWZmZXJTaXplQ2hlY2s6OmtDaGVjaywKK0BAIC04 MjIsMTIgKzgxNiwxMSBAQCBOb3RTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8CisgLy8gTnVs bGFibGUgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5h bWUgVD4KKy1NYXliZVNoYXJlZDxUPiBOYXRpdmVWYWx1ZVRyYWl0czwKKy0gICAgSURMTnVsbGFi bGU8TWF5YmVTaGFyZWQ8VD4+LAorLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6 aXNfYmFzZV9vZjxET01BcnJheUJ1ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+OjoKKy0gICAgTmF0aXZl VmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCistICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2 ODo6VmFsdWU+IHZhbHVlLAorLSAgICAgICAgICAgICAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0 aW9uX3N0YXRlKSB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxULCBET01BcnJheUJ1 ZmZlclZpZXc+CisrTWF5YmVTaGFyZWQ8VD4gTmF0aXZlVmFsdWVUcmFpdHM8SURMTnVsbGFibGU8 TWF5YmVTaGFyZWQ8VD4+Pjo6TmF0aXZlVmFsdWUoCisrICAgIHY4OjpJc29sYXRlKiBpc29sYXRl LAorKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKKysgICAgRXhjZXB0aW9uU3RhdGUm IGV4Y2VwdGlvbl9zdGF0ZSkgeworICAgcmV0dXJuIE5hdGl2ZVZhbHVlSW1wbDxSZWNpcGVUcmFp dDxNYXliZVNoYXJlZDxUPj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRvRE9NVmlld1R5 cGU8VCwga01heWJlU2hhcmVkPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbGFibGl0 eTo6a0lzTnVsbGFibGUsIEJ1ZmZlclNpemVDaGVjazo6a0NoZWNrLAorQEAgLTgzNiwxMyArODI5 LDEyIEBAIE1heWJlU2hhcmVkPFQ+IE5hdGl2ZVZhbHVlVHJhaXRzPAorIH0KKyAKKyB0ZW1wbGF0 ZSA8dHlwZW5hbWUgVD4KKy1NYXliZVNoYXJlZDxUPiBOYXRpdmVWYWx1ZVRyYWl0czwKKy0gICAg SURMTnVsbGFibGU8TWF5YmVTaGFyZWQ8VD4+LAorLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p Zl90PHN0ZDo6aXNfYmFzZV9vZjxET01BcnJheUJ1ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+OjoKKy0g ICAgQXJndW1lbnRWYWx1ZSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSwKKy0gICAgICAgICAgICAgICAg ICBpbnQgYXJndW1lbnRfaW5kZXgsCistICAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpW YWx1ZT4gdmFsdWUsCistICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlv bl9zdGF0ZSkgeworKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgRE9NQXJyYXlCdWZm ZXJWaWV3PgorK01heWJlU2hhcmVkPFQ+IE5hdGl2ZVZhbHVlVHJhaXRzPElETE51bGxhYmxlPE1h eWJlU2hhcmVkPFQ+Pj46OkFyZ3VtZW50VmFsdWUoCisrICAgIHY4OjpJc29sYXRlKiBpc29sYXRl LAorKyAgICBpbnQgYXJndW1lbnRfaW5kZXgsCisrICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh bHVlLAorKyAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisgICByZXR1cm4g QXJndW1lbnRWYWx1ZUltcGw8UmVjaXBlVHJhaXQ8TWF5YmVTaGFyZWQ8VD4+LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRvRE9NVmlld1R5cGU8VCwga01heWJlU2hhcmVkPiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOdWxsYWJsaXR5OjprSXNOdWxsYWJsZSwgQnVmZmVyU2l6 ZUNoZWNrOjprQ2hlY2ssCitAQCAtODUzLDkgKzg0NSw5IEBAIE1heWJlU2hhcmVkPFQ+IE5hdGl2 ZVZhbHVlVHJhaXRzPAorIC8vIE51bGxhYmxlIFtBbGxvd1NoYXJlZCwgQnVmZmVyU291cmNlVHlw ZU5vU2l6ZUxpbWl0XSBBcnJheUJ1ZmZlclZpZXcKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K Ky1NYXliZVNoYXJlZDxUPiBOYXRpdmVWYWx1ZVRyYWl0czwKKy0gICAgSURMTnVsbGFibGU8SURM QnVmZmVyU291cmNlVHlwZU5vU2l6ZUxpbWl0PE1heWJlU2hhcmVkPFQ+Pj4sCistICAgIHR5cGVu YW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19iYXNlX29mPERPTUFycmF5QnVmZmVyVmlldywg VD46OnZhbHVlPj46OgorKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgRE9NQXJyYXlC dWZmZXJWaWV3PgorK01heWJlU2hhcmVkPFQ+CisrTmF0aXZlVmFsdWVUcmFpdHM8SURMTnVsbGFi bGU8SURMQnVmZmVyU291cmNlVHlwZU5vU2l6ZUxpbWl0PE1heWJlU2hhcmVkPFQ+Pj4+OjoKKyAg ICAgQXJndW1lbnRWYWx1ZSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSwKKyAgICAgICAgICAgICAgICAg ICBpbnQgYXJndW1lbnRfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpW YWx1ZT4gdmFsdWUsCitAQCAtODcwLDEzICs4NjIsMTEgQEAgTWF5YmVTaGFyZWQ8VD4gTmF0aXZl VmFsdWVUcmFpdHM8CisgLy8gW0FsbG93U2hhcmVkLCBGbGV4aWJsZUFycmF5QnVmZmVyVmlld10g QXJyYXlCdWZmZXJWaWV3CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CistVCBOYXRpdmVWYWx1 ZVRyYWl0czxULAorLSAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZf dDwKKy0gICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmlzX2Jhc2Vfb2Y8RmxleGlibGVBcnJh eUJ1ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+OjoKKy0gICAgQXJndW1lbnRWYWx1ZSh2ODo6SXNvbGF0 ZSogaXNvbGF0ZSwKKy0gICAgICAgICAgICAgICAgICBpbnQgYXJndW1lbnRfaW5kZXgsCistICAg ICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCistICAgICAgICAgICAg ICAgICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworKyAgcmVxdWlyZXMgc3Rk OjpkZXJpdmVkX2Zyb208VCwgRmxleGlibGVBcnJheUJ1ZmZlclZpZXc+CisrVCBOYXRpdmVWYWx1 ZVRyYWl0czxUPjo6QXJndW1lbnRWYWx1ZSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhcmd1bWVudF9pbmRleCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh bHVlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uU3Rh dGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworICAgcmV0dXJuIEFyZ3VtZW50VmFsdWVJbXBsPFJlY2lw ZVRyYWl0PFQ+LCBUb0ZsZXhpYmxlQXJyYXlCdWZmZXJWaWV3LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE51bGxhYmxpdHk6OmtJc05vdE51bGxhYmxlLCBCdWZmZXJTaXplQ2hlY2s6OmtD aGVjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNpemFibGVBbGxvd2FuY2U6OmtE aXNhbGxvd1Jlc2l6YWJsZSwKK0BAIC04ODgsMTMgKzg3OCwxMiBAQCBUIE5hdGl2ZVZhbHVlVHJh aXRzPFQsCisgLy8gQXJyYXlCdWZmZXJWaWV3CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cist VCBOYXRpdmVWYWx1ZVRyYWl0czxJRExCdWZmZXJTb3VyY2VUeXBlTm9TaXplTGltaXQ8VD4sCist ICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PAorLSAgICAgICAg ICAgICAgICAgICAgICAgIHN0ZDo6aXNfYmFzZV9vZjxGbGV4aWJsZUFycmF5QnVmZmVyVmlldywg VD46OnZhbHVlPj46OgorLSAgICBBcmd1bWVudFZhbHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAor LSAgICAgICAgICAgICAgICAgIGludCBhcmd1bWVudF9pbmRleCwKKy0gICAgICAgICAgICAgICAg ICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKKy0gICAgICAgICAgICAgICAgICBFeGNlcHRp b25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJv bTxULCBGbGV4aWJsZUFycmF5QnVmZmVyVmlldz4KKytUIE5hdGl2ZVZhbHVlVHJhaXRzPElETEJ1 ZmZlclNvdXJjZVR5cGVOb1NpemVMaW1pdDxUPj46OkFyZ3VtZW50VmFsdWUoCisrICAgIHY4OjpJ c29sYXRlKiBpc29sYXRlLAorKyAgICBpbnQgYXJndW1lbnRfaW5kZXgsCisrICAgIHY4OjpMb2Nh bDx2ODo6VmFsdWU+IHZhbHVlLAorKyAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRl KSB7CisgICByZXR1cm4gQXJndW1lbnRWYWx1ZUltcGw8CisgICAgICAgUmVjaXBlVHJhaXQ8VD4s IFRvRmxleGlibGVBcnJheUJ1ZmZlclZpZXcsIE51bGxhYmxpdHk6OmtJc05vdE51bGxhYmxlLAor ICAgICAgIEJ1ZmZlclNpemVDaGVjazo6a0RvTm90Q2hlY2ssIFJlc2l6YWJsZUFsbG93YW5jZTo6 a0Rpc2FsbG93UmVzaXphYmxlLAorQEAgLTkwNSwxMyArODk0LDEyIEBAIFQgTmF0aXZlVmFsdWVU cmFpdHM8SURMQnVmZmVyU291cmNlVHlwZU5vU2l6ZUxpbWl0PFQ+LAorIC8vIE51bGxhYmxlIFtB bGxvd1NoYXJlZCwgRmxleGlibGVBcnJheUJ1ZmZlclZpZXddIEFycmF5QnVmZmVyVmlldworIAor IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorLVQgTmF0aXZlVmFsdWVUcmFpdHM8SURMTnVsbGFibGU8 VD4sCistICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PAorLSAg ICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6aXNfYmFzZV9vZjxGbGV4aWJsZUFycmF5QnVmZmVy VmlldywgVD46OnZhbHVlPj46OgorLSAgICBBcmd1bWVudFZhbHVlKHY4OjpJc29sYXRlKiBpc29s YXRlLAorLSAgICAgICAgICAgICAgICAgIGludCBhcmd1bWVudF9pbmRleCwKKy0gICAgICAgICAg ICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKKy0gICAgICAgICAgICAgICAgICBF eGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2 ZWRfZnJvbTxULCBGbGV4aWJsZUFycmF5QnVmZmVyVmlldz4KKytUIE5hdGl2ZVZhbHVlVHJhaXRz PElETE51bGxhYmxlPFQ+Pjo6QXJndW1lbnRWYWx1ZSgKKysgICAgdjg6Oklzb2xhdGUqIGlzb2xh dGUsCisrICAgIGludCBhcmd1bWVudF9pbmRleCwKKysgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g dmFsdWUsCisrICAgIEV4Y2VwdGlvblN0YXRlJiBleGNlcHRpb25fc3RhdGUpIHsKKyAgIHJldHVy biBBcmd1bWVudFZhbHVlSW1wbDxSZWNpcGVUcmFpdDxUPiwgVG9GbGV4aWJsZUFycmF5QnVmZmVy VmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsYWJsaXR5OjprSXNOdWxsYWJs ZSwgQnVmZmVyU2l6ZUNoZWNrOjprQ2hlY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVzaXphYmxlQWxsb3dhbmNlOjprRGlzYWxsb3dSZXNpemFibGUsCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92OC9uYXRpdmVfdmFsdWVfdHJh aXRzX2ltcGwuaCBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdzL2NvcmUvdjgv bmF0aXZlX3ZhbHVlX3RyYWl0c19pbXBsLmgKK2luZGV4IDg5OTkyOWRjZjQ5ZjkuLjUwMTE1MDNk Y2YxYzAgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9j b3JlL3Y4L25hdGl2ZV92YWx1ZV90cmFpdHNfaW1wbC5oCisrKysgYi90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L25hdGl2ZV92YWx1ZV90cmFpdHNfaW1wbC5oCitA QCAtNSw2ICs1LDkgQEAKKyAjaWZuZGVmIFRISVJEX1BBUlRZX0JMSU5LX1JFTkRFUkVSX0JJTkRJ TkdTX0NPUkVfVjhfTkFUSVZFX1ZBTFVFX1RSQUlUU19JTVBMX0hfCisgI2RlZmluZSBUSElSRF9Q QVJUWV9CTElOS19SRU5ERVJFUl9CSU5ESU5HU19DT1JFX1Y4X05BVElWRV9WQUxVRV9UUkFJVFNf SU1QTF9IXworIAorKyNpbmNsdWRlIDxjb25jZXB0cz4KKysjaW5jbHVkZSA8dHlwZV90cmFpdHM+ CisrCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC90eXBlcy9vcHRpb25h bC5oIgorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3Jl L3Y4L2lkbF90eXBlcy5oIgorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9i aW5kaW5ncy9jb3JlL3Y4L25hdGl2ZV92YWx1ZV90cmFpdHMuaCIKK0BAIC03MTUsOSArNzE4LDgg QEAgc3RydWN0IENPUkVfRVhQT1JUIE5hdGl2ZVZhbHVlVHJhaXRzPAorIH07CisgCisgdGVtcGxh dGUgPHR5cGVuYW1lIFQ+Cistc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorLSAgICBULAorLSAg ICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxET01BcnJheUJ1ZmZl clZpZXcsIFQ+Ojp2YWx1ZT4+IHsKKysgIHJlcXVpcmVzIHN0ZDo6ZGVyaXZlZF9mcm9tPFQsIERP TUFycmF5QnVmZmVyVmlldz4KKytzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8VD4geworICAgLy8g Tm90U2hhcmVkPFQ+IG9yIE1heWJlU2hhcmVkPFQ+IHNob3VsZCBiZSB1c2VkIGluc3RlYWQuCisg ICBzdGF0aWMgVCogTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCitAQCAtNzI5LDkgKzcz MSw4IEBAIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKyB9OworIAorIHRlbXBsYXRlIDx0eXBl bmFtZSBUPgorLXN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKy0gICAgSURMTnVsbGFibGU8VD4s CistICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19iYXNlX29mPERPTUFycmF5 QnVmZmVyVmlldywgVD46OnZhbHVlPj4geworKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208 VCwgRE9NQXJyYXlCdWZmZXJWaWV3PgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxJRExOdWxs YWJsZTxUPj4geworICAgLy8gTm90U2hhcmVkPFQ+IG9yIE1heWJlU2hhcmVkPFQ+IHNob3VsZCBi ZSB1c2VkIGluc3RlYWQuCisgICBzdGF0aWMgVCogTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlz b2xhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFs dWUsCitAQCAtNzQzLDkgKzc0NCw4IEBAIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKyB9Owor IAorIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorLXN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKy0g ICAgTm90U2hhcmVkPFQ+LAorLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf YmFzZV9vZjxET01BcnJheUJ1ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+CisrICByZXF1aXJlcyBzdGQ6 OmRlcml2ZWRfZnJvbTxULCBET01BcnJheUJ1ZmZlclZpZXc+Cisrc3RydWN0IE5hdGl2ZVZhbHVl VHJhaXRzPE5vdFNoYXJlZDxUPj4KKyAgICAgOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNl PE5vdFNoYXJlZDxUPj4geworICAgc3RhdGljIE5vdFNoYXJlZDxUPiBOYXRpdmVWYWx1ZSh2ODo6 SXNvbGF0ZSogaXNvbGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjg6 OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCitAQCAtNzU4LDkgKzc1OCw4IEBAIHN0cnVjdCBOYXRp dmVWYWx1ZVRyYWl0czwKKyB9OworIAorIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorLXN0cnVjdCBO YXRpdmVWYWx1ZVRyYWl0czwKKy0gICAgSURMTnVsbGFibGU8Tm90U2hhcmVkPFQ+PiwKKy0gICAg dHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2Jhc2Vfb2Y8RE9NQXJyYXlCdWZmZXJW aWV3LCBUPjo6dmFsdWU+PgorKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgRE9NQXJy YXlCdWZmZXJWaWV3PgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxJRExOdWxsYWJsZTxOb3RT aGFyZWQ8VD4+PgorICAgICA6IHB1YmxpYyBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2U8Tm90U2hhcmVk PFQ+PiB7CisgICBzdGF0aWMgTm90U2hhcmVkPFQ+IE5hdGl2ZVZhbHVlKHY4OjpJc29sYXRlKiBp c29sYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6 OlZhbHVlPiB2YWx1ZSwKK0BAIC03NzMsOSArNzcyLDggQEAgc3RydWN0IE5hdGl2ZVZhbHVlVHJh aXRzPAorIH07CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cistc3RydWN0IE5hdGl2ZVZhbHVl VHJhaXRzPAorLSAgICBNYXliZVNoYXJlZDxUPiwKKy0gICAgdHlwZW5hbWUgc3RkOjplbmFibGVf aWZfdDxzdGQ6OmlzX2Jhc2Vfb2Y8RE9NQXJyYXlCdWZmZXJWaWV3LCBUPjo6dmFsdWU+PgorKyAg cmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgRE9NQXJyYXlCdWZmZXJWaWV3PgorK3N0cnVj dCBOYXRpdmVWYWx1ZVRyYWl0czxNYXliZVNoYXJlZDxUPj4KKyAgICAgOiBwdWJsaWMgTmF0aXZl VmFsdWVUcmFpdHNCYXNlPE1heWJlU2hhcmVkPFQ+PiB7CisgICBzdGF0aWMgTWF5YmVTaGFyZWQ8 VD4gTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCitAQCAtNzg4LDkg Kzc4Niw4IEBAIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKyB9OworIAorIHRlbXBsYXRlIDx0 eXBlbmFtZSBUPgorLXN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKy0gICAgSURMQnVmZmVyU291 cmNlVHlwZU5vU2l6ZUxpbWl0PE1heWJlU2hhcmVkPFQ+PiwKKy0gICAgdHlwZW5hbWUgc3RkOjpl bmFibGVfaWZfdDxzdGQ6OmlzX2Jhc2Vfb2Y8RE9NQXJyYXlCdWZmZXJWaWV3LCBUPjo6dmFsdWU+ PgorKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgRE9NQXJyYXlCdWZmZXJWaWV3Pgor K3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxJRExCdWZmZXJTb3VyY2VUeXBlTm9TaXplTGltaXQ8 TWF5YmVTaGFyZWQ8VD4+PgorICAgICA6IHB1YmxpYyBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2U8TWF5 YmVTaGFyZWQ8VD4+IHsKKyAgIC8vIEZsZXhpYmxlQXJyYXlCdWZmZXJWaWV3IHVzZXMgdGhpcyBp biBpdHMgaW1wbGVtZW50YXRpb24sIHNvIHdlIGNhbm5vdAorICAgLy8gZGVsZXRlIGl0LgorQEAg LTgwNSw5ICs4MDIsOCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CisgfTsKKyAKKyB0ZW1w bGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CistICAgIElETE51 bGxhYmxlPE1heWJlU2hhcmVkPFQ+PiwKKy0gICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxz dGQ6OmlzX2Jhc2Vfb2Y8RE9NQXJyYXlCdWZmZXJWaWV3LCBUPjo6dmFsdWU+PgorKyAgcmVxdWly ZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgRE9NQXJyYXlCdWZmZXJWaWV3PgorK3N0cnVjdCBOYXRp dmVWYWx1ZVRyYWl0czxJRExOdWxsYWJsZTxNYXliZVNoYXJlZDxUPj4+CisgICAgIDogcHVibGlj IE5hdGl2ZVZhbHVlVHJhaXRzQmFzZTxNYXliZVNoYXJlZDxUPj4geworICAgc3RhdGljIE1heWJl U2hhcmVkPFQ+IE5hdGl2ZVZhbHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorQEAg LTgyMCw5ICs4MTYsOSBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CisgfTsKKyAKKyB0ZW1w bGF0ZSA8dHlwZW5hbWUgVD4KKysgIHJlcXVpcmVzIHN0ZDo6ZGVyaXZlZF9mcm9tPFQsIERPTUFy cmF5QnVmZmVyVmlldz4KKyBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CistICAgIElETE51bGxh YmxlPElETEJ1ZmZlclNvdXJjZVR5cGVOb1NpemVMaW1pdDxNYXliZVNoYXJlZDxUPj4+LAorLSAg ICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxET01BcnJheUJ1ZmZl clZpZXcsIFQ+Ojp2YWx1ZT4+CisrICAgIElETE51bGxhYmxlPElETEJ1ZmZlclNvdXJjZVR5cGVO b1NpemVMaW1pdDxNYXliZVNoYXJlZDxUPj4+PgorICAgICA6IHB1YmxpYyBOYXRpdmVWYWx1ZVRy YWl0c0Jhc2U8TWF5YmVTaGFyZWQ8VD4+IHsKKyAgIC8vIEJ1ZmZlclNvdXJjZVR5cGVOb1NpemVM aW1pdCBtdXN0IGJlIHVzZWQgb25seSBhcyBhcmd1bWVudHMuCisgICBzdGF0aWMgTWF5YmVTaGFy ZWQ8VD4gTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCitAQCAtODM2LDExICs4MzIs OCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CisgfTsKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5h bWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CistICAgIFQsCistICAgIHR5cGVuYW1l IHN0ZDo6ZW5hYmxlX2lmX3Q8CistICAgICAgICBzdGQ6OmlzX2Jhc2Vfb2Y8RmxleGlibGVBcnJh eUJ1ZmZlclZpZXcsIFQ+Ojp2YWx1ZT4+CistICAgIDogcHVibGljIE5hdGl2ZVZhbHVlVHJhaXRz QmFzZTxUPiB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxULCBGbGV4aWJsZUFycmF5 QnVmZmVyVmlldz4KKytzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8VD4gOiBwdWJsaWMgTmF0aXZl VmFsdWVUcmFpdHNCYXNlPFQ+IHsKKyAgIC8vIEZsZXhpYmxlQXJyYXlCdWZmZXJWaWV3IG11c3Qg YmUgdXNlZCBvbmx5IGFzIGFyZ3VtZW50cy4KKyAgIHN0YXRpYyBUIE5hdGl2ZVZhbHVlKHY4OjpJ c29sYXRlKiBpc29sYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpW YWx1ZT4gdmFsdWUsCitAQCAtODUzLDEwICs4NDYsOCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFp dHM8CisgfTsKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVU cmFpdHM8CistICAgIElETEJ1ZmZlclNvdXJjZVR5cGVOb1NpemVMaW1pdDxUPiwKKy0gICAgdHlw ZW5hbWUgc3RkOjplbmFibGVfaWZfdDwKKy0gICAgICAgIHN0ZDo6aXNfYmFzZV9vZjxGbGV4aWJs ZUFycmF5QnVmZmVyVmlldywgVD46OnZhbHVlPj4KKysgIHJlcXVpcmVzIHN0ZDo6ZGVyaXZlZF9m cm9tPFQsIEZsZXhpYmxlQXJyYXlCdWZmZXJWaWV3PgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0 czxJRExCdWZmZXJTb3VyY2VUeXBlTm9TaXplTGltaXQ8VD4+CisgICAgIDogcHVibGljIE5hdGl2 ZVZhbHVlVHJhaXRzQmFzZTxUPiB7CisgICAvLyBCdWZmZXJTb3VyY2VUeXBlTm9TaXplTGltaXQg YW5kIEZsZXhpYmxlQXJyYXlCdWZmZXJWaWV3IG11c3QgYmUgdXNlZCBvbmx5CisgICAvLyBhcyBh cmd1bWVudHMuCitAQCAtODcxLDExICs4NjIsOCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8 CisgfTsKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVUcmFp dHM8CistICAgIElETE51bGxhYmxlPFQ+LAorLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90 PAorLSAgICAgICAgc3RkOjppc19iYXNlX29mPEZsZXhpYmxlQXJyYXlCdWZmZXJWaWV3LCBUPjo6 dmFsdWU+PgorLSAgICA6IHB1YmxpYyBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2U8VD4geworKyAgcmVx dWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgRmxleGlibGVBcnJheUJ1ZmZlclZpZXc+Cisrc3Ry dWN0IE5hdGl2ZVZhbHVlVHJhaXRzPElETE51bGxhYmxlPFQ+PiA6IHB1YmxpYyBOYXRpdmVWYWx1 ZVRyYWl0c0Jhc2U8VD4geworICAgLy8gRmxleGlibGVBcnJheUJ1ZmZlclZpZXcgbXVzdCBiZSB1 c2VkIG9ubHkgYXMgYXJndW1lbnRzLgorICAgc3RhdGljIFQgTmF0aXZlVmFsdWUodjg6Oklzb2xh dGUqIGlzb2xhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVl PiB2YWx1ZSwKK0BAIC0xMTM0LDkgKzExMjIsOCBAQCBOYXRpdmVWYWx1ZVRyYWl0czxJRExTZXF1 ZW5jZTxUPj46Ok5hdGl2ZVZhbHVlKAorIH0KKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1z dHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8SURMTnVsbGFibGU8SURMU2VxdWVuY2U8VD4+LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTmF0aXZlVmFsdWVUcmFpdHM8SURMU2VxdWVuY2U8VD4+ OjpoYXNfbnVsbF92YWx1ZT4+CisrICByZXF1aXJlcyBOYXRpdmVWYWx1ZVRyYWl0czxJRExTZXF1 ZW5jZTxUPj46Omhhc19udWxsX3ZhbHVlCisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPElETE51 bGxhYmxlPElETFNlcXVlbmNlPFQ+Pj4KKyAgICAgOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNC YXNlPEhlYXBWZWN0b3I8QWRkTWVtYmVySWZOZWVkZWQ8VD4+Kj4geworICAgdXNpbmcgSW1wbFR5 cGUgPSB0eXBlbmFtZSBOYXRpdmVWYWx1ZVRyYWl0czxJRExTZXF1ZW5jZTxUPj46OkltcGxUeXBl KjsKKyAKK0BAIC0xMjAzLDkgKzExOTAsOCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8SURM QXJyYXk8VD4+CisgICAgIDogcHVibGljIE5hdGl2ZVZhbHVlVHJhaXRzPElETFNlcXVlbmNlPFQ+ PiB7fTsKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVUcmFp dHM8SURMTnVsbGFibGU8SURMQXJyYXk8VD4+LAorLSAgICAgICAgICAgICAgICAgICAgICAgICB0 eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TmF0aXZlVmFsdWVUcmFpdHM8SURMU2VxdWVuY2U8VD4+OjpoYXNfbnVsbF92YWx1ZT4+CisrICBy ZXF1aXJlcyBOYXRpdmVWYWx1ZVRyYWl0czxJRExTZXF1ZW5jZTxUPj46Omhhc19udWxsX3ZhbHVl Cisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPElETE51bGxhYmxlPElETEFycmF5PFQ+Pj4KKyAg ICAgOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHM8SURMTnVsbGFibGU8SURMU2VxdWVuY2U8VD4+ PiB7fTsKKyAKKyAvLyBSZWNvcmQgdHlwZXMKK0BAIC0xMzM1LDEwICsxMzIxLDggQEAgc3RydWN0 IE5hdGl2ZVZhbHVlVHJhaXRzPElETFJlY29yZDxLLCBWPj4KKyAKKyAvLyBDYWxsYmFjayBmdW5j dGlvbiB0eXBlcworIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorLXN0cnVjdCBOYXRpdmVWYWx1ZVRy YWl0czwKKy0gICAgVCwKKy0gICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2Jh c2Vfb2Y8Q2FsbGJhY2tGdW5jdGlvbkJhc2UsIFQ+Ojp2YWx1ZT4+CistICAgIDogcHVibGljIE5h dGl2ZVZhbHVlVHJhaXRzQmFzZTxUKj4geworKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208 VCwgQ2FsbGJhY2tGdW5jdGlvbkJhc2U+Cisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPFQ+IDog cHVibGljIE5hdGl2ZVZhbHVlVHJhaXRzQmFzZTxUKj4geworICAgc3RhdGljIFQqIE5hdGl2ZVZh bHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpM b2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlv blN0YXRlJiBleGNlcHRpb25fc3RhdGUpIHsKK0BAIC0xMzYxLDkgKzEzNDUsOCBAQCBzdHJ1Y3Qg TmF0aXZlVmFsdWVUcmFpdHM8CisgfTsKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1 Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CistICAgIElETE51bGxhYmxlPFQ+LAorLSAgICB0eXBlbmFt ZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxDYWxsYmFja0Z1bmN0aW9uQmFzZSwg VD46OnZhbHVlPj4KKysgIHJlcXVpcmVzIHN0ZDo6ZGVyaXZlZF9mcm9tPFQsIENhbGxiYWNrRnVu Y3Rpb25CYXNlPgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxJRExOdWxsYWJsZTxUPj4KKyAg ICAgOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPElETE51bGxhYmxlPFQ+PiB7CisgICBz dGF0aWMgVCogTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCitAQCAtMTM5MiwxMCArMTM3 NSw4IEBAIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKyAKKyAvLyBDYWxsYmFjayBpbnRlcmZh Y2UgdHlwZXMKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVUcmFp dHM8CistICAgIFQsCistICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19iYXNl X29mPENhbGxiYWNrSW50ZXJmYWNlQmFzZSwgVD46OnZhbHVlPj4KKy0gICAgOiBwdWJsaWMgTmF0 aXZlVmFsdWVUcmFpdHNCYXNlPFQqPiB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxU LCBDYWxsYmFja0ludGVyZmFjZUJhc2U+Cisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPFQ+IDog cHVibGljIE5hdGl2ZVZhbHVlVHJhaXRzQmFzZTxUKj4geworICAgc3RhdGljIFQqIE5hdGl2ZVZh bHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpM b2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlv blN0YXRlJiBleGNlcHRpb25fc3RhdGUpIHsKK0BAIC0xNDE4LDkgKzEzOTksOCBAQCBzdHJ1Y3Qg TmF0aXZlVmFsdWVUcmFpdHM8CisgfTsKKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1 Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CistICAgIElETE51bGxhYmxlPFQ+LAorLSAgICB0eXBlbmFt ZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxDYWxsYmFja0ludGVyZmFjZUJhc2Us IFQ+Ojp2YWx1ZT4+CisrICByZXF1aXJlcyBzdGQ6OmRlcml2ZWRfZnJvbTxULCBDYWxsYmFja0lu dGVyZmFjZUJhc2U+Cisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPElETE51bGxhYmxlPFQ+Pgor ICAgICA6IHB1YmxpYyBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2U8SURMTnVsbGFibGU8VD4+IHsKKyAg IHN0YXRpYyBUKiBOYXRpdmVWYWx1ZSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKK0BAIC0xNDQ5LDExICsx NDI5LDggQEAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorIAorIC8vIERpY3Rpb25hcnkgdHlw ZXMKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8Cist ICAgIFQsCistICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8CistICAgICAgICBzdGQ6Omlz X2Jhc2Vfb2Y8YmluZGluZ3M6OkRpY3Rpb25hcnlCYXNlLCBUPjo6dmFsdWU+PgorLSAgICA6IHB1 YmxpYyBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2U8VCo+IHsKKysgIHJlcXVpcmVzIHN0ZDo6ZGVyaXZl ZF9mcm9tPFQsIGJpbmRpbmdzOjpEaWN0aW9uYXJ5QmFzZT4KKytzdHJ1Y3QgTmF0aXZlVmFsdWVU cmFpdHM8VD4gOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPFQqPiB7CisgICBzdGF0aWMg VCogTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworQEAgLTE0NjQsMTQgKzE0NDEs MTEgQEAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorIC8vIFdlIGRvbid0IHN1cHBvcnQgbnVs bGFibGUgZGljdGlvbmFyeSB0eXBlcyBpbiBnZW5lcmFsIHNpbmNlIGl0J3MgcXVpdGUKKyAvLyBj b25mdXNpbmcgYW5kIG9mdGVuIG1pc3VzZWQuCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cistc3Ry dWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorLSAgICBJRExOdWxsYWJsZTxUPiwKKy0gICAgdHlwZW5h bWUgc3RkOjplbmFibGVfaWZfdDwKKy0gICAgICAgIHN0ZDo6aXNfYmFzZV9vZjxiaW5kaW5nczo6 RGljdGlvbmFyeUJhc2UsIFQ+Ojp2YWx1ZSAmJgorLSAgICAgICAgKHN0ZDo6aXNfc2FtZTxULCBH UFVDb2xvclRhcmdldFN0YXRlPjo6dmFsdWUgfHwKKy0gICAgICAgICBzdGQ6OmlzX3NhbWU8VCwg R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudD46OnZhbHVlIHx8CistICAgICAgICAgc3RkOjpp c19zYW1lPFQsIEdQVVZlcnRleEJ1ZmZlckxheW91dD46OnZhbHVlKT4+CistICAgIDogcHVibGlj IE5hdGl2ZVZhbHVlVHJhaXRzQmFzZTxUKj4geworKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zy b208VCwgYmluZGluZ3M6OkRpY3Rpb25hcnlCYXNlPiAmJgorKyAgICAgICAgICAgKHN0ZDo6c2Ft ZV9hczxULCBHUFVDb2xvclRhcmdldFN0YXRlPiB8fAorKyAgICAgICAgICAgIHN0ZDo6c2FtZV9h czxULCBHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiB8fAorKyAgICAgICAgICAgIHN0ZDo6 c2FtZV9hczxULCBHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQ+KQorK3N0cnVjdCBOYXRpdmVWYWx1ZVRy YWl0czxJRExOdWxsYWJsZTxUPj4gOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPFQqPiB7 CisgICBzdGF0aWMgVCogTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworQEAgLTE0 ODMsMTEgKzE0NTcsOCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CisgCisgLy8gRW51bWVy YXRpb24gdHlwZXMKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVU cmFpdHM8CistICAgIFQsCistICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8CistICAgICAg ICBzdGQ6OmlzX2Jhc2Vfb2Y8YmluZGluZ3M6OkVudW1lcmF0aW9uQmFzZSwgVD46OnZhbHVlPj4K Ky0gICAgOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPFQ+IHsKKysgIHJlcXVpcmVzIHN0 ZDo6ZGVyaXZlZF9mcm9tPFQsIGJpbmRpbmdzOjpFbnVtZXJhdGlvbkJhc2U+Cisrc3RydWN0IE5h dGl2ZVZhbHVlVHJhaXRzPFQ+IDogcHVibGljIE5hdGl2ZVZhbHVlVHJhaXRzQmFzZTxUPiB7Cisg ICBzdGF0aWMgVCBOYXRpdmVWYWx1ZSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLAorICAgICAgICAgICAgICAg ICAgICAgICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworQEAgLTE0OTcsMTAg KzE0NjgsOCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8CisgCisgLy8gSW50ZXJmYWNlIHR5 cGVzCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cistc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAor LSAgICBULAorLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxT Y3JpcHRXcmFwcGFibGUsIFQ+Ojp2YWx1ZT4+CistICAgIDogcHVibGljIE5hdGl2ZVZhbHVlVHJh aXRzQmFzZTxUKj4geworKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgU2NyaXB0V3Jh cHBhYmxlPgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxUPiA6IHB1YmxpYyBOYXRpdmVWYWx1 ZVRyYWl0c0Jhc2U8VCo+IHsKKyAgIHN0YXRpYyBpbmxpbmUgVCogTmF0aXZlVmFsdWUodjg6Oklz b2xhdGUqIGlzb2xhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpMb2Nh bDx2ODo6VmFsdWU+IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGNl cHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSB7CitAQCAtMTUyOCw5ICsxNDk3LDggQEAgc3Ry dWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorIH07CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cist c3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorLSAgICBJRExOdWxsYWJsZTxUPiwKKy0gICAgdHlw ZW5hbWUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2Jhc2Vfb2Y8U2NyaXB0V3JhcHBhYmxlLCBU Pjo6dmFsdWU+PgorKyAgcmVxdWlyZXMgc3RkOjpkZXJpdmVkX2Zyb208VCwgU2NyaXB0V3JhcHBh YmxlPgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxJRExOdWxsYWJsZTxUPj4KKyAgICAgOiBw dWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPElETE51bGxhYmxlPFQ+PiB7CisgICBzdGF0aWMg aW5saW5lIFQqIE5hdGl2ZVZhbHVlKHY4OjpJc29sYXRlKiBpc29sYXRlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwKK0BAIC0xNTY1 LDEwICsxNTMzLDggQEAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorIH07CisgCisgdGVtcGxh dGUgPHR5cGVuYW1lIFQ+Cistc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAorLSAgICBULAorLSAg ICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYmFzZV9vZjxiaW5kaW5nczo6VW5p b25CYXNlLCBUPjo6dmFsdWU+PgorLSAgICA6IHB1YmxpYyBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2U8 VCo+IHsKKysgIHJlcXVpcmVzIHN0ZDo6ZGVyaXZlZF9mcm9tPFQsIGJpbmRpbmdzOjpVbmlvbkJh c2U+Cisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPFQ+IDogcHVibGljIE5hdGl2ZVZhbHVlVHJh aXRzQmFzZTxUKj4geworICAgc3RhdGljIFQqIE5hdGl2ZVZhbHVlKHY4OjpJc29sYXRlKiBpc29s YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl LAorICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvblN0YXRlJiBleGNlcHRpb25fc3Rh dGUpIHsKK0BAIC0xNTg0LDEwICsxNTUwLDggQEAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPAor IH07CisgCisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cistc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRz PAorLSAgICBJRExOdWxsYWJsZTxUPiwKKy0gICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxz dGQ6OmlzX2Jhc2Vfb2Y8YmluZGluZ3M6OlVuaW9uQmFzZSwgVD46OnZhbHVlPj4KKy0gICAgOiBw dWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPFQqPiB7CisrICByZXF1aXJlcyBzdGQ6OmRlcml2 ZWRfZnJvbTxULCBiaW5kaW5nczo6VW5pb25CYXNlPgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0 czxJRExOdWxsYWJsZTxUPj4gOiBwdWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPFQqPiB7Cisg ICBzdGF0aWMgVCogTmF0aXZlVmFsdWUodjg6Oklzb2xhdGUqIGlzb2xhdGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgRXhjZXB0aW9uU3RhdGUmIGV4Y2VwdGlvbl9zdGF0ZSkgeworQEAgLTE2MDgs OSArMTU3Miw4IEBAIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czwKKyAKKyAvLyBOdWxsYWJsZSB0 eXBlcworIHRlbXBsYXRlIDx0eXBlbmFtZSBJbm5lclR5cGU+Cistc3RydWN0IE5hdGl2ZVZhbHVl VHJhaXRzPAorLSAgICBJRExOdWxsYWJsZTxJbm5lclR5cGU+LAorLSAgICB0eXBlbmFtZSBzdGQ6 OmVuYWJsZV9pZl90PCFOYXRpdmVWYWx1ZVRyYWl0czxJbm5lclR5cGU+OjpoYXNfbnVsbF92YWx1 ZT4+CisrICByZXF1aXJlcyghTmF0aXZlVmFsdWVUcmFpdHM8SW5uZXJUeXBlPjo6aGFzX251bGxf dmFsdWUpCisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPElETE51bGxhYmxlPElubmVyVHlwZT4+ CisgICAgIDogcHVibGljIE5hdGl2ZVZhbHVlVHJhaXRzQmFzZTxJRExOdWxsYWJsZTxJbm5lclR5 cGU+PiB7CisgICAvLyBodHRwczovL3dlYmlkbC5zcGVjLndoYXR3Zy5vcmcvI2VzLW51bGxhYmxl LXR5cGUKKyAgIHVzaW5nIEltcGxUeXBlID0KK0BAIC0xNjQyLDkgKzE2MDUsOCBAQCBzdHJ1Y3Qg TmF0aXZlVmFsdWVUcmFpdHM8SURMTnVsbGFibGU8SURMTnVsbGFibGU8VD4+PjsKKyAKKyAvLyBP cHRpb25hbCB0eXBlcworIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorLXN0cnVjdCBOYXRpdmVWYWx1 ZVRyYWl0czxJRExPcHRpb25hbDxUPiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5h bWUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2FyaXRobWV0aWM8CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0eXBlbmFtZSBOYXRpdmVWYWx1ZVRyYWl0czxUPjo6SW1wbFR5cGU+Ojp2 YWx1ZT4+CisrICByZXF1aXJlcyBzdGQ6OmlzX2FyaXRobWV0aWNfdjx0eXBlbmFtZSBOYXRpdmVW YWx1ZVRyYWl0czxUPjo6SW1wbFR5cGU+Cisrc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPElETE9w dGlvbmFsPFQ+PgorICAgICA6IHB1YmxpYyBOYXRpdmVWYWx1ZVRyYWl0c0Jhc2U8dHlwZW5hbWUg TmF0aXZlVmFsdWVUcmFpdHM8VD46OkltcGxUeXBlPiB7CisgICB1c2luZyBJbXBsVHlwZSA9IHR5 cGVuYW1lIE5hdGl2ZVZhbHVlVHJhaXRzPFQ+OjpJbXBsVHlwZTsKKyAKK0BAIC0xNjY2LDkgKzE2 MjgsOCBAQCBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8SURMT3B0aW9uYWw8VD4sCisgfTsKKyAK KyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy1zdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM8SURMT3B0 aW9uYWw8VD4sCistICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxl X2lmX3Q8c3RkOjppc19wb2ludGVyPAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZW5hbWUgTmF0aXZlVmFsdWVUcmFpdHM8VD46OkltcGxUeXBlPjo6dmFsdWU+PgorKyAgcmVxdWly ZXMgc3RkOjppc19wb2ludGVyX3Y8dHlwZW5hbWUgTmF0aXZlVmFsdWVUcmFpdHM8VD46OkltcGxU eXBlPgorK3N0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxJRExPcHRpb25hbDxUPj4KKyAgICAgOiBw dWJsaWMgTmF0aXZlVmFsdWVUcmFpdHNCYXNlPHR5cGVuYW1lIE5hdGl2ZVZhbHVlVHJhaXRzPFQ+ OjpJbXBsVHlwZT4geworICAgdXNpbmcgSW1wbFR5cGUgPSB0eXBlbmFtZSBOYXRpdmVWYWx1ZVRy YWl0czxUPjo6SW1wbFR5cGU7CisgCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTIxLXdvcmthcm91 bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaCBiL2Nocm9taXVtLTEyMS13b3Jr YXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMTkyYjA2OQotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVt LTEyMS13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcucGF0Y2gKQEAgLTAs MCArMSw1MyBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9tZWRpYS9iYXNlL2Nk bV9wcm9taXNlX2FkYXB0ZXIuY2Mud29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJlZF9iaW5k aW5nIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJvbWlzZV9hZGFwdGVy LmNjCistLS0gY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9tZWRpYS9iYXNlL2NkbV9wcm9taXNlX2Fk YXB0ZXIuY2Mud29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJlZF9iaW5kaW5nCTIwMjMtMDYt MDcgMjE6NDg6MzcuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9t ZWRpYS9iYXNlL2NkbV9wcm9taXNlX2FkYXB0ZXIuY2MJMjAyMy0wNi0xNyAxNjo1MzoyMC4yMTY2 Mjg1NTcgKzAyMDAKK0BAIC05NCw3ICs5NCw5IEBAIHZvaWQgQ2RtUHJvbWlzZUFkYXB0ZXI6OlJl amVjdFByb21pc2UodWkKKyB2b2lkIENkbVByb21pc2VBZGFwdGVyOjpDbGVhcihDbGVhclJlYXNv biByZWFzb24pIHsKKyAgIC8vIFJlamVjdCBhbGwgb3V0c3RhbmRpbmcgcHJvbWlzZXMuCisgICBE Q0hFQ0sodGhyZWFkX2NoZWNrZXJfLkNhbGxlZE9uVmFsaWRUaHJlYWQoKSk7CistICBmb3IgKGF1 dG8mIFtwcm9taXNlX2lkLCBwcm9taXNlXSA6IHByb21pc2VzXykgeworKyAgZm9yIChhdXRvJiBb cF9pLCBwX2VdIDogcHJvbWlzZXNfKSB7CisrICAgIGF1dG8mIHByb21pc2VfaWQgPSBwX2k7Cisr ICAgIGF1dG8mIHByb21pc2UgPSBwX2U7CisgICAgIFRSQUNFX0VWRU5UX05FU1RBQkxFX0FTWU5D X0VORDEoCisgICAgICAgICAibWVkaWEiLCAiQ2RtUHJvbWlzZSIsIFRSQUNFX0lEX1dJVEhfU0NP UEUoIkNkbVByb21pc2UiLCBwcm9taXNlX2lkKSwKKyAgICAgICAgICJzdGF0dXMiLCAiY2xlYXJl ZCIpOworZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb250ZW50L2Jyb3dzZXIvc2Vy dmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGV4dF93cmFwcGVyLmNjLm1lIGNocm9taXVt LTExNS4wLjU3OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29y a2VyX2NvbnRleHRfd3JhcHBlci5jYworLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29udGVu dC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRleHRfd3JhcHBlci5j Yy5tZQkyMDIzLTA2LTE5IDA4OjA0OjAyLjI4NzA3MjcyMiArMDIwMAorKysrIGNocm9taXVtLTEx NS4wLjU3OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2Vy X2NvbnRleHRfd3JhcHBlci5jYwkyMDIzLTA2LTE5IDA4OjE4OjI0LjU3NjgxNDk1MCArMDIwMAor QEAgLTEzOTMsNyArMTM5Myw4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRXcmFwcGVyOjpN YXliZVAKKyAgICAgcmV0dXJuOworICAgfQorIAorLSAgYXV0byBbZG9jdW1lbnRfdXJsLCBrZXks IGNhbGxiYWNrXSA9IHN0ZDo6bW92ZSgqcmVxdWVzdCk7CisrICBhdXRvIFtkX3UsIGtleSwgY2Fs bGJhY2tdID0gc3RkOjptb3ZlKCpyZXF1ZXN0KTsKKysgIGF1dG8gZG9jdW1lbnRfdXJsID0gZF91 OworIAorICAgRENIRUNLKGRvY3VtZW50X3VybC5pc192YWxpZCgpKTsKKyAgIFRSQUNFX0VWRU5U MSgiU2VydmljZVdvcmtlciIsCitkaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L2dyaWQvZ3JpZF9sYXlvdXRfYWxnb3Jp dGhtLmNjLnRoYW4gY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi90aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9jb3JlL2xheW91dC9ncmlkL2dyaWRfbGF5b3V0X2FsZ29yaXRobS5jYworLS0tIGNocm9t aXVtLTEyMS4wLjYxNjcuMTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQv Z3JpZC9ncmlkX2xheW91dF9hbGdvcml0aG0uY2MudGhhbgkyMDIzLTEyLTE5IDE3OjU3OjU2LjIw NTE5NzI0NiArMDEwMAorKysrIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvZ3JpZC9ncmlkX2xheW91dF9hbGdvcml0aG0uY2MJMjAy My0xMi0xOSAxODoxMDoxMy43Nzg2MzQ1MzEgKzAxMDAKK0BAIC0zNTI3LDggKzM1MjcsOCBAQCB2 b2lkIEdyaWRMYXlvdXRBbGdvcml0aG06OlBsYWNlR3JpZEl0ZW1zCisgICBEQ0hFQ0sob3V0X3Jv d19icmVha19iZXR3ZWVuKTsKKyAKKyAgIGNvbnN0IGF1dG8mIGNvbnRhaW5lcl9zcGFjZSA9IEdl dENvbnN0cmFpbnRTcGFjZSgpOworLSAgY29uc3QgYXV0byYgW2dyaWRfaXRlbXMsIGxheW91dF9k YXRhLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJvb3REYXRhKCk7CistCisrICBjb25z dCBhdXRvJiBbZ3JpZF9pdGVtcywgbF9kLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJv b3REYXRhKCk7CisrICBjb25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsKKyAgIGNvbnN0IGF1 dG8qIGNhY2hlZF9sYXlvdXRfc3VidHJlZSA9IGNvbnRhaW5lcl9zcGFjZS5HZXRHcmlkTGF5b3V0 U3VidHJlZSgpOworICAgY29uc3QgYXV0byBjb250YWluZXJfd3JpdGluZ19kaXJlY3Rpb24gPQor ICAgICAgIGNvbnRhaW5lcl9zcGFjZS5HZXRXcml0aW5nRGlyZWN0aW9uKCk7CitAQCAtMzY5MSw4 ICszNjkxLDkgQEAgdm9pZCBHcmlkTGF5b3V0QWxnb3JpdGhtOjpQbGFjZUdyaWRJdGVtcworIAor ICAgLy8gVE9ETyhpa2lscGF0cmljayk6IFVwZGF0ZSB8U2V0SGFzU2VlbkFsbENoaWxkcmVufCBh bmQgZWFybHkgZXhpdCBpZiB0cnVlLgorICAgY29uc3QgYXV0byYgY29uc3RyYWludF9zcGFjZSA9 IEdldENvbnN0cmFpbnRTcGFjZSgpOworLSAgY29uc3QgYXV0byYgW2dyaWRfaXRlbXMsIGxheW91 dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJvb3REYXRhKCk7CistCisrICBj b25zdCBhdXRvJiBbZ19pLCBsX2QsIHRyZWVfc2l6ZV0gPSBzaXppbmdfdHJlZS5UcmVlUm9vdERh dGEoKTsKKysgIGNvbnN0IGF1dG8mIGdyaWRfaXRlbXMgPSBnX2k7CisrICBjb25zdCBhdXRvJiBs YXlvdXRfZGF0YSA9IGxfZDsKKyAgIGNvbnN0IGF1dG8qIGNhY2hlZF9sYXlvdXRfc3VidHJlZSA9 IGNvbnN0cmFpbnRfc3BhY2UuR2V0R3JpZExheW91dFN1YnRyZWUoKTsKKyAgIGNvbnN0IGF1dG8g Y29udGFpbmVyX3dyaXRpbmdfZGlyZWN0aW9uID0KKyAgICAgICBjb25zdHJhaW50X3NwYWNlLkdl dFdyaXRpbmdEaXJlY3Rpb24oKTsKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS5zcGVjIGIvY2hyb21p dW0uc3BlYwppbmRleCBlNWI2ODljLi5jMDMwOWFhIDEwMDY0NAotLS0gYS9jaHJvbWl1bS5zcGVj CisrKyBiL2Nocm9taXVtLnNwZWMKQEAgLTE4Niw2ICsxODYsMTIgQEAKICVnbG9iYWwgdXNlX3F0 NiAwCiAlZW5kaWYKIAorIyBkaXNhYmxlIGR1ZSB0byBnY2MtMTQgYnVnCislaWYgMCV7P2ZlZG9y YX0gPiAzOQorJWdsb2JhbCB1c2VfcXQ2IDAKKyVnbG9iYWwgdXNlX3F0IDAKKyVlbmRpZgorCiAj IGVuYWJsZSBndGszIGJ5IGRlZmF1bHQKICVnbG9iYWwgZ3RrMyAxCiAKQEAgLTI4NSw4ICsyOTEs OCBAQAogJWVuZGlmCiAKIE5hbWU6CWNocm9taXVtJXtjaHJvbWl1bV9jaGFubmVsfQotVmVyc2lv bjogMTIwLjAuNjA5OS4yMjQKLVJlbGVhc2U6IDIlez9kaXN0fQorVmVyc2lvbjogMTIxLjAuNjE2 Ny43MQorUmVsZWFzZTogMSV7P2Rpc3R9CiBTdW1tYXJ5OiBBIFdlYktpdCAoQmxpbmspIHBvd2Vy ZWQgd2ViIGJyb3dzZXIgdGhhdCBHb29nbGUgZG9lc24ndCB3YW50IHlvdSB0byB1c2UKIFVybDog aHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvSG9tZQogTGljZW5zZTogQlNELTMtQ2xhdXNlIEFORCBM R1BMLTIuMS1vci1sYXRlciBBTkQgQXBhY2hlLTIuMCBBTkQgSUpHIEFORCBNSVQgQU5EIEdQTC0y LjAtb3ItbGF0ZXIgQU5EIElTQyBBTkQgT3BlblNTTCBBTkQgKE1QTC0xLjEgT1IgR1BMLTIuMC1v bmx5IE9SIExHUEwtMi4wLW9ubHkpCkBAIC0zNzgsMzYgKzM4NCwzNyBAQCBQYXRjaDEwODogY2hy b21pdW0tMTE4LWVsN192NGwyX3F1YW50aXphdGlvbi5wYXRjaAogUGF0Y2gxMDk6IGNocm9taXVt LTExNC13aXJlbGVzcy1lbDcucGF0Y2gKIFBhdGNoMTEwOiBjaHJvbWl1bS0xMTUtYnVpbGRmbGFn LWVsNy5wYXRjaAogUGF0Y2gxMTE6IGNocm9taXVtLTExNi1jb25zdGV4cHIucGF0Y2gKLVBhdGNo MTEyOiBjaHJvbWl1bS0xMTctZWw3LWRlZmF1bHRfY29uc3RydWN0b3IucGF0Y2gKICMgb2xkIGNs YW5nIG9uIGVsNwogCi1QYXRjaDExMzogY2hyb21pdW0tMTIwLWVsNy1jbGFuZy12ZXJzaW9uLXdh cm5pbmcucGF0Y2gKK1BhdGNoMTEzOiBjaHJvbWl1bS0xMjEtZWw3LWNsYW5nLXZlcnNpb24td2Fy bmluZy5wYXRjaAogUGF0Y2gxMTQ6IGNocm9taXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFpbHVy ZS5wYXRjaAogCiAjIHN5c3RlbSBmZm1wZWcKLSMgbmVlZCBmb3Igb2xkIGZmbXBlZyA1Lnggb24g ZXBlbDkgYW5kIGZlZG9yYSAzNworIyBuZWVkIGZvciBvbGQgZmZtcGVnIDUueCBvbiBlcGVsOQog UGF0Y2gxMTU6IGNocm9taXVtLTEwNy1mZm1wZWctNS54LWR1cmF0aW9uLnBhdGNoCiAjIGRpc2Fi bGUgdGhlIGNoZWNrCiBQYXRjaDExNjogY2hyb21pdW0tMTA3LXByb3ByaWV0YXJ5LWNvZGVjcy5w YXRjaAogIyBmaXggdGFiIGNyYXNoIHdpdGggU0lHVFJBUCBlcnJvciB3aGVuIHVzaW5nIHN5c3Rl bSBmZm1wZWcKIFBhdGNoMTE3OiBjaHJvbWl1bS0xMTgtc2lndHJhcF9zeXN0ZW1fZmZtcGVnLnBh dGNoCisjIG5lZWQgZm9yIG9sZCBmZm1wZWcgNi4wLzUueCBvbiBlcGVsOSBhbmQgZmVkb3JhIDwg NDAKK1BhdGNoMTE4OiBjaHJvbWl1bS0xMjEtc3lzdGVtLW9sZC1mZm1wZWcucGF0Y2gKIAogIyBy ZXZlcnQgQVYxIFZBQVBJIHZpZGVvIGVuY29kZSBkdWUgdG8gb2xkIGxpYnZhIG9uIGVsOQotUGF0 Y2gxMzA6IGNocm9taXVtLTExOS1yZXZlcnQtYXYxZW5jLWVsOS5wYXRjaAorUGF0Y2gxMzA6IGNo cm9taXVtLTEyMS1yZXZlcnQtYXYxZW5jLWVsOS5wYXRjaAogCiAjIGZpbGUgY29uZmxpY3Qgd2l0 aCBvbGQga2VybmVsIG9uIGVsOC9lbDkKIFBhdGNoMTQwOiBjaHJvbWl1bS0xMTgtZG1hX2J1Zl9l eHBvcnRfc3luY19maWxlLWNvbmZsaWN0LnBhdGNoCiAKICMgZml4ZXMgZm9yIG9sZCBjbGFuZyB2 ZXJzaW9uIGluIGZlZG9yYSA8IDM4IGVuZCBlcGVsIDwgOCAob2xkIGNsYW5nIDw9IDE1KQogIyBj b21waWxlciBidWlsZCBlcnJvcnMsIG5vIG1hdGNoaW5nIGNvbnN0cnVjdG9yIGZvciBpbml0aWFs aXphdGlvbgotUGF0Y2gzMDA6IGNocm9taXVtLTEyMC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5w YXRjaAorUGF0Y2gzMDA6IGNocm9taXVtLTEyMS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRj aAogUGF0Y2gzMDE6IGNocm9taXVtLTExNS1jb21waWxlci1Ta0NvbG9yNGYucGF0Y2gKIAogIyB3 b3JrYXJvdW5kIGZvciBjbGFuZyBidWcsIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJv amVjdC9pc3N1ZXMvNTc4MjYKLVBhdGNoMzAyOiBjaHJvbWl1bS0xMjAtd29ya2Fyb3VuZF9jbGFu Z19idWctc3RydWN0dXJlZF9iaW5kaW5nLnBhdGNoCitQYXRjaDMwMjogY2hyb21pdW0tMTIxLXdv cmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaAogCiAjIG1pc3Npbmcg dHlwZW5hbWUKLVBhdGNoMzAzOiBjaHJvbWl1bS0xMjAtdHlwZW5hbWUucGF0Y2gKK1BhdGNoMzAz OiBjaHJvbWl1bS0xMjEtdHlwZW5hbWUucGF0Y2gKIAogIyBlcnJvcjogaW52YWxpZCBvcGVyYW5k cyB0byBiaW5hcnkgZXhwcmVzc2lvbgogUGF0Y2gzMDQ6IGNocm9taXVtLTExNy1zdHJpbmctY29u dmVydC5wYXRjaApAQCAtNDE2LDEwICs0MjMsMTQgQEAgUGF0Y2gzMDY6IGNocm9taXVtLTExOS1h c3NlcnQucGF0Y2gKIAogIyBkaXNhYmxlIG1lbW9yeSB0YWdnaW5nIGluIGVwZWw3IGFuZCBlcGVs OCBvbiBhYXJjaDY0IGR1ZSB0byBuZXcgZmVhdHVyZSBJRlVOQy1SZXNvbHZlcgogIyBub3Qgc3Vw cG9ydGVkIGluIG9sZCBnbGliYyA8IDIuMzAsIGVycm9yOiBmYXRhbCBlcnJvcjogJ3N5cy9pZnVu Yy5oJyBmaWxlIG5vdCBmb3VuZAotUGF0Y2gzMDc6IGNocm9taXVtLTEyMC1hcm02NC1tZW1vcnlf dGFnZ2luZy5wYXRjaAorUGF0Y2gzMDc6IGNocm9taXVtLTEyMS1hcm02NC1tZW1vcnlfdGFnZ2lu Zy5wYXRjaAorCisjIGNvbXBpbGVyIGVycm9ycyBvbiBlcGVsCitQYXRjaDMwODogY2hyb21pdW0t MTIxLXY4LWMrKzIwLnBhdGNoCitQYXRjaDMwOTogY2hyb21pdW0tMTIxLWNvbnN0ZXhwci5wYXRj aAogCiAjIG1pc3NpbmcgaW5jbHVkZSBoZWFkZXIgZmlsZXMKLVBhdGNoMzEwOiBjaHJvbWl1bS0x MjAtbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKK1BhdGNoMzEwOiBjaHJvbWl1bS0xMjEtbWlz c2luZy1oZWFkZXItZmlsZXMucGF0Y2gKIAogIyBjbGFuZyB3YXJuaW5ncwogUGF0Y2gzMTE6IGNo cm9taXVtLTExNS1jbGFuZy13YXJuaW5ncy5wYXRjaApAQCAtNDI4LDI0ICs0MzksMzEgQEAgUGF0 Y2gzMTE6IGNocm9taXVtLTExNS1jbGFuZy13YXJuaW5ncy5wYXRjaAogUGF0Y2gzMTI6IGNocm9t aXVtLTExOS1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZy5wYXRjaAogCiAjIGJ1aWxkIGVycm9yCi1Q YXRjaDM1MTogY2hyb21pdW0tMTE3LW1uZW1vbmljLWVycm9yLnBhdGNoCitQYXRjaDM1MTogY2hy b21pdW0tMTIxLW1uZW1vbmljLWVycm9yLnBhdGNoCiAKICMgV29ya2Fyb3VuZCBmb3IgaHR0cHM6 Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0yMjM5NTIzCiAjIGh0dHBzOi8v YnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTExNDU1ODEjYzYw CiAjIERpc2FibGUgQlRJIHVudGlsIHRoaXMgaXMgZml4ZWQgdXBzdHJlYW0uCiBQYXRjaDM1Mjog Y2hyb21pdW0tMTE3LXdvcmthcm91bmRfZm9yX2NyYXNoX29uX0JUSV9jYXBhYmxlX3N5c3RlbS5w YXRjaAogCi0jIGduIHdvcmthcm91bmQgZm9yIHRoZSBlcnJvcjogQXNzaWdubWVudCBoYWQgbm8g ZWZmZWN0Ci1QYXRjaDM1MzogY2hyb21pdW0tMTIwLWduLXdvcmthcm91bmQtYXRzcGkucGF0Y2gK ICMgcmVtb3ZlIGZsYWcgc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1oaW50LCBpdCcgbm90 IHN1cHBvcnRlZCBpbiBjbGFuZyA8PSAxNwogUGF0Y2gzNTQ6IGNocm9taXVtLTEyMC1zcGxpdC10 aHJlc2hvbGQtZm9yLXJlZy13aXRoLWhpbnQucGF0Y2gKKwogIyBlcnJvcjogdW5rbm93biB0eXBl IG5hbWUgJ251bGxwdHJfdCcKLVBhdGNoMzU1OiBjaHJvbWl1bS0xMjAtbnVsbHB0cl90LXdpdGhv dXQtbmFtZXNwYWNlLXN0ZC5wYXRjaAorUGF0Y2gzNTU6IGNocm9taXVtLTEyMS1udWxscHRyX3Qt d2l0aG91dC1uYW1lc3BhY2Utc3RkLnBhdGNoCisKICMgZGlzYWJsZSBGRm1wZWdBbGxvd0xpc3Rz IGJ5IGRlZmF1bHQgdG8gYWxsb3cgZXh0ZXJuYWwgZmZtcGVnCiBwYXRjaDM1NjogY2hyb21pdW0t MTIwLWRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cy5wYXRjaAorCiAjIHJlbW92ZSBsZGZsYWdzIC1X bCwtbWxsdm0sLWRpc2FibGUtYXV0by11cGdyYWRlLWRlYnVnLWluZm8gd2hpY2ggaXMgbm90IHN1 cHBvcnRlZAogUGF0Y2gzNTc6IGNocm9taXVtLTEyMC1jbGFuZzE2LWRpc2FibGUtYXV0by11cGdy YWRlLWRlYnVnLWluZm8ucGF0Y2gKIAorIyBzZXQgY2xhbmdfbGliIHBhdGgKK1BhdGNoMzU4OiBj aHJvbWl1bS0xMjEtcnVzdC1jbGFuZ19saWIucGF0Y2gKKworIyBweXRob24zLWludmFsaWQtZXNj YXBlLXNlcXVlbmNlCitQYXRjaDM1OTogY2hyb21pdW0tMTIxLXB5dGhvbjMtaW52YWxpZC1lc2Nh cGUtc2VxdWVuY2UucGF0Y2gKKwogIyB1cHN0cmVhbSBwYXRjaGVzCiAKICMgVXNlIGNocm9taXVt LWxhdGVzdC5weSB0byBnZW5lcmF0ZSBjbGVhbiB0YXJiYWxsIGZyb20gcmVsZWFzZWQgYnVpbGQg dGFyYmFsbHMsIGZvdW5kIGhlcmU6CkBAIC01MTAsNiArNTI4LDggQEAgQnVpbGRSZXF1aXJlczog YmludXRpbHMKICVlbmRpZgogJWVuZGlmCiAKK0J1aWxkUmVxdWlyZXM6IHJ1c3RjCisKICMgYnVp bGQgd2l0aCBzeXN0ZW0gZmZtcGVnLWZyZWUKICVpZiAhICV7YnVuZGxlZmZtcGVnZnJlZX0KIEJ1 aWxkUmVxdWlyZXM6IHBrZ2NvbmZpZyhsaWJhdmNvZGVjKQpAQCAtOTk5LDYgKzEwMTksNyBAQCB1 ZGV2LgogJWVuZGlmCiAlcGF0Y2ggLVAxMTYgLXAxIC1iIC5wcm9wLWNvZGVjcwogJXBhdGNoIC1Q MTE3IC1wMSAtYiAuc2lndHJhcF9zeXN0ZW1fZmZtcGVnCislcGF0Y2ggLVAxMTggLXAxIC1iIC5z eXN0ZW0tb2xkLWZmbXBlZwogJWVuZGlmCiAKICMgRVBFTCBzcGVjaWZpYyBwYXRjaGVzCkBAIC0x MDE0LDkgKzEwMzUsMTQgQEAgdWRldi4KICVwYXRjaCAtUDEwOSAtcDEgLWIgLndpcmVsZXNzCiAl cGF0Y2ggLVAxMTAgLXAxIC1iIC5idWlsZGZsYWctZWw3CiAlcGF0Y2ggLVAxMTEgLXAxIC1iIC5j b25zdGV4cHIKLSVwYXRjaCAtUDExMiAtcDEgLWIgLmRlZmF1bHRfY29uc3RydWN0b3IKICVwYXRj aCAtUDExMyAtcDEgLWIgLmVsNy1jbGFuZy12ZXJzaW9uLXdhcm5pbmcKICVwYXRjaCAtUDExNCAt cDEgLVIgLWIgLmNsYW5nLWJ1aWxkLWZhaWx1cmUKKyVwYXRjaCAtUDMwMCAtcDEgLWIgLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yCislcGF0Y2ggLVAzMDEgLXAxIC1iIC53b3JrYXJvdW5kX2NsYW5n LVNrQ29sb3I0ZgorJXBhdGNoIC1QMzAyIC1wMSAtYiAud29ya2Fyb3VuZF9jbGFuZ19idWctc3Ry dWN0dXJlZF9iaW5kaW5nCislcGF0Y2ggLVAzMDMgLXAxIC1iIC50eXBlbmFtZQorJXBhdGNoIC1Q MzA0IC1wMSAtYiAuc3RyaW5nLWNvbnZlcnQKKyVwYXRjaCAtUDMwNiAtcDEgLWIgLmFzc2VydAog JWVuZGlmCiAKICVpZiAwJXs/cmhlbH0gPT0gOCB8fCAwJXs/cmhlbH0gPT0gOQpAQCAtMTAyNywy MyArMTA1MywxNyBAQCB1ZGV2LgogJXBhdGNoIC1QMTMwIC1wMSAtYiAucmV2ZXJ0LWF2MWVuYwog JWVuZGlmCiAKLSVpZiAle2NsYW5nfQotJWlmIDAlez9yaGVsfSA8IDggfHwgMCV7P2ZlZG9yYX0g PCAzOAotJXBhdGNoIC1QMzAwIC1wMSAtYiAubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IKLSVwYXRj aCAtUDMwMSAtcDEgLWIgLndvcmthcm91bmRfY2xhbmctU2tDb2xvcjRmCi0lcGF0Y2ggLVAzMDIg LXAxIC1iIC53b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcKLSVwYXRjaCAt UDMwMyAtcDEgLWIgLnR5cGVuYW1lCi0lcGF0Y2ggLVAzMDQgLXAxIC1iIC5zdHJpbmctY29udmVy dAotJXBhdGNoIC1QMzA2IC1wMSAtYiAuYXNzZXJ0Ci0lZW5kaWYKLSVlbmRpZgotCiAlaWZhcmNo IGFhcmNoNjQKICVpZiAwJXs/cmhlbH0gPD0gOAogJXBhdGNoIC1QMzA3IC1wMSAtYiAubWVtb3J5 X3RhZ2dpbmcKICVlbmRpZgogJWVuZGlmCiAKKyVpZiAwJXs/cmhlbH0gfHwgMCV7P2ZlZG9yYX0g PCAzOQorJXBhdGNoIC1QMzA4IC1wMSAtUiAtYiAudjgtYysrMjAKKyVwYXRjaCAtUDMwOSAtcDEg LWIgLmNvbnN0ZXhwcgorJWVuZGlmCisKICVwYXRjaCAtUDMxMCAtcDEgLWIgLm1pc3NpbmctaGVh ZGVyLWZpbGVzCiAlcGF0Y2ggLVAzMTEgLXAxIC1iIC5jbGFuZy13YXJuaW5ncwogJXBhdGNoIC1Q MzEyIC1wMSAtYiAuZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcKQEAgLTEwNTQsMTMgKzEwNzQsMTQg QEAgdWRldi4KICVwYXRjaCAtUDM1MiAtcDEgLWIgLndvcmthcm91bmRfZm9yX2NyYXNoX29uX0JU SV9jYXBhYmxlX3N5c3RlbQogJWVuZGlmCiAKLSVwYXRjaCAtUDM1MyAtcDEgLWIgLmduLXdvcmth cm91bmQtYXRzcGkKICVwYXRjaCAtUDM1NCAtcDEgLWIgLnJldmVydC1zcGxpdC10aHJlc2hvbGQt Zm9yLXJlZy13aXRoLWhpbnQKICVpZiAhICV7dXNlX2N1c3RvbV9saWJjeHh9CiAlcGF0Y2ggLVAz NTUgLXAxIC1iIC5udWxscHRyX3Qtd2l0aG91dC1uYW1lc3BhY2Utc3RkCiAlZW5kaWYKICVwYXRj aCAtUDM1NiAtcDEgLWIgLmRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cwogJXBhdGNoIC1QMzU3IC1w MSAtYiAuY2xhbmcxNi1kaXNhYmxlLWF1dG8tdXBncmFkZS1kZWJ1Zy1pbmZvCislcGF0Y2ggLVAz NTggLXAxIC1iIC5ydXN0LWNsYW5nX2xpYgorJXBhdGNoIC1QMzU5IC1wMSAtYiAucHl0aG9uMy1p bnZhbGlkLWVzY2FwZS1zZXF1ZW5jZQogCiAjIENoYW5nZSBzaGViYW5nIGluIGFsbCByZWxldmFu dCBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeSBhbmQgYWxsIHN1YmRpcmVjdG9yaWVzCiAjIFNlZSBg bWFuIGZpbmRgIGZvciBob3cgdGhlIGAtZXhlYyBjb21tYW5kIHt9ICtgIHN5bnRheCB3b3JrcwpA QCAtMTE3Nyw2ICsxMTk4LDE2IEBAIGV4cG9ydCBDWFhGTEFHUwogLiAvb3B0L3JoLyV7dG9vbHNl dH0tJXtkdHNfdmVyc2lvbn0vZW5hYmxlCiAlZW5kaWYKIAorIyBuZWVkIGZvciBlcnJvcjogdGhl IG9wdGlvbiBgWmAgaXMgb25seSBhY2NlcHRlZCBvbiB0aGUgbmlnaHRseSBjb21waWxlcgorZXhw b3J0IFJVU1RDX0JPT1RTVFJBUD0xCisKKyMgc2V0IHJ1c3RjIHZlcnNpb24KK3J1c3RjX3ZlcnNp b249IiQocnVzdGMgLS12ZXJzaW9uKSIKKworIyBzZXQgY2xhbmcgdmVyc2lvbgorY2xhbmdfdmVy c2lvbj0iJChjbGFuZyAtLXZlcnNpb24gfCBzZWQgLW4gJ3MvY2xhbmcgdmVyc2lvbiAvL3AnIHwg Y3V0IC1kLiAtZjEpIgorY2xhbmdfYmFzZV9wYXRoPSIkKGNsYW5nIC0tdmVyc2lvbiB8IGdyZXAg SW5zdGFsbGVkRGlyIHwgY3V0IC1kJyAnIC1mMiB8IHNlZCAncyMvYmluIyMnKSIKKwogIyBDb3Jl IGRlZmluZXMgYXJlIGZsYWdzIHRoYXQgYXJlIHRydWUgZm9yIGJvdGggdGhlIGJyb3dzZXIgYW5k IGhlYWRsZXNzLgogQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTPSIiCiAjIHVzaW5nIHN5c3RlbSB0 b29sY2hhaW4KQEAgLTExOTIsOSArMTIyMyw3IEBAIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9 JyBpc19vZmZpY2lhbF9idWlsZD10cnVlJwogc2VkIC1pICdzfE9GRklDSUFMX0JVSUxEfEdPT0dM RV9DSFJPTUVfQlVJTER8ZycgdG9vbHMvZ2VuZXJhdGVfc2hpbV9oZWFkZXJzL2dlbmVyYXRlX3No aW1faGVhZGVycy5weQogJWVuZGlmCiAKLSVpZiAwJXs/cmhlbH0gfHwgMCV7P2ZlZG9yYX0gPCAz OQogQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGNocm9tZV9wZ29fcGhhc2U9MCcKLSVlbmRp ZgogCiAlaWYgJXtjZml9CiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgaXNfY2ZpPXRydWUn CkBAIC0xMjEzLDcgKzEyNDIsOCBAQCBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgZ29vZ2xl X2RlZmF1bHRfY2xpZW50X3NlY3JldD0iJXtkZWZhdWx0X2NsaWVudF9zZWNyZQogCiAlaWYgJXtj bGFuZ30KIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyBpc19jbGFuZz10cnVlJwotQ0hST01J VU1fQ09SRV9HTl9ERUZJTkVTKz0nIGNsYW5nX2Jhc2VfcGF0aD0iJXtfcHJlZml4fSInCitDSFJP TUlVTV9DT1JFX0dOX0RFRklORVMrPSIgY2xhbmdfYmFzZV9wYXRoPVwiJGNsYW5nX2Jhc2VfcGF0 aFwiIgorQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0iIGNsYW5nX3ZlcnNpb249XCIkY2xhbmdf dmVyc2lvblwiIgogQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGNsYW5nX3VzZV9jaHJvbWVf cGx1Z2lucz1mYWxzZScKIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyB1c2VfbGxkPXRydWUn CiAlZWxzZQpAQCAtMTIyMSw4ICsxMjUxLDkgQEAgQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0n IGlzX2NsYW5nPWZhbHNlJwogQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIHVzZV9sbGQ9ZmFs c2UnCiAlZW5kaWYKIAotIyBkaXNhYmxlIHJ1c3QsIGl0J3Mgb25seSB1c2luZyBmb3IgdGVzdGlu ZwotQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGVuYWJsZV9ydXN0PWZhbHNlJworIyBlbmFi bGUgc3lzdGVtIHJ1c3QKK0NIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyBydXN0X3N5c3Jvb3Rf YWJzb2x1dGU9IiV7X3ByZWZpeH0iJworQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0iIHJ1c3Rj X3ZlcnNpb249XCIkcnVzdGNfdmVyc2lvblwiIgogCiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMr PScgdXNlX3N5c3Jvb3Q9ZmFsc2UgZGlzYWJsZV9maWVsZHRyaWFsX3Rlc3RpbmdfY29uZmlnPXRy dWUnCiAKQEAgLTE3NjYsNiArMTc5Nyw5IEBAIGdldGVudCBncm91cCBjaHJvbWUtcmVtb3RlLWRl c2t0b3AgPi9kZXYvbnVsbCB8fCBncm91cGFkZCAtciBjaHJvbWUtcmVtb3RlLWRlc2t0CiAle2No cm9taXVtX3BhdGh9L2Nocm9tZWRyaXZlcgogCiAlY2hhbmdlbG9nCisqIFR1ZSBKYW4gMjMgMjAy NCBUaGFuIE5nbyA8dGhhbkByZWRoYXQuY29tPiAtIDEyMS4wLjYxNjcuNzEtMQorLSB1cGRhdGUg dG8gMTIxLjAuNjE2Ny43MQorCiAqIFR1ZSBKYW4gMjMgMjAyNCBGZWRvcmEgUmVsZWFzZSBFbmdp bmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEyMC4wLjYwOTkuMjI0LTIKIC0g UmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80MF9NYXNz X1JlYnVpbGQKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGZkMWIyM2Iu LjA4MzU1MjcgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMiw0ICsyLDQg QEAgU0hBNTEyIChub2RlLXYyMC42LjEtbGludXgtYXJtNjQudGFyLnh6KSA9IGFkZmNhZjJjMjI2 MTQ3OTdmZDY5ZmI0NmQ5NGMxY2JmNjRkZWEKIFNIQTUxMiAobm9kZS12MjAuNi4xLWxpbnV4LXg2 NC50YXIueHopID0gN2UxNWMwNTA0MWE5YTUwZjAwNDYyNjZhYWRiMmUwOTJhNWFlZmJlYzE5YmUx YzdjODA5NDcxYWRkNTIwY2I1N2M3ZGYzYzQ3ZDg4YjE4ODhiMjliZjI5NzlkY2EzYzkyYWRkZGZk OTY1MzcwZmEyYTlkYTRlYTAyMTg2NDY0ZmQKIFNIQTUxMiAobGludXgtYXJtNjQtMC4xOS4yLnRn eikgPSA4YTBkOGZlYzY3ODZmZmZjZDY5NTRkMDA4MjAwMzdhNTVkNjFlNjA3NjJjNzQzMDBkZjA4 MDFmOGRiMjcwNTc1NjJjMjIxYTA2M2JlZGZiOGRmNTZhZjliYTgwYWJiMzY2MzM2OTg3ZTg4MTc4 MmM1OTk2ZTZmODcxYWJkM2RjNgogU0hBNTEyIChsaW51eC14NjQtMC4xOS4yLnRneikgPSBhMzFj Yzc0YzRiZmE1NGY5Yjc1ZDczNWExY2ZjOTQ0ZDNiNWVmYjdjMDZiZmJhOTU0MmRhOWE2NDJhZTBi MmQyMzVlYTAwYWU4NGQzYWQwNTcyYzQwNjQwNTExMGZlN2I2MTM3N2FmMGZkMTU4MDM4MDZlZjc4 ZDIwZmM2ZjA1ZAotU0hBNTEyIChjaHJvbWl1bS0xMjAuMC42MDk5LjIyNC1jbGVhbi50YXIueHop ID0gMDE0MDEyNTYzMmMwYTYyOWY3YWE5MjE3YWFkMDc4NjU2ZTRlMmUyNmMxODQ5ZTljZjI4N2Qx ZmJhZWNiYjFkYzJlM2JhZjFjZGJkYjNhNDczZjhhMjczMzllOGU3Zjg1M2ZhMWJkYjMwZDRmYWFl OGZjZmRkZThmYzIzNzA4NzQKK1NIQTUxMiAoY2hyb21pdW0tMTIxLjAuNjE2Ny43MS1jbGVhbi50 YXIueHopID0gYmU5ZWYxMjk4YjZmNDVmMGI5ZDA0ZmEyMzE1YjdmMmJiMGFmNDA3MDgxNDM2MDJk YTQ2YTg5ODQyNjk5NGUwM2UzMmVmNTIxMzVlN2FjMWRkMjM0ZmExM2EzOTc2YmFjY2RmMjY4ZmI3 ZDVmODEzNDY5MzkyMmY3M2U1NjgxYWEK