From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id A7E6521FF8 for ; Fri, 29 Mar 2024 20:11:00 +0100 (CET) Content-Type: multipart/mixed; boundary="===============2658821618447892986==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BBETA=5D_sagemath=3A_update_to_10=2E4=2Ebeta0?= To: ml@inbox.vuxu.org From: tornaria Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 29 Mar 2024 20:11:00 +0100 List-Id: Message-Id: <20240329191100.A7E6521FF8@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============2658821618447892986== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdG9ybmFyaWEgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3Rv cm5hcmlhL3ZvaWQtcGFja2FnZXMgc2FnZW1hdGgKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ5NTcxCgpbQkVUQV0gc2FnZW1hdGg6IHVwZGF0ZSB0byAx MC40LmJldGEwCjwhLS0gVW5jb21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0 aW9ucyB3aGljaCBhcmUgbm90IGFwcGxpY2FibGUgLS0+DQoNCi0gMTAuNC5iZXRhMDogSSdtIGlu Y2x1ZGluZyBwYXRjaGVzIGZvciBjeXRob24gbm9leGNlcHQgc3R1ZmYgZnJvbSBodHRwczovL2dp dGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9wdWxsLzM3NjY3IHRoYXQgSSBleHBlY3Qgd2lsbCBiZSBt ZXJnZWQgaW4gYmV0YTEgb3IgYmV0YTIuIEZvciBjb252ZW5pZW5jZSBJIGFsc28gYWRkIHBhdGNo ZXMgZm9yIGN5dGhvbiAobWVyZ2VkLCBJIGV4cGVjdCBpdCB3aWxsIGJlIGluY2x1ZGVkIGluIDMu MC4xMCkgYW5kIG51bXB5IChtZXJnZWQsIEkgZXhwZWN0IGl0IHdpbGwgYmUgaW5jbHVkZWQgaW4g MS4yNi41KS4NCg0KQGRrd28gdHJhY2tpbmcgaGVyZSBzYWdlbWF0aCAxMC40IHByZXJlbGVhc2UN Cg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGluIHRo aXMgUFI6ICoqYnJpZWZseSoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcg cGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3BhY2thZ2UgcmVxdWlyZW1lbnRzXShodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElO Ry5tZCNwYWNrYWdlLXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEtLSBO b3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMsIHBs ZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250 aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFu ZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBz ZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tDQojIyMjIExv Y2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2 ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZv ciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0K ICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1tdXNsDQotLT4NCgoKQSBw YXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzQ5NTcxLnBhdGNoIGlzIGF0dGFjaGVk --===============2658821618447892986== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-sagemath-49571.patch" RnJvbSBlMWFlYzJiNzdjMmU4NjhlZTJkNzA2MDk0NzRmNTNiZWU4MTkyMzgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8 dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IFN1biwgMTAgTWFyIDIwMjQgMTg6MDI6NDcgLTAz MDAKU3ViamVjdDogW1BBVENIIDEvNF0gcHl0aG9uMy1DeXRob246IGZpeCB3YXJuaW5nIGZvciBp bXBsaWNpdCBub2V4Y2VwdAoKLS0tCiAuLi43MzA3MzEyODgxMTExYjZmNTYyNzlhODM4MTJhMjMw OWNkMTYucGF0Y2ggfCA0NDkgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3B5dGhvbjMtQ3l0 aG9uL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNDUw IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3B5dGhvbjMtQ3l0aG9uL3BhdGNoZXMvZml4X2ltcGxpY2l0X25vZXhjZXB0X3dhcm5pbmctNGU5 ZjczMDczMTI4ODExMTFiNmY1NjI3OWE4MzgxMmEyMzA5Y2QxNi5wYXRjaAoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcHl0aG9uMy1DeXRob24vcGF0Y2hlcy9maXhfaW1wbGljaXRfbm9leGNlcHRfd2Fy bmluZy00ZTlmNzMwNzMxMjg4MTExMWI2ZjU2Mjc5YTgzODEyYTIzMDljZDE2LnBhdGNoIGIvc3Jj cGtncy9weXRob24zLUN5dGhvbi9wYXRjaGVzL2ZpeF9pbXBsaWNpdF9ub2V4Y2VwdF93YXJuaW5n LTRlOWY3MzA3MzEyODgxMTExYjZmNTYyNzlhODM4MTJhMjMwOWNkMTYucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjc0ODY5OWUxZmFiZjMyCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9weXRob24zLUN5dGhvbi9wYXRjaGVzL2ZpeF9pbXBsaWNpdF9u b2V4Y2VwdF93YXJuaW5nLTRlOWY3MzA3MzEyODgxMTExYjZmNTYyNzlhODM4MTJhMjMwOWNkMTYu cGF0Y2gKQEAgLTAsMCArMSw0NDkgQEAKK1NlZTogaHR0cHM6Ly9naXRodWIuY29tL2N5dGhvbi9j eXRob24vcHVsbC82MDg3I2lzc3VlY29tbWVudC0yMDEzMTM0ODQ4CisKK0Zyb20gNGU5ZjczMDcz MTI4ODExMTFiNmY1NjI3OWE4MzgxMmEyMzA5Y2QxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206ID0/VVRGLTg/cT9Hb256YWxvPTIwVG9ybmFyPUMzPUFEYT89IDx0b3JuYXJpYUBjbWF0 LmVkdS51eT4KK0RhdGU6IFRodSwgMjEgTWFyIDIwMjQgMTQ6MjU6MDQgLTAzMDAKK1N1YmplY3Q6 IFtQQVRDSF0gRml4IHdhcm5pbmdzIGZvciAiaW1wbGljaXQgbm9leGNlcHQiIHdoZW4gdXNpbmcK KyBgbGVnYWN5X2ltcGxpY2l0X25vZXhjZXB0PVRydWVgICgjNjA4NykKKworLS0tCisgQ3l0aG9u L0NvbXBpbGVyL05vZGVzLnB5ICAgICAgICAgICAgICAgfCAxMyArKysrKworIEN5dGhvbi9Db21w aWxlci9QYXJzaW5nLnB5ICAgICAgICAgICAgIHwgIDQgKy0KKyBDeXRob24vSW5jbHVkZXMvY3B5 dGhvbi9hcnJheS5weGQgICAgICB8ICAyICstCisgQ3l0aG9uL0luY2x1ZGVzL2NweXRob24vY29t cGxleC5weGQgICAgfCAgNCArLQorIEN5dGhvbi9JbmNsdWRlcy9jcHl0aG9uL2RhdGV0aW1lLnB4 ZCAgIHwgODAgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KKyBDeXRob24vSW5jbHVkZXMvY3B5 dGhvbi90aW1lLnB4ZCAgICAgICB8ICAyICstCisgdGVzdHMvcnVuL2xlZ2FjeV9pbXBsaWNpdF9u b2V4Y2VwdC5weXggfCA1NSArKysrKysrKystLS0tLS0tLS0KKyA3IGZpbGVzIGNoYW5nZWQsIDg1 IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ3l0aG9uL0Nv bXBpbGVyL05vZGVzLnB5IGIvQ3l0aG9uL0NvbXBpbGVyL05vZGVzLnB5CitpbmRleCBiNjQ4ZGYy OTI4ZS4uYmJlY2JlN2M4M2EgMTAwNjQ0CistLS0gYS9DeXRob24vQ29tcGlsZXIvTm9kZXMucHkK KysrKyBiL0N5dGhvbi9Db21waWxlci9Ob2Rlcy5weQorQEAgLTcxMSw2ICs3MTEsMTkgQEAgZGVm IGFuYWx5c2Uoc2VsZiwgcmV0dXJuX3R5cGUsIGVudiwgbm9uZW1wdHk9MCwgZGlyZWN0aXZlX2xv Y2Fscz1Ob25lLCB2aXNpYmlsaXQKKyAKKyAgICAgICAgIGV4Y192YWwgPSBOb25lCisgICAgICAg ICBleGNfY2hlY2sgPSAwCisrCisrICAgICAgICBpZiAoZW52LmRpcmVjdGl2ZXNbImxlZ2FjeV9p bXBsaWNpdF9ub2V4Y2VwdCJdCisrICAgICAgICAgICAgICAgIGFuZCBub3QgcmV0dXJuX3R5cGUu aXNfcHlvYmplY3QKKysgICAgICAgICAgICAgICAgYW5kIG5vdCBzZWxmLmhhc19leHBsaWNpdF9l eGNfY2xhdXNlCisrICAgICAgICAgICAgICAgIGFuZCBzZWxmLmV4Y2VwdGlvbl9jaGVjaworKyAg ICAgICAgICAgICAgICBhbmQgdmlzaWJpbGl0eSAhPSAnZXh0ZXJuJyk6CisrICAgICAgICAgICAg IyBpbXBsaWNpdCBub2V4Y2VwdCwgd2l0aCBhIHdhcm5pbmcKKysgICAgICAgICAgICBzZWxmLmV4 Y2VwdGlvbl9jaGVjayA9IEZhbHNlCisrICAgICAgICAgICAgd2FybmluZyhzZWxmLnBvcywKKysg ICAgICAgICAgICAgICAgICAgICJJbXBsaWNpdCBub2V4Y2VwdCBkZWNsYXJhdGlvbiBpcyBkZXBy ZWNhdGVkLiIKKysgICAgICAgICAgICAgICAgICAgICIgRnVuY3Rpb24gZGVjbGFyYXRpb24gc2hv dWxkIGNvbnRhaW4gJ25vZXhjZXB0JyBrZXl3b3JkLiIsCisrICAgICAgICAgICAgICAgICAgICBs ZXZlbD0yKQorKworICAgICAgICAgaWYgc2VsZi5leGNlcHRpb25fY2hlY2sgPT0gJysnOgorICAg ICAgICAgICAgIGVudi5hZGRfaW5jbHVkZV9maWxlKCdpb3MnKSAgICAgICAgICMgZm9yIHN0ZDo6 aW9zX2Jhc2U6OmZhaWx1cmUKKyAgICAgICAgICAgICBlbnYuYWRkX2luY2x1ZGVfZmlsZSgnbmV3 JykgICAgICAgICAjIGZvciBzdGQ6OmJhZF9hbGxvYworZGlmZiAtLWdpdCBhL0N5dGhvbi9Db21w aWxlci9QYXJzaW5nLnB5IGIvQ3l0aG9uL0NvbXBpbGVyL1BhcnNpbmcucHkKK2luZGV4IDQ2NjM4 YjVlZWQ0Li4yNWMwZGU5MmNmMSAxMDA2NDQKKy0tLSBhL0N5dGhvbi9Db21waWxlci9QYXJzaW5n LnB5CisrKysgYi9DeXRob24vQ29tcGlsZXIvUGFyc2luZy5weQorQEAgLTMxMjgsOSArMzEyOCw3 IEBAIGRlZiBwX2V4Y2VwdGlvbl92YWx1ZV9jbGF1c2UocywgaXNfZXh0ZXJuKToKKyAgICAgICAg ICAgICAgICAgZXhjX2NoZWNrID0gRmFsc2UKKyAgICAgICAgICAgICAjIGV4Y192YWwgY2FuIGJl IG5vbi1Ob25lIGV2ZW4gaWYgZXhjX2NoZWNrIGlzIEZhbHNlLCBjLmYuICJleGNlcHQgLTEiCisg ICAgICAgICAgICAgZXhjX3ZhbCA9IHBfdGVzdChzKQorLSAgICBpZiBub3QgaXNfZXh0ZXJuIGFu ZCBub3QgZXhjX2NsYXVzZSBhbmQgcy5jb250ZXh0LmxlZ2FjeV9pbXBsaWNpdF9ub2V4Y2VwdDoK Ky0gICAgICAgIGV4Y19jaGVjayA9IEZhbHNlCistICAgICAgICB3YXJuaW5nKHMucG9zaXRpb24o KSwgIkltcGxpY2l0IG5vZXhjZXB0IGRlY2xhcmF0aW9uIGlzIGRlcHJlY2F0ZWQuIEZ1bmN0aW9u IGRlY2xhcmF0aW9uIHNob3VsZCBjb250YWluICdub2V4Y2VwdCcga2V5d29yZC4iLCBsZXZlbD0y KQorKworICAgICByZXR1cm4gZXhjX3ZhbCwgZXhjX2NoZWNrLCBleGNfY2xhdXNlCisgCisgY19h cmdfbGlzdF90ZXJtaW5hdG9ycyA9IGN5dGhvbi5kZWNsYXJlKGZyb3plbnNldCwgZnJvemVuc2V0 KCgKK2RpZmYgLS1naXQgYS9DeXRob24vSW5jbHVkZXMvY3B5dGhvbi9hcnJheS5weGQgYi9DeXRo b24vSW5jbHVkZXMvY3B5dGhvbi9hcnJheS5weGQKK2luZGV4IDg0MzFmN2I2NjAyLi5jNjRlOTcy Nzc1YiAxMDA2NDQKKy0tLSBhL0N5dGhvbi9JbmNsdWRlcy9jcHl0aG9uL2FycmF5LnB4ZAorKysr IGIvQ3l0aG9uL0luY2x1ZGVzL2NweXRob24vYXJyYXkucHhkCitAQCAtMTY5LDYgKzE2OSw2IEBA IGNkZWYgaW5saW5lIGludCBleHRlbmQoYXJyYXkgc2VsZiwgYXJyYXkgb3RoZXIpIGV4Y2VwdCAt MToKKyAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCkKKyAgICAgcmV0dXJuIGV4dGVuZF9idWZm ZXIoc2VsZiwgb3RoZXIuZGF0YS5hc19jaGFycywgUHlfU0laRShvdGhlcikpCisgCistY2RlZiBp bmxpbmUgdm9pZCB6ZXJvKGFycmF5IHNlbGYpOgorK2NkZWYgaW5saW5lIHZvaWQgemVybyhhcnJh eSBzZWxmKSBub2V4Y2VwdDoKKyAgICAgIiIiIHNldCBhbGwgZWxlbWVudHMgb2YgYXJyYXkgdG8g emVyby4gIiIiCisgICAgIG1lbXNldChzZWxmLmRhdGEuYXNfY2hhcnMsIDAsIFB5X1NJWkUoc2Vs ZikgKiBzZWxmLm9iX2Rlc2NyLml0ZW1zaXplKQorZGlmZiAtLWdpdCBhL0N5dGhvbi9JbmNsdWRl cy9jcHl0aG9uL2NvbXBsZXgucHhkIGIvQ3l0aG9uL0luY2x1ZGVzL2NweXRob24vY29tcGxleC5w eGQKK2luZGV4IDNmYTE0NTAwODdjLi5jMDE0NzU0N2NlMyAxMDA2NDQKKy0tLSBhL0N5dGhvbi9J bmNsdWRlcy9jcHl0aG9uL2NvbXBsZXgucHhkCisrKysgYi9DeXRob24vSW5jbHVkZXMvY3B5dGhv bi9jb21wbGV4LnB4ZAorQEAgLTE2LDExICsxNiwxMSBAQCBjZGVmIGV4dGVybiBmcm9tICJQeXRo b24uaCI6CisgICAgICAgICBjZGVmIFB5X2NvbXBsZXggY3ZhbAorIAorICAgICAgICAgQHByb3Bl cnR5CistICAgICAgICBjZGVmIGlubGluZSBkb3VibGUgcmVhbChzZWxmKToKKysgICAgICAgIGNk ZWYgaW5saW5lIGRvdWJsZSByZWFsKHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVy biBzZWxmLmN2YWwucmVhbAorIAorICAgICAgICAgQHByb3BlcnR5CistICAgICAgICBjZGVmIGlu bGluZSBkb3VibGUgaW1hZyhzZWxmKToKKysgICAgICAgIGNkZWYgaW5saW5lIGRvdWJsZSBpbWFn KHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBzZWxmLmN2YWwuaW1hZworIAor ICAgICAjIFB5VHlwZU9iamVjdCBQeUNvbXBsZXhfVHlwZQorZGlmZiAtLWdpdCBhL0N5dGhvbi9J bmNsdWRlcy9jcHl0aG9uL2RhdGV0aW1lLnB4ZCBiL0N5dGhvbi9JbmNsdWRlcy9jcHl0aG9uL2Rh dGV0aW1lLnB4ZAoraW5kZXggN2Q2ZWUyOWYzNzYuLjNkY2UzOTU4ODgyIDEwMDY0NAorLS0tIGEv Q3l0aG9uL0luY2x1ZGVzL2NweXRob24vZGF0ZXRpbWUucHhkCisrKysgYi9DeXRob24vSW5jbHVk ZXMvY3B5dGhvbi9kYXRldGltZS5weGQKK0BAIC02OSwzMiArNjksMzIgQEAgY2RlZiBleHRlcm4g ZnJvbSAiZGF0ZXRpbWUuaCI6CisgCisgICAgIGN0eXBlZGVmIGV4dGVybiBjbGFzcyBkYXRldGlt ZS5kYXRlW29iamVjdCBQeURhdGVUaW1lX0RhdGVdOgorICAgICAgICAgQHByb3BlcnR5CistICAg ICAgICBjZGVmIGlubGluZSBpbnQgeWVhcihzZWxmKToKKysgICAgICAgIGNkZWYgaW5saW5lIGlu dCB5ZWFyKHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBQeURhdGVUaW1lX0dF VF9ZRUFSKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAgICAgIGNkZWYgaW5saW5l IGludCBtb250aChzZWxmKToKKysgICAgICAgIGNkZWYgaW5saW5lIGludCBtb250aChzZWxmKSBu b2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gUHlEYXRlVGltZV9HRVRfTU9OVEgoc2VsZikK KyAKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAgICAgY2RlZiBpbmxpbmUgaW50IGRheShzZWxm KToKKysgICAgICAgIGNkZWYgaW5saW5lIGludCBkYXkoc2VsZikgbm9leGNlcHQ6CisgICAgICAg ICAgICAgcmV0dXJuIFB5RGF0ZVRpbWVfR0VUX0RBWShzZWxmKQorIAorICAgICBjdHlwZWRlZiBl eHRlcm4gY2xhc3MgZGF0ZXRpbWUudGltZVtvYmplY3QgUHlEYXRlVGltZV9UaW1lXToKKyAgICAg ICAgIEBwcm9wZXJ0eQorLSAgICAgICAgY2RlZiBpbmxpbmUgaW50IGhvdXIoc2VsZik6CisrICAg ICAgICBjZGVmIGlubGluZSBpbnQgaG91cihzZWxmKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICBy ZXR1cm4gUHlEYXRlVGltZV9USU1FX0dFVF9IT1VSKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVy dHkKKy0gICAgICAgIGNkZWYgaW5saW5lIGludCBtaW51dGUoc2VsZik6CisrICAgICAgICBjZGVm IGlubGluZSBpbnQgbWludXRlKHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBQ eURhdGVUaW1lX1RJTUVfR0VUX01JTlVURShzZWxmKQorIAorICAgICAgICAgQHByb3BlcnR5Cist ICAgICAgICBjZGVmIGlubGluZSBpbnQgc2Vjb25kKHNlbGYpOgorKyAgICAgICAgY2RlZiBpbmxp bmUgaW50IHNlY29uZChzZWxmKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gUHlEYXRl VGltZV9USU1FX0dFVF9TRUNPTkQoc2VsZikKKyAKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAg ICAgY2RlZiBpbmxpbmUgaW50IG1pY3Jvc2Vjb25kKHNlbGYpOgorKyAgICAgICAgY2RlZiBpbmxp bmUgaW50IG1pY3Jvc2Vjb25kKHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBQ eURhdGVUaW1lX1RJTUVfR0VUX01JQ1JPU0VDT05EKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVy dHkKK0BAIC0xMDIsMzcgKzEwMiwzNyBAQCBjZGVmIGV4dGVybiBmcm9tICJkYXRldGltZS5oIjoK KyAgICAgICAgICAgICByZXR1cm4gPG9iamVjdD5QeURhdGVUaW1lX1RJTUVfR0VUX1RaSU5GTyhz ZWxmKQorIAorICAgICAgICAgQHByb3BlcnR5CistICAgICAgICBjZGVmIGlubGluZSBpbnQgZm9s ZChzZWxmKToKKysgICAgICAgIGNkZWYgaW5saW5lIGludCBmb2xkKHNlbGYpIG5vZXhjZXB0Ogor ICAgICAgICAgICAgICMgRm9yIFB5dGhvbiA8IDMuNiB0aGlzIHJldHVybnMgMCBubyBtYXR0ZXIg d2hhdAorICAgICAgICAgICAgIHJldHVybiBQeURhdGVUaW1lX1RJTUVfR0VUX0ZPTEQoc2VsZikK KyAKKyAgICAgY3R5cGVkZWYgZXh0ZXJuIGNsYXNzIGRhdGV0aW1lLmRhdGV0aW1lW29iamVjdCBQ eURhdGVUaW1lX0RhdGVUaW1lXToKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAgICAgY2RlZiBp bmxpbmUgaW50IHllYXIoc2VsZik6CisrICAgICAgICBjZGVmIGlubGluZSBpbnQgeWVhcihzZWxm KSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gUHlEYXRlVGltZV9HRVRfWUVBUihzZWxm KQorIAorICAgICAgICAgQHByb3BlcnR5CistICAgICAgICBjZGVmIGlubGluZSBpbnQgbW9udGgo c2VsZik6CisrICAgICAgICBjZGVmIGlubGluZSBpbnQgbW9udGgoc2VsZikgbm9leGNlcHQ6Cisg ICAgICAgICAgICAgcmV0dXJuIFB5RGF0ZVRpbWVfR0VUX01PTlRIKHNlbGYpCisgCisgICAgICAg ICBAcHJvcGVydHkKKy0gICAgICAgIGNkZWYgaW5saW5lIGludCBkYXkoc2VsZik6CisrICAgICAg ICBjZGVmIGlubGluZSBpbnQgZGF5KHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVy biBQeURhdGVUaW1lX0dFVF9EQVkoc2VsZikKKyAKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAg ICAgY2RlZiBpbmxpbmUgaW50IGhvdXIoc2VsZik6CisrICAgICAgICBjZGVmIGlubGluZSBpbnQg aG91cihzZWxmKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gUHlEYXRlVGltZV9EQVRF X0dFVF9IT1VSKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAgICAgIGNkZWYgaW5s aW5lIGludCBtaW51dGUoc2VsZik6CisrICAgICAgICBjZGVmIGlubGluZSBpbnQgbWludXRlKHNl bGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBQeURhdGVUaW1lX0RBVEVfR0VUX01J TlVURShzZWxmKQorIAorICAgICAgICAgQHByb3BlcnR5CistICAgICAgICBjZGVmIGlubGluZSBp bnQgc2Vjb25kKHNlbGYpOgorKyAgICAgICAgY2RlZiBpbmxpbmUgaW50IHNlY29uZChzZWxmKSBu b2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gUHlEYXRlVGltZV9EQVRFX0dFVF9TRUNPTkQo c2VsZikKKyAKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAgICAgY2RlZiBpbmxpbmUgaW50IG1p Y3Jvc2Vjb25kKHNlbGYpOgorKyAgICAgICAgY2RlZiBpbmxpbmUgaW50IG1pY3Jvc2Vjb25kKHNl bGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBQeURhdGVUaW1lX0RBVEVfR0VUX01J Q1JPU0VDT05EKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVydHkKK0BAIC0xNDAsMjEgKzE0MCwy MSBAQCBjZGVmIGV4dGVybiBmcm9tICJkYXRldGltZS5oIjoKKyAgICAgICAgICAgICByZXR1cm4g PG9iamVjdD5QeURhdGVUaW1lX0RBVEVfR0VUX1RaSU5GTyhzZWxmKQorIAorICAgICAgICAgQHBy b3BlcnR5CistICAgICAgICBjZGVmIGlubGluZSBpbnQgZm9sZChzZWxmKToKKysgICAgICAgIGNk ZWYgaW5saW5lIGludCBmb2xkKHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgICMgRm9yIFB5 dGhvbiA8IDMuNiB0aGlzIHJldHVybnMgMCBubyBtYXR0ZXIgd2hhdAorICAgICAgICAgICAgIHJl dHVybiBQeURhdGVUaW1lX0RBVEVfR0VUX0ZPTEQoc2VsZikKKyAKKyAgICAgY3R5cGVkZWYgZXh0 ZXJuIGNsYXNzIGRhdGV0aW1lLnRpbWVkZWx0YVtvYmplY3QgUHlEYXRlVGltZV9EZWx0YV06Cisg ICAgICAgICBAcHJvcGVydHkKKy0gICAgICAgIGNkZWYgaW5saW5lIGludCBkYXkoc2VsZik6Cisr ICAgICAgICBjZGVmIGlubGluZSBpbnQgZGF5KHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAg IHJldHVybiBQeURhdGVUaW1lX0RFTFRBX0dFVF9EQVlTKHNlbGYpCisgCisgICAgICAgICBAcHJv cGVydHkKKy0gICAgICAgIGNkZWYgaW5saW5lIGludCBzZWNvbmQoc2VsZik6CisrICAgICAgICBj ZGVmIGlubGluZSBpbnQgc2Vjb25kKHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVy biBQeURhdGVUaW1lX0RFTFRBX0dFVF9TRUNPTkRTKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVy dHkKKy0gICAgICAgIGNkZWYgaW5saW5lIGludCBtaWNyb3NlY29uZChzZWxmKToKKysgICAgICAg IGNkZWYgaW5saW5lIGludCBtaWNyb3NlY29uZChzZWxmKSBub2V4Y2VwdDoKKyAgICAgICAgICAg ICByZXR1cm4gUHlEYXRlVGltZV9ERUxUQV9HRVRfTUlDUk9TRUNPTkRTKHNlbGYpCisgCisgICAg IGN0eXBlZGVmIGV4dGVybiBjbGFzcyBkYXRldGltZS50emluZm9bb2JqZWN0IFB5RGF0ZVRpbWVf VFpJbmZvXToKK0BAIC0yNzksNyArMjc5LDcgQEAgY2RlZiBleHRlcm4gZnJvbSAiZGF0ZXRpbWUu aCI6CisgCisgIyBEYXRldGltZSBDIEFQSSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4KKyAjIFlv dSBoYXZlIHRvIGNhbGwgaXQgYmVmb3JlIGFueSB1c2FnZSBvZiBEYXRlVGltZSBDQVBJIGZ1bmN0 aW9ucy4KKy1jZGVmIGlubGluZSB2b2lkIGltcG9ydF9kYXRldGltZSgpOgorK2NkZWYgaW5saW5l IHZvaWQgaW1wb3J0X2RhdGV0aW1lKCkgbm9leGNlcHQ6CisgICAgIFB5RGF0ZVRpbWVfSU1QT1JU CisgCisgIyBDcmVhdGUgZGF0ZSBvYmplY3QgdXNpbmcgRGF0ZVRpbWUgQ0FQSSBmYWN0b3J5IGZ1 bmN0aW9uLgorQEAgLTMzNyw4NCArMzM3LDg0IEBAIGNkZWYgaW5saW5lIG9iamVjdCBkYXRldGlt ZV90emluZm8ob2JqZWN0IG8pOgorICAgICByZXR1cm4gPG9iamVjdD5QeURhdGVUaW1lX0RBVEVf R0VUX1RaSU5GTyhvKQorIAorICMgR2V0IHllYXIgb2YgZGF0ZQorLWNkZWYgaW5saW5lIGludCBk YXRlX3llYXIob2JqZWN0IG8pOgorK2NkZWYgaW5saW5lIGludCBkYXRlX3llYXIob2JqZWN0IG8p IG5vZXhjZXB0OgorICAgICByZXR1cm4gUHlEYXRlVGltZV9HRVRfWUVBUihvKQorIAorICMgR2V0 IG1vbnRoIG9mIGRhdGUKKy1jZGVmIGlubGluZSBpbnQgZGF0ZV9tb250aChvYmplY3Qgbyk6Cisr Y2RlZiBpbmxpbmUgaW50IGRhdGVfbW9udGgob2JqZWN0IG8pIG5vZXhjZXB0OgorICAgICByZXR1 cm4gUHlEYXRlVGltZV9HRVRfTU9OVEgobykKKyAKKyAjIEdldCBkYXkgb2YgZGF0ZQorLWNkZWYg aW5saW5lIGludCBkYXRlX2RheShvYmplY3Qgbyk6CisrY2RlZiBpbmxpbmUgaW50IGRhdGVfZGF5 KG9iamVjdCBvKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIFB5RGF0ZVRpbWVfR0VUX0RBWShvKQor IAorICMgR2V0IHllYXIgb2YgZGF0ZXRpbWUKKy1jZGVmIGlubGluZSBpbnQgZGF0ZXRpbWVfeWVh cihvYmplY3Qgbyk6CisrY2RlZiBpbmxpbmUgaW50IGRhdGV0aW1lX3llYXIob2JqZWN0IG8pIG5v ZXhjZXB0OgorICAgICByZXR1cm4gUHlEYXRlVGltZV9HRVRfWUVBUihvKQorIAorICMgR2V0IG1v bnRoIG9mIGRhdGV0aW1lCistY2RlZiBpbmxpbmUgaW50IGRhdGV0aW1lX21vbnRoKG9iamVjdCBv KToKKytjZGVmIGlubGluZSBpbnQgZGF0ZXRpbWVfbW9udGgob2JqZWN0IG8pIG5vZXhjZXB0Ogor ICAgICByZXR1cm4gUHlEYXRlVGltZV9HRVRfTU9OVEgobykKKyAKKyAjIEdldCBkYXkgb2YgZGF0 ZXRpbWUKKy1jZGVmIGlubGluZSBpbnQgZGF0ZXRpbWVfZGF5KG9iamVjdCBvKToKKytjZGVmIGlu bGluZSBpbnQgZGF0ZXRpbWVfZGF5KG9iamVjdCBvKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIFB5 RGF0ZVRpbWVfR0VUX0RBWShvKQorIAorICMgR2V0IGhvdXIgb2YgdGltZQorLWNkZWYgaW5saW5l IGludCB0aW1lX2hvdXIob2JqZWN0IG8pOgorK2NkZWYgaW5saW5lIGludCB0aW1lX2hvdXIob2Jq ZWN0IG8pIG5vZXhjZXB0OgorICAgICByZXR1cm4gUHlEYXRlVGltZV9USU1FX0dFVF9IT1VSKG8p CisgCisgIyBHZXQgbWludXRlIG9mIHRpbWUKKy1jZGVmIGlubGluZSBpbnQgdGltZV9taW51dGUo b2JqZWN0IG8pOgorK2NkZWYgaW5saW5lIGludCB0aW1lX21pbnV0ZShvYmplY3Qgbykgbm9leGNl cHQ6CisgICAgIHJldHVybiBQeURhdGVUaW1lX1RJTUVfR0VUX01JTlVURShvKQorIAorICMgR2V0 IHNlY29uZCBvZiB0aW1lCistY2RlZiBpbmxpbmUgaW50IHRpbWVfc2Vjb25kKG9iamVjdCBvKToK KytjZGVmIGlubGluZSBpbnQgdGltZV9zZWNvbmQob2JqZWN0IG8pIG5vZXhjZXB0OgorICAgICBy ZXR1cm4gUHlEYXRlVGltZV9USU1FX0dFVF9TRUNPTkQobykKKyAKKyAjIEdldCBtaWNyb3NlY29u ZCBvZiB0aW1lCistY2RlZiBpbmxpbmUgaW50IHRpbWVfbWljcm9zZWNvbmQob2JqZWN0IG8pOgor K2NkZWYgaW5saW5lIGludCB0aW1lX21pY3Jvc2Vjb25kKG9iamVjdCBvKSBub2V4Y2VwdDoKKyAg ICAgcmV0dXJuIFB5RGF0ZVRpbWVfVElNRV9HRVRfTUlDUk9TRUNPTkQobykKKyAKKyAjIEdldCBm b2xkIG9mIHRpbWUKKy1jZGVmIGlubGluZSBpbnQgdGltZV9mb2xkKG9iamVjdCBvKToKKytjZGVm IGlubGluZSBpbnQgdGltZV9mb2xkKG9iamVjdCBvKSBub2V4Y2VwdDoKKyAgICAgIyBGb3IgUHl0 aG9uIDwgMy42IHRoaXMgcmV0dXJucyAwIG5vIG1hdHRlciB3aGF0CisgICAgIHJldHVybiBQeURh dGVUaW1lX1RJTUVfR0VUX0ZPTEQobykKKyAKKyAjIEdldCBob3VyIG9mIGRhdGV0aW1lCistY2Rl ZiBpbmxpbmUgaW50IGRhdGV0aW1lX2hvdXIob2JqZWN0IG8pOgorK2NkZWYgaW5saW5lIGludCBk YXRldGltZV9ob3VyKG9iamVjdCBvKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIFB5RGF0ZVRpbWVf REFURV9HRVRfSE9VUihvKQorIAorICMgR2V0IG1pbnV0ZSBvZiBkYXRldGltZQorLWNkZWYgaW5s aW5lIGludCBkYXRldGltZV9taW51dGUob2JqZWN0IG8pOgorK2NkZWYgaW5saW5lIGludCBkYXRl dGltZV9taW51dGUob2JqZWN0IG8pIG5vZXhjZXB0OgorICAgICByZXR1cm4gUHlEYXRlVGltZV9E QVRFX0dFVF9NSU5VVEUobykKKyAKKyAjIEdldCBzZWNvbmQgb2YgZGF0ZXRpbWUKKy1jZGVmIGlu bGluZSBpbnQgZGF0ZXRpbWVfc2Vjb25kKG9iamVjdCBvKToKKytjZGVmIGlubGluZSBpbnQgZGF0 ZXRpbWVfc2Vjb25kKG9iamVjdCBvKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIFB5RGF0ZVRpbWVf REFURV9HRVRfU0VDT05EKG8pCisgCisgIyBHZXQgbWljcm9zZWNvbmQgb2YgZGF0ZXRpbWUKKy1j ZGVmIGlubGluZSBpbnQgZGF0ZXRpbWVfbWljcm9zZWNvbmQob2JqZWN0IG8pOgorK2NkZWYgaW5s aW5lIGludCBkYXRldGltZV9taWNyb3NlY29uZChvYmplY3Qgbykgbm9leGNlcHQ6CisgICAgIHJl dHVybiBQeURhdGVUaW1lX0RBVEVfR0VUX01JQ1JPU0VDT05EKG8pCisgCisgIyBHZXQgZm9sZCBv ZiBkYXRldGltZQorLWNkZWYgaW5saW5lIGludCBkYXRldGltZV9mb2xkKG9iamVjdCBvKToKKytj ZGVmIGlubGluZSBpbnQgZGF0ZXRpbWVfZm9sZChvYmplY3Qgbykgbm9leGNlcHQ6CisgICAgICMg Rm9yIFB5dGhvbiA8IDMuNiB0aGlzIHJldHVybnMgMCBubyBtYXR0ZXIgd2hhdAorICAgICByZXR1 cm4gUHlEYXRlVGltZV9EQVRFX0dFVF9GT0xEKG8pCisgCisgIyBHZXQgZGF5cyBvZiB0aW1lZGVs dGEKKy1jZGVmIGlubGluZSBpbnQgdGltZWRlbHRhX2RheXMob2JqZWN0IG8pOgorK2NkZWYgaW5s aW5lIGludCB0aW1lZGVsdGFfZGF5cyhvYmplY3Qgbykgbm9leGNlcHQ6CisgICAgIHJldHVybiAo PFB5RGF0ZVRpbWVfRGVsdGEqPm8pLmRheXMKKyAKKyAjIEdldCBzZWNvbmRzIG9mIHRpbWVkZWx0 YQorLWNkZWYgaW5saW5lIGludCB0aW1lZGVsdGFfc2Vjb25kcyhvYmplY3Qgbyk6CisrY2RlZiBp bmxpbmUgaW50IHRpbWVkZWx0YV9zZWNvbmRzKG9iamVjdCBvKSBub2V4Y2VwdDoKKyAgICAgcmV0 dXJuICg8UHlEYXRlVGltZV9EZWx0YSo+bykuc2Vjb25kcworIAorICMgR2V0IG1pY3Jvc2Vjb25k cyBvZiB0aW1lZGVsdGEKKy1jZGVmIGlubGluZSBpbnQgdGltZWRlbHRhX21pY3Jvc2Vjb25kcyhv YmplY3Qgbyk6CisrY2RlZiBpbmxpbmUgaW50IHRpbWVkZWx0YV9taWNyb3NlY29uZHMob2JqZWN0 IG8pIG5vZXhjZXB0OgorICAgICByZXR1cm4gKDxQeURhdGVUaW1lX0RlbHRhKj5vKS5taWNyb3Nl Y29uZHMKKyAKKy1jZGVmIGlubGluZSBkb3VibGUgdG90YWxfc2Vjb25kcyh0aW1lZGVsdGEgb2Jq KToKKytjZGVmIGlubGluZSBkb3VibGUgdG90YWxfc2Vjb25kcyh0aW1lZGVsdGEgb2JqKSBub2V4 Y2VwdDoKKyAgICAgIyBNaXJyb3JzIHRoZSAidGltZWRlbHRhLnRvdGFsX3NlY29uZHMoKSIgbWV0 aG9kLgorICAgICAjIE5vdGUgdGhhdCB0aGlzIGltcGxlbWVudGF0aW9uIGlzIG5vdCBndWFyYW50 ZWVkIHRvIGdpdmUgKmV4YWN0bHkqIHRoZSBzYW1lCisgICAgICMgcmVzdWx0IGFzIHRoZSBvcmln aW5hbCBtZXRob2QsIGR1ZSB0byBwb3RlbnRpYWwgZGlmZmVyZW5jZXMgaW4gZmxvYXRpbmcgcG9p bnQgcm91bmRpbmcuCitkaWZmIC0tZ2l0IGEvQ3l0aG9uL0luY2x1ZGVzL2NweXRob24vdGltZS5w eGQgYi9DeXRob24vSW5jbHVkZXMvY3B5dGhvbi90aW1lLnB4ZAoraW5kZXggN2YyMDA5NWExMmYu LjNmMzMzYTcyYTlkIDEwMDY0NAorLS0tIGEvQ3l0aG9uL0luY2x1ZGVzL2NweXRob24vdGltZS5w eGQKKysrKyBiL0N5dGhvbi9JbmNsdWRlcy9jcHl0aG9uL3RpbWUucHhkCitAQCAtMTcsNyArMTcs NyBAQCBmcm9tIGxpYmMudGltZSBjaW1wb3J0ICgKKyApCisgCisgCistY2RlZiBpbmxpbmUgZG91 YmxlIHRpbWUoKSBub2dpbDoKKytjZGVmIGlubGluZSBkb3VibGUgdGltZSgpIG5vZXhjZXB0IG5v Z2lsOgorICAgICBjZGVmOgorICAgICAgICAgX1B5VGltZV90IHRpYworIAorZGlmZiAtLWdpdCBh L3Rlc3RzL3J1bi9sZWdhY3lfaW1wbGljaXRfbm9leGNlcHQucHl4IGIvdGVzdHMvcnVuL2xlZ2Fj eV9pbXBsaWNpdF9ub2V4Y2VwdC5weXgKK2luZGV4IGQzYjkzMmY4Mzg4Li4wN2YxZGEyZjRjMSAx MDA2NDQKKy0tLSBhL3Rlc3RzL3J1bi9sZWdhY3lfaW1wbGljaXRfbm9leGNlcHQucHl4CisrKysg Yi90ZXN0cy9ydW4vbGVnYWN5X2ltcGxpY2l0X25vZXhjZXB0LnB5eAorQEAgLTQ2LDU1ICs0Niw1 MSBAQCBjZGVmIHRlc3Rfbm9leGNlcHRfd2FybmluZygpOgorIGRlZiBmdW5jX3B1cmVfaW1wbGlj aXQoKSAtPiBjeXRob24uaW50OgorICAgICByYWlzZSBSdW50aW1lRXJyb3IKKyAKKy1AY3l0aG9u LmV4Y2V0dmFsKGNoZWNrPUZhbHNlKQorK0BjeXRob24uZXhjZXB0dmFsKGNoZWNrPUZhbHNlKQor IEBjeXRob24uY2Z1bmMKKyBkZWYgZnVuY19wdXJlX25vZXhjZXB0KCkgLT4gY3l0aG9uLmludDoK KyAgICAgcmFpc2UgUnVudGltZUVycm9yCisgCistZGVmIHJldHVybl9zdGRlcnIoZnVuYyk6Cisr ZGVmIHByaW50X3N0ZGVycihmdW5jKToKKyAgICAgQGZ1bmN0b29scy53cmFwcyhmdW5jKQorICAg ICBkZWYgdGVzdGZ1bmMoKToKKy0gICAgICAgIG9sZF9zdGRlcnIgPSBzeXMuc3RkZXJyCistICAg ICAgICBzdGRlcnIgPSBzeXMuc3RkZXJyID0gU3RyaW5nSU8oKQorLSAgICAgICAgdHJ5OgorKyAg ICAgICAgZnJvbSBjb250ZXh0bGliIGltcG9ydCByZWRpcmVjdF9zdGRlcnIKKysgICAgICAgIHdp dGggcmVkaXJlY3Rfc3RkZXJyKHN5cy5zdGRvdXQpOgorICAgICAgICAgICAgIGZ1bmMoKQorLSAg ICAgICAgZmluYWxseToKKy0gICAgICAgICAgICBzeXMuc3RkZXJyID0gb2xkX3N0ZGVycgorLSAg ICAgICAgcmV0dXJuIHN0ZGVyci5nZXR2YWx1ZSgpLnN0cmlwKCkKKyAKKyAgICAgcmV0dXJuIHRl c3RmdW5jCisgCistQHJldHVybl9zdGRlcnIKKytAcHJpbnRfc3RkZXJyCisgZGVmIHRlc3Rfbm9l eGNlcHQoKToKKyAgICAgIiIiCistICAgID4+PiBwcmludCh0ZXN0X25vZXhjZXB0KCkpICAjIGRv Y3Rlc3Q6ICtFTExJUFNJUworKyAgICA+Pj4gdGVzdF9ub2V4Y2VwdCgpICAjIGRvY3Rlc3Q6ICtF TExJUFNJUworICAgICBSdW50aW1lRXJyb3IKKyAgICAgRXhjZXB0aW9uLi4uaWdub3JlZC4uLgor ICAgICAiIiIKKyAgICAgZnVuY19ub2V4Y2VwdCgzLCA1KQorIAorLUByZXR1cm5fc3RkZXJyCisr QHByaW50X3N0ZGVycgorIGRlZiB0ZXN0X3B0cl9ub2V4Y2VwdCgpOgorICAgICAiIiIKKy0gICAg Pj4+IHByaW50KHRlc3RfcHRyX25vZXhjZXB0KCkpICAjIGRvY3Rlc3Q6ICtFTExJUFNJUworKyAg ICA+Pj4gdGVzdF9wdHJfbm9leGNlcHQoKSAgIyBkb2N0ZXN0OiArRUxMSVBTSVMKKyAgICAgUnVu dGltZUVycm9yCisgICAgIEV4Y2VwdGlvbi4uLmlnbm9yZWQuLi4KKyAgICAgIiIiCisgICAgIHB0 cl9mdW5jX25vZXhjZXB0KDMsIDUpCisgCistQHJldHVybl9zdGRlcnIKKytAcHJpbnRfc3RkZXJy CisgZGVmIHRlc3RfaW1wbGljaXQoKToKKyAgICAgIiIiCistICAgID4+PiBwcmludCh0ZXN0X2lt cGxpY2l0KCkpICAjIGRvY3Rlc3Q6ICtFTExJUFNJUworKyAgICA+Pj4gdGVzdF9pbXBsaWNpdCgp ICAjIGRvY3Rlc3Q6ICtFTExJUFNJUworICAgICBSdW50aW1lRXJyb3IKKyAgICAgRXhjZXB0aW9u Li4uaWdub3JlZC4uLgorICAgICAiIiIKKyAgICAgZnVuY19pbXBsaWNpdCgxLCAyKQorIAorLUBy ZXR1cm5fc3RkZXJyCisrQHByaW50X3N0ZGVycgorIGRlZiB0ZXN0X3B0cl9pbXBsaWNpdCgpOgor ICAgICAiIiIKKy0gICAgPj4+IHByaW50KHRlc3RfcHRyX2ltcGxpY2l0KCkpICAjIGRvY3Rlc3Q6 ICtFTExJUFNJUworKyAgICA+Pj4gdGVzdF9wdHJfaW1wbGljaXQoKSAgIyBkb2N0ZXN0OiArRUxM SVBTSVMKKyAgICAgUnVudGltZUVycm9yCisgICAgIEV4Y2VwdGlvbi4uLmlnbm9yZWQuLi4KKyAg ICAgIiIiCitAQCAtMTI4LDMxICsxMjQsMzQgQEAgZGVmIHRlc3RfcmV0dXJuX29ial9pbXBsaWNp dCgpOgorICAgICAiIiIKKyAgICAgZnVuY19yZXR1cm5fb2JqX2ltcGxpY2l0KDEsIDIpCisgCisr QHByaW50X3N0ZGVycgorIGRlZiB0ZXN0X3B1cmVfaW1wbGljaXQoKToKKyAgICAgIiIiCistICAg ID4+PiB0ZXN0X3B1cmVfaW1wbGljaXQoKQorLSAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh bGwgbGFzdCk6CistICAgIC4uLgorKyAgICA+Pj4gdGVzdF9wdXJlX2ltcGxpY2l0KCkgICMgZG9j dGVzdDogK0VMTElQU0lTCisgICAgIFJ1bnRpbWVFcnJvcgorKyAgICBFeGNlcHRpb24uLi5pZ25v cmVkLi4uCisgICAgICIiIgorICAgICBmdW5jX3B1cmVfaW1wbGljaXQoKQorIAorK0BwcmludF9z dGRlcnIKKyBkZWYgdGVzdF9wdXJlX25vZXhjZXB0KCk6CisgICAgICIiIgorLSAgICA+Pj4gdGVz dF9wdXJlX25vZXhjZXB0KCkKKy0gICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp OgorLSAgICAuLi4KKysgICAgPj4+IHRlc3RfcHVyZV9ub2V4Y2VwdCgpICAjIGRvY3Rlc3Q6ICtF TExJUFNJUworICAgICBSdW50aW1lRXJyb3IKKysgICAgRXhjZXB0aW9uLi4uaWdub3JlZC4uLgor ICAgICAiIiIKKyAgICAgZnVuY19wdXJlX25vZXhjZXB0KCkKKyAKKysjIGV4dGVybiBmdW5jdGlv bnMgYXJlIGltcGxpY2l0IG5vZXhjZXB0LCB3aXRob3V0IHdhcm5pbmcKKytjZGVmIGV4dGVybiBp bnQgZXh0ZXJuX2Z1bigpCisrY2RlZiBleHRlcm4gaW50IGV4dGVybl9mdW5fZnVuKGludCAoKmYp KGludCkpCisrCisgX1dBUk5JTkdTID0gIiIiCisgMTI6NTogVW5yYWlzYWJsZSBleGNlcHRpb24g aW4gZnVuY3Rpb24gJ2xlZ2FjeV9pbXBsaWNpdF9ub2V4Y2VwdC5mdW5jX2ltcGxpY2l0Jy4KKy0x MjozNjogSW1wbGljaXQgbm9leGNlcHQgZGVjbGFyYXRpb24gaXMgZGVwcmVjYXRlZC4gRnVuY3Rp b24gZGVjbGFyYXRpb24gc2hvdWxkIGNvbnRhaW4gJ25vZXhjZXB0JyBrZXl3b3JkLgorKzEyOjIy OiBJbXBsaWNpdCBub2V4Y2VwdCBkZWNsYXJhdGlvbiBpcyBkZXByZWNhdGVkLiBGdW5jdGlvbiBk ZWNsYXJhdGlvbiBzaG91bGQgY29udGFpbiAnbm9leGNlcHQnIGtleXdvcmQuCisgMTU6NTogVW5y YWlzYWJsZSBleGNlcHRpb24gaW4gZnVuY3Rpb24gJ2xlZ2FjeV9pbXBsaWNpdF9ub2V4Y2VwdC5m dW5jX25vZXhjZXB0Jy4KKy0yNDo0MzogSW1wbGljaXQgbm9leGNlcHQgZGVjbGFyYXRpb24gaXMg ZGVwcmVjYXRlZC4gRnVuY3Rpb24gZGVjbGFyYXRpb24gc2hvdWxkIGNvbnRhaW4gJ25vZXhjZXB0 JyBrZXl3b3JkLgorLTI3OjM4OiBJbXBsaWNpdCBub2V4Y2VwdCBkZWNsYXJhdGlvbiBpcyBkZXBy ZWNhdGVkLiBGdW5jdGlvbiBkZWNsYXJhdGlvbiBzaG91bGQgY29udGFpbiAnbm9leGNlcHQnIGtl eXdvcmQuCistMzY6NDM6IEltcGxpY2l0IG5vZXhjZXB0IGRlY2xhcmF0aW9uIGlzIGRlcHJlY2F0 ZWQuIEZ1bmN0aW9uIGRlY2xhcmF0aW9uIHNob3VsZCBjb250YWluICdub2V4Y2VwdCcga2V5d29y ZC4KKy0zOTozNjogSW1wbGljaXQgbm9leGNlcHQgZGVjbGFyYXRpb24gaXMgZGVwcmVjYXRlZC4g RnVuY3Rpb24gZGVjbGFyYXRpb24gc2hvdWxkIGNvbnRhaW4gJ25vZXhjZXB0JyBrZXl3b3JkLgor LTQyOjI4OiBJbXBsaWNpdCBub2V4Y2VwdCBkZWNsYXJhdGlvbiBpcyBkZXByZWNhdGVkLiBGdW5j dGlvbiBkZWNsYXJhdGlvbiBzaG91bGQgY29udGFpbiAnbm9leGNlcHQnIGtleXdvcmQuCisrMjc6 Mjg6IEltcGxpY2l0IG5vZXhjZXB0IGRlY2xhcmF0aW9uIGlzIGRlcHJlY2F0ZWQuIEZ1bmN0aW9u IGRlY2xhcmF0aW9uIHNob3VsZCBjb250YWluICdub2V4Y2VwdCcga2V5d29yZC4KKys0NTowOiBJ bXBsaWNpdCBub2V4Y2VwdCBkZWNsYXJhdGlvbiBpcyBkZXByZWNhdGVkLiBGdW5jdGlvbiBkZWNs YXJhdGlvbiBzaG91bGQgY29udGFpbiAnbm9leGNlcHQnIGtleXdvcmQuCisrNDU6MDogVW5yYWlz YWJsZSBleGNlcHRpb24gaW4gZnVuY3Rpb24gJ2xlZ2FjeV9pbXBsaWNpdF9ub2V4Y2VwdC5mdW5j X3B1cmVfaW1wbGljaXQnLgorKzQ5OjA6IFVucmFpc2FibGUgZXhjZXB0aW9uIGluIGZ1bmN0aW9u ICdsZWdhY3lfaW1wbGljaXRfbm9leGNlcHQuZnVuY19wdXJlX25vZXhjZXB0Jy4KKyAiIiIKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1DeXRob24vdGVtcGxhdGUgYi9zcmNwa2dzL3B5dGhv bjMtQ3l0aG9uL3RlbXBsYXRlCmluZGV4IDkxMmU1NTU4ZTVjOWRhLi4wNTk5ZTQwOWU4MmY5MCAx MDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLUN5dGhvbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3B5dGhvbjMtQ3l0aG9uL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAncHl0aG9uMy1DeXRob24nCiBwa2duYW1lPXB5dGhvbjMtQ3l0aG9uCiB2ZXJzaW9uPTMu MC45Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQog aG9zdG1ha2VkZXBlbmRzPSJweXRob24zLXNldHVwdG9vbHMiCiBtYWtlZGVwZW5kcz0icHl0aG9u My1kZXZlbCIKCkZyb20gZWE3MmQ1ZDU4ZWM1M2RmYjk2OGI3NDYxOThkNmJhNTZjMTNhNTIyYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0dvbnphbG89MjBUb3JuYXI9 QzM9QURhPz0gPHRvcm5hcmlhQGNtYXQuZWR1LnV5PgpEYXRlOiBNb24sIDExIE1hciAyMDI0IDIw OjU5OjE1IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAyLzRdIHB5dGhvbjMtbnVtcHk6IGFkZCBtaXNz aW5nIG5vZXhjZXB0IGNsYXVzZXMKCi0tLQogLi4uMjIwMjFmOTkxN2Q2YzVhZDc3ZGE5YjI5NTE5 YzdjMjIxMDZjLnBhdGNoIHwgMTUxICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9weXRob24z LW51bXB5L3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgICAyICstCiAyIGZpbGVzIGNoYW5nZWQs IDE1MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9weXRob24zLW51bXB5L3BhdGNoZXMvbWlzc2luZ19ub2V4Y2VwdC05YjI3MjIwMjFmOTkx N2Q2YzVhZDc3ZGE5YjI5NTE5YzdjMjIxMDZjLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9w eXRob24zLW51bXB5L3BhdGNoZXMvbWlzc2luZ19ub2V4Y2VwdC05YjI3MjIwMjFmOTkxN2Q2YzVh ZDc3ZGE5YjI5NTE5YzdjMjIxMDZjLnBhdGNoIGIvc3JjcGtncy9weXRob24zLW51bXB5L3BhdGNo ZXMvbWlzc2luZ19ub2V4Y2VwdC05YjI3MjIwMjFmOTkxN2Q2YzVhZDc3ZGE5YjI5NTE5YzdjMjIx MDZjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi5hNmY4 MDZiYmEzMWI1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1udW1weS9wYXRj aGVzL21pc3Npbmdfbm9leGNlcHQtOWIyNzIyMDIxZjk5MTdkNmM1YWQ3N2RhOWIyOTUxOWM3YzIy MTA2Yy5wYXRjaApAQCAtMCwwICsxLDE1MSBAQAorU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbnVt cHkvbnVtcHkvcHVsbC8yNjEyOQorCitGcm9tIDliMjcyMjAyMWY5OTE3ZDZjNWFkNzdkYTliMjk1 MTljN2MyMjEwNmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/R29u emFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8dG9ybmFyaWFAY21hdC5lZHUudXk+CitEYXRlOiBNb24s IDExIE1hciAyMDI0IDA4OjUyOjU2IC0wMzAwCitTdWJqZWN0OiBbUEFUQ0hdIE1BSU5UOiBhZGQg bWlzc2luZyBub2V4Y2VwdCBjbGF1c2VzICgxLzIpCisKK0FmdGVyIGh0dHBzOi8vZ2l0aHViLmNv bS9jeXRob24vY3l0aG9uL3B1bGwvNjA4NyBpdCdzIG11Y2ggZWFzaWVyIHRvCitmaWd1cmUgb3V0 IHRoZSBtaXNzaW5nIG5vZXhjZXB0IGNsYXVzZXMuIEluZGVlZCwgY3l0aG9uIHVwIHRvIDMuMC45 IGhhcworYSB3YXJuaW5nIHRoYXQgZ2l2ZXMgbG90cyBvZiBmYWxzZSBwb3NpdGl2ZXMsIGJ1dCB3 aXRoIHRoZSBQUiBhYm92ZQorKGFscmVhZHkgbWVyZ2VkIGluIGN5dGhvbiBtYXN0ZXIgYW5kIGJh Y2twb3J0ZWQgdG8gMy4wLngpIGFsbCB0aGUKK3dhcm5pbmdzIGFyZSBpbmRlZWQgY2FzZXMgb2Yg bWlzc2luZyBub2V4Y2VwdAorCitUbyB0ZXN0IHVzZSB0aGlzIGZpbGUgYHRlc3RfY2ltcG9ydC5w eXhgOgorYGBgCisjIGN5dGhvbjogbGFuZ3VhZ2VfbGV2ZWw9MworY2ltcG9ydCBudW1weQorY2lt cG9ydCBudW1weS5yYW5kb20KK2NpbXBvcnQgbnVtcHkucmFuZG9tLl9ib3VuZGVkX2ludGVnZXJz CitjaW1wb3J0IG51bXB5LnJhbmRvbS5fY29tbW9uCitjaW1wb3J0IG51bXB5LnJhbmRvbS5iaXRf Z2VuZXJhdG9yCitjaW1wb3J0IG51bXB5LnJhbmRvbS5jX2Rpc3RyaWJ1dGlvbnMKK2BgYAorYW5k IGJ1aWxkIHdpdGggYGN5dGhvbiAtWCBsZWdhY3lfaW1wbGljaXRfbm9leGNlcHQ9VHJ1ZSB0ZXN0 X2NpbXBvcnQucHl4YAorCitUaGlzIGNvbW1pdCBhcHBsaWVzIGNsZWFubHkgdG8gdGhlIDEuMjYu eCBicmFuY2ggYW5kIGlzIG1lYW50IHRvCitiYWNrcG9ydC4gVGhlIG5leHQgY29tbWl0IGZpeGVz IHRoZSByZW1haW5pbmcgaW5zdGFuY2VzLgorLS0tCisgbnVtcHkvX19pbml0X18uY3l0aG9uLTMw LnB4ZCAgICAgICAgICB8IDI0ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQorIG51bXB5L3JhbmRv bS9fYm91bmRlZF9pbnRlZ2Vycy5weGQuaW4gfCAgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMTMg aW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9udW1weS9fX2lu aXRfXy5jeXRob24tMzAucHhkIGIvbnVtcHkvX19pbml0X18uY3l0aG9uLTMwLnB4ZAoraW5kZXgg NzQ0YTUwOTU2YjU2Li5mMGEyZjdlYjZmODQgMTAwNjQ0CistLS0gYS9udW1weS9fX2luaXRfXy5j eXRob24tMzAucHhkCisrKysgYi9udW1weS9fX2luaXRfXy5jeXRob24tMzAucHhkCitAQCAtMzYz LDcgKzM2Myw3IEBAIGNkZWYgZXh0ZXJuIGZyb20gIm51bXB5L2FycmF5b2JqZWN0LmgiOgorICAg ICAgICAgIyBJbnN0ZWFkLCB3ZSB1c2UgcHJvcGVydGllcyB0aGF0IG1hcCB0byB0aGUgY29ycmVz cG9uZGluZyBDLUFQSSBmdW5jdGlvbnMuCisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAgICAg IGNkZWYgaW5saW5lIFB5T2JqZWN0KiBiYXNlKHNlbGYpIG5vZ2lsOgorKyAgICAgICAgY2RlZiBp bmxpbmUgUHlPYmplY3QqIGJhc2Uoc2VsZikgbm9leGNlcHQgbm9naWw6CisgICAgICAgICAgICAg IiIiUmV0dXJucyBhIGJvcnJvd2VkIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IG93bmluZyB0aGUg ZGF0YS9tZW1vcnkuCisgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgcmV0dXJuIFB5QXJy YXlfQkFTRShzZWxmKQorQEAgLTM3NSwxMyArMzc1LDEzIEBAIGNkZWYgZXh0ZXJuIGZyb20gIm51 bXB5L2FycmF5b2JqZWN0LmgiOgorICAgICAgICAgICAgIHJldHVybiA8ZHR5cGU+UHlBcnJheV9E RVNDUihzZWxmKQorIAorICAgICAgICAgQHByb3BlcnR5CistICAgICAgICBjZGVmIGlubGluZSBp bnQgbmRpbShzZWxmKSBub2dpbDoKKysgICAgICAgIGNkZWYgaW5saW5lIGludCBuZGltKHNlbGYp IG5vZXhjZXB0IG5vZ2lsOgorICAgICAgICAgICAgICIiIlJldHVybnMgdGhlIG51bWJlciBvZiBk aW1lbnNpb25zIGluIHRoZSBhcnJheS4KKyAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICBy ZXR1cm4gUHlBcnJheV9ORElNKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAgICAg IGNkZWYgaW5saW5lIG5weV9pbnRwICpzaGFwZShzZWxmKSBub2dpbDoKKysgICAgICAgIGNkZWYg aW5saW5lIG5weV9pbnRwICpzaGFwZShzZWxmKSBub2V4Y2VwdCBub2dpbDoKKyAgICAgICAgICAg ICAiIiJSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZGltZW5zaW9ucy9zaGFwZSBvZiB0aGUgYXJy YXkuCisgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBlbGVtZW50cyBtYXRjaGVzIHRoZSBudW1i ZXIgb2YgZGltZW5zaW9ucyBvZiB0aGUgYXJyYXkgKG5kaW0pLgorICAgICAgICAgICAgIENhbiBy ZXR1cm4gTlVMTCBmb3IgMC1kaW1lbnNpb25hbCBhcnJheXMuCitAQCAtMzg5LDIwICszODksMjAg QEAgY2RlZiBleHRlcm4gZnJvbSAibnVtcHkvYXJyYXlvYmplY3QuaCI6CisgICAgICAgICAgICAg cmV0dXJuIFB5QXJyYXlfRElNUyhzZWxmKQorIAorICAgICAgICAgQHByb3BlcnR5CistICAgICAg ICBjZGVmIGlubGluZSBucHlfaW50cCAqc3RyaWRlcyhzZWxmKSBub2dpbDoKKysgICAgICAgIGNk ZWYgaW5saW5lIG5weV9pbnRwICpzdHJpZGVzKHNlbGYpIG5vZXhjZXB0IG5vZ2lsOgorICAgICAg ICAgICAgICIiIlJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBzdHJpZGVzIG9mIHRoZSBhcnJheS4K KyAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIG1hdGNoZXMgdGhlIG51bWJlciBv ZiBkaW1lbnNpb25zIG9mIHRoZSBhcnJheSAobmRpbSkuCisgICAgICAgICAgICAgIiIiCisgICAg ICAgICAgICAgcmV0dXJuIFB5QXJyYXlfU1RSSURFUyhzZWxmKQorIAorICAgICAgICAgQHByb3Bl cnR5CistICAgICAgICBjZGVmIGlubGluZSBucHlfaW50cCBzaXplKHNlbGYpIG5vZ2lsOgorKyAg ICAgICAgY2RlZiBpbmxpbmUgbnB5X2ludHAgc2l6ZShzZWxmKSBub2V4Y2VwdCBub2dpbDoKKyAg ICAgICAgICAgICAiIiJSZXR1cm5zIHRoZSB0b3RhbCBzaXplIChpbiBudW1iZXIgb2YgZWxlbWVu dHMpIG9mIHRoZSBhcnJheS4KKyAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICByZXR1cm4g UHlBcnJheV9TSVpFKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAgICAgIGNkZWYg aW5saW5lIGNoYXIqIGRhdGEoc2VsZikgbm9naWw6CisrICAgICAgICBjZGVmIGlubGluZSBjaGFy KiBkYXRhKHNlbGYpIG5vZXhjZXB0IG5vZ2lsOgorICAgICAgICAgICAgICIiIlRoZSBwb2ludGVy IHRvIHRoZSBkYXRhIGJ1ZmZlciBhcyBhIGNoYXIqLgorICAgICAgICAgICAgIFRoaXMgaXMgcHJv dmlkZWQgZm9yIGxlZ2FjeSByZWFzb25zIHRvIGF2b2lkIGRpcmVjdCBzdHJ1Y3QgZmllbGQgYWNj ZXNzLgorICAgICAgICAgICAgIEZvciBuZXcgY29kZSB0aGF0IG5lZWRzIHRoaXMgYWNjZXNzLCB5 b3UgcHJvYmFibHkgd2FudCB0byBjYXN0IHRoZSByZXN1bHQKK0BAIC0xMDA3LDcgKzEwMDcsNyBA QCBjZGVmIGV4dGVybiBmcm9tICJudW1weS91ZnVuY29iamVjdC5oIjoKKyAKKyAgICAgaW50IF9p bXBvcnRfdW1hdGgoKSBleGNlcHQgLTEKKyAKKy1jZGVmIGlubGluZSB2b2lkIHNldF9hcnJheV9i YXNlKG5kYXJyYXkgYXJyLCBvYmplY3QgYmFzZSk6CisrY2RlZiBpbmxpbmUgdm9pZCBzZXRfYXJy YXlfYmFzZShuZGFycmF5IGFyciwgb2JqZWN0IGJhc2UpIGV4Y2VwdCAqOgorICAgICBQeV9JTkNS RUYoYmFzZSkgIyBpbXBvcnRhbnQgdG8gZG8gdGhpcyBiZWZvcmUgc3RlYWxpbmcgdGhlIHJlZmVy ZW5jZSBiZWxvdyEKKyAgICAgUHlBcnJheV9TZXRCYXNlT2JqZWN0KGFyciwgYmFzZSkKKyAKK0BA IC0xMDM4LDcgKzEwMzgsNyBAQCBjZGVmIGlubGluZSBpbnQgaW1wb3J0X3VmdW5jKCkgZXhjZXB0 IC0xOgorICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIm51bXB5Ll9jb3JlLnVtYXRoIGZhaWxl ZCB0byBpbXBvcnQiKQorIAorIAorLWNkZWYgaW5saW5lIGJpbnQgaXNfdGltZWRlbHRhNjRfb2Jq ZWN0KG9iamVjdCBvYmopOgorK2NkZWYgaW5saW5lIGJpbnQgaXNfdGltZWRlbHRhNjRfb2JqZWN0 KG9iamVjdCBvYmopIG5vZXhjZXB0OgorICAgICAiIiIKKyAgICAgQ3l0aG9uIGVxdWl2YWxlbnQg b2YgYGlzaW5zdGFuY2Uob2JqLCBucC50aW1lZGVsdGE2NClgCisgCitAQCAtMTA1Myw3ICsxMDUz LDcgQEAgY2RlZiBpbmxpbmUgYmludCBpc190aW1lZGVsdGE2NF9vYmplY3Qob2JqZWN0IG9iaik6 CisgICAgIHJldHVybiBQeU9iamVjdF9UeXBlQ2hlY2sob2JqLCAmUHlUaW1lZGVsdGFBcnJUeXBl X1R5cGUpCisgCisgCistY2RlZiBpbmxpbmUgYmludCBpc19kYXRldGltZTY0X29iamVjdChvYmpl Y3Qgb2JqKToKKytjZGVmIGlubGluZSBiaW50IGlzX2RhdGV0aW1lNjRfb2JqZWN0KG9iamVjdCBv YmopIG5vZXhjZXB0OgorICAgICAiIiIKKyAgICAgQ3l0aG9uIGVxdWl2YWxlbnQgb2YgYGlzaW5z dGFuY2Uob2JqLCBucC5kYXRldGltZTY0KWAKKyAKK0BAIC0xMDY4LDcgKzEwNjgsNyBAQCBjZGVm IGlubGluZSBiaW50IGlzX2RhdGV0aW1lNjRfb2JqZWN0KG9iamVjdCBvYmopOgorICAgICByZXR1 cm4gUHlPYmplY3RfVHlwZUNoZWNrKG9iaiwgJlB5RGF0ZXRpbWVBcnJUeXBlX1R5cGUpCisgCisg CistY2RlZiBpbmxpbmUgbnB5X2RhdGV0aW1lIGdldF9kYXRldGltZTY0X3ZhbHVlKG9iamVjdCBv YmopIG5vZ2lsOgorK2NkZWYgaW5saW5lIG5weV9kYXRldGltZSBnZXRfZGF0ZXRpbWU2NF92YWx1 ZShvYmplY3Qgb2JqKSBub2V4Y2VwdCBub2dpbDoKKyAgICAgIiIiCisgICAgIHJldHVybnMgdGhl IGludDY0IHZhbHVlIHVuZGVybHlpbmcgc2NhbGFyIG51bXB5IGRhdGV0aW1lNjQgb2JqZWN0Cisg CitAQCAtMTA3OCwxNCArMTA3OCwxNCBAQCBjZGVmIGlubGluZSBucHlfZGF0ZXRpbWUgZ2V0X2Rh dGV0aW1lNjRfdmFsdWUob2JqZWN0IG9iaikgbm9naWw6CisgICAgIHJldHVybiAoPFB5RGF0ZXRp bWVTY2FsYXJPYmplY3QqPm9iaikub2J2YWwKKyAKKyAKKy1jZGVmIGlubGluZSBucHlfdGltZWRl bHRhIGdldF90aW1lZGVsdGE2NF92YWx1ZShvYmplY3Qgb2JqKSBub2dpbDoKKytjZGVmIGlubGlu ZSBucHlfdGltZWRlbHRhIGdldF90aW1lZGVsdGE2NF92YWx1ZShvYmplY3Qgb2JqKSBub2V4Y2Vw dCBub2dpbDoKKyAgICAgIiIiCisgICAgIHJldHVybnMgdGhlIGludDY0IHZhbHVlIHVuZGVybHlp bmcgc2NhbGFyIG51bXB5IHRpbWVkZWx0YTY0IG9iamVjdAorICAgICAiIiIKKyAgICAgcmV0dXJu ICg8UHlUaW1lZGVsdGFTY2FsYXJPYmplY3QqPm9iaikub2J2YWwKKyAKKyAKKy1jZGVmIGlubGlu ZSBOUFlfREFURVRJTUVVTklUIGdldF9kYXRldGltZTY0X3VuaXQob2JqZWN0IG9iaikgbm9naWw6 CisrY2RlZiBpbmxpbmUgTlBZX0RBVEVUSU1FVU5JVCBnZXRfZGF0ZXRpbWU2NF91bml0KG9iamVj dCBvYmopIG5vZXhjZXB0IG5vZ2lsOgorICAgICAiIiIKKyAgICAgcmV0dXJucyB0aGUgdW5pdCBw YXJ0IG9mIHRoZSBkdHlwZSBmb3IgYSBudW1weSBkYXRldGltZTY0IG9iamVjdC4KKyAgICAgIiIi CitkaWZmIC0tZ2l0IGEvbnVtcHkvcmFuZG9tL19ib3VuZGVkX2ludGVnZXJzLnB4ZC5pbiBiL251 bXB5L3JhbmRvbS9fYm91bmRlZF9pbnRlZ2Vycy5weGQuaW4KK2luZGV4IDVhZTVhODA2NzE1Yy4u YmRjYjMyYTdlMjEyIDEwMDY0NAorLS0tIGEvbnVtcHkvcmFuZG9tL19ib3VuZGVkX2ludGVnZXJz LnB4ZC5pbgorKysrIGIvbnVtcHkvcmFuZG9tL19ib3VuZGVkX2ludGVnZXJzLnB4ZC5pbgorQEAg LTYsNyArNiw3IEBAIGN0eXBlZGVmIG5wLm5weV9ib29sIGJvb2xfdAorIAorIGZyb20gbnVtcHku cmFuZG9tIGNpbXBvcnQgYml0Z2VuX3QKKyAKKy1jZGVmIGlubGluZSB1aW50NjRfdCBfZ2VuX21h c2sodWludDY0X3QgbWF4X3ZhbCkgbm9naWw6CisrY2RlZiBpbmxpbmUgdWludDY0X3QgX2dlbl9t YXNrKHVpbnQ2NF90IG1heF92YWwpIG5vZXhjZXB0IG5vZ2lsOgorICAgICAiIiJNYXNrIGdlbmVy YXRvciBmb3IgdXNlIGluIGJvdW5kZWQgcmFuZG9tIG51bWJlcnMiIiIKKyAgICAgIyBTbWFsbGVz dCBiaXQgbWFzayA+PSBtYXgKKyAgICAgY2RlZiB1aW50NjRfdCBtYXNrID0gbWF4X3ZhbApkaWZm IC0tZ2l0IGEvc3JjcGtncy9weXRob24zLW51bXB5L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24z LW51bXB5L3RlbXBsYXRlCmluZGV4IGU2YjZhY2NiNDJhYjRhLi5hNTI4ZTBkNGE3NjgzZiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9weXRob24zLW51bXB5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0 aG9uMy1udW1weS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3B5dGhvbjMtbnVtcHknCiBwa2duYW1lPXB5dGhvbjMtbnVtcHkKIHZlcnNpb249MS4yNi40Ci1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1weXRob24zLXBlcDUxNwogYnVpbGRf aGVscGVyPSJtZXNvbiBxZW11IgogbWFrZV9idWlsZF9hcmdzPSItQ3NldHVwLWFyZ3M9LURkaXNh YmxlLXN2bWw9dHJ1ZQoKRnJvbSBjOTkxZTI4NTM0MWQzMWY5NDZjODI1ZWI1OGUxODMyMTMzMWRk YWQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRv cm5hcj1DMz1BRGE/PSA8dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IE1vbiwgMTEgTWFyIDIw MjQgMjM6NTY6MzIgLTAzMDAKU3ViamVjdDogW1BBVENIIDMvNF0gc2FnZW1hdGg6IGFkanVzdCBu b2V4Y2VwdCBjbGF1c2VzCgotLS0KIC4uLi9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQucGF0 Y2ggICAgICAgICB8IDM5NjYwICsrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzLzM3NDkyLXNp bmd1bGFyXzQuMy4ycDE2LnBhdGNoICAgICB8ICAgIDE0ICstCiBzcmNwa2dzL3NhZ2VtYXRoL3Bh dGNoZXMvZ2V0X3BhdGNoZXMgICAgICAgICAgfCAgICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDM5 NjY4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9zYWdlbWF0aC9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMDM3NjY3LWZpeF9ub2V4Y2VwdC5wYXRjaCBi L3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8wMzc2NjctZml4X25vZXhjZXB0LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi5mYTUwODZlZDZiZTJhNAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8wMzc2NjctZml4X25vZXhj ZXB0LnBhdGNoCkBAIC0wLDAgKzEsMzk2NjAgQEAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdl YnJhcy9jbGlmZm9yZF9hbGdlYnJhX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvYWxnZWJyYXMvY2xp ZmZvcmRfYWxnZWJyYV9lbGVtZW50LnB4ZAoraW5kZXggYmUwOGUwNmY5MjIuLjE0ZDVhN2E2MjVj IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvY2xpZmZvcmRfYWxnZWJyYV9lbGVtZW50 LnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvY2xpZmZvcmRfYWxnZWJyYV9lbGVtZW50LnB4 ZAorQEAgLTUsOCArNSw4IEBAIGZyb20gc2FnZS5tb2R1bGVzLndpdGhfYmFzaXMuaW5kZXhlZF9l bGVtZW50IGNpbXBvcnQgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50CisgZnJvbSBzYWdlLmRhdGFf c3RydWN0dXJlcy5iaXRzZXQgY2ltcG9ydCBGcm96ZW5CaXRzZXQKKyAKKyBjZGVmIGNsYXNzIENs aWZmb3JkQWxnZWJyYUVsZW1lbnQoSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KToKKy0gICAgY2Rl ZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IF9tdWxfc2VsZl90ZXJtKHNlbGYsIEZyb3plbkJpdHNl dCBzdXBwLCBjb2VmZikgbm9leGNlcHQKKy0gICAgY2RlZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50 IF9tdWxfdGVybV9zZWxmKHNlbGYsIEZyb3plbkJpdHNldCBzdXBwLCBjb2VmZikgbm9leGNlcHQK KysgICAgY2RlZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IF9tdWxfc2VsZl90ZXJtKHNlbGYsIEZy b3plbkJpdHNldCBzdXBwLCBjb2VmZikKKysgICAgY2RlZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50 IF9tdWxfdGVybV9zZWxmKHNlbGYsIEZyb3plbkJpdHNldCBzdXBwLCBjb2VmZikKKyAKKyBjZGVm IGNsYXNzIEV4dGVyaW9yQWxnZWJyYUVsZW1lbnQoQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCk6Cisg ICAgIHBhc3MKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9jbGlmZm9yZF9hbGdlYnJh X2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvY2xpZmZvcmRfYWxnZWJyYV9lbGVtZW50 LnB5eAoraW5kZXggNTcxOWY4ZjlmNWMuLjUyYjk5NGY0OGFmIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvYWxnZWJyYXMvY2xpZmZvcmRfYWxnZWJyYV9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2Uv YWxnZWJyYXMvY2xpZmZvcmRfYWxnZWJyYV9lbGVtZW50LnB5eAorQEAgLTY1LDcgKzY1LDcgQEAg Y2RlZiBjbGFzcyBDbGlmZm9yZEFsZ2VicmFFbGVtZW50KEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVu dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiByZXByX2Zyb21fbW9ub21pYWxzKHNl bGYubGlzdCgpLCBzZWxmLl9wYXJlbnQuX2xhdGV4X3Rlcm0sIFRydWUpCisgCistICAgIGNkZWYg X211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tdWxfKHNlbGYsIG90aGVy KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZmBgIG11bHRpcGxpZWQgYnkg YGBvdGhlcmBgLgorIAorQEAgLTE3Niw3ICsxNzYsNyBAQCBjZGVmIGNsYXNzIENsaWZmb3JkQWxn ZWJyYUVsZW1lbnQoSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KToKKyAKKyAgICAgICAgIHJldHVy biBzZWxmLl9fY2xhc3NfXyhzZWxmLnBhcmVudCgpLCBkKQorIAorLSAgICBjZGVmIENsaWZmb3Jk QWxnZWJyYUVsZW1lbnQgX211bF9zZWxmX3Rlcm0oc2VsZiwgRnJvemVuQml0c2V0IHN1cHAsIGNv ZWZmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IF9tdWxfc2Vs Zl90ZXJtKHNlbGYsIEZyb3plbkJpdHNldCBzdXBwLCBjb2VmZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBNdWx0aXBseSBgYHNlbGYgKiB0ZXJtYGAgd2l0aCB0aGUgYGB0ZXJtYGAgaGF2aW5n IHN1cHBvcnQgYGBzdXBwYGAKKyAgICAgICAgIGFuZCBjb2VmZmljaWVudCBgYGNvZWZmYGAuCitA QCAtMjI0LDcgKzIyNCw3IEBAIGNkZWYgY2xhc3MgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudChJbmRl eGVkRnJlZU1vZHVsZUVsZW1lbnQpOgorIAorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2Vs Zi5fcGFyZW50LCB7c3VwcDogY29lZmZ9KSAqIHNlbGYKKyAKKy0gICAgY2RlZiBDbGlmZm9yZEFs Z2VicmFFbGVtZW50IF9tdWxfdGVybV9zZWxmKHNlbGYsIEZyb3plbkJpdHNldCBzdXBwLCBjb2Vm Zikgbm9leGNlcHQ6CisrICAgIGNkZWYgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBfbXVsX3Rlcm1f c2VsZihzZWxmLCBGcm96ZW5CaXRzZXQgc3VwcCwgY29lZmYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgTXVsdGlwbHkgYGB0ZXJtICogc2VsZmBgIHdpdGggdGhlIGBgdGVybWBgIGhhdmluZyBz dXBwb3J0IGBgc3VwcGBgCisgICAgICAgICBhbmQgY29lZmZpY2llbnQgYGBjb2VmZmBgLgorQEAg LTQwMCw3ICs0MDAsNyBAQCBjZGVmIGNsYXNzIEV4dGVyaW9yQWxnZWJyYUVsZW1lbnQoQ2xpZmZv cmRBbGdlYnJhRWxlbWVudCk6CisgICAgICIiIgorICAgICBBbiBlbGVtZW50IG9mIGFuIGV4dGVy aW9yIGFsZ2VicmEuCisgICAgICIiIgorLSAgICBjZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfbXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiBgYHNlbGZgYCBtdWx0aXBsaWVkIGJ5IGBgb3RoZXJgYC4KKyAKK0BAIC01MjAs NyArNTIwLDcgQEAgY2RlZiBjbGFzcyBFeHRlcmlvckFsZ2VicmFFbGVtZW50KENsaWZmb3JkQWxn ZWJyYUVsZW1lbnQpOgorIAorICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKFAsIGQpCisg CistICAgIGNkZWYgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBfbXVsX3NlbGZfdGVybShzZWxmLCBG cm96ZW5CaXRzZXQgc3VwcCwgY29lZmYpIG5vZXhjZXB0OgorKyAgICBjZGVmIENsaWZmb3JkQWxn ZWJyYUVsZW1lbnQgX211bF9zZWxmX3Rlcm0oc2VsZiwgRnJvemVuQml0c2V0IHN1cHAsIGNvZWZm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIE11bHRpcGx5IGBgc2VsZiAqIHRlcm1gYCB3aXRo IHRoZSBgYHRlcm1gYCBoYXZpbmcgc3VwcG9ydCBgYHN1cHBgYAorICAgICAgICAgYW5kIGNvZWZm aWNpZW50IGBgY29lZmZgYC4KK0BAIC02MTAsNyArNjEwLDcgQEAgY2RlZiBjbGFzcyBFeHRlcmlv ckFsZ2VicmFFbGVtZW50KENsaWZmb3JkQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgICAg ICBkZWwgZFtrXQorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBkKQor IAorLSAgICBjZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgX211bF90ZXJtX3NlbGYoc2VsZiwg RnJvemVuQml0c2V0IHN1cHAsIGNvZWZmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBDbGlmZm9yZEFs Z2VicmFFbGVtZW50IF9tdWxfdGVybV9zZWxmKHNlbGYsIEZyb3plbkJpdHNldCBzdXBwLCBjb2Vm Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBNdWx0aXBseSBgYHRlcm0gKiBzZWxmYGAgd2l0 aCB0aGUgYGB0ZXJtYGAgaGF2aW5nIHN1cHBvcnQgYGBzdXBwYGAKKyAgICAgICAgIGFuZCBjb2Vm ZmljaWVudCBgYGNvZWZmYGAuCitAQCAtOTM5LDcgKzkzOSw3IEBAIGNkZWYgY2xhc3MgQ29ob21v bG9neVJBQUdFbGVtZW50KENsaWZmb3JkQWxnZWJyYUVsZW1lbnQpOgorIAorICAgICAgICAgOmNs YXNzOmB+c2FnZS5ncm91cHMucmFhZy5Db2hvbW9sb2d5UkFBR2AKKyAgICAgIiIiCistICAgIGNk ZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tdWxfKHNlbGYsIG90 aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZmBgIG11bHRpcGxpZWQg YnkgYGBvdGhlcmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2V4dGVyaW9y X2FsZ2VicmFfZ3JvZWJuZXIucHhkIGIvc3JjL3NhZ2UvYWxnZWJyYXMvZXh0ZXJpb3JfYWxnZWJy YV9ncm9lYm5lci5weGQKK2luZGV4IGJmNWVlMjRlYTIyLi4yZjJhMGZmNWNkOCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2FsZ2VicmFzL2V4dGVyaW9yX2FsZ2VicmFfZ3JvZWJuZXIucHhkCisrKysg Yi9zcmMvc2FnZS9hbGdlYnJhcy9leHRlcmlvcl9hbGdlYnJhX2dyb2VibmVyLnB4ZAorQEAgLTgs NyArOCw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQgUGFyZW50CisgZnJv bSBzYWdlLnN0cnVjdHVyZS5lbGVtZW50IGNpbXBvcnQgTW9ub2lkRWxlbWVudAorIAorIGNkZWYg bG9uZyBkZWdyZWUoRnJvemVuQml0c2V0IFgpIG5vZXhjZXB0CistY2RlZiBDbGlmZm9yZEFsZ2Vi cmFFbGVtZW50IGJ1aWxkX21vbm9taWFsKFBhcmVudCBFLCBGcm96ZW5CaXRzZXQgc3VwcCkgbm9l eGNlcHQKKytjZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgYnVpbGRfbW9ub21pYWwoUGFyZW50 IEUsIEZyb3plbkJpdHNldCBzdXBwKQorIAorIGNkZWYgY2xhc3MgR0JFbGVtZW50OgorICAgICBj ZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZWx0CitAQCAtMjQsMjUgKzI0LDI1IEBAIGNkZWYg Y2xhc3MgR3JvZWJuZXJTdHJhdGVneToKKyAgICAgY2RlZiBJbnRlZ2VyIHJhbmsKKyAgICAgY2Rl ZiBwdWJsaWMgdHVwbGUgZ3JvZWJuZXJfYmFzaXMKKyAKKy0gICAgY2RlZiBpbmxpbmUgR0JFbGVt ZW50IGJ1aWxkX2VsdChzZWxmLCBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IGYpIG5vZXhjZXB0Cist ICAgIGNkZWYgaW5saW5lIEdCRWxlbWVudCBwcm9kX0dCX3Rlcm0oc2VsZiwgR0JFbGVtZW50IGYs IEZyb3plbkJpdHNldCB0KSBub2V4Y2VwdAorLSAgICBjZGVmIGlubGluZSBHQkVsZW1lbnQgcHJv ZF90ZXJtX0dCKHNlbGYsIEZyb3plbkJpdHNldCB0LCBHQkVsZW1lbnQgZikgbm9leGNlcHQKKysg ICAgY2RlZiBpbmxpbmUgR0JFbGVtZW50IGJ1aWxkX2VsdChzZWxmLCBDbGlmZm9yZEFsZ2VicmFF bGVtZW50IGYpCisrICAgIGNkZWYgaW5saW5lIEdCRWxlbWVudCBwcm9kX0dCX3Rlcm0oc2VsZiwg R0JFbGVtZW50IGYsIEZyb3plbkJpdHNldCB0KQorKyAgICBjZGVmIGlubGluZSBHQkVsZW1lbnQg cHJvZF90ZXJtX0dCKHNlbGYsIEZyb3plbkJpdHNldCB0LCBHQkVsZW1lbnQgZikKKyAgICAgY2Rl ZiBpbmxpbmUgYmludCBidWlsZF9TX3BvbHkoc2VsZiwgR0JFbGVtZW50IGYsIEdCRWxlbWVudCBn KSBub2V4Y2VwdAorIAorLSAgICBjZGVmIGlubGluZSBGcm96ZW5CaXRzZXQgbGVhZGluZ19zdXBw b3J0KHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZikgbm9leGNlcHQKKy0gICAgY2RlZiBp bmxpbmUgcGFydGlhbF9TX3BvbHlfbGVmdChzZWxmLCBHQkVsZW1lbnQgZiwgR0JFbGVtZW50IGcp IG5vZXhjZXB0CistICAgIGNkZWYgaW5saW5lIHBhcnRpYWxfU19wb2x5X3JpZ2h0KHNlbGYsIEdC RWxlbWVudCBmLCBHQkVsZW1lbnQgZykgbm9leGNlcHQKKy0gICAgY2RlZiBzZXQgcHJlcHJvY2Vz c2luZyhzZWxmLCBsaXN0IFAsIGxpc3QgRykgbm9leGNlcHQKKy0gICAgY2RlZiBsaXN0IHJlZHVj dGlvbihzZWxmLCBsaXN0IFAsIGxpc3QgRykgbm9leGNlcHQKKysgICAgY2RlZiBpbmxpbmUgRnJv emVuQml0c2V0IGxlYWRpbmdfc3VwcG9ydChzZWxmLCBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IGYp CisrICAgIGNkZWYgaW5saW5lIHBhcnRpYWxfU19wb2x5X2xlZnQoc2VsZiwgR0JFbGVtZW50IGYs IEdCRWxlbWVudCBnKQorKyAgICBjZGVmIGlubGluZSBwYXJ0aWFsX1NfcG9seV9yaWdodChzZWxm LCBHQkVsZW1lbnQgZiwgR0JFbGVtZW50IGcpCisrICAgIGNkZWYgc2V0IHByZXByb2Nlc3Npbmco c2VsZiwgbGlzdCBQLCBsaXN0IEcpCisrICAgIGNkZWYgbGlzdCByZWR1Y3Rpb24oc2VsZiwgbGlz dCBQLCBsaXN0IEcpCisgCistICAgIGNwZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgcmVkdWNl KHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZikgbm9leGNlcHQKKysgICAgY3BkZWYgQ2xp ZmZvcmRBbGdlYnJhRWxlbWVudCByZWR1Y2Uoc2VsZiwgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBm KQorICAgICBjZGVmIGJpbnQgcmVkdWNlX3NpbmdsZShzZWxmLCBDbGlmZm9yZEFsZ2VicmFFbGVt ZW50IGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZykgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50 IHJlZHVjZWRfZ2Ioc2VsZiwgbGlzdCBHKSBleGNlcHQgLTEKKyAKKyAgICAgIyBUaGVzZSBhcmUg dGhlIG1ldGhvZHMgdGhhdCBkZXRlcm1pbmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBtb25vbWlhbHMu CisgICAgICMgVGhlc2UgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBzdWJjbGFzc2VzLiBEZWNsYXJl IHRoZW0gYXMgImlubGluZSIgdGhlcmUuCistICAgIGNkZWYgSW50ZWdlciBiaXRzZXRfdG9faW50 KHNlbGYsIEZyb3plbkJpdHNldCBYKSBub2V4Y2VwdAorLSAgICBjZGVmIEZyb3plbkJpdHNldCBp bnRfdG9fYml0c2V0KHNlbGYsIEludGVnZXIgbikgbm9leGNlcHQKKysgICAgY2RlZiBJbnRlZ2Vy IGJpdHNldF90b19pbnQoc2VsZiwgRnJvemVuQml0c2V0IFgpCisrICAgIGNkZWYgRnJvemVuQml0 c2V0IGludF90b19iaXRzZXQoc2VsZiwgSW50ZWdlciBuKQorIAorIGNkZWYgY2xhc3MgR3JvZWJu ZXJTdHJhdGVneU5lZ0xleChHcm9lYm5lclN0cmF0ZWd5KToKKyAgICAgcGFzcworZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2FsZ2VicmFzL2V4dGVyaW9yX2FsZ2VicmFfZ3JvZWJuZXIucHl4IGIvc3Jj L3NhZ2UvYWxnZWJyYXMvZXh0ZXJpb3JfYWxnZWJyYV9ncm9lYm5lci5weXgKK2luZGV4IDNhZmM5 MjRlN2FlLi5kMjk2YmFlNjRmMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2V4dGVy aW9yX2FsZ2VicmFfZ3JvZWJuZXIucHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9leHRlcmlv cl9hbGdlYnJhX2dyb2VibmVyLnB5eAorQEAgLTM3LDcgKzM3LDcgQEAgY2RlZiBpbmxpbmUgbG9u ZyBkZWdyZWUoRnJvemVuQml0c2V0IFgpIG5vZXhjZXB0OgorICAgICByZXR1cm4gYml0c2V0X2xl bihYLl9iaXRzZXQpCisgCisgCistY2RlZiBpbmxpbmUgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBi dWlsZF9tb25vbWlhbChQYXJlbnQgRSwgRnJvemVuQml0c2V0IHN1cHApIG5vZXhjZXB0OgorK2Nk ZWYgaW5saW5lIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgYnVpbGRfbW9ub21pYWwoUGFyZW50IEUs IEZyb3plbkJpdHNldCBzdXBwKToKKyAgICAgIiIiCisgICAgIEhlbHBlciBmdW5jdGlvbiBmb3Ig dGhlIGZhc3Rlc3Qgd2F5IHRvIGJ1aWxkIGEgbW9ub21pYWwuCisgICAgICIiIgorQEAgLTEzMCwx NCArMTMwLDE0IEBAIGNkZWYgY2xhc3MgR3JvZWJuZXJTdHJhdGVneToKKyAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgc2VsZi5zaWRlID0gMgorIAorLSAgICBjZGVmIGlubGluZSBGcm96ZW5C aXRzZXQgbGVhZGluZ19zdXBwb3J0KHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZikgbm9l eGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIEZyb3plbkJpdHNldCBsZWFkaW5nX3N1cHBvcnQoc2Vs ZiwgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBsZWFkaW5nIHN1cHBvcnQgb2YgdGhlIGV4dGVyaW9yIGFsZ2VicmEgZWxlbWVudCBg YGZgYC4KKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBkaWN0IG1jID0gPGRpY3Q+IGYuX21v bm9taWFsX2NvZWZmaWNpZW50cworICAgICAgICAgcmV0dXJuIHNlbGYuaW50X3RvX2JpdHNldCht YXgoc2VsZi5iaXRzZXRfdG9faW50KGspIGZvciBrIGluIG1jKSkKKyAKKy0gICAgY2RlZiBpbmxp bmUgcGFydGlhbF9TX3BvbHlfbGVmdChzZWxmLCBHQkVsZW1lbnQgZiwgR0JFbGVtZW50IGcpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBwYXJ0aWFsX1NfcG9seV9sZWZ0KHNlbGYsIEdCRWxl bWVudCBmLCBHQkVsZW1lbnQgZyk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlIG9u ZSBoYWxmIG9mIHRoZSBgU2AtcG9seW5vbWlhbCBmb3IgYGBmYGAgYW5kIGBgZ2BgLgorIAorQEAg LTE1NCw3ICsxNTQsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3k6CisgICAgICAgICAg ICAgcmV0LmVsdC5fbW9ub21pYWxfY29lZmZpY2llbnRzW2tdICo9IGludgorICAgICAgICAgcmV0 dXJuIHJldAorIAorLSAgICBjZGVmIGlubGluZSBwYXJ0aWFsX1NfcG9seV9yaWdodChzZWxmLCBH QkVsZW1lbnQgZiwgR0JFbGVtZW50IGcpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBwYXJ0 aWFsX1NfcG9seV9yaWdodChzZWxmLCBHQkVsZW1lbnQgZiwgR0JFbGVtZW50IGcpOgorICAgICAg ICAgciIiIgorICAgICAgICAgQ29tcHV0ZSBvbmUgaGFsZiBvZiB0aGUgYFNgLXBvbHlub21pYWwg Zm9yIGBgZmBgIGFuZCBgYGdgYC4KKyAKK0BAIC0xNzEsNyArMTcxLDcgQEAgY2RlZiBjbGFzcyBH cm9lYm5lclN0cmF0ZWd5OgorICAgICAgICAgICAgIHJldC5lbHQuX21vbm9taWFsX2NvZWZmaWNp ZW50c1trXSAqPSBpbnYKKyAgICAgICAgIHJldHVybiByZXQKKyAKKy0gICAgY2RlZiBpbmxpbmUg R0JFbGVtZW50IGJ1aWxkX2VsdChzZWxmLCBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IGYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIGlubGluZSBHQkVsZW1lbnQgYnVpbGRfZWx0KHNlbGYsIENsaWZmb3Jk QWxnZWJyYUVsZW1lbnQgZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgYGBmYGAg aW50byBhIGBgR0JFbGVtZW50YGAuCisgICAgICAgICAiIiIKK0BAIC0xODEsNyArMTgxLDcgQEAg Y2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5OgorICAgICAgICAgY2RlZiBJbnRlZ2VyIHIgPSA8 SW50ZWdlcj4gbWF4KHNlbGYuYml0c2V0X3RvX2ludChrKSBmb3IgayBpbiBtYykKKyAgICAgICAg IHJldHVybiBHQkVsZW1lbnQoZiwgc2VsZi5pbnRfdG9fYml0c2V0KHIpLCByKQorIAorLSAgICBj ZGVmIGlubGluZSBHQkVsZW1lbnQgcHJvZF9HQl90ZXJtKHNlbGYsIEdCRWxlbWVudCBmLCBGcm96 ZW5CaXRzZXQgdCkgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIEdCRWxlbWVudCBwcm9kX0dC X3Rlcm0oc2VsZiwgR0JFbGVtZW50IGYsIEZyb3plbkJpdHNldCB0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBHQkVsZW1lbnQgY29ycmVzcG9uZGluZyB0byBgYGYgKiB0YGAu CisgCitAQCAtMTkzLDcgKzE5Myw3IEBAIGNkZWYgY2xhc3MgR3JvZWJuZXJTdHJhdGVneToKKyAg ICAgICAgIGNkZWYgRnJvemVuQml0c2V0IGxzID0gPEZyb3plbkJpdHNldD4gZi5scy5fdW5pb24o dCkKKyAgICAgICAgIHJldHVybiBHQkVsZW1lbnQoPENsaWZmb3JkQWxnZWJyYUVsZW1lbnQ+IHJl dCwgbHMsIHNlbGYuYml0c2V0X3RvX2ludChscykpCisgCistICAgIGNkZWYgaW5saW5lIEdCRWxl bWVudCBwcm9kX3Rlcm1fR0Ioc2VsZiwgRnJvemVuQml0c2V0IHQsIEdCRWxlbWVudCBmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgR0JFbGVtZW50IHByb2RfdGVybV9HQihzZWxmLCBGcm96 ZW5CaXRzZXQgdCwgR0JFbGVtZW50IGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g dGhlIEdCRWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIGBgdCAqIGZgYC4KKyAKK0BAIC0yMjAsNyAr MjIwLDcgQEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5OgorIAorICAgICAgICAgcmV0dXJu ICg8RnJvemVuQml0c2V0PiBmLmxzLmludGVyc2VjdGlvbihnLmxzKSkuaXNlbXB0eSgpCisgCist ICAgIGNkZWYgaW5saW5lIHNldCBwcmVwcm9jZXNzaW5nKHNlbGYsIGxpc3QgUCwgbGlzdCBHKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgc2V0IHByZXByb2Nlc3Npbmcoc2VsZiwgbGlzdCBQ LCBsaXN0IEcpOgorICAgICAgICAgIiIiCisgICAgICAgICBQZXJmb3JtIHRoZSBwcmVwcm9jZXNz aW5nIHN0ZXAuCisgICAgICAgICAiIiIKK0BAIC0yNjYsNyArMjY2LDcgQEAgY2RlZiBjbGFzcyBH cm9lYm5lclN0cmF0ZWd5OgorICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgIHJl dHVybiBMCisgCistICAgIGNkZWYgaW5saW5lIGxpc3QgcmVkdWN0aW9uKHNlbGYsIGxpc3QgUCwg bGlzdCBHKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgbGlzdCByZWR1Y3Rpb24oc2VsZiwg bGlzdCBQLCBsaXN0IEcpOgorICAgICAgICAgIiIiCisgICAgICAgICBQZXJmb3JtIHRoZSByZWR1 Y3Rpb24gb2YgYGBQYGAgbW9kIGBgR2BgIGluIGBgRWBgLgorICAgICAgICAgIiIiCitAQCAtNDUx LDcgKzQ1MSw3IEBAIGNkZWYgY2xhc3MgR3JvZWJuZXJTdHJhdGVneToKKyAgICAgICAgIGNkZWYg bGlzdCBHID0gW3NlbGYuYnVpbGRfZWx0KGYpIGZvciBmIGluIHNlbGYuZ3JvZWJuZXJfYmFzaXNd CisgICAgICAgICBzZWxmLnJlZHVjZWRfZ2IoRykKKyAKKy0gICAgY3BkZWYgQ2xpZmZvcmRBbGdl YnJhRWxlbWVudCByZWR1Y2Uoc2VsZiwgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCByZWR1Y2Uoc2VsZiwgQ2xpZmZv cmRBbGdlYnJhRWxlbWVudCBmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVkdWNlIGBgZmBg IG1vZHVsbyB0aGUgaWRlYWwgd2l0aCBHcsO2Ym5lciBiYXNpcyBgYEdgYC4KKyAKK0BAIC01MzMs MTAgKzUzMywxMCBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3k6CisgICAgICAgICAgICAg ICAgIGlheHB5KC1jb2VmZiwgZ3AuX21vbm9taWFsX2NvZWZmaWNpZW50cywgZi5fbW9ub21pYWxf Y29lZmZpY2llbnRzKQorICAgICAgICAgcmV0dXJuIHdhc19yZWR1Y2VkCisgCistICAgIGNkZWYg SW50ZWdlciBiaXRzZXRfdG9faW50KHNlbGYsIEZyb3plbkJpdHNldCBYKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBJbnRlZ2VyIGJpdHNldF90b19pbnQoc2VsZiwgRnJvemVuQml0c2V0IFgpOgorICAg ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIEZyb3plbkJpdHNl dCBpbnRfdG9fYml0c2V0KHNlbGYsIEludGVnZXIgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgRnJv emVuQml0c2V0IGludF90b19iaXRzZXQoc2VsZiwgSW50ZWdlciBuKToKKyAgICAgICAgIHJhaXNl IE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKyAgICAgZGVmIHNvcnRlZF9tb25vbWlhbHMoc2VsZiwg YXNfZGljdD1GYWxzZSk6CitAQCAtNjE1LDcgKzYxNSw3IEBAIGNkZWYgY2xhc3MgR3JvZWJuZXJT dHJhdGVneU5lZ0xleChHcm9lYm5lclN0cmF0ZWd5KToKKyAgICAgIiIiCisgICAgIEdyw7ZibmVy IGJhc2lzIHN0cmF0ZWd5IGltcGxlbWVudGluZyBuZWdsZXggb3JkZXJpbmcuCisgICAgICIiIgor LSAgICBjZGVmIGlubGluZSBJbnRlZ2VyIGJpdHNldF90b19pbnQoc2VsZiwgRnJvemVuQml0c2V0 IFgpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBJbnRlZ2VyIGJpdHNldF90b19pbnQoc2Vs ZiwgRnJvemVuQml0c2V0IFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IGBgWGBg IHRvIGFuIDpjbGFzczpgSW50ZWdlcmAuCisgICAgICAgICAiIiIKK0BAIC02MjYsNyArNjI2LDcg QEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5TmVnTGV4KEdyb2VibmVyU3RyYXRlZ3kpOgor ICAgICAgICAgICAgIGVsdCA9IGJpdHNldF9uZXh0KFguX2JpdHNldCwgZWx0ICsgMSkKKyAgICAg ICAgIHJldHVybiByZXQKKyAKKy0gICAgY2RlZiBpbmxpbmUgRnJvemVuQml0c2V0IGludF90b19i aXRzZXQoc2VsZiwgSW50ZWdlciBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgRnJvemVu Qml0c2V0IGludF90b19iaXRzZXQoc2VsZiwgSW50ZWdlciBuKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQ29udmVydCBhIG5vbm5lZ2F0aXZlIGludGVnZXIgYGBuYGAgdG8gYSA6Y2xhc3M6YEZy b3plbkJpdHNldGAuCisgICAgICAgICAiIiIKK0BAIC02NDYsNyArNjQ2LDcgQEAgY2RlZiBjbGFz cyBHcm9lYm5lclN0cmF0ZWd5RGVnUmV2TGV4KEdyb2VibmVyU3RyYXRlZ3kpOgorICAgICAiIiIK KyAgICAgR3LDtmJuZXIgYmFzaXMgc3RyYXRlZ3kgaW1wbGVtZW50aW5nIGRlZ3JlZSByZXZsZXgg b3JkZXJpbmcuCisgICAgICIiIgorLSAgICBjZGVmIGlubGluZSBJbnRlZ2VyIGJpdHNldF90b19p bnQoc2VsZiwgRnJvemVuQml0c2V0IFgpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBJbnRl Z2VyIGJpdHNldF90b19pbnQoc2VsZiwgRnJvemVuQml0c2V0IFgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBDb252ZXJ0IGBgWGBgIHRvIGFuIDpjbGFzczpgSW50ZWdlcmAuCisgICAgICAgICAi IiIKK0BAIC02NjUsNyArNjY1LDcgQEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5RGVnUmV2 TGV4KEdyb2VibmVyU3RyYXRlZ3kpOgorICAgICAgICAgICAgIGVsdCA9IGJpdHNldF9uZXh0KFgu X2JpdHNldCwgZWx0ICsgMSkKKyAgICAgICAgIHJldHVybiBJbnRlZ2VyKHN1bShuLmJpbm9taWFs KGkpIGZvciBpIGluIHJhbmdlKGRlZysxKSkgLSB0IC0gMSkKKyAKKy0gICAgY2RlZiBpbmxpbmUg RnJvemVuQml0c2V0IGludF90b19iaXRzZXQoc2VsZiwgSW50ZWdlciBuKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBpbmxpbmUgRnJvemVuQml0c2V0IGludF90b19iaXRzZXQoc2VsZiwgSW50ZWdlciBu KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBhIG5vbm5lZ2F0aXZlIGludGVnZXIg YGBuYGAgdG8gYSA6Y2xhc3M6YEZyb3plbkJpdHNldGAuCisgICAgICAgICAiIiIKK0BAIC02ODcs NyArNjg3LDcgQEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5RGVnTGV4KEdyb2VibmVyU3Ry YXRlZ3kpOgorICAgICAiIiIKKyAgICAgR3LDtmJuZXIgYmFzaXMgc3RyYXRlZ3kgaW1wbGVtZW50 aW5nIGRlZ3JlZSBsZXggb3JkZXJpbmcuCisgICAgICIiIgorLSAgICBjZGVmIGlubGluZSBJbnRl Z2VyIGJpdHNldF90b19pbnQoc2VsZiwgRnJvemVuQml0c2V0IFgpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGlubGluZSBJbnRlZ2VyIGJpdHNldF90b19pbnQoc2VsZiwgRnJvemVuQml0c2V0IFgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IGBgWGBgIHRvIGFuIDpjbGFzczpgSW50ZWdl cmAuCisgICAgICAgICAiIiIKK0BAIC03MDYsNyArNzA2LDcgQEAgY2RlZiBjbGFzcyBHcm9lYm5l clN0cmF0ZWd5RGVnTGV4KEdyb2VibmVyU3RyYXRlZ3kpOgorICAgICAgICAgICAgIGVsdCA9IGJp dHNldF9uZXh0KFguX2JpdHNldCwgZWx0ICsgMSkKKyAgICAgICAgIHJldHVybiBJbnRlZ2VyKHN1 bShuLmJpbm9taWFsKGkpIGZvciBpIGluIHJhbmdlKGRlZysxKSkgLSB0IC0gMSkKKyAKKy0gICAg Y2RlZiBpbmxpbmUgRnJvemVuQml0c2V0IGludF90b19iaXRzZXQoc2VsZiwgSW50ZWdlciBuKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgRnJvemVuQml0c2V0IGludF90b19iaXRzZXQoc2Vs ZiwgSW50ZWdlciBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBhIG5vbm5lZ2F0 aXZlIGludGVnZXIgYGBuYGAgdG8gYSA6Y2xhc3M6YEZyb3plbkJpdHNldGAuCisgICAgICAgICAi IiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9maW5pdGVfZGltZW5zaW9uYWxfYWxn ZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9h bGdlYnJhcy9maW5pdGVfZGltZW5zaW9uYWxfYWxnZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2Fs Z2VicmFfZWxlbWVudC5weGQKK2luZGV4IGRkNWY4NWJlOWZiLi5jMTNiOGRiYWIwNyAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2Zpbml0ZV9kaW1lbnNpb25hbF9hbGdlYnJhcy9maW5p dGVfZGltZW5zaW9uYWxfYWxnZWJyYV9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxnZWJy YXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFzL2Zpbml0ZV9kaW1lbnNpb25hbF9hbGdlYnJh X2VsZW1lbnQucHhkCitAQCAtNiw0ICs2LDQgQEAgY2RlZiBjbGFzcyBGaW5pdGVEaW1lbnNpb25h bEFsZ2VicmFFbGVtZW50KEFsZ2VicmFFbGVtZW50KToKKyAgICAgY2RlZiBNYXRyaXggX19tYXRy aXgKKyAgICAgY2RlZiBGaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50IF9faW52ZXJzZQor IAorLWNwZGVmIEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQgdW5waWNrbGVfRmluaXRl RGltZW5zaW9uYWxBbGdlYnJhRWxlbWVudChBLCB2ZWMsIG1hdCkgbm9leGNlcHQKKytjcGRlZiBG aW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50IHVucGlja2xlX0Zpbml0ZURpbWVuc2lvbmFs QWxnZWJyYUVsZW1lbnQoQSwgdmVjLCBtYXQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJy YXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFzL2Zpbml0ZV9kaW1lbnNpb25hbF9hbGdlYnJh X2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2Vi cmFzL2Zpbml0ZV9kaW1lbnNpb25hbF9hbGdlYnJhX2VsZW1lbnQucHl4CitpbmRleCA5YjA4NWY2 ZmQ4YS4uMDhmZWIyMjhlNWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9maW5pdGVf ZGltZW5zaW9uYWxfYWxnZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFfZWxlbWVudC5w eXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2Zpbml0ZV9kaW1lbnNpb25hbF9hbGdlYnJhcy9m aW5pdGVfZGltZW5zaW9uYWxfYWxnZWJyYV9lbGVtZW50LnB5eAorQEAgLTIwLDcgKzIwLDcgQEAg ZnJvbSBzYWdlLnJpbmdzLmludGVnZXIgaW1wb3J0IEludGVnZXIKKyAKKyBmcm9tIGNweXRob24u b2JqZWN0IGNpbXBvcnQgUHlPYmplY3RfUmljaENvbXBhcmUgYXMgcmljaGNtcAorIAorLWNwZGVm IEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQgdW5waWNrbGVfRmluaXRlRGltZW5zaW9u YWxBbGdlYnJhRWxlbWVudChBLCB2ZWMsIG1hdCkgbm9leGNlcHQ6CisrY3BkZWYgRmluaXRlRGlt ZW5zaW9uYWxBbGdlYnJhRWxlbWVudCB1bnBpY2tsZV9GaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFF bGVtZW50KEEsIHZlYywgbWF0KToKKyAgICAgIiIiCisgICAgIEhlbHBlciBmb3IgdW5waWNrbGlu ZyBvZiBmaW5pdGUgZGltZW5zaW9uYWwgYWxnZWJyYSBlbGVtZW50cy4KKyAKK0BAIC0zNjUsNyAr MzY1LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50KEFsZ2Vi cmFFbGVtZW50KToKKyAgICAgICAgIHJldHVybiBzZWxmLl92ZWN0b3IubmNvbHMoKQorIAorICAg ICAjIChSaWNoKSBjb21wYXJpc29uCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwg aW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQg b3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDAwLDcgKzQw MCw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRGltZW5zaW9uYWxBbGdlYnJhRWxlbWVudChBbGdlYnJh RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiByaWNoY21wKHNlbGYuX3Zl Y3RvciwgPEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQ+cmlnaHQuX3ZlY3Rvciwgb3Ap CisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6Cisg CitAQCAtNDExLDcgKzQxMSw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRGltZW5zaW9uYWxBbGdlYnJh RWxlbWVudChBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLl9wYXJlbnQuZWxlbWVudF9jbGFzcyhzZWxmLl9wYXJlbnQsIHNlbGYuX3ZlY3RvciArIDxG aW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50Pm90aGVyLl92ZWN0b3IpCisgCistICAgIGNw ZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwg b3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDIyLDcg KzQyMiw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRGltZW5zaW9uYWxBbGdlYnJhRWxlbWVudChBbGdl YnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQu ZWxlbWVudF9jbGFzcyhzZWxmLl9wYXJlbnQsIHNlbGYuX3ZlY3RvciAtIDxGaW5pdGVEaW1lbnNp b25hbEFsZ2VicmFFbGVtZW50Pm90aGVyLl92ZWN0b3IpCisgCistICAgIGNwZGVmIF9tdWxfKHNl bGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDM0LDcgKzQzNCw3IEBAIGNk ZWYgY2xhc3MgRmluaXRlRGltZW5zaW9uYWxBbGdlYnJhRWxlbWVudChBbGdlYnJhRWxlbWVudCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuZWxlbWVudF9jbGFz cyhzZWxmLl9wYXJlbnQsIHNlbGYuX3ZlY3RvciAqIDxGaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFF bGVtZW50PihvdGhlcikuX21hdHJpeCkKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1l bnQgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBvdGhl cik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC00NTAsNyArNDUwLDcg QEAgY2RlZiBjbGFzcyBGaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50KEFsZ2VicmFFbGVt ZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvcm1hdChzZWxmLnBhcmVudCgp LCBvdGhlci5wYXJlbnQoKSkpCisgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50LmVsZW1lbnRf Y2xhc3Moc2VsZi5fcGFyZW50LCBzZWxmLl92ZWN0b3IgKiBvdGhlcikKKyAKKy0gICAgY3BkZWYg X3JtdWxfKHNlbGYsIEVsZW1lbnQgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8o c2VsZiwgRWxlbWVudCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvZmFzdF9wYXJhbGxl bF9mbWF0c19tZXRob2RzLnB4ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0 X3BhcmFsbGVsX2ZtYXRzX21ldGhvZHMucHhkCitpbmRleCAxOWU5OGFhMTM3ZC4uZTA5MDhhYjU4 ODQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvZmFzdF9wYXJh bGxlbF9mbWF0c19tZXRob2RzLnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3Jp bmdzL2Zhc3RfcGFyYWxsZWxfZm1hdHNfbWV0aG9kcy5weGQKK0BAIC0xLDQgKzEsNCBAQAorLWNk ZWYgX2ZtYXQoZnZhcnMsIE5rX2lqLCBvbmUsIGEsIGIsIGMsIGQsIHgsIHkpIG5vZXhjZXB0Cist Y3BkZWYgX2JhY2t3YXJkX3N1YnMoZmFjdG9yeSwgYmludCBmbGF0dGVuPSopIG5vZXhjZXB0Cist Y3BkZWYgZXhlY3V0b3IodHVwbGUgcGFyYW1zKSBub2V4Y2VwdAorLWNwZGVmIF9zb2x2ZV9mb3Jf bGluZWFyX3Rlcm1zKGZhY3RvcnksIGxpc3QgZXFucz0qKSBub2V4Y2VwdAorK2NkZWYgX2ZtYXQo ZnZhcnMsIE5rX2lqLCBvbmUsIGEsIGIsIGMsIGQsIHgsIHkpCisrY3BkZWYgX2JhY2t3YXJkX3N1 YnMoZmFjdG9yeSwgYmludCBmbGF0dGVuPSopCisrY3BkZWYgZXhlY3V0b3IodHVwbGUgcGFyYW1z KQorK2NwZGVmIF9zb2x2ZV9mb3JfbGluZWFyX3Rlcm1zKGZhY3RvcnksIGxpc3QgZXFucz0qKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3BhcmFsbGVs X2ZtYXRzX21ldGhvZHMucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3Rf cGFyYWxsZWxfZm1hdHNfbWV0aG9kcy5weXgKK2luZGV4IGI3OTM3MGM3ZjJjLi5hOWI3ZWI1MGZh YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3BhcmFs bGVsX2ZtYXRzX21ldGhvZHMucHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmlu Z3MvZmFzdF9wYXJhbGxlbF9mbWF0c19tZXRob2RzLnB5eAorQEAgLTMyLDcgKzMyLDcgQEAgZnJv bSBzYWdlLnJpbmdzLnBvbHlub21pYWwucG9seW5vbWlhbF9yaW5nX2NvbnN0cnVjdG9yIGltcG9y dCBQb2x5bm9taWFsUmluZworICMgICBGYXN0IGNsYXNzIG1ldGhvZHMgICAjCisgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jcGRlZiBfc29sdmVfZm9yX2xpbmVhcl90ZXJtcyhmYWN0 b3J5LCBsaXN0IGVxbnM9Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgX3NvbHZlX2Zvcl9saW5lYXJf dGVybXMoZmFjdG9yeSwgbGlzdCBlcW5zPU5vbmUpOgorICAgICByIiIiCisgICAgIFNvbHZlIGZv ciBhIGxpbmVhciB0ZXJtIG9jY3VycmluZyBpbiBhIHR3by10ZXJtIGVxdWF0aW9uLCBhbmQgZm9y CisgICAgIHZhcmlhYmxlcyBhcHBlYXJpbmcgaW4gdW5pdmFyaWF0ZSBzaW5nbGUtdGVybSBlcXVh dGlvbnMuCitAQCAtMTA3LDcgKzEwNyw3IEBAIGNwZGVmIF9zb2x2ZV9mb3JfbGluZWFyX3Rlcm1z KGZhY3RvcnksIGxpc3QgZXFucz1Ob25lKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICAgICAgIyBh c3NlcnQgX3VuZmxhdHRlbl9jb2VmZnMoZmFjdG9yeS5fZmllbGQsIGZhY3RvcnkudGVzdF9mdmFy c1tzXSkgPT0gZnZhcnNbc10sICJPRyB2YWx1ZSB7fSwgU2hhcmVkOiB7fSIuZm9ybWF0KGZhY3Rv cnkudGVzdF9mdmFyc1tzXSwgZnZhcnNbc10pCisgICAgIHJldHVybiBsaW5lYXJfdGVybXNfZXhp c3QKKyAKKy1jcGRlZiBfYmFja3dhcmRfc3VicyhmYWN0b3J5LCBiaW50IGZsYXR0ZW49VHJ1ZSkg bm9leGNlcHQ6CisrY3BkZWYgX2JhY2t3YXJkX3N1YnMoZmFjdG9yeSwgYmludCBmbGF0dGVuPVRy dWUpOgorICAgICByIiIiCisgICAgIFBlcmZvcm0gYmFja3dhcmQgc3Vic3RpdHV0aW9uIG9uIGBg c2VsZi5pZGVhbF9iYXNpc2BgLCB0cmF2ZXJzaW5nCisgICAgIHZhcmlhYmxlcyBpbiByZXZlcnNl IGxleGljb2dyYXBoaWNhbCBvcmRlci4KK0BAIC0xNzEsNyArMTcxLDcgQEAgY3BkZWYgX2JhY2t3 YXJkX3N1YnMoZmFjdG9yeSwgYmludCBmbGF0dGVuPVRydWUpIG5vZXhjZXB0OgorICAgICAgICAg ICAgIGZ2YXJzW3NleHR1cGxlXSA9IHJlcworIAorIAorLWNkZWYgX2ZtYXQoZnZhcnMsIF9Oa19p aiwgaWRfYW55b24sIGEsIGIsIGMsIGQsIHgsIHkpIG5vZXhjZXB0OgorK2NkZWYgX2ZtYXQoZnZh cnMsIF9Oa19paiwgaWRfYW55b24sIGEsIGIsIGMsIGQsIHgsIHkpOgorICAgICAiIiIKKyAgICAg Q3l0aG9uIHZlcnNpb24gb2YgZm1hdCBjbGFzcyBtZXRob2QuIFVzaW5nIGNkZWYgZm9yIGZhc3Rl c3QgZGlzcGF0Y2gKKyAgICAgIiIiCitAQCAtMjE0LDcgKzIxNCw3IEBAIGNkZWYgX2ZtYXQoZnZh cnMsIF9Oa19paiwgaWRfYW55b24sIGEsIGIsIGMsIGQsIHgsIHkpIG5vZXhjZXB0OgorICMgICBN YXBwZXJzICAgIworICMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgcmVxX2N5KHR1cGxlIGJhc2lz LCByX21hdHJpeCwgZGljdCBmdmFycywgTmtfaWosIGlkX2FueW9uLCB0dXBsZSBzZXh0dXBsZSkg bm9leGNlcHQ6CisrY2RlZiByZXFfY3kodHVwbGUgYmFzaXMsIHJfbWF0cml4LCBkaWN0IGZ2YXJz LCBOa19paiwgaWRfYW55b24sIHR1cGxlIHNleHR1cGxlKToKKyAgICAgIiIiCisgICAgIEdpdmVu IGFuIEZNYXRyaXggZmFjdG9yeSBhbmQgYSBzZXh0dXBsZSwgcmV0dXJuIGEgaGV4YWdvbiBlcXVh dGlvbgorICAgICBhcyBhIHBvbHlub21pYWwgb2JqZWN0LgorQEAgLTIzMiw3ICsyMzIsNyBAQCBj ZGVmIHJlcV9jeSh0dXBsZSBiYXNpcywgcl9tYXRyaXgsIGRpY3QgZnZhcnMsIE5rX2lqLCBpZF9h bnlvbiwgdHVwbGUgc2V4dHVwbGUpCisgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorIEBjeXRo b24ubm9uZWNoZWNrKEZhbHNlKQorIEBjeXRob24uY2RpdmlzaW9uKFRydWUpCistY2RlZiBnZXRf cmVkdWNlZF9oZXhhZ29ucyhmYWN0b3J5LCB0dXBsZSBtcF9wYXJhbXMpIG5vZXhjZXB0OgorK2Nk ZWYgZ2V0X3JlZHVjZWRfaGV4YWdvbnMoZmFjdG9yeSwgdHVwbGUgbXBfcGFyYW1zKToKKyAgICAg IiIiCisgICAgIFNldCB1cCBhbmQgcmVkdWNlIHRoZSBoZXhhZ29uIGVxdWF0aW9ucyBjb3JyZXNw b25kaW5nIHRvIHRoaXMgd29ya2VyLgorICAgICAiIiIKK0BAIC0yODIsNyArMjgyLDcgQEAgY2Rl ZiBnZXRfcmVkdWNlZF9oZXhhZ29ucyhmYWN0b3J5LCB0dXBsZSBtcF9wYXJhbXMpIG5vZXhjZXB0 OgorIAorICAgICByZXR1cm4gY29sbGVjdF9lcW5zKHdvcmtlcl9yZXN1bHRzKQorIAorLWNkZWYg TVBvbHlub21pYWxfbGlic2luZ3VsYXIgZmVxX2N5KHR1cGxlIGJhc2lzLCBmdmFycywgTmtfaWos IGlkX2FueW9uLCB6ZXJvLCB0dXBsZSBub251cGxlLCBiaW50IHBydW5lPUZhbHNlKSBub2V4Y2Vw dDoKKytjZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIGZlcV9jeSh0dXBsZSBiYXNpcywgZnZh cnMsIE5rX2lqLCBpZF9hbnlvbiwgemVybywgdHVwbGUgbm9udXBsZSwgYmludCBwcnVuZT1GYWxz ZSk6CisgICAgIHIiIiIKKyAgICAgR2l2ZW4gYW4gRk1hdHJpeCBmYWN0b3J5IGFuZCBhIG5vbnVw bGUsIHJldHVybiBhIHBlbnRhZ29uIGVxdWF0aW9uCisgICAgIGFzIGEgcG9seW5vbWlhbCBvYmpl Y3QuCitAQCAtMzAxLDcgKzMwMSw3IEBAIGNkZWYgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgZmVx X2N5KHR1cGxlIGJhc2lzLCBmdmFycywgTmtfaWosIGlkX2FueW9uLCB6ZXJvLCB0CisgQGN5dGhv bi53cmFwYXJvdW5kKEZhbHNlKQorIEBjeXRob24ubm9uZWNoZWNrKEZhbHNlKQorIEBjeXRob24u Y2RpdmlzaW9uKFRydWUpCistY2RlZiBnZXRfcmVkdWNlZF9wZW50YWdvbnMoZmFjdG9yeSwgdHVw bGUgbXBfcGFyYW1zKSBub2V4Y2VwdDoKKytjZGVmIGdldF9yZWR1Y2VkX3BlbnRhZ29ucyhmYWN0 b3J5LCB0dXBsZSBtcF9wYXJhbXMpOgorICAgICByIiIiCisgICAgIFNldCB1cCBhbmQgcmVkdWNl IHRoZSBwZW50YWdvbiBlcXVhdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGlzIHdvcmtlci4KKyAg ICAgIiIiCitAQCAtMzQ5LDcgKzM0OSw3IEBAIGNkZWYgZ2V0X3JlZHVjZWRfcGVudGFnb25zKGZh Y3RvcnksIHR1cGxlIG1wX3BhcmFtcykgbm9leGNlcHQ6CisgICAgICAgICAgICAgICAgIHdvcmtl cl9yZXN1bHRzLmFwcGVuZChyZWQpCisgICAgIHJldHVybiBjb2xsZWN0X2VxbnMod29ya2VyX3Jl c3VsdHMpCisgCistY2RlZiBsaXN0IHVwZGF0ZV9yZWR1Y2UoZmFjdG9yeSwgbGlzdCBlcW5zKSBu b2V4Y2VwdDoKKytjZGVmIGxpc3QgdXBkYXRlX3JlZHVjZShmYWN0b3J5LCBsaXN0IGVxbnMpOgor ICAgICByIiIiCisgICAgIFN1YnN0aXR1dGUga25vd24gdmFsdWVzLCBrbm93biBzcXVhcmVzLCBh bmQgcmVkdWNlLgorICAgICAiIiIKK0BAIC0zODEsNyArMzgxLDcgQEAgY2RlZiBsaXN0IHVwZGF0 ZV9yZWR1Y2UoZmFjdG9yeSwgbGlzdCBlcW5zKSBub2V4Y2VwdDoKKyAgICAgICAgIHJlcy5hcHBl bmQocmVkKQorICAgICByZXR1cm4gY29sbGVjdF9lcW5zKHJlcykKKyAKKy1jZGVmIGxpc3QgY29t cHV0ZV9nYihmYWN0b3J5LCB0dXBsZSBhcmdzKSBub2V4Y2VwdDoKKytjZGVmIGxpc3QgY29tcHV0 ZV9nYihmYWN0b3J5LCB0dXBsZSBhcmdzKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIHRoZSBy ZWR1Y2VkIEdyb2VibmVyIGJhc2lzIGZvciBnaXZlbiBlcXVhdGlvbnMgaXRlcmFibGUuCisgICAg ICIiIgorQEAgLTQyNSw3ICs0MjUsNyBAQCBjZGVmIGxpc3QgY29tcHV0ZV9nYihmYWN0b3J5LCB0 dXBsZSBhcmdzKSBub2V4Y2VwdDoKKyAjICAgUmVkdWNlcnMgICAjCisgIyMjIyMjIyMjIyMjIyMj IworIAorLWNkZWYgaW5saW5lIGxpc3QgY29sbGVjdF9lcW5zKGxpc3QgZXFucykgbm9leGNlcHQ6 CisrY2RlZiBpbmxpbmUgbGlzdCBjb2xsZWN0X2VxbnMobGlzdCBlcW5zKToKKyAgICAgciIiIgor ICAgICBIZWxwZXIgZnVuY3Rpb24gZm9yIHJldHVybmluZyBwcm9jZXNzZWQgcmVzdWx0cyBiYWNr IHRvIHBhcmVudCBwcm9jZXNzLgorIAorQEAgLTQ1MCw3ICs0NTAsNyBAQCBjZGVmIGRpY3QgbWFw cGVycyA9IHsKKyAgICAgInBlbnRfdmVyaWZ5IjogcGVudF92ZXJpZnkKKyAgICAgfQorIAorLWNw ZGVmIGV4ZWN1dG9yKHR1cGxlIHBhcmFtcykgbm9leGNlcHQ6CisrY3BkZWYgZXhlY3V0b3IodHVw bGUgcGFyYW1zKToKKyAgICAgciIiIgorICAgICBFeGVjdXRlIGEgZnVuY3Rpb24gZGVmaW5lZCBp biB0aGlzIG1vZHVsZQorICAgICAoYGBzYWdlLmFsZ2VicmFzLmZ1c2lvbl9yaW5ncy5mYXN0X3Bh cmFsbGVsX2ZtYXRzX21ldGhvZHNgYCkgaW4gYSB3b3JrZXIKK0BAIC00OTcsNyArNDk3LDcgQEAg Y3BkZWYgZXhlY3V0b3IodHVwbGUgcGFyYW1zKSBub2V4Y2VwdDoKKyAjICAgVmVyaWZpY2F0aW9u ICAgIworICMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiBmZXFfdmVyaWYoZmFjdG9yeSwg d29ya2VyX3Jlc3VsdHMsIGZ2YXJzLCBOa19paiwgaWRfYW55b24sIHR1cGxlIG5vbnVwbGUsIGZs b2F0IHRvbD01ZS04KSBub2V4Y2VwdDoKKytjZGVmIGZlcV92ZXJpZihmYWN0b3J5LCB3b3JrZXJf cmVzdWx0cywgZnZhcnMsIE5rX2lqLCBpZF9hbnlvbiwgdHVwbGUgbm9udXBsZSwgZmxvYXQgdG9s PTVlLTgpOgorICAgICByIiIiCisgICAgIENoZWNrIHRoZSBwZW50YWdvbiBlcXVhdGlvbiBjb3Jy ZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBub251cGxlLgorICAgICAiIiIKK0BAIC01MTYsNyArNTE2 LDcgQEAgY2RlZiBmZXFfdmVyaWYoZmFjdG9yeSwgd29ya2VyX3Jlc3VsdHMsIGZ2YXJzLCBOa19p aiwgaWRfYW55b24sIHR1cGxlIG5vbnVwbGUsIGYKKyBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2Up CisgQGN5dGhvbi5ub25lY2hlY2soRmFsc2UpCisgQGN5dGhvbi5jZGl2aXNpb24oVHJ1ZSkKKy1j ZGVmIHBlbnRfdmVyaWZ5KGZhY3RvcnksIHR1cGxlIG1wX3BhcmFtcykgbm9leGNlcHQ6CisrY2Rl ZiBwZW50X3ZlcmlmeShmYWN0b3J5LCB0dXBsZSBtcF9wYXJhbXMpOgorICAgICByIiIiCisgICAg IEdlbmVyYXRlIGFsbCB0aGUgcGVudGFnb24gZXF1YXRpb25zIGFzc2lnbmVkIHRvIHRoaXMgcHJv Y2VzcywKKyAgICAgYW5kIHJlZHVjZSB0aGVtLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2Vi cmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3BhcmFsbGVsX2Z1c2lvbl9yaW5nX2JyYWlkX3JlcG4ucHhk IGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3RfcGFyYWxsZWxfZnVzaW9uX3Jp bmdfYnJhaWRfcmVwbi5weGQKK2luZGV4IDlmZGUxZjBjNWU4Li5hOTkyZjAzMzlhNCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3BhcmFsbGVsX2Z1c2lv bl9yaW5nX2JyYWlkX3JlcG4ucHhkCisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmlu Z3MvZmFzdF9wYXJhbGxlbF9mdXNpb25fcmluZ19icmFpZF9yZXBuLnB4ZAorQEAgLTEsMiArMSwy IEBACistY3BkZWYgX3VuZmxhdHRlbl9lbnRyaWVzKGZhY3RvcnksIGxpc3QgZW50cmllcykgbm9l eGNlcHQKKy1jcGRlZiBleGVjdXRvcih0dXBsZSBwYXJhbXMpIG5vZXhjZXB0CisrY3BkZWYgX3Vu ZmxhdHRlbl9lbnRyaWVzKGZhY3RvcnksIGxpc3QgZW50cmllcykKKytjcGRlZiBleGVjdXRvcih0 dXBsZSBwYXJhbXMpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3Jpbmdz L2Zhc3RfcGFyYWxsZWxfZnVzaW9uX3JpbmdfYnJhaWRfcmVwbi5weXggYi9zcmMvc2FnZS9hbGdl YnJhcy9mdXNpb25fcmluZ3MvZmFzdF9wYXJhbGxlbF9mdXNpb25fcmluZ19icmFpZF9yZXBuLnB5 eAoraW5kZXggYmQ4MDlhY2Q1Y2YuLmFkNmU4YTE2MjFlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv YWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3RfcGFyYWxsZWxfZnVzaW9uX3JpbmdfYnJhaWRfcmVw bi5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3BhcmFsbGVs X2Z1c2lvbl9yaW5nX2JyYWlkX3JlcG4ucHl4CitAQCAtMTgsNyArMTgsNyBAQCBmcm9tIHNhZ2Uu cmluZ3MucXFiYXIgaW1wb3J0IFFRYmFyCisgIyAgIE1hcHBlcnMgICAjCisgIyMjIyMjIyMjIyMj IyMjCisgCistY2RlZiBtaWRfc2lnX2lqKGZ1c2lvbl9yaW5nLCByb3csIGNvbCwgYSwgYikgbm9l eGNlcHQ6CisrY2RlZiBtaWRfc2lnX2lqKGZ1c2lvbl9yaW5nLCByb3csIGNvbCwgYSwgYik6Cisg ICAgIHIiIiIKKyAgICAgQ29tcHV0ZSB0aGUgKHhpLCB5aSksICh4aiwgeWopIGVudHJ5IG9mIGdl bmVyYXRvciBicmFpZGluZyB0aGUgbWlkZGxlIHR3bworICAgICBzdHJhbmRzIGluIHRoZSB0cmVl IGIgLT4geGkgIyB5aSAtPiAoYSAjIGEpICMgKGEgIyBhKSwgd2hpY2ggcmVzdWx0cyBpbgorQEAg LTQ4LDcgKzQ4LDcgQEAgY2RlZiBtaWRfc2lnX2lqKGZ1c2lvbl9yaW5nLCByb3csIGNvbCwgYSwg Yikgbm9leGNlcHQ6CisgICAgICAgICAgICAgZW50cnkgKz0gZjEgKiBmMiAqIHIgKiBmMyAqIGY0 CisgICAgIHJldHVybiBlbnRyeQorIAorLWNkZWYgb2RkX29uZV9vdXRfaWooZnVzaW9uX3Jpbmcs IHhpLCB4aiwgYSwgYikgbm9leGNlcHQ6CisrY2RlZiBvZGRfb25lX291dF9paihmdXNpb25fcmlu ZywgeGksIHhqLCBhLCBiKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIHRoZSBgeGlgLCBgeGpg IGVudHJ5IG9mIHRoZSBicmFpZCBnZW5lcmF0b3Igb24gdGhlIHR3byByaWdodC1tb3N0CisgICAg IHN0cmFuZHMsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRyZWUgYiAtPiAoeGkgIyBhKSAtPiAoYSAj IGEpICMgYSwgd2hpY2gKK0BAIC03Niw3ICs3Niw3IEBAIGNkZWYgb2RkX29uZV9vdXRfaWooZnVz aW9uX3JpbmcsIHhpLCB4aiwgYSwgYikgbm9leGNlcHQ6CisgY2RlZiBvZGRfb25lX291dF9pal9j YWNoZSA9IGRpY3QoKQorIGNkZWYgbWlkX3NpZ19pal9jYWNoZSA9IGRpY3QoKQorIAorLWNkZWYg Y2FjaGVkX21pZF9zaWdfaWooZnVzaW9uX3JpbmcsIHJvdywgY29sLCBhLCBiKSBub2V4Y2VwdDoK KytjZGVmIGNhY2hlZF9taWRfc2lnX2lqKGZ1c2lvbl9yaW5nLCByb3csIGNvbCwgYSwgYik6Cisg ICAgIHIiIiIKKyAgICAgQ2FjaGVkIHZlcnNpb24gb2YgOm1ldGg6YG1pZF9zaWdfaWpgLgorICAg ICAiIiIKK0BAIC04Niw3ICs4Niw3IEBAIGNkZWYgY2FjaGVkX21pZF9zaWdfaWooZnVzaW9uX3Jp bmcsIHJvdywgY29sLCBhLCBiKSBub2V4Y2VwdDoKKyAgICAgbWlkX3NpZ19pal9jYWNoZVtyb3cs IGNvbCwgYSwgYl0gPSBlbnRyeQorICAgICByZXR1cm4gZW50cnkKKyAKKy1jZGVmIGNhY2hlZF9v ZGRfb25lX291dF9paihmdXNpb25fcmluZywgeGksIHhqLCBhLCBiKSBub2V4Y2VwdDoKKytjZGVm IGNhY2hlZF9vZGRfb25lX291dF9paihmdXNpb25fcmluZywgeGksIHhqLCBhLCBiKToKKyAgICAg ciIiIgorICAgICBDYWNoZWQgdmVyc2lvbiBvZiA6bWV0aDpgb2RkX29uZV9vdXRfaWpgLgorICAg ICAiIiIKK0BAIC05OSw3ICs5OSw3IEBAIGNkZWYgY2FjaGVkX29kZF9vbmVfb3V0X2lqKGZ1c2lv bl9yaW5nLCB4aSwgeGosIGEsIGIpIG5vZXhjZXB0OgorIAorIEBjeXRob24ubm9uZWNoZWNrKEZh bHNlKQorIEBjeXRob24uY2RpdmlzaW9uKFRydWUpCistY2RlZiBzaWdfMmsoZnVzaW9uX3Jpbmcs IHR1cGxlIGFyZ3MpIG5vZXhjZXB0OgorK2NkZWYgc2lnXzJrKGZ1c2lvbl9yaW5nLCB0dXBsZSBh cmdzKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIGVudHJpZXMgb2YgdGhlIGAya2AtdGggYnJh aWQgZ2VuZXJhdG9yCisgICAgICIiIgorQEAgLTE3OSw3ICsxNzksNyBAQCBjZGVmIHNpZ18yayhm dXNpb25fcmluZywgdHVwbGUgYXJncykgbm9leGNlcHQ6CisgCisgQGN5dGhvbi5ub25lY2hlY2so RmFsc2UpCisgQGN5dGhvbi5jZGl2aXNpb24oVHJ1ZSkKKy1jZGVmIG9kZF9vbmVfb3V0KGZ1c2lv bl9yaW5nLCB0dXBsZSBhcmdzKSBub2V4Y2VwdDoKKytjZGVmIG9kZF9vbmVfb3V0KGZ1c2lvbl9y aW5nLCB0dXBsZSBhcmdzKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIGVudHJpZXMgb2YgdGhl IHJpZ2h0bW9zdCBicmFpZCBnZW5lcmF0b3IsIGluIGNhc2Ugd2UgaGF2ZSBhbgorICAgICBvZGQg bnVtYmVyIG9mIHN0cmFuZHMuCitAQCAtMjYzLDcgKzI2Myw3IEBAIGNkZWYgZGljdCBtYXBwZXJz ID0geworICAgICAib2RkX29uZV9vdXQiOiBvZGRfb25lX291dAorIH0KKyAKKy1jcGRlZiBleGVj dXRvcih0dXBsZSBwYXJhbXMpIG5vZXhjZXB0OgorK2NwZGVmIGV4ZWN1dG9yKHR1cGxlIHBhcmFt cyk6CisgICAgIHIiIiIKKyAgICAgRXhlY3V0ZSBhIGZ1bmN0aW9uIHJlZ2lzdGVyZWQgaW4gdGhp cyBtb2R1bGUncyBgYG1hcHBlcnNgYAorICAgICBpbiBhIHdvcmtlciBwcm9jZXNzLCBhbmQgc3Vw cGx5IHRoZSBgYEZ1c2lvblJpbmdgYCBwYXJhbWV0ZXIgYnkKK0BAIC0zMDUsNyArMzA1LDcgQEAg Y3BkZWYgZXhlY3V0b3IodHVwbGUgcGFyYW1zKSBub2V4Y2VwdDoKKyAjICAgUGlja2xpbmcgY2ly Y3VtdmVudGlvbiBoZWxwZXJzICAgIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgCistY3BkZWYgX3VuZmxhdHRlbl9lbnRyaWVzKGZ1c2lvbl9yaW5nLCBsaXN0IGVu dHJpZXMpIG5vZXhjZXB0OgorK2NwZGVmIF91bmZsYXR0ZW5fZW50cmllcyhmdXNpb25fcmluZywg bGlzdCBlbnRyaWVzKToKKyAgICAgciIiIgorICAgICBSZXN0b3JlIGN5Y2xvdG9taWMgY29lZmZp Y2llbnQgb2JqZWN0IGZyb20gaXRzIHR1cGxlIG9mIHJhdGlvbmFsCisgICAgIGNvZWZmaWNpZW50 cyByZXByZXNlbnRhdGlvbi4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25f cmluZ3MvcG9seV90dXBfZW5naW5lLnB4ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5n cy9wb2x5X3R1cF9lbmdpbmUucHhkCitpbmRleCBhYzJjNTA0MWRlOS4uNTA0OTM2OTFmMjkgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvcG9seV90dXBfZW5naW5l LnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3BvbHlfdHVwX2VuZ2lu ZS5weGQKK0BAIC0zLDIxICszLDIxIEBAIGZyb20gc2FnZS5yaW5ncy5udW1iZXJfZmllbGQubnVt YmVyX2ZpZWxkX2VsZW1lbnQgY2ltcG9ydCBOdW1iZXJGaWVsZEVsZW1lbnRfYWJzCisgZnJvbSBz YWdlLnJpbmdzLnBvbHlub21pYWwubXVsdGlfcG9seW5vbWlhbF9saWJzaW5ndWxhciBjaW1wb3J0 IE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyLCBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIKKyBm cm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5ZGljdCBjaW1wb3J0IEVUdXBsZQorIAorLWNw ZGVmIHR1cGxlIHBvbHlfdG9fdHVwKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIHBvbHkpIG5vZXhj ZXB0CistY3BkZWYgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgX3R1cF90b19wb2x5KHR1cGxlIGVx X3R1cCwgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIHBhcmVudCkgbm9leGNlcHQKKy1jcGRl ZiB0dXBsZSByZXNpemUodHVwbGUgZXFfdHVwLCBkaWN0IGlkeF9tYXAsIGludCBudmFycykgbm9l eGNlcHQKKy1jcGRlZiBsaXN0IGdldF92YXJpYWJsZXNfZGVncmVlcyhsaXN0IGVxbnMsIGludCBu dmFycykgbm9leGNlcHQKKy1jcGRlZiBsaXN0IHZhcmlhYmxlcyh0dXBsZSBlcV90dXApIG5vZXhj ZXB0CistY3BkZWYgY29uc3RhbnRfY29lZmYodHVwbGUgZXFfdHVwLCBmaWVsZCkgbm9leGNlcHQK Ky1jcGRlZiB0dXBsZSBhcHBseV9jb2VmZl9tYXAodHVwbGUgZXFfdHVwLCBjb2VmZl9tYXApIG5v ZXhjZXB0CisrY3BkZWYgdHVwbGUgcG9seV90b190dXAoTVBvbHlub21pYWxfbGlic2luZ3VsYXIg cG9seSkKKytjcGRlZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBfdHVwX3RvX3BvbHkodHVwbGUg ZXFfdHVwLCBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgcGFyZW50KQorK2NwZGVmIHR1cGxl IHJlc2l6ZSh0dXBsZSBlcV90dXAsIGRpY3QgaWR4X21hcCwgaW50IG52YXJzKQorK2NwZGVmIGxp c3QgZ2V0X3ZhcmlhYmxlc19kZWdyZWVzKGxpc3QgZXFucywgaW50IG52YXJzKQorK2NwZGVmIGxp c3QgdmFyaWFibGVzKHR1cGxlIGVxX3R1cCkKKytjcGRlZiBjb25zdGFudF9jb2VmZih0dXBsZSBl cV90dXAsIGZpZWxkKQorK2NwZGVmIHR1cGxlIGFwcGx5X2NvZWZmX21hcCh0dXBsZSBlcV90dXAs IGNvZWZmX21hcCkKKyAjIGNwZGVmIGJpbnQgdHVwX2ZpeGVzX3NxKHR1cGxlIGVxX3R1cCkKKyBj ZGVmIGJpbnQgdHVwX2ZpeGVzX3NxKHR1cGxlIGVxX3R1cCkgbm9leGNlcHQKKy1jZGVmIGRpY3Qg c3Vic19zcXVhcmVzKGRpY3QgZXFfZGljdCwgS1NIYW5kbGVyIGtub3duX3NxKSBub2V4Y2VwdAor LWNwZGVmIGRpY3QgY29tcHV0ZV9rbm93bl9wb3dlcnMobWF4X2RlZ3MsIGRpY3QgdmFsX2RpY3Qs IG9uZSkgbm9leGNlcHQKKy1jZGVmIGRpY3Qgc3Vicyh0dXBsZSBwb2x5X3R1cCwgZGljdCBrbm93 bl9wb3dlcnMsIG9uZSkgbm9leGNlcHQKKy1jcGRlZiB0dXBfdG9fdW5pdl9wb2x5KHR1cGxlIGVx X3R1cCwgdW5pdl9wb2x5X3JpbmcpIG5vZXhjZXB0CistY3BkZWYgdHVwbGUgcG9seV90dXBfc29y dGtleSh0dXBsZSBlcV90dXApIG5vZXhjZXB0CistY2RlZiB0dXBsZSByZWR1Y2VfcG9seV9kaWN0 KGRpY3QgZXFfZGljdCwgRVR1cGxlIG5vbnosIEtTSGFuZGxlciBrbm93bl9zcSwgTnVtYmVyRmll bGRFbGVtZW50X2Fic29sdXRlIG9uZSkgbm9leGNlcHQKKy1jZGVmIHR1cGxlIF9mbGF0dGVuX2Nv ZWZmcyh0dXBsZSBlcV90dXApIG5vZXhjZXB0CistY3BkZWYgdHVwbGUgX3VuZmxhdHRlbl9jb2Vm ZnMoZmllbGQsIHR1cGxlIGVxX3R1cCkgbm9leGNlcHQKKytjZGVmIGRpY3Qgc3Vic19zcXVhcmVz KGRpY3QgZXFfZGljdCwgS1NIYW5kbGVyIGtub3duX3NxKQorK2NwZGVmIGRpY3QgY29tcHV0ZV9r bm93bl9wb3dlcnMobWF4X2RlZ3MsIGRpY3QgdmFsX2RpY3QsIG9uZSkKKytjZGVmIGRpY3Qgc3Vi cyh0dXBsZSBwb2x5X3R1cCwgZGljdCBrbm93bl9wb3dlcnMsIG9uZSkKKytjcGRlZiB0dXBfdG9f dW5pdl9wb2x5KHR1cGxlIGVxX3R1cCwgdW5pdl9wb2x5X3JpbmcpCisrY3BkZWYgdHVwbGUgcG9s eV90dXBfc29ydGtleSh0dXBsZSBlcV90dXApCisrY2RlZiB0dXBsZSByZWR1Y2VfcG9seV9kaWN0 KGRpY3QgZXFfZGljdCwgRVR1cGxlIG5vbnosIEtTSGFuZGxlciBrbm93bl9zcSwgTnVtYmVyRmll bGRFbGVtZW50X2Fic29sdXRlIG9uZSkKKytjZGVmIHR1cGxlIF9mbGF0dGVuX2NvZWZmcyh0dXBs ZSBlcV90dXApCisrY3BkZWYgdHVwbGUgX3VuZmxhdHRlbl9jb2VmZnMoZmllbGQsIHR1cGxlIGVx X3R1cCkKKyBjZGVmIGludCBoYXNfYXBwcm9wcmlhdGVfbGluZWFyX3Rlcm0odHVwbGUgZXFfdHVw KSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9w b2x5X3R1cF9lbmdpbmUucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3BvbHlf dHVwX2VuZ2luZS5weXgKK2luZGV4IDI3ZjRmZjFlYjcxLi5lNDRmYjY4YjgzNiAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9wb2x5X3R1cF9lbmdpbmUucHl4Cisr KysgYi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvcG9seV90dXBfZW5naW5lLnB5eAor QEAgLTEyLDcgKzEyLDcgQEAgQXJpdGhtZXRpYyBFbmdpbmUgZm9yIFBvbHlub21pYWxzIGFzIFR1 cGxlcworICMgICBBUEkgICAjCisgIyMjIyMjIyMjIyMKKyAKKy1jcGRlZiBpbmxpbmUgdHVwbGUg cG9seV90b190dXAoTVBvbHlub21pYWxfbGlic2luZ3VsYXIgcG9seSkgbm9leGNlcHQ6CisrY3Bk ZWYgaW5saW5lIHR1cGxlIHBvbHlfdG9fdHVwKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIHBvbHkp OgorICAgICByIiIiCisgICAgIENvbnZlcnQgYSBwb2x5bm9taWFsIG9iamVjdCBpbnRvIHRoZSBp bnRlcm5hbCByZXByZXNlbnRhdGlvbiBhcyB0dXBsZSBvZgorICAgICBgYChFVHVwbGUgZXhwLCBO dW1iZXJGaWVsZEVsZW1lbnQgY29lZmYpYGAgcGFpcnMuCitAQCAtMjgsNyArMjgsNyBAQCBjcGRl ZiBpbmxpbmUgdHVwbGUgcG9seV90b190dXAoTVBvbHlub21pYWxfbGlic2luZ3VsYXIgcG9seSkg bm9leGNlcHQ6CisgICAgICIiIgorICAgICByZXR1cm4gdHVwbGUocG9seS5kaWN0KCkuaXRlbXMo KSkKKyAKKy1jcGRlZiBpbmxpbmUgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgX3R1cF90b19wb2x5 KHR1cGxlIGVxX3R1cCwgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIHBhcmVudCkgbm9leGNl cHQ6CisrY3BkZWYgaW5saW5lIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIF90dXBfdG9fcG9seSh0 dXBsZSBlcV90dXAsIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBwYXJlbnQpOgorICAgICBy IiIiCisgICAgIFJldHVybiBhIHBvbHlub21pYWwgb2JqZWN0IGZyb20gaXRzIHR1cGxlIG9mIHBh aXJzIHJlcHJlc2VudGF0aW9uLgorIAorQEAgLTc0LDcgKzc0LDcgQEAgY3BkZWYgaW5saW5lIE1Q b2x5bm9taWFsX2xpYnNpbmd1bGFyIF90dXBfdG9fcG9seSh0dXBsZSBlcV90dXAsIE1Qb2x5bm9t aWFsUmluZ18KKyAgICAgIiIiCisgICAgIHJldHVybiBwYXJlbnQuX2VsZW1lbnRfY29uc3RydWN0 b3JfKGRpY3QoZXFfdHVwKSwgY2hlY2s9RmFsc2UpCisgCistY2RlZiBpbmxpbmUgdHVwbGUgX2Zs YXR0ZW5fY29lZmZzKHR1cGxlIGVxX3R1cCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgdHVwbGUg X2ZsYXR0ZW5fY29lZmZzKHR1cGxlIGVxX3R1cCk6CisgICAgIHIiIiIKKyAgICAgRmxhdHRlbiBj eWNsb3RvbWljIGNvZWZmaWNpZW50cyB0byBhIHJlcHJlc2VudGF0aW9uIGFzIGEgdHVwbGUgb2Yg cmF0aW9uYWwKKyAgICAgY29lZmZpY2llbnRzLgorQEAgLTg4LDcgKzg4LDcgQEAgY2RlZiBpbmxp bmUgdHVwbGUgX2ZsYXR0ZW5fY29lZmZzKHR1cGxlIGVxX3R1cCkgbm9leGNlcHQ6CisgICAgICAg ICBmbGF0LmFwcGVuZCgoZXhwLCB0dXBsZShjeWNfY29lZmYuX2NvZWZmaWNpZW50cygpKSkpCisg ICAgIHJldHVybiB0dXBsZShmbGF0KQorIAorLWNwZGVmIHR1cGxlIF91bmZsYXR0ZW5fY29lZmZz KGZpZWxkLCB0dXBsZSBlcV90dXApIG5vZXhjZXB0OgorK2NwZGVmIHR1cGxlIF91bmZsYXR0ZW5f Y29lZmZzKGZpZWxkLCB0dXBsZSBlcV90dXApOgorICAgICByIiIiCisgICAgIFJlc3RvcmUgY3lj bG90b21pYyBjb2VmZmljaWVudCBvYmplY3QgZnJvbSBpdHMgdHVwbGUgb2YgcmF0aW9uYWwKKyAg ICAgY29lZmZpY2llbnRzIHJlcHJlc2VudGF0aW9uLgorQEAgLTE0OSw3ICsxNDksNyBAQCBjZGVm IGlubGluZSBpbnQgaGFzX2FwcHJvcHJpYXRlX2xpbmVhcl90ZXJtKHR1cGxlIGVxX3R1cCkgbm9l eGNlcHQ6CisgIyAgICJDaGFuZ2UgcmluZ3MiICAgIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyAKKy1jcGRlZiBpbmxpbmUgdHVwX3RvX3VuaXZfcG9seSh0dXBsZSBlcV90dXAsIHVuaXZfcG9s eV9yaW5nKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgdHVwX3RvX3VuaXZfcG9seSh0dXBsZSBl cV90dXAsIHVuaXZfcG9seV9yaW5nKToKKyAgICAgciIiIgorICAgICBHaXZlbiBhIHR1cGxlIG9m IHBhaXJzIHJlcHJlc2VudGluZyBhIHVuaXZhcmlhdGUgcG9seW5vbWlhbCBhbmQgYSB1bml2YXJp YXRlCisgICAgIHBvbHlub21pYWwgcmluZywgcmV0dXJuIGEgdW5pdmFyaWF0ZSBwb2x5bm9taWFs IG9iamVjdC4KK0BAIC0xNzcsNyArMTc3LDcgQEAgY3BkZWYgaW5saW5lIHR1cF90b191bml2X3Bv bHkodHVwbGUgZXFfdHVwLCB1bml2X3BvbHlfcmluZykgbm9leGNlcHQ6CisgICAgIGNkZWYgTnVt YmVyRmllbGRFbGVtZW50X2Fic29sdXRlIGMKKyAgICAgcmV0dXJuIHVuaXZfcG9seV9yaW5nKHtl eHAuX2RhdGFbMV0gaWYgZXhwLl9ub256ZXJvIGVsc2UgMDogYyBmb3IgZXhwLCBjIGluIGVxX3R1 cH0pCisgCistY3BkZWYgaW5saW5lIHR1cGxlIHJlc2l6ZSh0dXBsZSBlcV90dXAsIGRpY3QgaWR4 X21hcCwgaW50IG52YXJzKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgdHVwbGUgcmVzaXplKHR1 cGxlIGVxX3R1cCwgZGljdCBpZHhfbWFwLCBpbnQgbnZhcnMpOgorICAgICByIiIiCisgICAgIFJl dHVybiBhIHR1cGxlIHJlcHJlc2VudGluZyBhIHBvbHlub21pYWwgaW4gYSByaW5nIHdpdGgKKyAg ICAgYGBsZW4oc29ydGVkX3ZhcnMpYGAgZ2VuZXJhdG9ycy4KK0BAIC0yMTgsNyArMjE4LDcgQEAg Y3BkZWYgaW5saW5lIHR1cGxlIHJlc2l6ZSh0dXBsZSBlcV90dXAsIGRpY3QgaWR4X21hcCwgaW50 IG52YXJzKSBub2V4Y2VwdDoKKyAjICAgQ29udmVuaWVuY2UgbWV0aG9kcyAgICMKKyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIGlubGluZSBFVHVwbGUgZGVncmVlcyh0dXBs ZSBwb2x5X3R1cCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgRVR1cGxlIGRlZ3JlZXModHVwbGUg cG9seV90dXApOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgbWF4aW1hbCBkZWdyZWUgb2Yg ZWFjaCB2YXJpYWJsZSBpbiB0aGUgcG9seW5vbWlhbC4KKyAgICAgIiIiCitAQCAtMjMyLDcgKzIz Miw3IEBAIGNkZWYgaW5saW5lIEVUdXBsZSBkZWdyZWVzKHR1cGxlIHBvbHlfdHVwKSBub2V4Y2Vw dDoKKyAgICAgICAgIG1heF9kZWdzID0gbWF4X2RlZ3MuZW1heCg8RVR1cGxlPiAoPHR1cGxlPiBw b2x5X3R1cFtpXSlbMF0pCisgICAgIHJldHVybiBtYXhfZGVncworIAorLWNwZGVmIGxpc3QgZ2V0 X3ZhcmlhYmxlc19kZWdyZWVzKGxpc3QgZXFucywgaW50IG52YXJzKSBub2V4Y2VwdDoKKytjcGRl ZiBsaXN0IGdldF92YXJpYWJsZXNfZGVncmVlcyhsaXN0IGVxbnMsIGludCBudmFycyk6CisgICAg IHIiIiIKKyAgICAgRmluZCBtYXhpbXVtIGRlZ3JlZXMgZm9yIGVhY2ggdmFyaWFibGUgaW4gZXF1 YXRpb25zLgorIAorQEAgLTI1Nyw3ICsyNTcsNyBAQCBjcGRlZiBsaXN0IGdldF92YXJpYWJsZXNf ZGVncmVlcyhsaXN0IGVxbnMsIGludCBudmFycykgbm9leGNlcHQ6CisgICAgICAgICBkZW5zZVtt YXhfZGVnLl9kYXRhWzIqaV1dID0gbWF4X2RlZy5fZGF0YVsyKmkrMV0KKyAgICAgcmV0dXJuIGRl bnNlCisgCistY3BkZWYgbGlzdCB2YXJpYWJsZXModHVwbGUgZXFfdHVwKSBub2V4Y2VwdDoKKytj cGRlZiBsaXN0IHZhcmlhYmxlcyh0dXBsZSBlcV90dXApOgorICAgICAiIiIKKyAgICAgUmV0dXJu IGluZGljZXMgb2YgYWxsIHZhcmlhYmxlcyBhcHBlYXJpbmcgaW4gZXFfdHVwCisgCitAQCAtMjc3 LDcgKzI3Nyw3IEBAIGNwZGVmIGxpc3QgdmFyaWFibGVzKHR1cGxlIGVxX3R1cCkgbm9leGNlcHQ6 CisgICAgICIiIgorICAgICByZXR1cm4gZGVncmVlcyhlcV90dXApLm5vbnplcm9fcG9zaXRpb25z KCkKKyAKKy1jcGRlZiBjb25zdGFudF9jb2VmZih0dXBsZSBlcV90dXAsIGZpZWxkKSBub2V4Y2Vw dDoKKytjcGRlZiBjb25zdGFudF9jb2VmZih0dXBsZSBlcV90dXAsIGZpZWxkKToKKyAgICAgciIi IgorICAgICBSZXR1cm4gdGhlIGNvbnN0YW50IGNvZWZmaWNpZW50IG9mIHRoZSBwb2x5bm9taWFs IHJlcHJlc2VudGVkIGJ5CisgICAgIGdpdmVuIHR1cGxlLgorQEAgLTMwMCw3ICszMDAsNyBAQCBj cGRlZiBjb25zdGFudF9jb2VmZih0dXBsZSBlcV90dXAsIGZpZWxkKSBub2V4Y2VwdDoKKyAgICAg ICAgICAgICByZXR1cm4gY29lZmYKKyAgICAgcmV0dXJuIGZpZWxkLnplcm8oKQorIAorLWNwZGVm IHR1cGxlIGFwcGx5X2NvZWZmX21hcCh0dXBsZSBlcV90dXAsIGNvZWZmX21hcCkgbm9leGNlcHQ6 CisrY3BkZWYgdHVwbGUgYXBwbHlfY29lZmZfbWFwKHR1cGxlIGVxX3R1cCwgY29lZmZfbWFwKToK KyAgICAgIiIiCisgICAgIEFwcGx5IGBgY29lZmZfbWFwYGAgdG8gY29lZmZpY2llbnRzLgorIAor QEAgLTM0Miw3ICszNDIsNyBAQCBjZGVmIGlubGluZSBiaW50IHR1cF9maXhlc19zcSh0dXBsZSBl cV90dXApIG5vZXhjZXB0OgorICMgICBTaW1wbGlmaWNhdGlvbiAgICMKKyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisgCistY2RlZiBkaWN0IHN1YnNfc3F1YXJlcyhkaWN0IGVxX2RpY3QsIEtTSGFu ZGxlciBrbm93bl9zcSkgbm9leGNlcHQ6CisrY2RlZiBkaWN0IHN1YnNfc3F1YXJlcyhkaWN0IGVx X2RpY3QsIEtTSGFuZGxlciBrbm93bl9zcSk6CisgICAgIHIiIiIKKyAgICAgU3Vic3RpdHV0ZSBm b3Iga25vd24gc3F1YXJlcyBpbnRvIGEgZ2l2ZW4gcG9seW5vbWlhbC4KKyAKK0BAIC0zNzksNyAr Mzc5LDcgQEAgY2RlZiBkaWN0IHN1YnNfc3F1YXJlcyhkaWN0IGVxX2RpY3QsIEtTSGFuZGxlciBr bm93bl9zcSkgbm9leGNlcHQ6CisgICAgICAgICAgICAgc3ViYmVkW2V4cF0gPSBjb2VmZgorICAg ICByZXR1cm4gc3ViYmVkCisgCistY2RlZiBkaWN0IHJlbW92ZV9nY2YoZGljdCBlcV9kaWN0LCBF VHVwbGUgbm9ueikgbm9leGNlcHQ6CisrY2RlZiBkaWN0IHJlbW92ZV9nY2YoZGljdCBlcV9kaWN0 LCBFVHVwbGUgbm9ueik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIGEgZGljdGlvbmFyeSBvZiBg YChFVHVwbGUsIGNvZWZmKWBgIHBhaXJzIGRlc2NyaWJpbmcgdGhlCisgICAgIHBvbHlub21pYWwg YGBlcSAvIEdDRihlcSlgYC4KK0BAIC0zOTksNyArMzk5LDcgQEAgY2RlZiBkaWN0IHJlbW92ZV9n Y2YoZGljdCBlcV9kaWN0LCBFVHVwbGUgbm9ueikgbm9leGNlcHQ6CisgICAgICAgICByZXRbZXhw LmVzdWIoY29tbW9uX3Bvd2VycyldID0gYworICAgICByZXR1cm4gcmV0CisgCistY2RlZiB0dXBs ZSB0b19tb25pYyhkaWN0IGVxX2RpY3QsIG9uZSkgbm9leGNlcHQ6CisrY2RlZiB0dXBsZSB0b19t b25pYyhkaWN0IGVxX2RpY3QsIG9uZSk6CisgICAgICIiIgorICAgICBSZXR1cm4gdHVwbGUgb2Yg cGFpcnMgYGAoRVR1cGxlLCBjb2VmZilgYCBkZXNjcmliaW5nIHRoZSBtb25pYyBwb2x5bm9taWFs CisgICAgIGFzc29jaWF0ZWQgdG8gYGBlcV9kaWN0YGAuCitAQCAtNDIyLDcgKzQyMiw3IEBAIGNk ZWYgdHVwbGUgdG9fbW9uaWMoZGljdCBlcV9kaWN0LCBvbmUpIG5vZXhjZXB0OgorICAgICAgICAg cmV0LmFwcGVuZCgob3JkX21vbm9tc1tuLTItaV0sIGludl9sYyAqIGVxX2RpY3Rbb3JkX21vbm9t c1tuLTItaV1dKSkKKyAgICAgcmV0dXJuIHR1cGxlKHJldCkKKyAKKy1jZGVmIHR1cGxlIHJlZHVj ZV9wb2x5X2RpY3QoZGljdCBlcV9kaWN0LCBFVHVwbGUgbm9ueiwgS1NIYW5kbGVyIGtub3duX3Nx LCBOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUgb25lKSBub2V4Y2VwdDoKKytjZGVmIHR1cGxl IHJlZHVjZV9wb2x5X2RpY3QoZGljdCBlcV9kaWN0LCBFVHVwbGUgbm9ueiwgS1NIYW5kbGVyIGtu b3duX3NxLCBOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUgb25lKToKKyAgICAgIiIiCisgICAg IFJldHVybiBhIHR1cGxlIGRlc2NyaWJpbmcgYSBtb25pYyBwb2x5bm9taWFsIHdpdGggbm8ga25v d24gbm9uemVybworICAgICBnY2YgYW5kIG5vIGtub3duIHNxdWFyZXMuCitAQCAtNDM3LDcgKzQz Nyw3IEBAIGNkZWYgdHVwbGUgcmVkdWNlX3BvbHlfZGljdChkaWN0IGVxX2RpY3QsIEVUdXBsZSBu b256LCBLU0hhbmRsZXIga25vd25fc3EsIE51bWJlCisgIyAgIFN1YnN0aXR1dGlvbiAgICMKKyAj IyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNwZGVmIGRpY3QgY29tcHV0ZV9rbm93bl9wb3dlcnMo bWF4X2RlZ3MsIGRpY3QgdmFsX2RpY3QsIG9uZSkgbm9leGNlcHQ6CisrY3BkZWYgZGljdCBjb21w dXRlX2tub3duX3Bvd2VycyhtYXhfZGVncywgZGljdCB2YWxfZGljdCwgb25lKToKKyAgICAgIiIi CisgICAgIFByZS1jb21wdXRlIHBvd2VycyBvZiBrbm93biB2YWx1ZXMgZm9yIGVmZmljaWVuY3kg d2hlbiBwcmVwYXJpbmcgdG8KKyAgICAgc3Vic3RpdHV0ZSBpbnRvIGEgbGlzdCBvZiBwb2x5bm9t aWFscy4KK0BAIC00ODIsNyArNDgyLDcgQEAgY3BkZWYgZGljdCBjb21wdXRlX2tub3duX3Bvd2Vy cyhtYXhfZGVncywgZGljdCB2YWxfZGljdCwgb25lKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICBr bm93bl9wb3dlcnNbdmFyX2lkeF1bcG93ZXIrMV0gPSB0dXBfbXVsKGtub3duX3Bvd2Vyc1t2YXJf aWR4XVtwb3dlcl0sIHZhbF9kaWN0W3Zhcl9pZHhdKQorICAgICByZXR1cm4ga25vd25fcG93ZXJz CisgCistY2RlZiBkaWN0IHN1YnModHVwbGUgcG9seV90dXAsIGRpY3Qga25vd25fcG93ZXJzLCBv bmUpIG5vZXhjZXB0OgorK2NkZWYgZGljdCBzdWJzKHR1cGxlIHBvbHlfdHVwLCBkaWN0IGtub3du X3Bvd2Vycywgb25lKToKKyAgICAgIiIiCisgICAgIFN1YnN0aXR1dGUgZ2l2ZW4gdmFyaWFibGVz IGludG8gYSBwb2x5bm9taWFsIHR1cGxlLgorICAgICAiIiIKK0BAIC01MDUsNyArNTA1LDcgQEAg Y2RlZiBkaWN0IHN1YnModHVwbGUgcG9seV90dXAsIGRpY3Qga25vd25fcG93ZXJzLCBvbmUpIG5v ZXhjZXB0OgorICAgICAgICAgICAgICAgICBzdWJiZWRbc2hpZnRlZF9leHBdID0gY29lZmYgKiBj CisgICAgIHJldHVybiBzdWJiZWQKKyAKKy1jZGVmIHR1cGxlIHR1cF9tdWwodHVwbGUgcDEsIHR1 cGxlIHAyKSBub2V4Y2VwdDoKKytjZGVmIHR1cGxlIHR1cF9tdWwodHVwbGUgcDEsIHR1cGxlIHAy KToKKyAgICAgciIiIgorICAgICBNdWx0aXBsaWNhdGlvbiBvZiB0d28gcG9seW5vbWlhbCB0dXBs ZXMgdXNpbmcgc2Nob29sYm9vayBtdWx0aXBsaWNhdGlvbi4KKyAgICAgIiIiCitAQCAtNTI0LDcg KzUyNCw3IEBAIGNkZWYgdHVwbGUgdHVwX211bCh0dXBsZSBwMSwgdHVwbGUgcDIpIG5vZXhjZXB0 OgorICMgICBTb3J0aW5nICAgIworICMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgdHVwbGUgbW9u b21fc29ydGtleShFVHVwbGUgZXhwKSBub2V4Y2VwdDoKKytjZGVmIHR1cGxlIG1vbm9tX3NvcnRr ZXkoRVR1cGxlIGV4cCk6CisgICAgIHIiIiIKKyAgICAgUHJvZHVjZSBhIHNvcnRrZXkgZm9yIGEg bW9ub21pYWwgZXhwb25lbnQgd2l0aCByZXNwZWN0IHRvIGRlZ3JlZQorICAgICByZXZlcnNlZCBs ZXhpY29ncmFwaGljIG9yZGVyaW5nLgorQEAgLTUzNSw3ICs1MzUsNyBAQCBjZGVmIHR1cGxlIG1v bm9tX3NvcnRrZXkoRVR1cGxlIGV4cCkgbm9leGNlcHQ6CisgICAgIGNkZWYgRVR1cGxlIHJldiA9 IGV4cC5yZXZlcnNlZCgpLmVtdWwoLTEpCisgICAgIHJldHVybiAoZGVnLCByZXYpCisgCistY3Bk ZWYgdHVwbGUgcG9seV90dXBfc29ydGtleSh0dXBsZSBlcV90dXApIG5vZXhjZXB0OgorK2NwZGVm IHR1cGxlIHBvbHlfdHVwX3NvcnRrZXkodHVwbGUgZXFfdHVwKToKKyAgICAgciIiIgorICAgICBS ZXR1cm4gdGhlIHNvcnRrZXkgb2YgYSBwb2x5bm9taWFsIHJlcHJlc2VudGVkIGFzIGEgdHVwbGUg b2YKKyAgICAgYGAoRVR1cGxlLCBjb2VmZilgYCBwYWlycyB3aXRoIHJlc3BlY3QgdG8gdGhlIGRl Z3JlZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9zaG1fbWFu YWdlcnMucHhkIGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3NobV9tYW5hZ2Vycy5w eGQKK2luZGV4IGYxZTJlZDc0NzE0Li41YjE1NzZiYjY3NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9zaG1fbWFuYWdlcnMucHhkCisrKysgYi9zcmMvc2FnZS9h bGdlYnJhcy9mdXNpb25fcmluZ3Mvc2htX21hbmFnZXJzLnB4ZAorQEAgLTksOSArOSw5IEBAIGNk ZWYgY2xhc3MgS1NIYW5kbGVyOgorICAgICBjZGVmIHB1YmxpYyBvYmplY3Qgc2htCisgCisgICAg IGNkZWYgYmludCBjb250YWlucyhzZWxmLCBpbnQgaWR4KSBub2V4Y2VwdAorLSAgICBjZGVmIE51 bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSBnZXQoc2VsZiwgaW50IGlkeCkgbm9leGNlcHQKKy0g ICAgY2RlZiBzZXRpdGVtKHNlbGYsIGludCBpZHgsIHJocykgbm9leGNlcHQKKy0gICAgY3BkZWYg dXBkYXRlKHNlbGYsIGxpc3QgZXFucykgbm9leGNlcHQKKysgICAgY2RlZiBOdW1iZXJGaWVsZEVs ZW1lbnRfYWJzb2x1dGUgZ2V0KHNlbGYsIGludCBpZHgpCisrICAgIGNkZWYgc2V0aXRlbShzZWxm LCBpbnQgaWR4LCByaHMpCisrICAgIGNwZGVmIHVwZGF0ZShzZWxmLCBsaXN0IGVxbnMpCisgCisg Y2RlZiBjbGFzcyBGdmFyc0hhbmRsZXI6CisgICAgIGNkZWYgZGljdCBzZXh0X3RvX2lkeCwgb2Jq X2NhY2hlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3NobV9t YW5hZ2Vycy5weXggYi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3Mvc2htX21hbmFnZXJz LnB5eAoraW5kZXggZGNmYTI3NGI1ZWEuLjQwZDJlYjljODA1IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3NobV9tYW5hZ2Vycy5weXgKKysrKyBiL3NyYy9zYWdl L2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9zaG1fbWFuYWdlcnMucHl4CitAQCAtMTQ0LDcgKzE0NCw3 IEBAIGNkZWYgY2xhc3MgS1NIYW5kbGVyOgorICAgICBAY3l0aG9uLm5vbmVjaGVjayhGYWxzZSkK KyAgICAgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorICAgICBAY3l0aG9uLmJvdW5kc2NoZWNr KEZhbHNlKQorLSAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSBnZXQoc2VsZiwg aW50IGlkeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRl IGdldChzZWxmLCBpbnQgaWR4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHJpZXZlIHRo ZSBrbm93biBzcXVhcmUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gaW5kZXgsCisgICAgICAg ICBpZiBpdCBleGlzdHMuCitAQCAtMTc1LDcgKzE3NSw3IEBAIGNkZWYgY2xhc3MgS1NIYW5kbGVy OgorICAgICAgICAgc2VsZi5vYmpfY2FjaGVbaWR4XSA9IGN5Y19jb2VmZgorICAgICAgICAgcmV0 dXJuIGN5Y19jb2VmZgorIAorLSAgICBjcGRlZiB1cGRhdGUoc2VsZiwgbGlzdCBlcW5zKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgdXBkYXRlKHNlbGYsIGxpc3QgZXFucyk6CisgICAgICAgICByIiIi CisgICAgICAgICBVcGRhdGUgYGBgc2VsZmBgJ3MgYGBzaGFyZWRfbWVtb3J5YGAtYmFja2VkIGRp Y3Rpb25hcnkgb2Yga25vd24KKyAgICAgICAgIHNxdWFyZXMuIEtleXMgYXJlIHZhcmlhYmxlIGlu ZGljZXMgYW5kIGNvcnJlc3BvbmRpbmcgdmFsdWVzCitAQCAtMjQyLDcgKzI0Miw3IEBAIGNkZWYg Y2xhc3MgS1NIYW5kbGVyOgorICAgICBAY3l0aG9uLm5vbmVjaGVjayhGYWxzZSkKKyAgICAgQGN5 dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorICAgICBAY3l0aG9uLmluZmVyX3R5cGVzKEZhbHNlKQor LSAgICBjZGVmIHNldGl0ZW0oc2VsZiwgaW50IGlkeCwgcmhzKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBzZXRpdGVtKHNlbGYsIGludCBpZHgsIHJocyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENy ZWF0ZSBhbiBlbnRyeSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBpbmRleC4KKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9mcmVlX2FsZ2VicmFfZWxlbWVu dF9sZXR0ZXJwbGFjZS5weGQgYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9mcmVlX2Fs Z2VicmFfZWxlbWVudF9sZXR0ZXJwbGFjZS5weGQKK2luZGV4IGRkZDc3ZTk0YmU3Li5kMjJmZTRl OWE0MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxn ZWJyYV9lbGVtZW50X2xldHRlcnBsYWNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0 dGVycGxhY2UvZnJlZV9hbGdlYnJhX2VsZW1lbnRfbGV0dGVycGxhY2UucHhkCitAQCAtMTMsNSAr MTMsNSBAQCBmcm9tIHNhZ2UuYWxnZWJyYXMubGV0dGVycGxhY2UuZnJlZV9hbGdlYnJhX2xldHRl cnBsYWNlIGNpbXBvcnQgRnJlZUFsZ2VicmFfbGV0dAorIAorIGNkZWYgY2xhc3MgRnJlZUFsZ2Vi cmFFbGVtZW50X2xldHRlcnBsYWNlKEFsZ2VicmFFbGVtZW50KToKKyAgICAgY2RlZiBNUG9seW5v bWlhbF9saWJzaW5ndWxhciBfcG9seQorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9l eGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNwZGVm IF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9mcmVlX2FsZ2VicmFfZWxlbWVu dF9sZXR0ZXJwbGFjZS5weXggYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9mcmVlX2Fs Z2VicmFfZWxlbWVudF9sZXR0ZXJwbGFjZS5weXgKK2luZGV4IDhhOTUyNjI0MTBlLi4wZTIzZWQy ZmVlYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxn ZWJyYV9lbGVtZW50X2xldHRlcnBsYWNlLnB5eAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0 dGVycGxhY2UvZnJlZV9hbGdlYnJhX2VsZW1lbnRfbGV0dGVycGxhY2UucHl4CitAQCAtNDQxLDcg KzQ0MSw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFFbGVtZW50X2xldHRlcnBsYWNlKEFsZ2Vi cmFFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgIHJldHVy biBGYWxzZQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAg ICAgICIiIgorICAgICAgICAgSW1wbGVtZW50IGNvbXBhcmlzb25zLCB1c2luZyB0aGUgQ3l0aG9u IHJpY2hjbXAgY29udmVudGlvbi4KKyAKK0BAIC00NTgsNyArNDU4LDcgQEAgY2RlZiBjbGFzcyBG cmVlQWxnZWJyYUVsZW1lbnRfbGV0dGVycGxhY2UoQWxnZWJyYUVsZW1lbnQpOgorIAorICAgICAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAjIEFyaXRobWV0aWMKKy0gICAg Y3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNDc0LDcgKzQ3NCw3IEBAIGNkZWYg Y2xhc3MgRnJlZUFsZ2VicmFFbGVtZW50X2xldHRlcnBsYWNlKEFsZ2VicmFFbGVtZW50KToKKyAg ICAgICAgIHJldHVybiBGcmVlQWxnZWJyYUVsZW1lbnRfbGV0dGVycGxhY2Uoc2VsZi5fcGFyZW50 LCAtc2VsZi5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2hlY2s9RmFsc2UpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAg ICAgICBBZGRpdGlvbiwgdW5kZXIgdGhlIHNpZGUgY29uZGl0aW9uIHRoYXQgZWl0aGVyIG9uZSBz dW1tYW5kCisgICAgICAgICBpcyB6ZXJvLCBvciBib3RoIHN1bW1hbmRzIGhhdmUgdGhlIHNhbWUg ZGVncmVlLgorQEAgLTUwOCw3ICs1MDgsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhRWxlbWVu dF9sZXR0ZXJwbGFjZShBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvbHkgKyByaWdodC5fcG9seSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2s9RmFsc2UpCisgCist ICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8o c2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBEaWZmZXJlbmNlLCB1bmRlciB0 aGUgc2lkZSBjb25kaXRpb24gdGhhdCBlaXRoZXIgb25lIHN1bW1hbmQKKyAgICAgICAgIGlzIHpl cm8gb3IgYm90aCBoYXZlIHRoZSBzYW1lIHdlaWdodGVkIGRlZ3JlZS4KK0BAIC01NDgsNyArNTQ4 LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYUVsZW1lbnRfbGV0dGVycGxhY2UoQWxnZWJyYUVs ZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl9wb2x5IC0gcmlnaHQuX3BvbHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNoZWNrPUZhbHNlKQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwg RWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50 IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbGljYXRpb24gZnJvbSB0aGUg cmlnaHQgd2l0aCBhbiBlbGVtZW50IG9mIHRoZSBiYXNlIHJpbmcuCisgCitAQCAtNTYzLDcgKzU2 Myw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFFbGVtZW50X2xldHRlcnBsYWNlKEFsZ2VicmFF bGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5fcG9seS5fbG11bF8ocmlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYs IEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50 IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBsaWNhdGlvbiBmcm9tIHRoZSBs ZWZ0IHdpdGggYW4gZWxlbWVudCBvZiB0aGUgYmFzZSByaW5nLgorIAorQEAgLTU3OCw3ICs1Nzgs NyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhRWxlbWVudF9sZXR0ZXJwbGFjZShBbGdlYnJhRWxl bWVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuX3BvbHkuX3JtdWxfKGxlZnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3Ro ZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFByb2R1Y3Qgb2YgdHdvIGZyZWUgYWxnZWJyYSBlbGVtZW50cyBpbiBsZXR0 ZXJwbGFjZSBpbXBsZW1lbnRhdGlvbi4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJh cy9sZXR0ZXJwbGFjZS9mcmVlX2FsZ2VicmFfbGV0dGVycGxhY2UucHhkIGIvc3JjL3NhZ2UvYWxn ZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB4ZAoraW5kZXggYTcy NjI2MjU0NmIuLjQ3YTcyNzVhYmEwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0 dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxn ZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB4ZAorQEAgLTI5LDYg KzI5LDYgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAg ICAgY2RlZiBpbnQgX25nZW5zCisgICAgIGNkZWYgaW50IF9uYl9zbGFja3ZhcnMKKyAgICAgY2Rl ZiBvYmplY3QgX19tb25vaWQKKy0gICAgY2RlZiBzdHIgZXhwb25lbnRzX3RvX3N0cmluZyhzZWxm LCBFKSBub2V4Y2VwdAorLSAgICBjZGVmIHN0ciBleHBvbmVudHNfdG9fbGF0ZXgoc2VsZiwgRSkg bm9leGNlcHQKKysgICAgY2RlZiBzdHIgZXhwb25lbnRzX3RvX3N0cmluZyhzZWxmLCBFKQorKyAg ICBjZGVmIHN0ciBleHBvbmVudHNfdG9fbGF0ZXgoc2VsZiwgRSkKKyAgICAgY2RlZiB0dXBsZSBf ZGVncmVlcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVf YWxnZWJyYV9sZXR0ZXJwbGFjZS5weXggYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9m cmVlX2FsZ2VicmFfbGV0dGVycGxhY2UucHl4CitpbmRleCA4NDRhNTAxMzdhNy4uMjc4NTk2Y2Mx NzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9mcmVlX2FsZ2Vi cmFfbGV0dGVycGxhY2UucHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9m cmVlX2FsZ2VicmFfbGV0dGVycGxhY2UucHl4CitAQCAtMTM3LDcgKzEzNyw3IEBAIGZyZWVBbGdl YnJhID0gc2luZ3VsYXJfZnVuY3Rpb24oImZyZWVBbGdlYnJhIikKKyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyAjIEF1eGlsaWFyeSBmdW5jdGlvbnMKKyAKKy1jZGVmIE1Qb2x5bm9taWFsUmluZ19s aWJzaW5ndWxhciBtYWtlX2xldHRlcnBsYWNlX3JpbmcoYmFzZV9yaW5nLCBibG9ja3MpIG5vZXhj ZXB0OgorK2NkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIG1ha2VfbGV0dGVycGxhY2Vf cmluZyhiYXNlX3JpbmcsIGJsb2Nrcyk6CisgICAgICIiIgorICAgICBDcmVhdGUgYSBwb2x5bm9t aWFsIHJpbmcgaW4gYmxvY2sgb3JkZXIuCisgCitAQCAtNTYzLDcgKzU2Myw3IEBAIGNkZWYgY2xh c3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICByZXR1cm4gc2Vs Zi5fX21vbm9pZAorIAorICAgICAjIEF1eGlsaWFyIG1ldGhvZHMKKy0gICAgY2RlZiBzdHIgZXhw b25lbnRzX3RvX3N0cmluZyhzZWxmLCBFKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzdHIgZXhwb25l bnRzX3RvX3N0cmluZyhzZWxmLCBFKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBhdXhp bGlhcnkgbWV0aG9kIGlzIHVzZWQgZm9yIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZWxl bWVudHMgb2YgdGhpcyBmcmVlIGFsZ2VicmEuCisgCitAQCAtNjA1LDcgKzYwNSw3IEBAIGNkZWYg Y2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICByZXR1cm4g JyonLmpvaW4ob3V0KQorIAorICAgICAjIEF1eGlsaWFyIG1ldGhvZHMKKy0gICAgY2RlZiBzdHIg ZXhwb25lbnRzX3RvX2xhdGV4KHNlbGYsIEUpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN0ciBleHBv bmVudHNfdG9fbGF0ZXgoc2VsZiwgRSk6CisgICAgICAgICByIiIiCisgICAgICAgICBUaGlzIGF1 eGlsaWFyeSBtZXRob2QgaXMgdXNlZCBmb3IgdGhlIHJlcHJlc2VudGF0aW9uIG9mIGVsZW1lbnRz IG9mIHRoaXMgZnJlZSBhbGdlYnJhIGFzIGEgbGF0ZXggc3RyaW5nLgorIAorQEAgLTY4OSw3ICs2 ODksNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorIAor ICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAgIyBDb2VyY2lvbgorLSAgICBj cGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Nv ZXJjZV9tYXBfZnJvbV8oc2VsZiwgUyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEEgcmluZyBg YFJgYCBjb2VyY2VzIGludG8gc2VsZiwgaWYKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdl YnJhcy9saWVfYWxnZWJyYXMvbGllX2FsZ2VicmFfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9hbGdl YnJhcy9saWVfYWxnZWJyYXMvbGllX2FsZ2VicmFfZWxlbWVudC5weGQKK2luZGV4IDIyN2NlMjU1 OWY5Li4zNjc3ZWIyOTU4NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9hbGdl YnJhcy9saWVfYWxnZWJyYV9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvbGll X2FsZ2VicmFzL2xpZV9hbGdlYnJhX2VsZW1lbnQucHhkCitAQCAtNCwyNCArNCwyNCBAQCBmcm9t IHNhZ2Uuc3RydWN0dXJlLnNhZ2Vfb2JqZWN0IGNpbXBvcnQgU2FnZU9iamVjdAorIGZyb20gc2Fn ZS5tb2R1bGVzLndpdGhfYmFzaXMuaW5kZXhlZF9lbGVtZW50IGNpbXBvcnQgSW5kZXhlZEZyZWVN b2R1bGVFbGVtZW50CisgCisgY2RlZiBjbGFzcyBMaWVBbGdlYnJhRWxlbWVudChJbmRleGVkRnJl ZU1vZHVsZUVsZW1lbnQpOgorLSAgICBjcGRlZiBsaWZ0KHNlbGYpIG5vZXhjZXB0CisrICAgIGNw ZGVmIGxpZnQoc2VsZikKKyAKKyBjZGVmIGNsYXNzIExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcihF bGVtZW50V3JhcHBlcik6CistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAor LSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQKKysgICAgY3BkZWYgX2FkZF8o c2VsZiwgcmlnaHQpCisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KQorIAorIGNkZWYgY2xh c3MgTGllQWxnZWJyYU1hdHJpeFdyYXBwZXIoTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKToKKyAg ICAgcGFzcworIAorIGNkZWYgY2xhc3MgTGllU3ViYWxnZWJyYUVsZW1lbnRXcmFwcGVyKExpZUFs Z2VicmFFbGVtZW50V3JhcHBlcik6CisgICAgIGNkZWYgZGljdCBfbW9ub21pYWxfY29lZmZpY2ll bnRzCistICAgIGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29w eT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxm LCBiaW50IGNvcHk9KikKKyAKKyBjZGVmIGNsYXNzIFN0cnVjdHVyZUNvZWZmaWNpZW50c0VsZW1l bnQoTGllQWxnZWJyYU1hdHJpeFdyYXBwZXIpOgorLSAgICBjcGRlZiBicmFja2V0KHNlbGYsIHJp Z2h0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYnJhY2tldF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0 CistICAgIGNwZGVmIHRvX3ZlY3RvcihzZWxmLCBiaW50IHNwYXJzZT0qKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9Kikgbm9l eGNlcHQKKysgICAgY3BkZWYgYnJhY2tldChzZWxmLCByaWdodCkKKysgICAgY3BkZWYgX2JyYWNr ZXRfKHNlbGYsIHJpZ2h0KQorKyAgICBjcGRlZiB0b192ZWN0b3Ioc2VsZiwgYmludCBzcGFyc2U9 KikKKysgICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwgYmludCBjb3B5 PSopCisgICAgICMgY3BkZWYgbGlmdChzZWxmKQorIAorIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZm aW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMzAsMjMgKzMwLDIzIEBAIGNkZWYg Y2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CisgICAgIGNk ZWYgX2RfY29lZmYKKyAgICAgY2RlZiBsb25nIF9oYXNoCisgCistICAgIGNwZGVmIF9hZGRfKHNl bGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9leGNl cHQKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgX2FkZF8oc2Vs Ziwgb3RoZXIpCisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfbmVn XyhzZWxmKQorIAorLSAgICBjcGRlZiBkaWN0IHRfZGljdChzZWxmKSBub2V4Y2VwdAorLSAgICBj cGRlZiBjX2NvZWZmaWNpZW50KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGRfY29lZmZpY2ll bnQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgZGljdCB0X2RpY3Qoc2VsZikKKysgICAgY3Bk ZWYgY19jb2VmZmljaWVudChzZWxmKQorKyAgICBjcGRlZiBkX2NvZWZmaWNpZW50KHNlbGYpCisg CistICAgIGNwZGVmIGJyYWNrZXQoc2VsZiwgeSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2JyYWNr ZXRfKHNlbGYsIHkpIG5vZXhjZXB0CistICAgIGNwZGVmIGNhbm9uaWNhbF9kZXJpdmF0aW9uKHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50 IGNvcHk9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgYnJhY2tldChzZWxmLCB5KQorKyAgICBjcGRl ZiBfYnJhY2tldF8oc2VsZiwgeSkKKysgICAgY3BkZWYgY2Fub25pY2FsX2Rlcml2YXRpb24oc2Vs ZikKKysgICAgY3BkZWYgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT0qKQor IAorIGNkZWYgY2xhc3MgTGllT2JqZWN0KFNhZ2VPYmplY3QpOgorICAgICBjZGVmIHR1cGxlIF93 b3JkCisgICAgIGNkZWYgcHVibGljIHR1cGxlIF9pbmRleF93b3JkCistICAgIGNwZGVmIHR1cGxl IHRvX3dvcmQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgdHVwbGUgdG9fd29yZChzZWxmKQor IAorIGNkZWYgY2xhc3MgTGllR2VuZXJhdG9yKExpZU9iamVjdCk6CisgICAgIGNkZWYgcHVibGlj IHN0ciBfbmFtZQorQEAgLTU3LDcgKzU3LDcgQEAgY2RlZiBjbGFzcyBMaWVCcmFja2V0KExpZU9i amVjdCk6CisgICAgIGNkZWYgcHVibGljIExpZU9iamVjdCBfcmlnaHQKKyAgICAgY2RlZiBsb25n IF9oYXNoCisgCistICAgIGNwZGVmIGxpZnQoc2VsZiwgZGljdCBVRUFfZ2Vuc19kaWN0KSBub2V4 Y2VwdAorKyAgICBjcGRlZiBsaWZ0KHNlbGYsIGRpY3QgVUVBX2dlbnNfZGljdCkKKyAKKyBjZGVm IGNsYXNzIEdyYWRlZExpZUJyYWNrZXQoTGllQnJhY2tldCk6CisgICAgIGNkZWYgcHVibGljIF9n cmFkZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9hbGdlYnJhcy9saWVfYWxn ZWJyYV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9hbGdlYnJhcy9saWVfYWxn ZWJyYV9lbGVtZW50LnB5eAoraW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGllX2FsZ2VicmFzL2xpZV9hbGdlYnJhX2VsZW1lbnQu cHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9saWVfYWxnZWJyYXMvbGllX2FsZ2VicmFfZWxl bWVudC5weXgKK0BAIC0xMjQsNyArMTI0LDcgQEAgY2RlZiBjbGFzcyBMaWVBbGdlYnJhRWxlbWVu dChJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIGNvZG9tYWluLnN1 bShiYXNlX21hcChjKSAqIHQuX2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBuYW1lcykKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHQsIGMgaW4gc2VsZi5fbW9ub21pYWxfY29l ZmZpY2llbnRzLml0ZW1zKCkpCisgCistICAgIGNwZGVmIGxpZnQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGxpZnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIExpZnQgYGBzZWxm YGAgdG8gdGhlIHVuaXZlcnNhbCBlbnZlbG9waW5nIGFsZ2VicmEuCisgCitAQCAtMjc1LDcgKzI3 NSw3IEBAIGNkZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKEVsZW1lbnRXcmFwcGVy KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGJvb2woc2VsZi52YWx1ZSkKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBgYHNlbGZgYCBhbmQgYGBy aHNgYC4KKyAKK0BAIC0yODgsNyArMjg4LDcgQEAgY2RlZiBjbGFzcyBMaWVBbGdlYnJhRWxlbWVu dFdyYXBwZXIoRWxlbWVudFdyYXBwZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g dHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIHNlbGYudmFsdWUgKyByaWdodC52YWx1ZSkKKyAKKy0g ICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IGBgc2VsZmBgIGFu ZCBgYHJoc2BgLgorIAorQEAgLTM3Niw3ICszNzYsNyBAQCBjZGVmIGNsYXNzIExpZUFsZ2VicmFF bGVtZW50V3JhcHBlcihFbGVtZW50V3JhcHBlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmICogKH54KQorIAorLSAgICBjcGRlZiBfYWN0ZWRfdXBvbl8oc2VsZiwgc2NhbGFy LCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhz ZWxmLCBzY2FsYXIsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBhY3Rpb24gb2YgYSBzY2FsYXIgb24gYGBzZWxmYGAuCisgCitAQCAtNTcyLDcg KzU3Miw3IEBAIGNkZWYgY2xhc3MgTGllU3ViYWxnZWJyYUVsZW1lbnRXcmFwcGVyKExpZUFsZ2Vi cmFFbGVtZW50V3JhcHBlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9w YXJlbnQubW9kdWxlKCkoc2VsZi52YWx1ZS50b192ZWN0b3Ioc3BhcnNlPXNwYXJzZSkpCisgCist ICAgIGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT1UcnVl KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwg YmludCBjb3B5PVRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgZGljdGlv bmFyeSB3aG9zZSBrZXlzIGFyZSBpbmRpY2VzIG9mIGJhc2lzIGVsZW1lbnRzCisgICAgICAgICBp biB0aGUgc3VwcG9ydCBvZiBgYHNlbGZgYCBhbmQgd2hvc2UgdmFsdWVzIGFyZSB0aGUKK0BAIC02 MDUsNyArNjA1LDcgQEAgY2RlZiBjbGFzcyBMaWVTdWJhbGdlYnJhRWxlbWVudFdyYXBwZXIoTGll QWxnZWJyYUVsZW1lbnRXcmFwcGVyKToKKyAgICAgICAgICAgICByZXR1cm4gZGljdChzZWxmLl9t b25vbWlhbF9jb2VmZmljaWVudHMpCisgICAgICAgICByZXR1cm4gc2VsZi5fbW9ub21pYWxfY29l ZmZpY2llbnRzCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQg YGBzZWxmYGAgYW5kIGBgcmhzYGAuCisgCitAQCAtNjMxLDcgKzYzMSw3IEBAIGNkZWYgY2xhc3Mg TGllU3ViYWxnZWJyYUVsZW1lbnRXcmFwcGVyKExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcik6Cisg ICAgICAgICAgICAgcmV0Ll9tb25vbWlhbF9jb2VmZmljaWVudHMgPSBtYworICAgICAgICAgcmV0 dXJuIHJldAorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJh Y3QgYGBzZWxmYGAgYW5kIGBgcmhzYGAuCisgCitAQCAtNjU3LDcgKzY1Nyw3IEBAIGNkZWYgY2xh c3MgTGllU3ViYWxnZWJyYUVsZW1lbnRXcmFwcGVyKExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcik6 CisgICAgICAgICAgICAgcmV0Ll9tb25vbWlhbF9jb2VmZmljaWVudHMgPSBtYworICAgICAgICAg cmV0dXJuIHJldAorIAorLSAgICBjcGRlZiBfYWN0ZWRfdXBvbl8oc2VsZiwgc2NhbGFyLCBiaW50 IHNlbGZfb25fbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCBz Y2FsYXIsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSBhY3Rpb24gb2YgYSBzY2FsYXIgb24gYGBzZWxmYGAuCisgCitAQCAtNzU3LDcgKzc1Nyw3 IEBAIGNkZWYgY2xhc3MgU3RydWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdlYnJhTWF0 cml4V3JhcHBlcik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj YWxhcl9tdWx0PSfCtycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cmlwX29uZT1UcnVlKSkKKyAKKy0gICAgY3BkZWYgYnJhY2tldChzZWxmLCByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGJyYWNrZXQoc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIExpZSBicmFja2V0IGBgW3NlbGYsIHJpZ2h0XWBgLgorIAorQEAg LTc3Nyw3ICs3NzcsNyBAQCBjZGVmIGNsYXNzIFN0cnVjdHVyZUNvZWZmaWNpZW50c0VsZW1lbnQo TGllQWxnZWJyYU1hdHJpeFdyYXBwZXIpOgorIAorICAgICAjIFdlIG5lZWQgdGhpcyBtZXRob2Qg YmVjYXVzZSB0aGUgTGllQWxnZWJyYS5icmFja2V0IG1ldGhvZCAoZnJvbSB0aGUKKyAgICAgIyAg IGNhdGVnb3J5KSBjYWxscyB0aGlzLCB3aGVyZSB3ZSBhcmUgZ3VhcmFudGVlZCB0byBoYXZlIHRo ZSBzYW1lIHBhcmVudC4KKy0gICAgY3BkZWYgX2JyYWNrZXRfKHNlbGYsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2JyYWNrZXRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBMaWUgYnJhY2tldCBgYFtzZWxmLCByaWdodF1gYC4KKyAKK0BAIC04 MzIsNyArODMyLDcgQEAgY2RlZiBjbGFzcyBTdHJ1Y3R1cmVDb2VmZmljaWVudHNFbGVtZW50KExp ZUFsZ2VicmFNYXRyaXhXcmFwcGVyKToKKyAgICAgICAgICAgICBpZiB2ICE9IHplcm86CisgICAg ICAgICAgICAgICAgIHlpZWxkIChJW2ldLCB2KQorIAorLSAgICBjcGRlZiB0b192ZWN0b3Ioc2Vs ZiwgYmludCBzcGFyc2U9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB0b192ZWN0b3Ioc2Vs ZiwgYmludCBzcGFyc2U9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBz ZWxmYGAgYXMgYSB2ZWN0b3IuCisgCitAQCAtODY1LDcgKzg2NSw3IEBAIGNkZWYgY2xhc3MgU3Ry dWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdlYnJhTWF0cml4V3JhcHBlcik6CisgICAg ICAgICBnZW5zID0gVUVBLmdlbnMoKQorICAgICAgICAgcmV0dXJuIFVFQS5zdW0oYyAqIGdlbnNb aV0gZm9yIGksIGMgaW4gc2VsZi52YWx1ZS5pdGVtcygpKQorIAorLSAgICBjcGRlZiBkaWN0IG1v bm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9VHJ1ZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT1UcnVlKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtb25vbWlhbCBjb2VmZmljaWVudHMg b2YgYGBzZWxmYGAgYXMgYSBkaWN0aW9uYXJ5LgorIAorQEAgLTEwNzIsNyArMTA3Miw3IEBAIGNk ZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSB0OiAidCIgKyB1bmljb2RlX3N1 cGVyc2NyaXB0KHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2Rl X2FydCgn4ouFJyksIHVuaWNvZGVfYXJ0KCfiipcnKSkKKyAKKy0gICAgY3BkZWYgZGljdCB0X2Rp Y3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgdF9kaWN0KHNlbGYpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgYGRpY3RgYCwgd2hvc2Uga2V5cyBhcmUgcG93 ZXJzIG9mIGB0YCBhbmQgdmFsdWVzIGFyZQorICAgICAgICAgZWxlbWVudHMgb2YgdGhlIGNsYXNz aWNhbCBMaWUgYWxnZWJyYSwgb2YgYGBzZWxmYGAuCitAQCAtMTA4OCw3ICsxMDg4LDcgQEAgY2Rl ZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3RfZGljdC5jb3B5KCkKKyAKKy0gICAgY3Bk ZWYgY19jb2VmZmljaWVudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY19jb2VmZmljaWVu dChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29lZmZpY2llbnQg b2YgYGNgIG9mIGBgc2VsZmBgLgorIAorQEAgLTExMDEsNyArMTEwMSw3IEBAIGNkZWYgY2xhc3Mg VW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLl9jX2NvZWZmCisgCistICAgIGNwZGVmIGRfY29lZmZpY2ll bnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRfY29lZmZpY2llbnQoc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvZWZmaWNpZW50IG9mIGBkYCBvZiBgYHNl bGZgYC4KKyAKK0BAIC0xMTE0LDcgKzExMTQsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmlu ZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5fZF9jb2VmZgorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGlu dCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9w KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSByaWNoIGNvbXBhcmlzb24gb2Yg YGBzZWxmYGAgd2l0aCBgYG90aGVyYGAuCisgCitAQCAtMTE3Nyw3ICsxMTc3LDcgQEAgY2RlZiBj bGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fdF9kaWN0KSBvciBib29sKHNlbGYuX2Nf Y29lZmYpIG9yIGJvb2woc2VsZi5fZF9jb2VmZikKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwg b3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEFkZCBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgorIAorQEAgLTExOTMs NyArMTE5Myw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQo RWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jX2NvZWZmICsgcnQu X2NfY29lZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kX2NvZWZmICsgcnQu X2RfY29lZmYpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0 cmFjdCBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgorIAorQEAgLTEyMTcsNyArMTIxNyw3IEBAIGNk ZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jX2NvZWZmIC0gcnQuX2NfY29lZmYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kX2NvZWZmIC0gcnQuX2RfY29lZmYpCisgCist ICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgTmVnYXRlIGBgc2VsZmBgLgorIAorQEAgLTEyMzIsNyAr MTIzMiw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxl bWVudCk6CisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIG5lZ2F0ZShz ZWxmLl90X2RpY3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLXNlbGYuX2NfY29lZmYs IC1zZWxmLl9kX2NvZWZmKQorIAorLSAgICBjcGRlZiBfYWN0ZWRfdXBvbl8oc2VsZiwgc2NhbGFy LCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhz ZWxmLCBzY2FsYXIsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGBgc2VsZmBgIGFjdGVkIHVwb24gYnkgYGBzY2FsYXJgYC4KKyAKK0BAIC0xMjYyLDcg KzEyNjIsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVs ZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyICogc2VsZi5fY19jb2Vm ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhciAqIHNlbGYuX2RfY29lZmYpCisg CistICAgIGNwZGVmIG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9VHJ1ZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNv cHk9VHJ1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbW9ub21pYWwgY29l ZmZpY2llbnRzIG9mIGBgc2VsZmBgLgorIAorQEAgLTEyOTIsNyArMTI5Miw3IEBAIGNkZWYgY2xh c3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CisgICAgICAgICAg ICAgZFsnZCddID0gc2VsZi5fZF9jb2VmZgorICAgICAgICAgcmV0dXJuIGQKKyAKKy0gICAgY3Bk ZWYgYnJhY2tldChzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJyYWNrZXQoc2Vs ZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIExpZSBicmFja2V0 IGBgW3NlbGYsIHJpZ2h0XWBgLgorIAorQEAgLTEzMTUsNyArMTMxNSw3IEBAIGNkZWYgY2xhc3Mg VW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CisgICAgICAgICAgICAg c2VsZiwgcmlnaHQgPSBjb2VyY2lvbl9tb2RlbC5jYW5vbmljYWxfY29lcmNpb24oc2VsZiwgcmln aHQpCisgICAgICAgICByZXR1cm4gc2VsZi5fYnJhY2tldF8ocmlnaHQpCisgCistICAgIGNwZGVm IF9icmFja2V0XyhzZWxmLCB5KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2JyYWNrZXRfKHNlbGYs IHkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIExpZSBicmFja2V0IGBgW3Nl bGYsIHldYGAuCisgCitAQCAtMTM4Myw3ICsxMzgzLDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRB ZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgIHJldHVybiB0eXBlKHNl bGYpKHNlbGYuX3BhcmVudCwgZCwgYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu X3BhcmVudC5iYXNlX3JpbmcoKS56ZXJvKCkpCisgCistICAgIGNwZGVmIGNhbm9uaWNhbF9kZXJp dmF0aW9uKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjYW5vbmljYWxfZGVyaXZhdGlvbihz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY2Fub25pY2FsIGRlcml2 YXRpb24gYGRgIGFwcGxpZWQgdG8gYGBzZWxmYGAuCisgCitAQCAtMTUyMyw3ICsxNTIzLDcgQEAg Y2RlZiBjbGFzcyBMaWVPYmplY3QoU2FnZU9iamVjdCk6CisgICAgICIiIgorICAgICBBYnN0cmFj dCBiYXNlIGNsYXNzIGZvciA6Y2xhc3M6YExpZUdlbmVyYXRvcmAgYW5kIDpjbGFzczpgTGllQnJh Y2tldGAuCisgICAgICIiIgorLSAgICBjcGRlZiB0dXBsZSB0b193b3JkKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiB0dXBsZSB0b193b3JkKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHdvcmQgKCJmbGF0dGVuaW5nIikgb2YgYGBzZWxmYGAuCisgCitAQCAtMTY1 Nyw3ICsxNjU3LDcgQEAgY2RlZiBjbGFzcyBMaWVHZW5lcmF0b3IoTGllT2JqZWN0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIGltX2dlbnNbbmFtZXMuaW5kZXgoc2VsZi5fbmFtZSld CisgCistICAgIGNwZGVmIHR1cGxlIHRvX3dvcmQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IHR1cGxlIHRvX3dvcmQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg d29yZCAoImZsYXR0ZW5pbmciKSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xODYyLDcgKzE4NjIsNyBA QCBjZGVmIGNsYXNzIExpZUJyYWNrZXQoTGllT2JqZWN0KToKKyAgICAgICAgIHJldHVybiBjb2Rv bWFpbi5icmFja2V0KHNlbGYuX2xlZnQuX2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBuYW1l cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yaWdodC5faW1fZ2Vu c18oY29kb21haW4sIGltX2dlbnMsIG5hbWVzKSkKKyAKKy0gICAgY3BkZWYgbGlmdChzZWxmLCBk aWN0IFVFQV9nZW5zX2RpY3QpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaWZ0KHNlbGYsIGRpY3Qg VUVBX2dlbnNfZGljdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIExpZnQgYGBzZWxmYGAgdG8g dGhlIHVuaXZlcnNhbCBlbnZlbG9waW5nIGFsZ2VicmEuCisgCitAQCAtMTg5MSw3ICsxODkxLDcg QEAgY2RlZiBjbGFzcyBMaWVCcmFja2V0KExpZU9iamVjdCk6CisgCisgICAgICAgICByZXR1cm4g bCpyIC0gcipsCisgCistICAgIGNwZGVmIHR1cGxlIHRvX3dvcmQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIHR1cGxlIHRvX3dvcmQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgd29yZCAoImZsYXR0ZW5pbmciKSBvZiBgYHNlbGZgYC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9hbGdlYnJhcy9vY3Rvbmlvbl9hbGdlYnJhLnB4ZCBiL3NyYy9zYWdlL2FsZ2Vi cmFzL29jdG9uaW9uX2FsZ2VicmEucHhkCitpbmRleCA0NTllOGVhMzA3MC4uNzg1MDA3MjliZGMg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9vY3Rvbmlvbl9hbGdlYnJhLnB4ZAorKysr IGIvc3JjL3NhZ2UvYWxnZWJyYXMvb2N0b25pb25fYWxnZWJyYS5weGQKK0BAIC04LDEyICs4LDEy IEBAIGZyb20gc2FnZS5tb2R1bGVzLmZyZWVfbW9kdWxlX2VsZW1lbnQgY2ltcG9ydCBGcmVlTW9k dWxlRWxlbWVudAorIGNkZWYgY2xhc3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6 CisgICAgIGNkZWYgRnJlZU1vZHVsZUVsZW1lbnQgdmVjCisgCistICAgIGNwZGVmIE9jdG9uaW9u X2dlbmVyaWMgY29uanVnYXRlKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIHF1YWRyYXRpY19m b3JtKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIG5vcm0oc2VsZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgYWJzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIHJlYWxfcGFydChzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBPY3Rvbmlvbl9nZW5lcmljIGltYWdfcGFydChzZWxmKSBub2V4Y2Vw dAorKyAgICBjcGRlZiBPY3Rvbmlvbl9nZW5lcmljIGNvbmp1Z2F0ZShzZWxmKQorKyAgICBjcGRl ZiBxdWFkcmF0aWNfZm9ybShzZWxmKQorKyAgICBjcGRlZiBub3JtKHNlbGYpCisrICAgIGNwZGVm IGFicyhzZWxmKQorKyAgICBjcGRlZiByZWFsX3BhcnQoc2VsZikKKysgICAgY3BkZWYgT2N0b25p b25fZ2VuZXJpYyBpbWFnX3BhcnQoc2VsZikKKyAKKyBjZGVmIGNsYXNzIE9jdG9uaW9uKE9jdG9u aW9uX2dlbmVyaWMpOgorICAgICBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMv b2N0b25pb25fYWxnZWJyYS5weXggYi9zcmMvc2FnZS9hbGdlYnJhcy9vY3Rvbmlvbl9hbGdlYnJh LnB5eAoraW5kZXggZWU2OWFjYTZhN2UuLjNjMWQyOGMyMTA2IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvYWxnZWJyYXMvb2N0b25pb25fYWxnZWJyYS5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFz L29jdG9uaW9uX2FsZ2VicmEucHl4CitAQCAtMTE3LDcgKzExNyw3IEBAIGNkZWYgY2xhc3MgT2N0 b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiAoc2VsZi5fX2NsYXNzX18sIChzZWxmLl9wYXJlbnQsIHNlbGYudmVjKSkKKyAKKy0gICAg Y3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBDb21wYXJlIGBgc2VsZmBgIHRvIGBgb3RoZXJgYCB3aXRoIHR5cGUgYGBvcGBgLgorIAorQEAg LTE0OCw3ICsxNDgsNyBAQCBjZGVmIGNsYXNzIE9jdG9uaW9uX2dlbmVyaWMoQWxnZWJyYUVsZW1l bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gaGFzaChzZWxmLnZlYykKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgcGx1 cyBgYG90aGVyYGAuCisgCitAQCAtMTYyLDcgKzE2Miw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb25f Z2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIHNlbGYudmVjICsgKDxPY3Rvbmlvbl9nZW5lcmlj PiBvdGhlcikudmVjKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiBgYHNlbGZgYCBtaW51cyBgYG90aGVyYGAuCisgCitAQCAtMTkyLDcgKzE5Miw3IEBA IGNkZWYgY2xhc3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIC1zZWxmLnZl YykKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBvdGhlcik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gYGBzZWxmICogb3RoZXJgYCBmb3IgYSBzY2FsYXIgYGBvdGhlcmBgLgor IAorQEAgLTIwNiw3ICsyMDYsNyBAQCBjZGVmIGNsYXNzIE9jdG9uaW9uX2dlbmVyaWMoQWxnZWJy YUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18o c2VsZi5fcGFyZW50LCBzZWxmLnZlYyAqIG90aGVyKQorIAorLSAgICBjcGRlZiBfcm11bF8oc2Vs ZiwgRWxlbWVudCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVt ZW50IG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGYgKiBvdGhl cmBgIGZvciBhIHNjYWxhciBgYG90aGVyYGAuCisgCitAQCAtMjIwLDcgKzIyMCw3IEBAIGNkZWYg Y2xhc3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIG90aGVyICogc2VsZi52 ZWMpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBg c2VsZmBgIG11bHRpcGxpZWQgYnkgYGBvdGhlcmBgLgorIAorQEAgLTI2OCw3ICsyNjgsNyBAQCBj ZGVmIGNsYXNzIE9jdG9uaW9uX2dlbmVyaWMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAg ICAgICByZXRba10gKz0gY2wgKiBjciAqIGNvZWZmCisgICAgICAgICByZXR1cm4gc2VsZi5fX2Ns YXNzX18oUCwgUC5fbW9kdWxlKHJldCkpCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVy KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgZGl2aWRlZCBieSBgYG90aGVyYGAuCisgCitAQCAt MzU3LDcgKzM1Nyw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVu dCk6CisgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IKKyAgICAgICAgIHJldHVy biBzZWxmLnF1YWRyYXRpY19mb3JtKCkuaW52ZXJzZV9vZl91bml0KCkgKiBzZWxmLmNvbmp1Z2F0 ZSgpCisgCistICAgIGNwZGVmIE9jdG9uaW9uX2dlbmVyaWMgY29uanVnYXRlKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBPY3Rvbmlvbl9nZW5lcmljIGNvbmp1Z2F0ZShzZWxmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29uanVnYXRlIG9mIGBgc2VsZmBgLgorIAor QEAgLTM3Myw3ICszNzMsNyBAQCBjZGVmIGNsYXNzIE9jdG9uaW9uX2dlbmVyaWMoQWxnZWJyYUVs ZW1lbnQpOgorICAgICAgICAgdi5zZXRfdW5zYWZlKDAsIC12LmdldF91bnNhZmUoMCkpCisgICAg ICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50LCB2KQorIAorLSAgICBjcGRl ZiBxdWFkcmF0aWNfZm9ybShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcXVhZHJhdGljX2Zv cm0oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1YWRyYXRpYyBm b3JtIG9mIGBgc2VsZmBgLgorIAorQEAgLTM5Niw3ICszOTYsNyBAQCBjZGVmIGNsYXNzIE9jdG9u aW9uX2dlbmVyaWMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgIHJldCArPSAtKDx0dXBs ZT4gdGFibGVbaV0pW2ldWzFdICogc2VsZi52ZWMuZ2V0X3Vuc2FmZShpKSAqKiAyCisgICAgICAg ICByZXR1cm4gcmV0CisgCistICAgIGNwZGVmIG5vcm0oc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIG5vcm0oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG5vcm0g b2YgYGBzZWxmYGAuCisgCitAQCAtNDI0LDcgKzQyNCw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb25f Z2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz cXJ0KHNlbGYucXVhZHJhdGljX2Zvcm0oKSkKKyAKKy0gICAgY3BkZWYgYWJzKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBhYnMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGFic29sdXRlIHZhbHVlIG9mIGBgc2VsZmBgLgorIAorQEAgLTQ0Nyw3ICs0NDcsNyBA QCBjZGVmIGNsYXNzIE9jdG9uaW9uX2dlbmVyaWMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5ub3JtKCkKKyAKKy0gICAgY3BkZWYgcmVhbF9wYXJ0 KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWFsX3BhcnQoc2VsZik6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJlYWwgcGFydCBvZiBgYHNlbGZgYC4KKyAKK0BAIC00 NjcsNyArNDY3LDcgQEAgY2RlZiBjbGFzcyBPY3Rvbmlvbl9nZW5lcmljKEFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYudmVjLmdldF91bnNhZmUoMCkK KyAKKy0gICAgY3BkZWYgT2N0b25pb25fZ2VuZXJpYyBpbWFnX3BhcnQoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIE9jdG9uaW9uX2dlbmVyaWMgaW1hZ19wYXJ0KHNlbGYpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbWdpbmFyeSBwYXJ0IG9mIGBgc2VsZmBgLgorIAor QEAgLTU0Myw3ICs1NDMsNyBAQCBjZGVmIGNsYXNzIE9jdG9uaW9uKE9jdG9uaW9uX2dlbmVyaWMp OgorICAgICBUaGlzIGlzIGFuIGVsZW1lbnQgb2YgdGhlIG9jdG9uaW9uIGFsZ2VicmEgd2l0aCBw YXJhbWV0ZXJzCisgICAgIGBhID0gYiA9IGMgPSAtMWAsIHdoaWNoIGlzIGEgY2xhc3NpY2FsIG9j dG9uaW9uIG51bWJlci4KKyAgICAgIiIiCistICAgIGNwZGVmIHF1YWRyYXRpY19mb3JtKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBxdWFkcmF0aWNfZm9ybShzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVhZHJhdGljIGZvcm0gb2YgYGBzZWxmYGAuCisgCitA QCAtNTYyLDcgKzU2Miw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb24oT2N0b25pb25fZ2VuZXJpYyk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnZlYyAqIHNlbGYudmVjCisgCist ICAgIGNwZGVmIG5vcm0oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG5vcm0oc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG5vcm0gb2YgYGBzZWxmYGAuCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJuaW9uX2FsZ2VicmFf ZWxlbWVudC5weGQgYi9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25fYWxnZWJy YV9lbGVtZW50LnB4ZAoraW5kZXggNWE0ZjgxMTQ0M2EuLjkzYzk4YjNlMDQ1IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJuaW9uX2FsZ2VicmFfZWxlbWVudC5w eGQKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJhX2Vs ZW1lbnQucHhkCitAQCAtOCwxMCArOCwxMCBAQCBmcm9tIHNhZ2UuY2F0ZWdvcmllcy5tb3JwaGlz bSBjaW1wb3J0IE1vcnBoaXNtCisgCisgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1l bnRfYWJzdHJhY3QoQWxnZWJyYUVsZW1lbnQpOgorICAgICBjcGRlZiBiaW50IGlzX2NvbnN0YW50 KHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX2RvX3ByaW50KHNlbGYsIHgsIHksIHosIHcpIG5v ZXhjZXB0CistICAgIGNwZGVmIGNvbmp1Z2F0ZShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBy ZWR1Y2VkX25vcm0oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgcmVkdWNlZF90cmFjZShzZWxm KSBub2V4Y2VwdAorKyAgICBjZGVmIF9kb19wcmludChzZWxmLCB4LCB5LCB6LCB3KQorKyAgICBj cGRlZiBjb25qdWdhdGUoc2VsZikKKysgICAgY3BkZWYgcmVkdWNlZF9ub3JtKHNlbGYpCisrICAg IGNwZGVmIHJlZHVjZWRfdHJhY2Uoc2VsZikKKyAKKyBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdl YnJhRWxlbWVudF9nZW5lcmljKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmFjdCk6Cisg ICAgIGNkZWYgb2JqZWN0IHgsIHksIHosIHcKK0BAIC0yMSw4ICsyMSw4IEBAIGNkZWYgY2xhc3Mg UXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2dlbmVyaWMoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50 X2Fic3RyYWN0KToKKyBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9udW1iZXJf ZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYWN0KToKKyAgICAgY2RlZiBmbXB6 X3BvbHlfdCB4LCB5LCB6LCB3LCBhLCBiLCBtb2R1bHVzCisgICAgIGNkZWYgbXB6X3QgZAorLSAg ICBjZGVmIGlubGluZSBjYW5vbmljYWxpemUoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBpbmxp bmUgY2Fub25pY2FsaXplKHNlbGYpCisgCisgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVs ZW1lbnRfcmF0aW9uYWxfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYWN0KToK KyAgICAgY2RlZiBtcHpfdCB4LCB5LCB6LCB3LCBhLCBiLCBkCistICAgIGNkZWYgaW5saW5lIGNh bm9uaWNhbGl6ZShzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIGlubGluZSBjYW5vbmljYWxpemUo c2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25f YWxnZWJyYV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlv bl9hbGdlYnJhX2VsZW1lbnQucHl4CitpbmRleCBmNmZhOGVmM2IzNS4uZDE3NTY2YzhjMjIgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25fYWxnZWJyYV9l bGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJuaW9uX2Fs Z2VicmFfZWxlbWVudC5weXgKK0BAIC01NCw3ICs1NCw3IEBAIGZyb20gc2FnZS5saWJzLmZsaW50 Lm50bF9pbnRlcmZhY2UgY2ltcG9ydCAqCisgY2RlZiBtcHpfdCBUMSwgVDIsIHQzLCB0NCwgdDUs IHQ2LCB0NywgdDgsIHMxLCBzMiwgVTEsIFUyCisgY2RlZiBmbXB6X3BvbHlfdCBmVDEsIGZUMiwg ZnQzLCBmdDQsIGZ0NSwgZnQ2LCBmdDcsIGZ0OCwgZnMxLCBmczIsIGZVMSwgZlUyCisgCistY2Rl ZiBfY2xlYXJfZ2xvYmFscygpIG5vZXhjZXB0OgorK2NkZWYgX2NsZWFyX2dsb2JhbHMoKToKKyAg ICAgIiIiCisgICAgIENsZWFyIGFsbCBnbG9iYWwgdmFyaWFibGVzIGFsbG9jYXRlZCBmb3Igb3B0 aW1pemF0aW9uIG9mCisgICAgIHF1YXRlcm5pb24gYWxnZWJyYSBhcml0aG1ldGljLgorQEAgLTkx LDcgKzkxLDcgQEAgY2RlZiBfY2xlYXJfZ2xvYmFscygpIG5vZXhjZXB0OgorICAgICBmbXB6X3Bv bHlfY2xlYXIoZlUxKQorICAgICBmbXB6X3BvbHlfY2xlYXIoZlUyKQorIAorLWNkZWYgX2luaXRf Z2xvYmFscygpIG5vZXhjZXB0OgorK2NkZWYgX2luaXRfZ2xvYmFscygpOgorICAgICAiIiIKKyAg ICAgSW5pdGlhbGl6ZSBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBhbGxvY2F0ZWQgZm9yIG9wdGltaXph dGlvbiBvZgorICAgICBxdWF0ZXJuaW9uIGFsZ2VicmEgYXJpdGhtZXRpYywgYW5kIHJlZ2lzdGVy IGEgaG9vayB0byBldmVudHVhbGx5CitAQCAtMTM4LDcgKzEzOCw3IEBAIGNkZWYgX2luaXRfZ2xv YmFscygpIG5vZXhjZXB0OgorICMgSW5pdGlhbGl6ZSBtb2R1bGUtc2NvcGUgZ2xvYmFsIEMgdmFy aWFibGVzLgorIF9pbml0X2dsb2JhbHMoKQorIAorLWNkZWYgdG9fcXVhdGVybmlvbihSLCB4KSBu b2V4Y2VwdDoKKytjZGVmIHRvX3F1YXRlcm5pb24oUiwgeCk6CisgICAgICIiIgorICAgICBJbnRl cm5hbCBmdW5jdGlvbiB1c2VkIGltcGxpY2l0bHkgYnkgcXVhdGVybmlvbiBhbGdlYnJhIGNyZWF0 aW9uLgorIAorQEAgLTE2Miw3ICsxNjIsNyBAQCBjZGVmIHRvX3F1YXRlcm5pb24oUiwgeCkgbm9l eGNlcHQ6CisgICAgIGVsc2U6CisgICAgICAgICByZXR1cm4gUih4KSwgUigwKSwgUigwKSwgUigw KQorIAorLWNkZWYgaW5saW5lIHByaW50X2NvZWZmKHksIGksIGJpbnQgYXRvbWljKSBub2V4Y2Vw dDoKKytjZGVmIGlubGluZSBwcmludF9jb2VmZih5LCBpLCBiaW50IGF0b21pYyk6CisgICAgICIi IgorICAgICBJbnRlcm5hbCBmdW5jdGlvbiB1c2VkIGltcGxpY2l0bHkgYnkgYWxsIHF1YXRlcm5p b24gYWxnZWJyYSBwcmludGluZy4KKyAKK0BAIC0zMzYsNyArMzM2LDcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QoQWxnZWJyYUVsZW1lbnQpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZlswXSBvciBzZWxmWzFdIG9yIHNlbGZbMl0gb3Ig c2VsZlszXQorIAorLSAgICBjZGVmIF9kb19wcmludChzZWxmLCB4LCB5LCB6LCB3KSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfZG9fcHJpbnQoc2VsZiwgeCwgeSwgeiwgdyk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFVzZWQgaW50ZXJuYWxseSBieSB0aGUgcHJpbnQgZnVuY3Rpb24uCisgCitAQCAt Mzg1LDcgKzM4NSw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3Ry YWN0KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X2RvX3ByaW50KHNlbGZbMF0sIHNlbGZbMV0sIHNlbGZbMl0sIHNlbGZbM10pCisgCistICAgIGNw ZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBD b21wYXJpbmcgZWxlbWVudHMuCisgCitAQCAtNDEzLDcgKzQxMyw3IEBAIGNkZWYgY2xhc3MgUXVh dGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYWN0KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAg ICAgICAgICAgcmV0dXJuIHJlcworICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgMCkK KyAKKy0gICAgY3BkZWYgY29uanVnYXRlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb25q dWdhdGUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29uanVnYXRl IG9mIHRoZSBxdWF0ZXJuaW9uOiBpZiBgXFx0aGV0YSA9IHggKyB5aSArIHpqICsgd2tgLAorICAg ICAgICAgcmV0dXJuIGB4IC0geWkgLSB6aiAtIHdrYDsgdGhhdCBpcywgcmV0dXJuIHRoZXRhLnJl ZHVjZWRfdHJhY2UoKSAtIHRoZXRhLgorQEAgLTQzNyw3ICs0MzcsNyBAQCBjZGVmIGNsYXNzIFF1 YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmFjdChBbGdlYnJhRWxlbWVudCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIChzZWxm WzBdLCAtc2VsZlsxXSwgLXNlbGZbMl0sIC1zZWxmWzNdKSwgY2hlY2s9RmFsc2UpCisgCistICAg IGNwZGVmIHJlZHVjZWRfdHJhY2Uoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlZHVjZWRf dHJhY2Uoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmVkdWNlZCB0 cmFjZSBvZiBzZWxmOiBpZiBgXFx0aGV0YSA9IHggKyB5aSArIHpqICsKKyAgICAgICAgIHdrYCwg dGhlbiBgXFx0aGV0YWAgaGFzIHJlZHVjZWQgdHJhY2UgYDJ4YC4KK0BAIC00NTIsNyArNDUyLDcg QEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QoQWxnZWJyYUVs ZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gMipzZWxmWzBdCisgCistICAg IGNwZGVmIHJlZHVjZWRfbm9ybShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVkdWNlZF9u b3JtKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJlZHVjZWQgbm9y bSBvZiBzZWxmOiBpZiBgXFx0aGV0YSA9IHggKyB5aSArIHpqICsKKyAgICAgICAgIHdrYCwgdGhl biBgXFx0aGV0YWAgaGFzIHJlZHVjZWQgbm9ybSBgeF4yIC0gYXleMiAtIGJ6XjIgKworQEAgLTUw OSw3ICs1MDksNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmFj dChBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB+c2VsZi5y ZWR1Y2VkX25vcm0oKSAqIHNlbGYuY29uanVnYXRlKCkKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNl bGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVt ZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gbGVmdCpzZWxmLCB3aGVy ZSBsZWZ0IGlzIGluIHRoZSBiYXNlIHJpbmcuCisgCitAQCAtNTI0LDcgKzUyNCw3IEBAIGNkZWYg Y2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYWN0KEFsZ2VicmFFbGVtZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVu dCwgKGxlZnQqc2VsZlswXSwgbGVmdCpzZWxmWzFdLCBsZWZ0KnNlbGZbMl0sIGxlZnQqc2VsZlsz XSksIGNoZWNrPUZhbHNlKQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdo dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHNlbGYqcmlnaHQsIHdoZXJlIHJpZ2h0IGlzIGlu IHRoZSBiYXNlIHJpbmcuCisgCitAQCAtNTM5LDcgKzUzOSw3IEBAIGNkZWYgY2xhc3MgUXVhdGVy bmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYWN0KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwgKHNlbGZbMF0q cmlnaHQsIHNlbGZbMV0qcmlnaHQsIHNlbGZbMl0qcmlnaHQsIHNlbGZbM10qcmlnaHQpLCBjaGVj az1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biBxdW90aWVudCBvZiBzZWxmIGJ5IHJpZ2h0LgorIAorQEAgLTc5NCw3ICs3OTQsNyBAQCBjZGVm IGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9nZW5lcmljKFF1YXRlcm5pb25BbGdlYnJh RWxlbWVudF9hYnN0cmFjdCk6CisgICAgICAgICByZXR1cm4gKHVucGlja2xlX1F1YXRlcm5pb25B bGdlYnJhRWxlbWVudF9nZW5lcmljX3YwLAorICAgICAgICAgICAgICAgICAoc2VsZi5fcGFyZW50 LCAoc2VsZi54LCBzZWxmLnksIHNlbGYueiwgc2VsZi53KSkpCisgCistICAgIGNwZGVmIF9hZGRf KHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHNlbGYgYW5kIF9yaWdo dC4KKyAKK0BAIC04MTAsNyArODEwLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVs ZW1lbnRfZ2VuZXJpYyhRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QpOgorICAgICAg ICAgIyBUT0RPIC0tIG1ha2UgdGhpcywgZXRjLiB1c2UgX19uZXdfXworICAgICAgICAgcmV0dXJu IFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9nZW5lcmljKHNlbGYuX3BhcmVudCwgKHNlbGYueCAr IHJpZ2h0LngsIHNlbGYueSArIHJpZ2h0LnksIHNlbGYueiArIHJpZ2h0LnosIHNlbGYudyArIHJp Z2h0LncpLCBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBkaWZmZXJlbmNlIG9mIHNlbGYgYW5kIF9yaWdodC4KKyAKK0BA IC04MjUsNyArODI1LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfZ2Vu ZXJpYyhRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QpOgorICAgICAgICAgY2RlZiBR dWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfZ2VuZXJpYyByaWdodCA9IF9yaWdodAorICAgICAgICAg cmV0dXJuIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9nZW5lcmljKHNlbGYuX3BhcmVudCwgKHNl bGYueCAtIHJpZ2h0LngsIHNlbGYueSAtIHJpZ2h0LnksIHNlbGYueiAtIHJpZ2h0LnosIHNlbGYu dyAtIHJpZ2h0LncpLCBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgX3Jp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHNlbGYgYW5kIF9yaWdodC4KKyAK K0BAIC05ODksNyArOTg5LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRf cmF0aW9uYWxfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3QKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIGJvb2wobXB6X3NnbihzZWxmLngpIG9yIG1wel9zZ24oc2VsZi55 KSBvciBtcHpfc2duKHNlbGYueikgb3IgbXB6X3NnbihzZWxmLncpKQorIAorLSAgICBjcGRlZiBf cmljaGNtcF8oc2VsZiwgX3JpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmlj aGNtcF8oc2VsZiwgX3JpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21w YXJlIHR3byBxdWF0ZXJuaW9ucy4KKyAKK0BAIC0xMTUwLDcgKzExNTAsNyBAQCBjZGVmIGNsYXNz IFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9yYXRpb25hbF9maWVsZChRdWF0ZXJuaW9uQWxnZWJy YUVsZW1lbnRfYWJzdAorICAgICAgICAgcmV0dXJuICh1bnBpY2tsZV9RdWF0ZXJuaW9uQWxnZWJy YUVsZW1lbnRfcmF0aW9uYWxfZmllbGRfdjAsCisgICAgICAgICAgICAgICAgIChzZWxmLl9wYXJl bnQsIChzZWxmWzBdLCBzZWxmWzFdLCBzZWxmWzJdLCBzZWxmWzNdKSkpCisgCistICAgIGNwZGVm IF9hZGRfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9y aWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMjA2LDcg KzEyMDYsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9yYXRpb25hbF9m aWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdAorICAgICAgICAgbXB6X3NldChyZXN1 bHQuYiwgc2VsZi5iKQorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBfc3Vi XyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTI0Nyw3ICsxMjQ3 LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfcmF0aW9uYWxfZmllbGQo UXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3QKKyAgICAgICAgIG1wel9zZXQocmVzdWx0LmIs IHNlbGYuYikKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgX211bF8oc2Vs ZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEzNjAsNyArMTM2MCw3IEBA IGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X3JhdGlvbmFsX2ZpZWxkKFF1YXRl cm5pb25BbGdlYnJhRWxlbWVudF9hYnN0CisgCisgICAgICAgICByZXR1cm4gcmVzdWx0CisgCist ICAgIGNwZGVmIHJlZHVjZWRfbm9ybShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVkdWNl ZF9ub3JtKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJlZHVjZWQg bm9ybSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xNDAxLDcgKzE0MDEsNyBAQCBjZGVmIGNsYXNzIFF1 YXRlcm5pb25BbGdlYnJhRWxlbWVudF9yYXRpb25hbF9maWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVs ZW1lbnRfYWJzdAorIAorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBjb25q dWdhdGUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbmp1Z2F0ZShzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb25qdWdhdGUgb2YgdGhpcyBxdWF0ZXJuaW9u LgorIAorQEAgLTE0MzIsNyArMTQzMiw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFF bGVtZW50X3JhdGlvbmFsX2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0CisgCisg ICAgICAgICByZXR1cm4gcmVzdWx0CisgCistICAgIGNwZGVmIHJlZHVjZWRfdHJhY2Uoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIHJlZHVjZWRfdHJhY2Uoc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgcmVkdWNlZCB0cmFjZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0x NDU2LDcgKzE0NTYsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9yYXRp b25hbF9maWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdAorICAgICAgICAgbXBxX2Nh bm9uaWNhbGl6ZShyZXN1bHQudmFsdWUpCisgICAgICAgICByZXR1cm4gcmVzdWx0CisgCistICAg IGNkZWYgaW5saW5lIGNhbm9uaWNhbGl6ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxp bmUgY2Fub25pY2FsaXplKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBQdXQgdGhlIHJl cHJlc2VudGF0aW9uIG9mIHRoaXMgcXVhdGVybmlvbiBlbGVtZW50IGludG8KKyAgICAgICAgIHNt YWxsZXN0IGZvcm0uIEZvciBgYSA9ICgxL2QpKHggKyB5aSArIHpqICsgd2spYCB3ZQorQEAgLTE4 MTIsNyArMTgxMiw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X251bWJl cl9maWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhCisgICAgICAgICByZXR1cm4g KHVucGlja2xlX1F1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9udW1iZXJfZmllbGRfdjAsCisgICAg ICAgICAgICAgICAgIChzZWxmLl9wYXJlbnQsIChzZWxmWzBdLCBzZWxmWzFdLCBzZWxmWzJdLCBz ZWxmWzNdKSkpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFk ZCBzZWxmIGFuZCBfcmlnaHQ6CisgCitAQCAtMTg4Niw3ICsxODg2LDcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfbnVtYmVyX2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxl bWVudF9hYnN0cmEKKyAKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgX3N1 Yl8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3QgX3JpZ2h0IGZyb20gc2VsZi4KKyAK K0BAIC0xOTM3LDcgKzE5MzcsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVu dF9udW1iZXJfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYQorIAorICAgICAg ICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBNdWx0aXBseSBzZWxmIGFuZCBfcmlnaHQuCisgCitAQCAtMjA4NSw3ICsyMDg1LDcgQEAg Y2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfbnVtYmVyX2ZpZWxkKFF1YXRlcm5p b25BbGdlYnJhRWxlbWVudF9hYnN0cmEKKyAKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0g ICAgY2RlZiBpbmxpbmUgY2Fub25pY2FsaXplKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlu bGluZSBjYW5vbmljYWxpemUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFB1dCB0aGUg cmVwcmVzZW50YXRpb24gb2YgdGhpcyBxdWF0ZXJuaW9uIGVsZW1lbnQgaW50bworICAgICAgICAg c21hbGxlc3QgZm9ybS4gRm9yIGEgPSBgKDEvZCkoeCArIHlpICsgemogKyB3aylgIHdlCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvYXJpdGgvZnVuY3Rpb25zLnB4ZCBiL3NyYy9zYWdlL2FyaXRoL2Z1 bmN0aW9ucy5weGQKK2luZGV4IDU4YWQxM2EzMGI3Li45ZGRmYzM4YjM4YiAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2FyaXRoL2Z1bmN0aW9ucy5weGQKKysrKyBiL3NyYy9zYWdlL2FyaXRoL2Z1bmN0 aW9ucy5weGQKK0BAIC0xLDMgKzEsMyBAQAorLWNwZGVmIExDTV9saXN0KHYpIG5vZXhjZXB0Cisr Y3BkZWYgTENNX2xpc3QodikKKyAKKy1jZGVmIExDTV9nZW5lcmljKGl0ciwgcmV0KSBub2V4Y2Vw dAorK2NkZWYgTENNX2dlbmVyaWMoaXRyLCByZXQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYXJp dGgvZnVuY3Rpb25zLnB5eCBiL3NyYy9zYWdlL2FyaXRoL2Z1bmN0aW9ucy5weXgKK2luZGV4IDVi ZjE3ZTgxM2I0Li5mMGM3YzAzMjIwZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FyaXRoL2Z1bmN0 aW9ucy5weXgKKysrKyBiL3NyYy9zYWdlL2FyaXRoL2Z1bmN0aW9ucy5weXgKK0BAIC0xMjQsNyAr MTI0LDcgQEAgZGVmIGxjbShhLCBiPU5vbmUpOgorICAgICByYWlzZSBUeXBlRXJyb3IoZiJ1bmFi bGUgdG8gZmluZCBsY20gb2Yge2Ehcn0gYW5kIHtiIXJ9IikKKyAKKyAKKy1jcGRlZiBMQ01fbGlz dCh2KSBub2V4Y2VwdDoKKytjcGRlZiBMQ01fbGlzdCh2KToKKyAgICAgIiIiCisgICAgIFJldHVy biB0aGUgTENNIG9mIGFuIGl0ZXJhYmxlIGBgdmBgLgorIAorQEAgLTIwNiw3ICsyMDYsNyBAQCBj cGRlZiBMQ01fbGlzdCh2KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHoKKyAKKyAKKy1jZGVmIExD TV9nZW5lcmljKGl0ciwgcmV0KSBub2V4Y2VwdDoKKytjZGVmIExDTV9nZW5lcmljKGl0ciwgcmV0 KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgbGVhc3QgY29tbW9uIG11bHRpcGxlIG9mIHRo ZSBlbGVtZW50IGBgcmV0YGAgYW5kIHRoZQorICAgICBlbGVtZW50cyBpbiB0aGUgaXRlcmFibGUg YGBpdHJgYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hcml0aC9tdWx0aV9tb2R1bGFyLnB4ZCBi L3NyYy9zYWdlL2FyaXRoL211bHRpX21vZHVsYXIucHhkCitpbmRleCA2MjUzNGZjZTQzYy4uMzAw YmJmMjkwMDggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hcml0aC9tdWx0aV9tb2R1bGFyLnB4ZAor KysrIGIvc3JjL3NhZ2UvYXJpdGgvbXVsdGlfbW9kdWxhci5weGQKK0BAIC0xNCw3ICsxNCw3IEBA IGNkZWYgY2xhc3MgTXVsdGlNb2R1bGFyQmFzaXNfYmFzZSgpOgorIAorICAgICBjZGVmIG1vZF9p bnQgX25ld19yYW5kb21fcHJpbWUoc2VsZiwgc2V0IGtub3duX3ByaW1lcykgZXhjZXB0IDEKKyAg ICAgY2RlZiBtb2RfaW50IGxhc3RfcHJpbWUoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfcmVh bGxvY190b19uZXdfY291bnQoc2VsZiwgbmV3X2NvdW50KSBub2V4Y2VwdAorKyAgICBjZGVmIF9y ZWFsbG9jX3RvX25ld19jb3VudChzZWxmLCBuZXdfY291bnQpCisgICAgIGNkZWYgaW50IF9leHRl bmRfbW9kdWxpX3RvX2hlaWdodF9jKHNlbGYsIG1wel90IGhlaWdodCkgZXhjZXB0IC0xCisgICAg IGNkZWYgdm9pZCBfcmVmcmVzaF9wcm9kdWN0cyhzZWxmLCBpbnQgc3RhcnQpIG5vZXhjZXB0Cisg ICAgIGNkZWYgdm9pZCBfcmVmcmVzaF9wcm9kKHNlbGYpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvYXJpdGgvbXVsdGlfbW9kdWxhci5weXggYi9zcmMvc2FnZS9hcml0aC9tdWx0aV9t b2R1bGFyLnB5eAoraW5kZXggMWM4MWQ3NTVjYmUuLmY5MjUyNjI0ZWVjIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvYXJpdGgvbXVsdGlfbW9kdWxhci5weXgKKysrKyBiL3NyYy9zYWdlL2FyaXRoL211 bHRpX21vZHVsYXIucHl4CitAQCAtMTAxLDcgKzEwMSw3IEBAIGNkZWYgY2xhc3MgTXVsdGlNb2R1 bGFyQmFzaXNfYmFzZSgpOgorICAgICAgICAgbXB6X2luaXQoc2VsZi5wcm9kdWN0KQorICAgICAg ICAgbXB6X2luaXQoc2VsZi5oYWxmX3Byb2R1Y3QpCisgCistICAgIGNkZWYgX3JlYWxsb2NfdG9f bmV3X2NvdW50KHNlbGYsIG5ld19jb3VudCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3JlYWxsb2Nf dG9fbmV3X2NvdW50KHNlbGYsIG5ld19jb3VudCk6CisgICAgICAgICBzZWxmLm1vZHVsaSA9IDxt b2RfaW50Kj5jaGVja19yZWFsbG9jYXJyYXkoc2VsZi5tb2R1bGksIG5ld19jb3VudCwgc2l6ZW9m KG1vZF9pbnQpKQorICAgICAgICAgc2VsZi5wYXJ0aWFsX3Byb2R1Y3RzID0gPG1wel90Kj5jaGVj a19yZWFsbG9jYXJyYXkoc2VsZi5wYXJ0aWFsX3Byb2R1Y3RzLCBuZXdfY291bnQsIHNpemVvZiht cHpfdCkpCisgICAgICAgICBzZWxmLkMgPSA8bW9kX2ludCo+Y2hlY2tfcmVhbGxvY2FycmF5KHNl bGYuQywgbmV3X2NvdW50LCBzaXplb2YobW9kX2ludCkpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv YXJpdGgvcG93ZXIucHhkIGIvc3JjL3NhZ2UvYXJpdGgvcG93ZXIucHhkCitpbmRleCAzM2YwNDNl OTU1MS4uNzY1MTI0NWQyZWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hcml0aC9wb3dlci5weGQK KysrKyBiL3NyYy9zYWdlL2FyaXRoL3Bvd2VyLnB4ZAorQEAgLTcsMTIgKzcsMTIgQEAgY3R5cGVk ZWYgZnVzZWQgdWxvbmdfb3Jfb2JqZWN0OgorICAgICBvYmplY3QKKyAKKyAKKy1jcGRlZiBnZW5l cmljX3Bvd2VyKGEsIG4pIG5vZXhjZXB0CistY2RlZiBnZW5lcmljX3Bvd2VyX2xvbmcoYSwgbG9u ZyBuKSBub2V4Y2VwdAorLWNkZWYgZ2VuZXJpY19wb3dlcl9wb3MoYSwgdWxvbmdfb3Jfb2JqZWN0 IG4pIG5vZXhjZXB0ICAjIG4gPiAwCisrY3BkZWYgZ2VuZXJpY19wb3dlcihhLCBuKQorK2NkZWYg Z2VuZXJpY19wb3dlcl9sb25nKGEsIGxvbmcgbikKKytjZGVmIGdlbmVyaWNfcG93ZXJfcG9zKGEs IHVsb25nX29yX29iamVjdCBuKSAgIyBuID4gMAorIAorIAorLWNkZWYgaW5saW5lIGludmVydChh KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBpbnZlcnQoYSk6CisgICAgICIiIgorICAgICBSZXR1 cm4gYGBhXigtMSlgYC4KKyAgICAgIiIiCitAQCAtMjEsNyArMjEsNyBAQCBjZGVmIGlubGluZSBp bnZlcnQoYSkgbm9leGNlcHQ6CisgICAgIHJldHVybiBQeU51bWJlcl9UcnVlRGl2aWRlKHR5cGUo YSkoMSksIGEpCisgCisgCistY2RlZiBpbmxpbmUgb25lKGEpIG5vZXhjZXB0OgorK2NkZWYgaW5s aW5lIG9uZShhKToKKyAgICAgIiIiCisgICAgIFJldHVybiBgYGFeMGBgLgorICAgICAiIiIKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9hcml0aC9wb3dlci5weXggYi9zcmMvc2FnZS9hcml0aC9wb3dl ci5weXgKK2luZGV4IDJiNGNiZDA5OWQxLi5lOWExZjc5NzJlYiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2FyaXRoL3Bvd2VyLnB5eAorKysrIGIvc3JjL3NhZ2UvYXJpdGgvcG93ZXIucHl4CitAQCAt MjAsNyArMjAsNyBAQCBmcm9tIGN5c2lnbmFscy5zaWduYWxzIGNpbXBvcnQgc2lnX2NoZWNrCisg ZnJvbSBzYWdlLmFyaXRoLmxvbmcgY2ltcG9ydCBpbnRlZ2VyX2NoZWNrX2xvbmcKKyAKKyAKKy1j cGRlZiBnZW5lcmljX3Bvd2VyKGEsIG4pIG5vZXhjZXB0OgorK2NwZGVmIGdlbmVyaWNfcG93ZXIo YSwgbik6CisgICAgICIiIgorICAgICBSZXR1cm4gYGFebmAuCisgCitAQCAtODgsNyArODgsNyBA QCBjcGRlZiBnZW5lcmljX3Bvd2VyKGEsIG4pIG5vZXhjZXB0OgorICAgICByZXR1cm4gZ2VuZXJp Y19wb3dlcl9wb3MoYSwgbikKKyAKKyAKKy1jZGVmIGdlbmVyaWNfcG93ZXJfbG9uZyhhLCBsb25n IG4pIG5vZXhjZXB0OgorK2NkZWYgZ2VuZXJpY19wb3dlcl9sb25nKGEsIGxvbmcgbik6CisgICAg ICIiIgorICAgICBBcyBgYGdlbmVyaWNfcG93ZXJgYCBidXQgd2hlcmUgYGBuYGAgaXMgYSBDIGxv bmcuCisgICAgICIiIgorQEAgLTEwMiw3ICsxMDIsNyBAQCBjZGVmIGdlbmVyaWNfcG93ZXJfbG9u ZyhhLCBsb25nIG4pIG5vZXhjZXB0OgorICAgICByZXR1cm4gZ2VuZXJpY19wb3dlcl9wb3MoYSwg dSkKKyAKKyAKKy1jZGVmIGdlbmVyaWNfcG93ZXJfcG9zKGEsIHVsb25nX29yX29iamVjdCBuKSBu b2V4Y2VwdDoKKytjZGVmIGdlbmVyaWNfcG93ZXJfcG9zKGEsIHVsb25nX29yX29iamVjdCBuKToK KyAgICAgIiIiCisgICAgIFJldHVybiBgYV5uYCB3aGVyZSBgbiA+IDBgLgorICAgICAiIiIKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jYWxjdWx1cy9pbnRlcnBvbGF0aW9uLnB4ZCBiL3NyYy9zYWdl L2NhbGN1bHVzL2ludGVycG9sYXRpb24ucHhkCitpbmRleCAyZDcyOTIyODE0OS4uOWQ2MDQ1OWEw M2IgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYWxjdWx1cy9pbnRlcnBvbGF0aW9uLnB4ZAorKysr IGIvc3JjL3NhZ2UvY2FsY3VsdXMvaW50ZXJwb2xhdGlvbi5weGQKK0BAIC04LDUgKzgsNSBAQCBj ZGVmIGNsYXNzIFNwbGluZToKKyAgICAgY2RlZiBpbnQgc3RhcnRlZAorICAgICBjZGVmIG9iamVj dCB2CisgCistICAgIGNkZWYgc3RhcnRfaW50ZXJwKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYg c3RvcF9pbnRlcnAoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBzdGFydF9pbnRlcnAoc2VsZikK KysgICAgY2RlZiBzdG9wX2ludGVycChzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NhbGN1 bHVzL2ludGVycG9sYXRpb24ucHl4IGIvc3JjL3NhZ2UvY2FsY3VsdXMvaW50ZXJwb2xhdGlvbi5w eXgKK2luZGV4IGExMmYzNzJkMTM5Li5jMmFjYWI2NGZkOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2NhbGN1bHVzL2ludGVycG9sYXRpb24ucHl4CisrKysgYi9zcmMvc2FnZS9jYWxjdWx1cy9pbnRl cnBvbGF0aW9uLnB5eAorQEAgLTI0Myw3ICsyNDMsNyBAQCBjZGVmIGNsYXNzIFNwbGluZToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHN0cihzZWxmLnYpCisgCistICAgIGNkZWYgc3Rh cnRfaW50ZXJwKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN0YXJ0X2ludGVycChzZWxmKToK KyAgICAgICAgIGlmIHNlbGYuc3RhcnRlZDoKKyAgICAgICAgICAgICBzaWdfZnJlZShzZWxmLngp CisgICAgICAgICAgICAgc2lnX2ZyZWUoc2VsZi55KQorQEAgLTI3MSw3ICsyNzEsNyBAQCBjZGVm IGNsYXNzIFNwbGluZToKKyAgICAgICAgIGdzbF9zcGxpbmVfaW5pdCAoc2VsZi5zcGxpbmUsIHNl bGYueCwgc2VsZi55LCBuKQorICAgICAgICAgc2VsZi5zdGFydGVkID0gMQorIAorLSAgICBjZGVm IHN0b3BfaW50ZXJwKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN0b3BfaW50ZXJwKHNlbGYp OgorICAgICAgICAgaWYgbm90IHNlbGYuc3RhcnRlZDoKKyAgICAgICAgICAgICByZXR1cm4KKyAg ICAgICAgIHNpZ19mcmVlKHNlbGYueCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYWxjdWx1cy9v ZGUucHl4IGIvc3JjL3NhZ2UvY2FsY3VsdXMvb2RlLnB5eAoraW5kZXggZDdkMGZjMTMzZjguLjA4 MWI0ZjZiZDgzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2FsY3VsdXMvb2RlLnB5eAorKysrIGIv c3JjL3NhZ2UvY2FsY3VsdXMvb2RlLnB5eAorQEAgLTMzLDcgKzMzLDcgQEAgY2RlZiBjbGFzcyBQ eUZ1bmN0aW9uV3JhcHBlcjoKKyAgICAgY2RlZiBvYmplY3QgdGhlX3BhcmFtZXRlcnMKKyAgICAg Y2RlZiBpbnQgeV9uCisgCistICAgIGNkZWYgc2V0X3luKHNlbGYseCkgbm9leGNlcHQ6CisrICAg IGNkZWYgc2V0X3luKHNlbGYseCk6CisgICAgICAgICBzZWxmLnlfbiA9IHgKKyAKKyBjZGVmIGNs YXNzIG9kZV9zeXN0ZW06CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2FsY3VsdXMvcmllbWFubi5w eXggYi9zcmMvc2FnZS9jYWxjdWx1cy9yaWVtYW5uLnB5eAoraW5kZXggMGI4MGEyOWRhNzAuLmE0 Zjk1NDViZmZiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2FsY3VsdXMvcmllbWFubi5weXgKKysr KyBiL3NyYy9zYWdlL2NhbGN1bHVzL3JpZW1hbm4ucHl4CitAQCAtMjkxLDcgKzI5MSw3IEBAIGNk ZWYgY2xhc3MgUmllbWFubl9NYXA6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAiQSBS aWVtYW5uIG9yIEFobGZvcnMgbWFwcGluZyBvZiBhIGZpZ3VyZSB0byB0aGUgdW5pdCBjaXJjbGUu IgorIAorLSAgICBjZGVmIF9nZW5lcmF0ZV90aGV0YV9hcnJheShzZWxmKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfZ2VuZXJhdGVfdGhldGFfYXJyYXkoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEdlbmVyYXRlcyB0aGUgZXNzZW50aWFsIGRhdGEgZm9yIHRoZSBSaWVtYW5uIG1hcCwgcHJp bWFyaWx5IHRoZQorICAgICAgICAgU3plZ8WRIGtlcm5lbCBhbmQgYm91bmRhcnkgY29ycmVzcG9u ZGVuY2UuCitAQCAtNTE1LDcgKzUxNSw3IEBAIGNkZWYgY2xhc3MgUmllbWFubl9NYXA6CisgICAg ICAgICAgICAgcmV0dXJuIG5wLmNvbHVtbl9zdGFjaygKKyAgICAgICAgICAgICAgICAgW3NlbGYu dGsyLCBzZWxmLnRoZXRhX2FycmF5W2JvdW5kYXJ5XV0pLnRvbGlzdCgpCisgCistICAgIGNkZWYg X2dlbmVyYXRlX2ludGVyaW9yX21hcHBlcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZ2Vu ZXJhdGVfaW50ZXJpb3JfbWFwcGVyKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBHZW5l cmF0ZXMgdGhlIGRhdGEgbmVjZXNzYXJ5IHRvIHVzZSB0aGUgOm1ldGg6YHJpZW1hbm5fbWFwYCBm dW5jdGlvbi4KKyAgICAgICAgIEFzIG11Y2ggc2V0dXAgYXMgcG9zc2libGUgaXMgZG9uZSBoZXJl IHRvIG1pbmltaXplIHRoZSBjb21wdXRhdGlvbgorQEAgLTU2OCw3ICs1NjgsNyBAQCBjZGVmIGNs YXNzIFJpZW1hbm5fTWFwOgorICAgICAgICAgY2RlZiBucC5uZGFycmF5W2RvdWJsZSBjb21wbGV4 LCBuZGltPTFdIHBxID0gc2VsZi5jcHNbOixsaXN0KHJhbmdlKE4pKStbMF1dLmZsYXR0ZW4oKQor ICAgICAgICAgc2VsZi5wcmVfcV92ZWN0b3IgPSBwcQorIAorLSAgICBjcGRlZiByaWVtYW5uX21h cChzZWxmLCBDT01QTEVYX1QgcHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByaWVtYW5uX21hcChz ZWxmLCBDT01QTEVYX1QgcHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIFJp ZW1hbm4gbWFwcGluZyBvZiBhIHBvaW50LgorIAorQEAgLTYxOSw3ICs2MTksNyBAQCBjZGVmIGNs YXNzIFJpZW1hbm5fTWFwOgorICAgICAgICAgICAgICAgICBzZWxmLnByZV9xX3ZlY3RvciAtIHB0 MSkKKyAgICAgICAgICAgICByZXR1cm4gLW5wLmRvdChzZWxmLnBfdmVjdG9yLCBxX3ZlY3RvcikK KyAKKy0gICAgY2RlZiBfZ2VuZXJhdGVfaW52ZXJzZV9tYXBwZXIoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX2dlbmVyYXRlX2ludmVyc2VfbWFwcGVyKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBHZW5lcmF0ZXMgdGhlIGRhdGEgbmVjZXNzYXJ5IHRvIHVzZSB0aGUKKyAgICAgICAg IDptZXRoOmBpbnZlcnNlX3JpZW1hbm5fbWFwYCBmdW5jdGlvbi4gQXMgbXVjaCBzZXR1cCBhcyBw b3NzaWJsZSBpcworQEAgLTY1Niw3ICs2NTYsNyBAQCBjZGVmIGNsYXNzIFJpZW1hbm5fTWFwOgor ICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKE4pOgorICAgICAgICAgICAgICAgICBzZWxmLmNv c2FscGhhW2ssIGldID0gY29zKC10aGV0YV9hcnJheVtrLCBpXSkKKyAKKy0gICAgY3BkZWYgaW52 ZXJzZV9yaWVtYW5uX21hcChzZWxmLCBDT01QTEVYX1QgcHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBpbnZlcnNlX3JpZW1hbm5fbWFwKHNlbGYsIENPTVBMRVhfVCBwdCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgaW52ZXJzZSBSaWVtYW5uIG1hcHBpbmcgb2YgYSBwb2ludC4K KyAKK0BAIC03NjQsNyArNzY0LDcgQEAgY2RlZiBjbGFzcyBSaWVtYW5uX01hcDoKKyAgICAgICAg ICAgICAgICAgICAgIHBvaW50c2l6ZT10aGlja25lc3MpCisgICAgICAgICByZXR1cm4gc3VtKHBs b3RzKQorIAorLSAgICBjcGRlZiBjb21wdXRlX29uX2dyaWQoc2VsZiwgcGxvdF9yYW5nZSwgaW50 IHhfcG9pbnRzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29tcHV0ZV9vbl9ncmlkKHNlbGYsIHBs b3RfcmFuZ2UsIGludCB4X3BvaW50cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUg dGhlIFJpZW1hbm4gbWFwIG9uIGEgZ3JpZCBvZiBwb2ludHMuCisgCitAQCAtMTA2MCw3ICsxMDYw LDcgQEAgY2RlZiBjbGFzcyBSaWVtYW5uX01hcDoKKyAgICAgICAgICAgICAoeW1pbiwgeW1heCks b3B0aW9ucykpCisgICAgICAgICByZXR1cm4gZworIAorLWNkZWYgY29tcF9wdChjbGlzdCwgbG9v cD1UcnVlKSBub2V4Y2VwdDoKKytjZGVmIGNvbXBfcHQoY2xpc3QsIGxvb3A9VHJ1ZSk6CisgICAg ICIiIgorICAgICBVdGlsaXR5IGZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhlIGxpc3Qgb2YgY29tcGxl eCBudW1iZXJzCisgICAgIGBgeGRlcml2cyA9IGdldF9kZXJpdmF0aXZlcyh6X3ZhbHVlcywgeHN0 ZXAsIHlzdGVwKVswXWBgIHRvIHRoZSBwbG90dGFibGUKK0BAIC0xMDkwLDcgKzEwOTAsNyBAQCBj ZGVmIGNvbXBfcHQoY2xpc3QsIGxvb3A9VHJ1ZSkgbm9leGNlcHQ6CisgICAgIHJldHVybiBsaXN0 MgorIAorIGNwZGVmIGdldF9kZXJpdmF0aXZlcyhucC5uZGFycmF5W0NPTVBMRVhfVCwgbmRpbT0y XSB6X3ZhbHVlcywgRkxPQVRfVCB4c3RlcCwKKy0gICAgRkxPQVRfVCB5c3RlcCkgbm9leGNlcHQ6 CisrICAgIEZMT0FUX1QgeXN0ZXApOgorICAgICAiIiIKKyAgICAgQ29tcHV0ZXMgdGhlIHIqZV4o SSp0aGV0YSkgZm9ybSBvZiBkZXJpdmF0aXZlcyBmcm9tIHRoZSBncmlkIG9mIHBvaW50cy4gVGhl CisgICAgIGRlcml2YXRpdmVzIGFyZSBjb21wdXRlZCB1c2luZyBxdWljay1hbmQtZGlydHkgdGF5 bG9yIGV4cGFuc2lvbiBhbmQKK0BAIC0xMTQ2LDcgKzExNDYsNyBAQCBjcGRlZiBnZXRfZGVyaXZh dGl2ZXMobnAubmRhcnJheVtDT01QTEVYX1QsIG5kaW09Ml0gel92YWx1ZXMsIEZMT0FUX1QgeHN0 ZXAsCisgCisgY3BkZWYgY29tcGxleF90b19zcGlkZXJ3ZWIobnAubmRhcnJheVtDT01QTEVYX1Qs IG5kaW0gPSAyXSB6X3ZhbHVlcywKKyAgICAgbnAubmRhcnJheVtGTE9BVF9ULCBuZGltID0gMl0g ZHIsIG5wLm5kYXJyYXlbRkxPQVRfVCwgbmRpbSA9IDJdIGR0aGV0YSwKKy0gICAgc3Bva2VzLCBj aXJjbGVzLCByZ2Jjb2xvciwgdGhpY2tuZXNzLCB3aXRoY29sb3IsIG1pbl9tYWcpIG5vZXhjZXB0 OgorKyAgICBzcG9rZXMsIGNpcmNsZXMsIHJnYmNvbG9yLCB0aGlja25lc3MsIHdpdGhjb2xvciwg bWluX21hZyk6CisgICAgICIiIgorICAgICBDb252ZXJ0cyBhIGdyaWQgb2YgY29tcGxleCBudW1i ZXJzIGludG8gYSBtYXRyaXggY29udGFpbmluZyByZ2IgZGF0YQorICAgICBmb3IgdGhlIFJpZW1h bm4gc3BpZGVyd2ViIHBsb3QuCitAQCAtMTI2Myw3ICsxMjYzLDcgQEAgY3BkZWYgY29tcGxleF90 b19zcGlkZXJ3ZWIobnAubmRhcnJheVtDT01QTEVYX1QsIG5kaW0gPSAyXSB6X3ZhbHVlcywKKyAg ICAgcmV0dXJuIHJnYgorIAorIAorLWNwZGVmIGNvbXBsZXhfdG9fcmdiKG5wLm5kYXJyYXlbQ09N UExFWF9ULCBuZGltID0gMl0gel92YWx1ZXMpIG5vZXhjZXB0OgorK2NwZGVmIGNvbXBsZXhfdG9f cmdiKG5wLm5kYXJyYXlbQ09NUExFWF9ULCBuZGltID0gMl0gel92YWx1ZXMpOgorICAgICByIiIi CisgICAgIENvbnZlcnQgZnJvbSBhIChOdW1weSkgYXJyYXkgb2YgY29tcGxleCBudW1iZXJzIHRv IGl0cyBjb3JyZXNwb25kaW5nCisgICAgIG1hdHJpeCBvZiBSR0IgdmFsdWVzLiAgRm9yIGludGVy bmFsIHVzZSBvZiA6bWV0aDpgflJpZW1hbm5fTWFwLnBsb3RfY29sb3JlZGAKK0BAIC0xMzY4LDcg KzEzNjgsNyBAQCBjcGRlZiBjb21wbGV4X3RvX3JnYihucC5uZGFycmF5W0NPTVBMRVhfVCwgbmRp bSA9IDJdIHpfdmFsdWVzKSBub2V4Y2VwdDoKKyAgICAgc2lnX29mZigpCisgICAgIHJldHVybiBy Z2IKKyAKKy1jcGRlZiBhbmFseXRpY19ib3VuZGFyeShGTE9BVF9UIHQsIGludCBuLCBGTE9BVF9U IGVwc2lsb24pIG5vZXhjZXB0OgorK2NwZGVmIGFuYWx5dGljX2JvdW5kYXJ5KEZMT0FUX1QgdCwg aW50IG4sIEZMT0FUX1QgZXBzaWxvbik6CisgICAgICIiIgorICAgICBQcm92aWRlcyBhbiBleGFj dCAoZm9yIG4gPSBpbmZpbml0eSkgUmllbWFubiBib3VuZGFyeQorICAgICBjb3JyZXNwb25kZW5j ZSBmb3IgdGhlIGVsbGlwc2Ugd2l0aCBheGVzIDEgKyBlcHNpbG9uIGFuZCAxIC0gZXBzaWxvbi4g VGhlCitAQCAtMTQxNyw3ICsxNDE3LDcgQEAgY3BkZWYgYW5hbHl0aWNfYm91bmRhcnkoRkxPQVRf VCB0LCBpbnQgbiwgRkxPQVRfVCBlcHNpbG9uKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHJlc3Vs dAorIAorIAorLWNwZGVmIGNhdWNoeV9rZXJuZWwodCwgYXJncykgbm9leGNlcHQ6CisrY3BkZWYg Y2F1Y2h5X2tlcm5lbCh0LCBhcmdzKToKKyAgICAgIiIiCisgICAgIEludGVybWVkaWF0ZSBmdW5j dGlvbiBmb3IgdGhlIGludGVncmF0aW9uIGluIDptZXRoOmB+UmllbWFubl9NYXAuYW5hbHl0aWNf aW50ZXJpb3JgLgorIAorQEAgLTE0NjMsNyArMTQ2Myw3IEBAIGNwZGVmIGNhdWNoeV9rZXJuZWwo dCwgYXJncykgbm9leGNlcHQ6CisgICAgICAgICByZXR1cm4gTm9uZQorIAorIAorLWNwZGVmIGFu YWx5dGljX2ludGVyaW9yKENPTVBMRVhfVCB6LCBpbnQgbiwgRkxPQVRfVCBlcHNpbG9uKSBub2V4 Y2VwdDoKKytjcGRlZiBhbmFseXRpY19pbnRlcmlvcihDT01QTEVYX1QgeiwgaW50IG4sIEZMT0FU X1QgZXBzaWxvbik6CisgICAgICIiIgorICAgICBQcm92aWRlcyBhIG5lYXJseSBleGFjdCBjb21w dXRhdGlvbiBvZiB0aGUgUmllbWFubiBNYXAgb2YgYW4gaW50ZXJpb3IKKyAgICAgcG9pbnQgb2Yg dGhlIGVsbGlwc2Ugd2l0aCBheGVzIDEgKyBlcHNpbG9uIGFuZCAxIC0gZXBzaWxvbi4gSXQgaXMK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL2FjdGlvbi5weGQgYi9zcmMvc2FnZS9j YXRlZ29yaWVzL2FjdGlvbi5weGQKK2luZGV4IGEyMmEzN2NjMjJhLi41ODgzYWRlYmM5NyAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvYWN0aW9uLnB4ZAorKysrIGIvc3JjL3NhZ2Uv Y2F0ZWdvcmllcy9hY3Rpb24ucHhkCitAQCAtOCwxMCArOCwxMCBAQCBjZGVmIGNsYXNzIEFjdGlv bihGdW5jdG9yKToKKyAgICAgY2RlZiByZWFkb25seSBvcAorICAgICBjZGVmIHJlYWRvbmx5IGJp bnQgX2lzX2xlZnQKKyAgICAgY2RlZiBVUworLSAgICBjZGVmIHVuZGVybHlpbmdfc2V0KHNlbGYp IG5vZXhjZXB0CisrICAgIGNkZWYgdW5kZXJseWluZ19zZXQoc2VsZikKKyAKKy0gICAgY2RlZiBf YWN0X2NvbnZlcnQoc2VsZiwgZywgeCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2FjdF8oc2VsZiwg ZywgeCkgbm9leGNlcHQKKysgICAgY2RlZiBfYWN0X2NvbnZlcnQoc2VsZiwgZywgeCkKKysgICAg Y3BkZWYgX2FjdF8oc2VsZiwgZywgeCkKKyAKKyAKKyBjZGVmIGNsYXNzIEludmVyc2VBY3Rpb24o QWN0aW9uKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL2FjdGlvbi5weXggYi9z cmMvc2FnZS9jYXRlZ29yaWVzL2FjdGlvbi5weXgKK2luZGV4IDZjNmVhMDcyMDUzLi45ZjAwYjEz YzJlMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvYWN0aW9uLnB5eAorKysrIGIv c3JjL3NhZ2UvY2F0ZWdvcmllcy9hY3Rpb24ucHl4CitAQCAtNjYsNyArNjYsNyBAQCBmcm9tIHNh Z2UuY2F0ZWdvcmllcyBpbXBvcnQgaG9tc2V0CisgZnJvbSB3ZWFrcmVmIGltcG9ydCByZWYKKyAK KyAKKy1jZGVmIGlubGluZSBjYXRlZ29yeSh4KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBjYXRl Z29yeSh4KToKKyAgICAgdHJ5OgorICAgICAgICAgcmV0dXJuIHguY2F0ZWdvcnkoKQorICAgICBl eGNlcHQgQXR0cmlidXRlRXJyb3I6CitAQCAtMTc4LDcgKzE3OCw3IEBAIGNkZWYgY2xhc3MgQWN0 aW9uKEZ1bmN0b3IpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJy b3IoImFjdGlvbnMgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIDEgb3IgMiBhcmd1bWVudHMiKQorIAor LSAgICBjZGVmIF9hY3RfY29udmVydChzZWxmLCBnLCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBf YWN0X2NvbnZlcnQoc2VsZiwgZywgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIExldCBgYGdg YCBhY3Qgb24gYGB4YGAgdW5kZXIgdGhpcyBhY3Rpb24sIGNvbnZlcnRpbmcgYGBnYGAKKyAgICAg ICAgIGFuZCBgYHhgYCB0byB0aGUgY29ycmVjdCBwYXJlbnRzIGZpcnN0LgorQEAgLTE5MCw3ICsx OTAsNyBAQCBjZGVmIGNsYXNzIEFjdGlvbihGdW5jdG9yKToKKyAgICAgICAgICAgICB4ID0gVSh4 KQorICAgICAgICAgcmV0dXJuIHNlbGYuX2FjdF8oZywgeCkKKyAKKy0gICAgY3BkZWYgX2FjdF8o c2VsZiwgZywgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIHgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBMZXQgYGBnYGAgYWN0IG9uIGBgeGBgIHVuZGVyIHRoaXMgYWN0 aW9uLgorIAorQEAgLTI1MSw3ICsyNTEsNyBAQCBjZGVmIGNsYXNzIEFjdGlvbihGdW5jdG9yKToK KyAgICAgZGVmIGFjdG9yKHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYuRworIAorLSAgICBj ZGVmIHVuZGVybHlpbmdfc2V0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHVuZGVybHlpbmdf c2V0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGUgc2V0IG9uIHdoaWNoIHRoZSBh Y3RvciBhY3RzIChpdCBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIGNvZG9tYWluIG9mCisgICAgICAg ICB0aGUgYWN0aW9uKS4KK0BAIC00MTAsNyArNDEwLDcgQEAgY2RlZiBjbGFzcyBJbnZlcnNlQWN0 aW9uKEFjdGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAodHlwZShzZWxmKSwg KHNlbGYuX2FjdGlvbiwpKQorIAorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCB4KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgeCk6CisgICAgICAgICBpZiBzZWxmLlNfcHJl Y29tcG9zaXRpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgeCA9IHNlbGYuU19wcmVjb21w b3NpdGlvbih4KQorICAgICAgICAgcmV0dXJuIHNlbGYuX2FjdGlvbi5fYWN0Xyh+ZywgeCkKK0BA IC00OTgsNyArNDk4LDcgQEAgY2RlZiBjbGFzcyBQcmVjb21wb3NlZEFjdGlvbihBY3Rpb24pOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gKHR5cGUoc2VsZiksIChzZWxmLl9hY3Rpb24s IHNlbGYuR19wcmVjb21wb3NpdGlvbiwgc2VsZi5TX3ByZWNvbXBvc2l0aW9uKSkKKyAKKy0gICAg Y3BkZWYgX2FjdF8oc2VsZiwgZywgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RfKHNlbGYs IGcsIHgpOgorICAgICAgICAgaWYgc2VsZi5HX3ByZWNvbXBvc2l0aW9uIGlzIG5vdCBOb25lOgor ICAgICAgICAgICAgIGcgPSBzZWxmLkdfcHJlY29tcG9zaXRpb24uX2NhbGxfKGcpCisgICAgICAg ICBpZiBzZWxmLlNfcHJlY29tcG9zaXRpb24gaXMgbm90IE5vbmU6CitAQCAtNTY5LDcgKzU2OSw3 IEBAIGNkZWYgY2xhc3MgQWN0aW9uRW5kb21vcnBoaXNtKE1vcnBoaXNtKToKKyAgICAgICAgIHNl bGYuX2FjdGlvbiA9IGFjdGlvbgorICAgICAgICAgc2VsZi5fZyA9IGcKKyAKKy0gICAgY2RlZiBk aWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9z bG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBwaWNrbGluZyBh bmQgY29weWluZy4KKyAKK0BAIC01OTEsNyArNTkxLDcgQEAgY2RlZiBjbGFzcyBBY3Rpb25FbmRv bW9ycGhpc20oTW9ycGhpc20pOgorICAgICAgICAgc2xvdHNbJ19nJ10gPSBzZWxmLl9nCisgICAg ICAgICByZXR1cm4gc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3Qg X3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Ns b3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBwaWNrbGluZyBhbmQgY29w eWluZy4KKyAKK0BAIC02MTIsNyArNjEyLDcgQEAgY2RlZiBjbGFzcyBBY3Rpb25FbmRvbW9ycGhp c20oTW9ycGhpc20pOgorICAgICAgICAgc2VsZi5fZyA9IF9zbG90c1snX2cnXQorICAgICAgICAg TW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgIHJldHVybiBzZWxmLl9hY3Rpb24uX2FjdF8oc2VsZi5fZywgeCkK KyAKKyAgICAgZGVmIF9yZXByXyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29y aWVzL2NhdGVnb3J5X2N5X2hlbHBlci5weGQgYi9zcmMvc2FnZS9jYXRlZ29yaWVzL2NhdGVnb3J5 X2N5X2hlbHBlci5weGQKK2luZGV4IGM3YmYzNzU5NzEyLi5mNTBjZTRlODIyNiAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvY2F0ZWdvcnlfY3lfaGVscGVyLnB4ZAorKysrIGIvc3Jj L3NhZ2UvY2F0ZWdvcmllcy9jYXRlZ29yeV9jeV9oZWxwZXIucHhkCitAQCAtMSw3ICsxLDcgQEAK Ky1jcGRlZiB0dXBsZSBfc29ydF91bmlxKGNhdGVnb3JpZXMpIG5vZXhjZXB0CisrY3BkZWYgdHVw bGUgX3NvcnRfdW5pcShjYXRlZ29yaWVzKQorIGNkZWYgY2xhc3MgQXhpb21Db250YWluZXIoZGlj dCk6CisgICAgIHBhc3MKKy1jcGRlZiB0dXBsZSBjYW5vbmljYWxpemVfYXhpb21zKEF4aW9tQ29u dGFpbmVyIGFsbF9heGlvbXMsIGF4aW9tcykgbm9leGNlcHQKKytjcGRlZiB0dXBsZSBjYW5vbmlj YWxpemVfYXhpb21zKEF4aW9tQ29udGFpbmVyIGFsbF9heGlvbXMsIGF4aW9tcykKKyBmcm9tIHNh Z2UubWlzYy5jbGFzc2NhbGxfbWV0YWNsYXNzIGNpbXBvcnQgQ2xhc3NjYWxsTWV0YWNsYXNzCist Y3BkZWYgdHVwbGUgX2ZsYXR0ZW5fY2F0ZWdvcmllcyhjYXRlZ29yaWVzLCBDbGFzc2NhbGxNZXRh Y2xhc3MgSm9pbkNhdGVnb3J5KSBub2V4Y2VwdAorLWNwZGVmIHR1cGxlIGpvaW5fYXNfdHVwbGUo dHVwbGUgY2F0ZWdvcmllcywgdHVwbGUgYXhpb21zLCB0dXBsZSBpZ25vcmVfYXhpb21zKSBub2V4 Y2VwdAorK2NwZGVmIHR1cGxlIF9mbGF0dGVuX2NhdGVnb3JpZXMoY2F0ZWdvcmllcywgQ2xhc3Nj YWxsTWV0YWNsYXNzIEpvaW5DYXRlZ29yeSkKKytjcGRlZiB0dXBsZSBqb2luX2FzX3R1cGxlKHR1 cGxlIGNhdGVnb3JpZXMsIHR1cGxlIGF4aW9tcywgdHVwbGUgaWdub3JlX2F4aW9tcykKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL2NhdGVnb3J5X2N5X2hlbHBlci5weXggYi9zcmMv c2FnZS9jYXRlZ29yaWVzL2NhdGVnb3J5X2N5X2hlbHBlci5weXgKK2luZGV4IDZlZDM4ZjRkMDBl Li5kMzg1OTIyMWMxMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvY2F0ZWdvcnlf Y3lfaGVscGVyLnB5eAorKysrIGIvc3JjL3NhZ2UvY2F0ZWdvcmllcy9jYXRlZ29yeV9jeV9oZWxw ZXIucHl4CitAQCAtMjEsNyArMjEsNyBAQCBBVVRIT1I6CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisgIyAgU29ydGluZworIAorLWNwZGVmIGlubGluZSB0dXBsZSBj YXRlZ29yeV9zb3J0X2tleShvYmplY3QgY2F0ZWdvcnkpIG5vZXhjZXB0OgorK2NwZGVmIGlubGlu ZSB0dXBsZSBjYXRlZ29yeV9zb3J0X2tleShvYmplY3QgY2F0ZWdvcnkpOgorICAgICAiIiIKKyAg ICAgUmV0dXJuIGBgY2F0ZWdvcnkuX2NtcF9rZXlgYC4KKyAKK0BAIC0zOCw3ICszOCw3IEBAIGNw ZGVmIGlubGluZSB0dXBsZSBjYXRlZ29yeV9zb3J0X2tleShvYmplY3QgY2F0ZWdvcnkpIG5vZXhj ZXB0OgorICAgICAiIiIKKyAgICAgcmV0dXJuIGNhdGVnb3J5Ll9jbXBfa2V5CisgCistY3BkZWYg dHVwbGUgX3NvcnRfdW5pcShjYXRlZ29yaWVzKSBub2V4Y2VwdDoKKytjcGRlZiB0dXBsZSBfc29y dF91bmlxKGNhdGVnb3JpZXMpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBjYXRlZ29yaWVz IGFmdGVyIHNvcnRpbmcgdGhlbSBhbmQgcmVtb3ZpbmcgcmVkdW5kYW50IGNhdGVnb3JpZXMuCisg CitAQCAtNzIsNyArNzIsNyBAQCBjcGRlZiB0dXBsZSBfc29ydF91bmlxKGNhdGVnb3JpZXMpIG5v ZXhjZXB0OgorICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2F0ZWdvcnkpCisgICAgIHJldHVy biB0dXBsZShyZXN1bHQpCisgCistY3BkZWYgdHVwbGUgX2ZsYXR0ZW5fY2F0ZWdvcmllcyhjYXRl Z29yaWVzLCBDbGFzc2NhbGxNZXRhY2xhc3MgSm9pbkNhdGVnb3J5KSBub2V4Y2VwdDoKKytjcGRl ZiB0dXBsZSBfZmxhdHRlbl9jYXRlZ29yaWVzKGNhdGVnb3JpZXMsIENsYXNzY2FsbE1ldGFjbGFz cyBKb2luQ2F0ZWdvcnkpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSB0dXBsZSBvZiBjYXRl Z29yaWVzIGluIGBgY2F0ZWdvcmllc2BgLCB3aGlsZQorICAgICBmbGF0dGVuaW5nIGpvaW4gY2F0 ZWdvcmllcy4KK0BAIC0xMTYsNyArMTE2LDcgQEAgY2RlZiBiaW50IGlzX3N1cGVyY2F0ZWdvcnlf b2ZfZG9uZShuZXdfY2F0LCBkaWN0IGRvbmUpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVy biBUcnVlCisgICAgIHJldHVybiBGYWxzZQorIAorLWNwZGVmIHR1cGxlIGpvaW5fYXNfdHVwbGUo dHVwbGUgY2F0ZWdvcmllcywgdHVwbGUgYXhpb21zLCB0dXBsZSBpZ25vcmVfYXhpb21zKSBub2V4 Y2VwdDoKKytjcGRlZiB0dXBsZSBqb2luX2FzX3R1cGxlKHR1cGxlIGNhdGVnb3JpZXMsIHR1cGxl IGF4aW9tcywgdHVwbGUgaWdub3JlX2F4aW9tcyk6CisgICAgICIiIgorICAgICBIZWxwZXIgZm9y IDptZXRoOmB+c2FnZS5jYXRlZ29yaWVzLmNhdGVnb3J5LkNhdGVnb3J5LmpvaW5gLgorIAorQEAg LTI2Nyw3ICsyNjcsNyBAQCBjZGVmIGNsYXNzIEF4aW9tQ29udGFpbmVyKGRpY3QpOgorICAgICAg ICAgcmV0dXJuIHNlbGYKKyAKKyAKKy1jcGRlZiBpbmxpbmUgZ2V0X2F4aW9tX2luZGV4KEF4aW9t Q29udGFpbmVyIGFsbF9heGlvbXMsIHN0ciBheGlvbSkgbm9leGNlcHQ6CisrY3BkZWYgaW5saW5l IGdldF9heGlvbV9pbmRleChBeGlvbUNvbnRhaW5lciBhbGxfYXhpb21zLCBzdHIgYXhpb20pOgor ICAgICAiIiIKKyAgICAgSGVscGVyIGZ1bmN0aW9uOiBSZXR1cm4gdGhlIHJhbmsgb2YgYW4gYXhp b20uCisgCitAQCAtMjg2LDcgKzI4Niw3IEBAIGNwZGVmIGlubGluZSBnZXRfYXhpb21faW5kZXgo QXhpb21Db250YWluZXIgYWxsX2F4aW9tcywgc3RyIGF4aW9tKSBub2V4Y2VwdDoKKyAgICAgcmV0 dXJuICg8ZGljdD5hbGxfYXhpb21zKVtheGlvbV0KKyAKKyAKKy1jcGRlZiB0dXBsZSBjYW5vbmlj YWxpemVfYXhpb21zKEF4aW9tQ29udGFpbmVyIGFsbF9heGlvbXMsIGF4aW9tcykgbm9leGNlcHQ6 CisrY3BkZWYgdHVwbGUgY2Fub25pY2FsaXplX2F4aW9tcyhBeGlvbUNvbnRhaW5lciBhbGxfYXhp b21zLCBheGlvbXMpOgorICAgICByIiIiCisgICAgIENhbm9uaWNhbGl6ZSBhIHNldCBvZiBheGlv bXMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9leGFtcGxlcy9zZW1pZ3Jv dXBzX2N5dGhvbi5weXggYi9zcmMvc2FnZS9jYXRlZ29yaWVzL2V4YW1wbGVzL3NlbWlncm91cHNf Y3l0aG9uLnB5eAoraW5kZXggMmI3Yjc2YzAwZTMuLmI0NTZjMjg2OGY4IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvY2F0ZWdvcmllcy9leGFtcGxlcy9zZW1pZ3JvdXBzX2N5dGhvbi5weXgKKysrKyBi L3NyYy9zYWdlL2NhdGVnb3JpZXMvZXhhbXBsZXMvc2VtaWdyb3Vwc19jeXRob24ucHl4CitAQCAt ODUsNyArODUsNyBAQCBjZGVmIGNsYXNzIExlZnRaZXJvU2VtaWdyb3VwRWxlbWVudChFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIExlZnRaZXJvU2VtaWdyb3VwRWxlbWVu dCwgKHNlbGYuX3BhcmVudCwgc2VsZi5fdmFsdWUpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhz ZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYs IG90aGVyLCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitA QCAtMTAwLDcgKzEwMCw3IEBAIGNkZWYgY2xhc3MgTGVmdFplcm9TZW1pZ3JvdXBFbGVtZW50KEVs ZW1lbnQpOgorICAgICAgICAgcmlnaHQgPSAoPExlZnRaZXJvU2VtaWdyb3VwRWxlbWVudD5vdGhl cikuX3ZhbHVlCisgICAgICAgICByZXR1cm4gUHlPYmplY3RfUmljaENvbXBhcmUobGVmdCwgcmln aHQsIG9wKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBM RVM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvbWFwLnB4ZCBiL3NyYy9z YWdlL2NhdGVnb3JpZXMvbWFwLnB4ZAoraW5kZXggOThjNzRkODYyZTQuLjA0NjdiODcyMzUzIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tYXAucHhkCisrKysgYi9zcmMvc2FnZS9j YXRlZ29yaWVzL21hcC5weGQKK0BAIC04LDEyICs4LDEyIEBAIGNkZWYgY2xhc3MgTWFwKEVsZW1l bnQpOgorICAgICAjIGEgcm91Z2ggbWVhc3VyZSBvZiB0aGUgY29zdCBvZiB1c2luZyB0aGlzIG1v cnBoaXNtIGluIHRoZSBjb2VyY2lvbiBzeXN0ZW0uCisgICAgICMgMTAgYnkgZGVmYXVsdCwgMTAw IGlmIGEgRGVmYXVsdENvZXJjaW9uTW9ycGhpc20sIDEwMDAwIGlmIGluZXhhY3QuCisgCistICAg IGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0KSBub2V4Y2VwdAorLSAgICBjZGVmIGRpY3Qg X2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxm LCBkaWN0KQorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpCisgCisgICAgICMgdGhl c2UgbWV0aG9kcyByZXF1aXJlIHggaXMgYW4gZWxlbWVudCBvZiBkb21haW4sIGFuZCByZXR1cm5z IGFuIGVsZW1lbnQgd2l0aCBwYXJlbnQgY29kb21haW4KKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeCkgbm9leGNlcHQKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Mo c2VsZiwgeCwgYXJncz0qLCBrd2RzPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfKHNlbGYsIHgpCisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgs IGFyZ3M9Kiwga3dkcz0qKQorIAorICAgICBjZGVmIHB1YmxpYyBkb21haW4gICAgIyB3aWxsIGJl IGVpdGhlciBhIHdlYWtyZWYgb3IgYSBjb25zdGFudCBtYXAKKyAgICAgY2RlZiBwdWJsaWMgY29k b21haW4gICMgd2lsbCBiZSBhIGNvbnN0YW50IG1hcAorQEAgLTIzLDcgKzIzLDcgQEAgY2RlZiBj bGFzcyBNYXAoRWxlbWVudCk6CisgICAgIGNkZWYgcHVibGljIF9yZXByX3R5cGVfc3RyCisgICAg IGNkZWYgcHVibGljIGJpbnQgX2lzX2NvZXJjaW9uCisgCistICAgIGNwZGVmIF9wb3dfaW50KHNl bGYsIG4pIG5vZXhjZXB0CisrICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pCisgCisgCisgY2Rl ZiBjbGFzcyBTZWN0aW9uKE1hcCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9t YXAucHl4IGIvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tYXAucHl4CitpbmRleCAyOTYxM2YxNjI4NS4u YjQxYjc1MzhjNTkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21hcC5weXgKKysr KyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvbWFwLnB5eAorQEAgLTM4OSw3ICszODksNyBAQCBjZGVm IGNsYXNzIE1hcChFbGVtZW50KToKKyAgICAgICAgIHNlbGYuZG9tYWluID0gQ29uc3RhbnRGdW5j dGlvbihEKQorICAgICAgICAgc2VsZi5fcGFyZW50ID0gaG9tc2V0LkhvbShELCBDLCBzZWxmLl9j YXRlZ29yeV9mb3IpCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IHNsb3Rz KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3Qgc2xvdHMpOgor ICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdmFyaW91cyBhdHRyaWJ1dGVzIG9mIHRoaXMgbWFw IHRvIGltcGxlbWVudCB1bnBpY2tsaW5nLgorIAorQEAgLTQ1MSw3ICs0NTEsNyBAQCBjZGVmIGNs YXNzIE1hcChFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fdXBkYXRlX3Ns b3RzKF9zbG90cykKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGEgZGljdCB3aXRoIGF0dHJpYnV0ZXMgdG8gcGlja2xlIGFuZCBjb3B5IHRo aXMgbWFwLgorICAgICAgICAgIiIiCitAQCAtODE2LDcgKzgxNiw3IEBAIGNkZWYgY2xhc3MgTWFw KEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9jYWxsXyh4KQorICAgICAgICAg cmV0dXJuIHNlbGYuX2NhbGxfd2l0aF9hcmdzKHgsIGFyZ3MsIGt3ZHMpCisgCistICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9j YWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2FsbCBtZXRob2Qgd2l0aCBh IHNpbmdsZSBhcmd1bWVudCwgbm90IGltcGxlbWVudGVkIGluIHRoZSBiYXNlIGNsYXNzLgorIAor QEAgLTgzMSw3ICs4MzEsNyBAQCBjZGVmIGNsYXNzIE1hcChFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcih0eXBlKHNlbGYpKQorIAorLSAg ICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwg YXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENhbGwgbWV0aG9kIHdp dGggbXVsdGlwbGUgYXJndW1lbnRzLCBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2UgY2xhc3Mu CisgCitAQCAtMTIyMiw3ICsxMjIyLDcgQEAgY2RlZiBjbGFzcyBNYXAoRWxlbWVudCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IodHlwZShzZWxmKSkK KyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9w b3dfaW50KHNlbGYsIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAt MTM2OCw3ICsxMzY4LDcgQEAgY2RlZiBjbGFzcyBTZWN0aW9uKE1hcCk6CisgICAgICAgICBNYXAu X19pbml0X18oc2VsZiwgSG9tKG1hcC5jb2RvbWFpbigpLCBtYXAuZG9tYWluKCksIFNldHNXaXRo UGFydGlhbE1hcHMoKSkpCisgICAgICAgICBzZWxmLl9pbnZlcnNlID0gbWFwICAgICMgVE9ETzog VXNlIHRoaXMgYXR0cmlidXRlIHNvbWV3aGVyZSEKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9z bG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBwaWNrbGluZyBhbmQgY29weWluZy4K KyAKK0BAIC0xMzg3LDcgKzEzODcsNyBAQCBjZGVmIGNsYXNzIFNlY3Rpb24oTWFwKToKKyAgICAg ICAgIHNsb3RzWydfaW52ZXJzZSddID0gc2VsZi5faW52ZXJzZQorICAgICAgICAgcmV0dXJuIHNs b3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNl cHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgcGlja2xpbmcgYW5kIGNvcHlpbmcuCisgCitAQCAt MTU3Niw3ICsxNTc2LDcgQEAgY2RlZiBjbGFzcyBGb3JtYWxDb21wb3NpdGVNYXAoTWFwKToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIEZvcm1hbENvbXBvc2l0ZU1hcChzZWxmLnBhcmVu dCgpLCBbZi5fX2NvcHlfXygpIGZvciBmIGluIHNlbGYuX19saXN0XSkKKyAKKy0gICAgY2RlZiBf dXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBk YXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXNl ZCBpbiBwaWNrbGluZyBhbmQgY29weWluZy4KKyAKK0BAIC0xNTk1LDcgKzE1OTUsNyBAQCBjZGVm IGNsYXNzIEZvcm1hbENvbXBvc2l0ZU1hcChNYXApOgorICAgICAgICAgc2VsZi5fX2xpc3QgPSBf c2xvdHNbJ19fbGlzdCddCisgICAgICAgICBNYXAuX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMp CisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFVzZWQg aW4gcGlja2xpbmcgYW5kIGNvcHlpbmcuCisgCitAQCAtMTcwOCw3ICsxNzA4LDcgQEAgY2RlZiBj bGFzcyBGb3JtYWxDb21wb3NpdGVNYXAoTWFwKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX19saXN0W2ldCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ2FsbCB3aXRoIGEgc2luZ2xlIGFyZ3VtZW50CisgCitAQCAtMTcyNiw3 ICsxNzI2LDcgQEAgY2RlZiBjbGFzcyBGb3JtYWxDb21wb3NpdGVNYXAoTWFwKToKKyAgICAgICAg ICAgICB4ID0gZi5fY2FsbF8oeCkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBr d2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkaXRpb25hbCBhcmd1bWVudHMgYXJl IG9ubHkgcGFzc2VkIHRvIHRoZSBsYXN0IGFwcGxpZWQgbWFwLgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2NhdGVnb3JpZXMvbW9ycGhpc20ucHl4IGIvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tb3Jw aGlzbS5weXgKK2luZGV4IGUzNmMzMmIzNGJjLi4wZTQ4MDVlZjFiNCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2NhdGVnb3JpZXMvbW9ycGhpc20ucHl4CisrKysgYi9zcmMvc2FnZS9jYXRlZ29yaWVz L21vcnBoaXNtLnB5eAorQEAgLTM0NSw3ICszNDUsNyBAQCBjZGVmIGNsYXNzIE1vcnBoaXNtKE1h cCk6CisgICAgICAgICAgICAgZGVmaW5pdGlvbiA9IHJlcHIoc2VsZikKKyAgICAgICAgIHJldHVy biBoYXNoKChkb21haW4sIGNvZG9tYWluLCBkZWZpbml0aW9uKSkKKyAKKy0gICAgY3BkZWYgX3Jp Y2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNt cF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdlbmVyaWMg Y29tcGFyaXNvbiBmdW5jdGlvbiBmb3IgbW9ycGhpc21zLgorIAorQEAgLTQ1NCw3ICs0NTQsNyBA QCBjZGVmIGNsYXNzIEZvcm1hbENvZXJjaW9uTW9ycGhpc20oTW9ycGhpc20pOgorICAgICBkZWYg X3JlcHJfdHlwZShzZWxmKToKKyAgICAgICAgIHJldHVybiAiQ29lcmNpb24iCisgCistICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgIHJldHVybiBzZWxmLl9jb2RvbWFpbi5jb2VyY2Uo eCkKKyAKKyBjZGVmIGNsYXNzIENhbGxNb3JwaGlzbShNb3JwaGlzbSk6CitAQCAtNDYyLDcgKzQ2 Miw3IEBAIGNkZWYgY2xhc3MgQ2FsbE1vcnBoaXNtKE1vcnBoaXNtKToKKyAgICAgZGVmIF9yZXBy X3R5cGUoc2VsZik6CisgICAgICAgICByZXR1cm4gIkNhbGwiCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgIHJldHVybiBzZWxmLl9jb2RvbWFpbih4KQorIAorIGNkZWYgY2xh c3MgSWRlbnRpdHlNb3JwaGlzbShNb3JwaGlzbSk6CitAQCAtNDc2LDEwICs0NzYsMTAgQEAgY2Rl ZiBjbGFzcyBJZGVudGl0eU1vcnBoaXNtKE1vcnBoaXNtKToKKyAgICAgZGVmIF9yZXByX3R5cGUo c2VsZik6CisgICAgICAgICByZXR1cm4gIklkZW50aXR5IgorIAorLSAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgeCk6CisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dp dGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg RWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAg ICAgICBpZiBub3QgYXJncyBhbmQgbm90IGt3ZHM6CisgICAgICAgICAgICAgcmV0dXJuIHgKKyAg ICAgICAgIGNkZWYgUGFyZW50IEMgPSBzZWxmLl9jb2RvbWFpbgorQEAgLTUwMCw3ICs1MDAsNyBA QCBjZGVmIGNsYXNzIElkZW50aXR5TW9ycGhpc20oTW9ycGhpc20pOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByZXR1cm4gbGVmdAorIAorLSAgICBjcGRlZiBfcG93X2ludChzZWxmLCBu KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbik6CisgICAgICAgICByZXR1 cm4gc2VsZgorIAorICAgICBkZWYgX19pbnZlcnRfXyhzZWxmKToKK0BAIC01ODcsNyArNTg3LDcg QEAgY2RlZiBjbGFzcyBTZXRNb3JwaGlzbShNb3JwaGlzbSk6CisgICAgICAgICBNb3JwaGlzbS5f X2luaXRfXyhzZWxmLCBwYXJlbnQpCisgICAgICAgICBzZWxmLl9mdW5jdGlvbiA9IGZ1bmN0aW9u CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgSU5Q VVQ6CisgCitAQCAtNjA4LDcgKzYwOCw3IEBAIGNkZWYgY2xhc3MgU2V0TW9ycGhpc20oTW9ycGhp c20pOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZnVuY3Rpb24oeCkKKyAK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dk cz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYs IHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBFeHRyYSBhcmd1 bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgZGVmaW5pbmcgZnVuY3Rpb24uCisgCitAQCAtNjMwLDcg KzYzMCw3IEBAIGNkZWYgY2xhc3MgU2V0TW9ycGhpc20oTW9ycGhpc20pOgorICAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlVuZGVybHlpbmcg bWFwICVzIGRvZXMgbm90IGFjY2VwdCBhZGRpdGlvbmFsIGFyZ3VtZW50cyIgJSB0eXBlKHNlbGYu X2Z1bmN0aW9uKSkKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSU5QVVQ6CisgCitAQCAtNjUyLDcgKzY1Miw3IEBAIGNkZWYgY2xhc3MgU2V0TW9ycGhp c20oTW9ycGhpc20pOgorICAgICAgICAgc2xvdHNbJ19mdW5jdGlvbiddID0gc2VsZi5fZnVuY3Rp b24KKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2Vs ZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwg ZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBJTlBVVDoKKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9jb2RpbmcvY29kZWNhbi9jb2RlY2FuLnB4ZCBiL3NyYy9zYWdlL2NvZGlu Zy9jb2RlY2FuL2NvZGVjYW4ucHhkCitpbmRleCBiNzY2MDhkNjhlMy4uMjc5Njg4ZDIzMzMgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9jb2RpbmcvY29kZWNhbi9jb2RlY2FuLnB4ZAorKysrIGIvc3Jj L3NhZ2UvY29kaW5nL2NvZGVjYW4vY29kZWNhbi5weGQKK0BAIC0xNywyMCArMTcsMjAgQEAgY2Rl ZiBjbGFzcyBJbm5lckdyb3VwOgorICAgICBjZGVmIGlubGluZSBpbnQgZ2V0X3JlcChzZWxmLCBp bnQgcG9zKSBub2V4Y2VwdAorICAgICBjZGVmIGlubGluZSBpbnQgam9pbl9yb3dzKHNlbGYsIGlu dCByZXAxLCBpbnQgcmVwMikgbm9leGNlcHQKKyAKKy0gICAgY2RlZiBJbm5lckdyb3VwIF9uZXdf YyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIElubmVyR3JvdXAgX25ld19jKHNlbGYpCisgICAg IGNkZWYgdm9pZCBjb3B5X2Zyb20oc2VsZiwgSW5uZXJHcm91cCBvdGhlcikgbm9leGNlcHQKKyAg ICAgY2RlZiBiaW50IGhhc19zZW1pbGluZWFyX2FjdGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBj ZGVmIG1pbmltaXplX2J5X3Jvd19tdWx0KHNlbGYsIEZyZWVNb2R1bGVFbGVtZW50IHYpIG5vZXhj ZXB0CisrICAgIGNkZWYgbWluaW1pemVfYnlfcm93X211bHQoc2VsZiwgRnJlZU1vZHVsZUVsZW1l bnQgdikKKyAgICAgY2RlZiBtaW5pbWl6ZV9tYXRyaXhfY29sKHNlbGYsIG9iamVjdCBtLCBpbnQg cG9zLCBsaXN0IGZpeGVkX21pbmltaXplZF9jb2xzLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYmludCAqZ3JvdXBfY2hhbmdlZCkgbm9leGNlcHQKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJpbnQgKmdyb3VwX2NoYW5nZWQpCisgICAgIGNkZWYgdm9pZCBnYXVzc2lhbl9l bGltaW5hdGlvbihzZWxmLCBvYmplY3QgbSwgaW50IHBvcywgaW50IHBpdm90LCBsaXN0IG56X3Bv cykgbm9leGNlcHQKKyAgICAgY2RlZiB2b2lkIG1pbmltaXplX2J5X2Zyb2Jlbml1cyhzZWxmLCBv YmplY3QgdiwgaW50ICphcHBsaWVkX2Zyb2IsIGludCAqc3RhYl9wb3cpIG5vZXhjZXB0CisgCist ICAgIGNkZWYgU2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24gZ2V0X3RyYW5zcG9ydGVyKHNlbGYp IG5vZXhjZXB0CisrICAgIGNkZWYgU2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24gZ2V0X3RyYW5z cG9ydGVyKHNlbGYpCisgCisgICAgIGNkZWYgYmludCBoYXNfc2VtaWxpbmVhcl9hY3Rpb24oc2Vs Zikgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50IGdldF9mcm9iX3BvdyhzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBjb2x1bW5fYmxvY2tzKHNlbGYsIG1hdCkgbm9leGNlcHQKKysgICAgY3BkZWYg Y29sdW1uX2Jsb2NrcyhzZWxmLCBtYXQpCisgCisgY2RlZiBjbGFzcyBQYXJ0aXRpb25SZWZpbmVt ZW50TGluZWFyQ29kZShQYXJ0aXRpb25SZWZpbmVtZW50X2dlbmVyaWMpOgorICAgICBjZGVmIGlu dCBfaywgX3EKK0BAIC01OCw1ICs1OCw1IEBAIGNkZWYgY2xhc3MgUGFydGl0aW9uUmVmaW5lbWVu dExpbmVhckNvZGUoUGFydGl0aW9uUmVmaW5lbWVudF9nZW5lcmljKToKKyAgICAgY2RlZiBiaW50 IF9oeXBfcmVmaW5lKHNlbGYsIGJpbnQgKmNoYW5nZWRfcGFydGl0aW9uKSBub2V4Y2VwdAorIAor ICAgICAjIHNvbWUgYWRkaXRpb25hbCBtZXRob2RzCistICAgIGNkZWYgX2NvbXB1dGVfZ3JvdXBf ZWxlbWVudChzZWxmLCBTZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbiB0cmFucywgc3RyIGFsZ29y aXRobV90eXBlKSBub2V4Y2VwdAorLSAgICBjZGVmIF9pbml0X3BvaW50X2h5cGVycGxhbmVfaW5j aWRlbmNlKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgX2NvbXB1dGVfZ3JvdXBfZWxlbWVudChz ZWxmLCBTZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbiB0cmFucywgc3RyIGFsZ29yaXRobV90eXBl KQorKyAgICBjZGVmIF9pbml0X3BvaW50X2h5cGVycGxhbmVfaW5jaWRlbmNlKHNlbGYpCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvY29kaW5nL2NvZGVjYW4vY29kZWNhbi5weXggYi9zcmMvc2FnZS9j b2RpbmcvY29kZWNhbi9jb2RlY2FuLnB5eAoraW5kZXggMjVmZGZhOGU1YjEuLjg5YTA0ZDYxNDMz IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29kaW5nL2NvZGVjYW4vY29kZWNhbi5weXgKKysrKyBi L3NyYy9zYWdlL2NvZGluZy9jb2RlY2FuL2NvZGVjYW4ucHl4CitAQCAtMjIxLDcgKzIyMSw3IEBA IGNkZWYgY2xhc3MgSW5uZXJHcm91cDoKKyAgICAgICAgIHNlbGYucGVybXV0YXRpb25hbF9vbmx5 ID0gb3RoZXIucGVybXV0YXRpb25hbF9vbmx5CisgICAgICAgICBPUF9jb3B5X2Zyb21fdG8ob3Ro ZXIucm93X3BhcnRpdGlvbiwgc2VsZi5yb3dfcGFydGl0aW9uKQorIAorLSAgICBjZGVmIG1pbmlt aXplX2J5X3Jvd19tdWx0KHNlbGYsIEZyZWVNb2R1bGVFbGVtZW50IHcpIG5vZXhjZXB0OgorKyAg ICBjZGVmIG1pbmltaXplX2J5X3Jvd19tdWx0KHNlbGYsIEZyZWVNb2R1bGVFbGVtZW50IHcpOgor ICAgICAgICAgciIiIgorICAgICAgICAgV2Ugc3VwcG9zZSBgdiBcaW4gXEdGe3F9XmtgIGFuZCB0 aGUgZW50cmllcyBgdl9pID0gMGAgZm9yIGFsbAorICAgICAgICAgYGBpID49IHNlbGYucmFua2Bg LgorQEAgLTI0OSw3ICsyNDksNyBAQCBjZGVmIGNsYXNzIElubmVyR3JvdXA6CisgICAgICAgICBy ZXR1cm4gZCwgdgorIAorICAgICBjZGVmIG1pbmltaXplX21hdHJpeF9jb2woc2VsZiwgb2JqZWN0 IG0sIGludCBwb3MsIGxpc3QgZml4ZWRfbWluaW1pemVkX2NvbHMsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiaW50ICpncm91cF9jaGFuZ2VkKSBub2V4Y2VwdDoKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJpbnQgKmdyb3VwX2NoYW5nZWQpOgorICAgICAgICAgciIiIgor ICAgICAgICAgTWluaW1pemUgdGhlIGNvbHVtbiBhdCBwb3NpdGlvbiBgYHBvc2BgIG9mIHRoZSBt YXRyaXggYGBtYGAgYnkgdGhlCisgICAgICAgICBhY3Rpb24gb2YgYGBzZWxmYGAuIGBgbWBgIHNo b3VsZCBoYXZlIG5vIHplcm8gY29sdW1uLiBgYHNlbGZgYCBpcyBzZXQgdG8KK0BAIC0zNDcsNyAr MzQ3LDcgQEAgY2RlZiBjbGFzcyBJbm5lckdyb3VwOgorICAgICAgICAgaWYgcGl2b3QgIT0gc2Vs Zi5yYW5rOgorICAgICAgICAgICAgIG0uc3dhcF9yb3dzKHNlbGYucmFuaywgcGl2b3QpCisgCist ICAgIGNkZWYgSW5uZXJHcm91cCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgSW5u ZXJHcm91cCBfbmV3X2Moc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBNYWtlIGEgbmV3 IGNvcHkgb2YgYGBzZWxmYGAuCisgICAgICAgICAiIiIKK0BAIC0zNTgsNyArMzU4LDcgQEAgY2Rl ZiBjbGFzcyBJbm5lckdyb3VwOgorICAgICAgICAgcmVzLnBlcm11dGF0aW9uYWxfb25seSA9IHNl bGYucGVybXV0YXRpb25hbF9vbmx5CisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNkZWYg U2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24gZ2V0X3RyYW5zcG9ydGVyKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjZGVmIFNlbWltb25vbWlhbFRyYW5zZm9ybWF0aW9uIGdldF90cmFuc3BvcnRlcihz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZ3JvdXAgZWxlbWVudCB3 ZSBoYXZlIGFwcGxpZWQuIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBpZgorICAgICAgICAgd2UgcGFz c2VkIGFuIGVsZW1lbnQgaW4KK0BAIC00MzEsNyArNDMxLDcgQEAgY2RlZiBjbGFzcyBJbm5lckdy b3VwOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5mcm9iX3BvdworIAorLSAg ICBjcGRlZiBjb2x1bW5fYmxvY2tzKHNlbGYsIG1hdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNv bHVtbl9ibG9ja3Moc2VsZiwgbWF0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIExldCBgYG1h dGBgIGJlIGEgbWF0cml4IHdoaWNoIGlzIHN0YWJpbGl6ZWQgYnkgYGBzZWxmYGAgaGF2aW5nIG5v IHplcm8KKyAgICAgICAgIGNvbHVtbnMuIFdlIGtub3cgdGhhdCBmb3IgZWFjaCBjb2x1bW4gb2Yg YGBtYXRgYCB0aGVyZSBpcyBhIHVuaXF1ZWx5CitAQCAtNjQ2LDcgKzY0Niw3IEBAIGNkZWYgY2xh c3MgUGFydGl0aW9uUmVmaW5lbWVudExpbmVhckNvZGUoUGFydGl0aW9uUmVmaW5lbWVudF9nZW5l cmljKToKKyAgICAgICAgICAgICBzZWxmLl9hdXRvbV9ncm91cF9nZW5lcmF0b3JzLmFwcGVuZCh0 cmFuc3BfaW52ICogeCAqIHNlbGYuX3RyYW5zcG9ydGVyKQorICAgICAgICAgICAgIHNlbGYuX2lu bmVyX2dyb3VwX3N0YWJpbGl6ZXJfb3JkZXIgKj0gSW50ZWdlcihGLmRlZ3JlZSgpIC8gcmVtYWlu aW5nX2lubmVyX2dyb3VwLmdldF9mcm9iX3BvdygpKQorIAorLSAgICBjZGVmIF9jb21wdXRlX2dy b3VwX2VsZW1lbnQoc2VsZiwgU2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24gdHJhbnMsIHN0ciBh bGdvcml0aG1fdHlwZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2NvbXB1dGVfZ3JvdXBfZWxlbWVu dChzZWxmLCBTZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbiB0cmFucywgc3RyIGFsZ29yaXRobV90 eXBlKToKKyAgICAgICAgICIiIgorICAgICAgICAgQXBwbHkgYGB0cmFuc2BgIHRvIGBgc2VsZi5f cm9vdF9tYXRyaXhgYCBhbmQgbWluaW1pemUgdGhpcyBtYXRyaXgKKyAgICAgICAgIGNvbHVtbiBi eSBjb2x1bW4gdW5kZXIgdGhlIGlubmVyIG1pbmltaXphdGlvbi4gVGhlIGFjdGlvbiBpcworQEAg LTczOCw3ICs3MzgsNyBAQCBjZGVmIGNsYXNzIFBhcnRpdGlvblJlZmluZW1lbnRMaW5lYXJDb2Rl KFBhcnRpdGlvblJlZmluZW1lbnRfZ2VuZXJpYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLl9pbm5lcl9ncm91cF9zdGFiaWxpemVyX29yZGVyCisgCistICAgIGNkZWYgX2lu aXRfcG9pbnRfaHlwZXJwbGFuZV9pbmNpZGVuY2Uoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg X2luaXRfcG9pbnRfaHlwZXJwbGFuZV9pbmNpZGVuY2Uoc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBDb21wdXRlIGEgc2V0IG9mIGNvZGV3b3JkcyBgV2Agb2YgYENgIChnZW5lcmF0ZWQg Ynkgc2VsZikgd2hpY2ggaXMgY29tcGF0aWJsZQorICAgICAgICAgd2l0aCB0aGUgZ3JvdXAgYWN0 aW9uLCBpLmUuIGlmIHdlIHN0YXJ0IHdpdGggc29tZSBvdGhlciBjb2RlIGAoZyxccGkpQ2AKK0BA IC0xMDQ1LDcgKzEwNDUsNyBAQCBjZGVmIGNsYXNzIFBhcnRpdGlvblJlZmluZW1lbnRMaW5lYXJD b2RlKFBhcnRpdGlvblJlZmluZW1lbnRfZ2VuZXJpYyk6CisgICAgICAgICAgICAgc2VsZi5faHlw X3BhcnQuZGVwdGggLT0gMQorICAgICAgICAgcmV0dXJuIHJldF92YWxbMF0KKyAKKy0gICAgY2Rl ZiB0dXBsZSBfc3RvcmVfc3RhdGVfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHR1cGxlIF9z dG9yZV9zdGF0ZV8oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBTdG9yZSB0aGUgY3Vy cmVudCBzdGF0ZSBvZiB0aGUgbm9kZSB0byBhIHR1cGxlLCBzdWNoIHRoYXQgaXQgY2FuIGJlCisg ICAgICAgICByZXN0b3JlZCBieSA6bWV0aDpgX3Jlc3RvcmVfc3RhdGVfYC4KK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9jb21iaW5hdC9jb21iaW5hdF9jeXRob24ucHhkIGIvc3JjL3NhZ2UvY29tYmlu YXQvY29tYmluYXRfY3l0aG9uLnB4ZAoraW5kZXggZGZhZmU0NWY1ODkuLjQwY2FlMDBhNzgxIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvY29tYmluYXRfY3l0aG9uLnB4ZAorKysrIGIv c3JjL3NhZ2UvY29tYmluYXQvY29tYmluYXRfY3l0aG9uLnB4ZAorQEAgLTEsNSArMSw1IEBACisg ZnJvbSBzYWdlLmxpYnMuZ21wLmFsbCBjaW1wb3J0IG1wel90CisgCistY2RlZiBtcHpfc3Rpcmxp bmdfczIobXB6X3QgcywgdW5zaWduZWQgbG9uZyBuLCB1bnNpZ25lZCBsb25nIGspIG5vZXhjZXB0 CisrY2RlZiBtcHpfc3RpcmxpbmdfczIobXB6X3QgcywgdW5zaWduZWQgbG9uZyBuLCB1bnNpZ25l ZCBsb25nIGspCisgCistY2RlZiBsaXN0IGNvbnZlcnQoUHlfc3NpemVfdCogZiwgUHlfc3NpemVf dCBuKSBub2V4Y2VwdAorK2NkZWYgbGlzdCBjb252ZXJ0KFB5X3NzaXplX3QqIGYsIFB5X3NzaXpl X3QgbikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9jb21iaW5hdF9jeXRob24ucHl4 IGIvc3JjL3NhZ2UvY29tYmluYXQvY29tYmluYXRfY3l0aG9uLnB5eAoraW5kZXggM2I4ZmI3YWVm YTMuLjQyMTk5NDM5NGMyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvY29tYmluYXRf Y3l0aG9uLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvY29tYmluYXRfY3l0aG9uLnB5eAor QEAgLTM4LDcgKzM4LDcgQEAgY2RlZiB2b2lkIG1wel9hZGRtdWxfYWx0KG1wel90IHMsIG1wel90 IHQsIG1wel90IHUsIHVuc2lnbmVkIGxvbmcgcGFyaXR5KSBub2V4Y2UKKyAgICAgICAgIG1wel9h ZGRtdWwocywgdCwgdSkKKyAKKyAKKy1jZGVmIG1wel9zdGlybGluZ19zMihtcHpfdCBzLCB1bnNp Z25lZCBsb25nIG4sIHVuc2lnbmVkIGxvbmcgaykgbm9leGNlcHQ6CisrY2RlZiBtcHpfc3Rpcmxp bmdfczIobXB6X3QgcywgdW5zaWduZWQgbG9uZyBuLCB1bnNpZ25lZCBsb25nIGspOgorICAgICAi IiIKKyAgICAgU2V0IHMgPSBTKG4saykgd2hlcmUgUyhuLGspIGRlbm90ZXMgYSBTdGlybGluZyBu dW1iZXIgb2YgdGhlCisgICAgIHNlY29uZCBraW5kLgorQEAgLTI4MCw3ICsyODAsNyBAQCBkZWYg cGVyZmVjdF9tYXRjaGluZ3NfaXRlcmF0b3IoUHlfc3NpemVfdCBuKToKKyAgICAgc2lnX2ZyZWUo ZikKKyAKKyAKKy1jZGVmIGxpc3QgY29udmVydChQeV9zc2l6ZV90KiBmLCBQeV9zc2l6ZV90IG4p IG5vZXhjZXB0OgorK2NkZWYgbGlzdCBjb252ZXJ0KFB5X3NzaXplX3QqIGYsIFB5X3NzaXplX3Qg bik6CisgICAgICIiIgorICAgICBDb252ZXJ0IGEgbGlzdCBgYGZgYCByZXByZXNlbnRpbmcgYSBm aXhlZC1wb2ludCBmcmVlIGludm9sdXRpb24KKyAgICAgdG8gYSBzZXQgcGFydGl0aW9uLgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL2xldHRlcnMucHhkIGIvc3JjL3Nh Z2UvY29tYmluYXQvY3J5c3RhbHMvbGV0dGVycy5weGQKK2luZGV4IGU0NzNhMDJkYzI0Li40Zjhl MjVkYTQxMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL2xldHRlcnMu cHhkCisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9sZXR0ZXJzLnB4ZAorQEAgLTUs MzggKzUsMzggQEAgY2RlZiBjbGFzcyBMZXR0ZXIoRWxlbWVudCk6CisgCisgY2RlZiBjbGFzcyBF bXB0eUxldHRlcihFbGVtZW50KToKKyAgICAgY2RlZiByZWFkb25seSBzdHIgdmFsdWUKKy0gICAg Y3BkZWYgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYgZihzZWxmLCBpbnQgaSkg bm9leGNlcHQKKysgICAgY3BkZWYgZShzZWxmLCBpbnQgaSkKKysgICAgY3BkZWYgZihzZWxmLCBp bnQgaSkKKyAgICAgY3BkZWYgaW50IGVwc2lsb24oc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgICAg IGNwZGVmIGludCBwaGkoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBDcnlz dGFsX29mX2xldHRlcnNfdHlwZV9BX2VsZW1lbnQoTGV0dGVyKToKKy0gICAgY3BkZWYgTGV0dGVy IGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBp KSBub2V4Y2VwdAorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkKKysgICAgY3BkZWYg TGV0dGVyIGYoc2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBlcHNpbG9uKHNlbGYsIGludCBp KSBub2V4Y2VwdAorICAgICBjcGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2VwdAorIAor IGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfQl9lbGVtZW50KExldHRlcik6Cist ICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBMZXR0 ZXIgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwgaW50 IGkpCisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKQorICAgICBjcGRlZiBpbnQgZXBz aWxvbihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50IHBoaShzZWxmLCBpbnQg aSkgbm9leGNlcHQKKyAKKyBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBlX0NfZWxl bWVudChMZXR0ZXIpOgorLSAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQK Ky0gICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisrICAgIGNwZGVmIExl dHRlciBlKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSkKKyAg ICAgY3BkZWYgaW50IGVwc2lsb24oc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgICAgIGNwZGVmIGlu dCBwaGkoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xl dHRlcnNfdHlwZV9EX2VsZW1lbnQoTGV0dGVyKToKKy0gICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwg aW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKSBub2V4Y2Vw dAorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkKKysgICAgY3BkZWYgTGV0dGVyIGYo c2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBlcHNpbG9uKHNlbGYsIGludCBpKSBub2V4Y2Vw dAorICAgICBjcGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2VwdAorIAorIGNkZWYgY2xh c3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfR19lbGVtZW50KExldHRlcik6CistICAgIGNwZGVm IExldHRlciBlKHNlbGYsIGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBMZXR0ZXIgZihzZWxm LCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwgaW50IGkpCisrICAg IGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKQorICAgICBjcGRlZiBpbnQgZXBzaWxvbihzZWxm LCBpbnQgaSkgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50IHBoaShzZWxmLCBpbnQgaSkgbm9leGNl cHQKKyAKK0BAIC00NiwzMyArNDYsMzMgQEAgY2RlZiBjbGFzcyBMZXR0ZXJUdXBsZShFbGVtZW50 KToKKyAgICAgY3BkZWYgaW50IHBoaShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKyAKKyBjZGVmIGNs YXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBlX0U2X2VsZW1lbnQoTGV0dGVyVHVwbGUpOgorLSAg ICBjcGRlZiBMZXR0ZXJUdXBsZSBlKHNlbGYsIGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBM ZXR0ZXJUdXBsZSBmKHNlbGYsIGludCBpKSBub2V4Y2VwdAorKyAgICBjcGRlZiBMZXR0ZXJUdXBs ZSBlKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBmKHNlbGYsIGludCBpKQor IAorIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfRTZfZWxlbWVudF9kdWFsKExl dHRlclR1cGxlKToKKy0gICAgY3BkZWYgTGV0dGVyVHVwbGUgbGlmdChzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBMZXR0ZXJUdXBsZSByZXRyYWN0KHNlbGYsIExldHRlclR1cGxlIHApIG5vZXhj ZXB0CistICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAg IGNwZGVmIExldHRlclR1cGxlIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisrICAgIGNwZGVmIExl dHRlclR1cGxlIGxpZnQoc2VsZikKKysgICAgY3BkZWYgTGV0dGVyVHVwbGUgcmV0cmFjdChzZWxm LCBMZXR0ZXJUdXBsZSBwKQorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBlKHNlbGYsIGludCBpKQor KyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBmKHNlbGYsIGludCBpKQorIAorIGNkZWYgY2xhc3MgQ3J5 c3RhbF9vZl9sZXR0ZXJzX3R5cGVfRTdfZWxlbWVudChMZXR0ZXJUdXBsZSk6CistICAgIGNwZGVm IExldHRlclR1cGxlIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlclR1 cGxlIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisrICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2Vs ZiwgaW50IGkpCisrICAgIGNwZGVmIExldHRlclR1cGxlIGYoc2VsZiwgaW50IGkpCisgCisgY2Rl ZiBjbGFzcyBCS0tMZXR0ZXIoTGV0dGVyKToKKy0gICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwgaW50 IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKSBub2V4Y2VwdAor KyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkKKysgICAgY3BkZWYgTGV0dGVyIGYoc2Vs ZiwgaW50IGkpCisgCisgY2RlZiBjbGFzcyBRdWVlckxldHRlcl9lbGVtZW50KExldHRlcik6Cist ICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBMZXR0 ZXIgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwgaW50 IGkpCisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKQorICAgICBjcGRlZiBpbnQgZXBz aWxvbihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50IHBoaShzZWxmLCBpbnQg aSkgbm9leGNlcHQKKyAKKyBjZGVmIGNsYXNzIExldHRlcldyYXBwZWQoRWxlbWVudCk6CisgICAg IGNkZWYgcmVhZG9ubHkgRWxlbWVudCB2YWx1ZQorLSAgICBjcGRlZiB0dXBsZSBfdG9fdHVwbGUo c2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgTGV0dGVyV3JhcHBlZCBlKHNlbGYsIGludCBpKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBMZXR0ZXJXcmFwcGVkIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0 CisrICAgIGNwZGVmIHR1cGxlIF90b190dXBsZShzZWxmKQorKyAgICBjcGRlZiBMZXR0ZXJXcmFw cGVkIGUoc2VsZiwgaW50IGkpCisrICAgIGNwZGVmIExldHRlcldyYXBwZWQgZihzZWxmLCBpbnQg aSkKKyAgICAgY3BkZWYgaW50IGVwc2lsb24oc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgICAgIGNw ZGVmIGludCBwaGkoc2VsZiwgaW50IGkpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv Y29tYmluYXQvY3J5c3RhbHMvbGV0dGVycy5weXggYi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFs cy9sZXR0ZXJzLnB5eAoraW5kZXggMzY4ZGNlM2E5ZmQuLmY1NGE0NzA1MDQ3IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvbGV0dGVycy5weXgKKysrKyBiL3NyYy9zYWdl L2NvbWJpbmF0L2NyeXN0YWxzL2xldHRlcnMucHl4CitAQCAtNDY0LDcgKzQ2NCw3IEBAIGNkZWYg Y2xhc3MgTGV0dGVyKEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2Vs Zi52YWx1ZQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIGBgbGVmdGBgIGNvbXBhcmVzIHdp dGggYGByaWdodGBgIGJhc2VkIG9uIGBgb3BgYC4KKyAKK0BAIC01ODUsNyArNTg1LDcgQEAgY2Rl ZiBjbGFzcyBFbXB0eUxldHRlcihFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIGhhc2goc2VsZi52YWx1ZSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0 LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGlu dCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBgYFRydWVgYCBpZiBgYGxlZnRg YCBjb21wYXJlcyB3aXRoIGBgcmlnaHRgYCBiYXNlZCBvbiBgYG9wYGAuCisgCitAQCAtNjI1LDcg KzYyNSw3IEBAIGNkZWYgY2xhc3MgRW1wdHlMZXR0ZXIoRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQud2VpZ2h0X2xhdHRpY2VfcmVhbGl6YXRpb24o KS56ZXJvKCkKKyAKKy0gICAgY3BkZWYgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGUoc2VsZiwgaW50IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGVfaWAg b2YgYGBzZWxmYGAgd2hpY2ggaXMgYGBOb25lYGAuCisgCitAQCAtNjM2LDcgKzYzNiw3IEBAIGNk ZWYgY2xhc3MgRW1wdHlMZXR0ZXIoRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBOb25lCisgCistICAgIGNwZGVmIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBmKHNlbGYsIGludCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBmX2lg IG9mIGBgc2VsZmBgIHdoaWNoIGlzIGBgTm9uZWBgLgorIAorQEAgLTcxMSw3ICs3MTEsNyBAQCBj ZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBlX0FfZWxlbWVudChMZXR0ZXIpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50LndlaWdodF9sYXR0aWNlX3Jl YWxpemF0aW9uKCkubW9ub21pYWwoc2VsZi52YWx1ZS0xKQorIAorLSAgICBjcGRlZiBMZXR0ZXIg ZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBp KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBlX2lgIG9u IGBgc2VsZmBgLgorIAorQEAgLTcyNiw3ICs3MjYsNyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2Zf bGV0dGVyc190eXBlX0FfZWxlbWVudChMZXR0ZXIpOgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBmX2lgIG9uIGBgc2VsZmBgLgorIAorQEAg LTgwNCw3ICs4MDQsNyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBlX0JfZWxl bWVudChMZXR0ZXIpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5f cGFyZW50LndlaWdodF9sYXR0aWNlX3JlYWxpemF0aW9uKCkoMCkKKyAKKy0gICAgY3BkZWYgTGV0 dGVyIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBp bnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBgZV9p YCBvbiBgYHNlbGZgYC4KKyAKK0BAIC04MzMsNyArODMzLDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFs X29mX2xldHRlcnNfdHlwZV9CX2VsZW1lbnQoTGV0dGVyKToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbnMgb2YgYGZfaWAgb24gYGBzZWxmYGAuCisg CitAQCAtOTQyLDcgKzk0Miw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVf Q19lbGVtZW50KExldHRlcik6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBz ZWxmLl9wYXJlbnQud2VpZ2h0X2xhdHRpY2VfcmVhbGl6YXRpb24oKSgwKQorIAorLSAgICBjcGRl ZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBlKHNl bGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9m IGBlX2lgIG9uIGBgc2VsZmBgLgorIAorQEAgLTk2NSw3ICs5NjUsNyBAQCBjZGVmIGNsYXNzIENy eXN0YWxfb2ZfbGV0dGVyc190eXBlX0NfZWxlbWVudChMZXR0ZXIpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBp bnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBmX2lgIG9uIGBgc2VsZmBg LgorIAorQEAgLTEwNDksNyArMTA0OSw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJz X3R5cGVfRF9lbGVtZW50KExldHRlcik6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmLl9wYXJlbnQud2VpZ2h0X2xhdHRpY2VfcmVhbGl6YXRpb24oKSgwKQorIAorLSAg ICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRl ciBlKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0 aW9uIG9mIGBlX2lgIG9uIGBgc2VsZmBgLgorIAorQEAgLTEwODIsNyArMTA4Miw3IEBAIGNkZWYg Y2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfRF9lbGVtZW50KExldHRlcik6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIExldHRlciBm KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24g YGBzZWxmYGAuCisgCitAQCAtMTE4OCw3ICsxMTg4LDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29m X2xldHRlcnNfdHlwZV9HX2VsZW1lbnQoTGV0dGVyKToKKyAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJHMiBjcnlzdGFsIG9mIGxldHRlcnMgZWxlbWVudCAl ZCBub3QgdmFsaWQiICUgc2VsZi52YWx1ZSkKKyAKKy0gICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwg aW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBgZV9pYCBvbiBgYHNlbGZg YC4KKyAKK0BAIC0xMjIyLDcgKzEyMjIsNyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVy c190eXBlX0dfZWxlbWVudChMZXR0ZXIpOgorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24gYGBzZWxmYGAuCisgCitA QCAtMTM1OCw3ICsxMzU4LDcgQEAgY2RlZiBjbGFzcyBMZXR0ZXJUdXBsZShFbGVtZW50KToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGhhc2goc2VsZi52YWx1ZSkKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENo ZWNrIGNvbXBhcmlzb24gYmV0d2VlbiBgYGxlZnRgYCBhbmQgYGByaWdodGBgIGJhc2VkIG9uIGBg b3BgYAorIAorQEAgLTE1NTUsNyArMTU1NSw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0 ZXJzX3R5cGVfRTZfZWxlbWVudChMZXR0ZXJUdXBsZSk6CisgICAgICAgICBSID0gc2VsZi5fcGFy ZW50LndlaWdodF9sYXR0aWNlX3JlYWxpemF0aW9uKCkuZnVuZGFtZW50YWxfd2VpZ2h0cygpCisg ICAgICAgICByZXR1cm4gc3VtKEludGVnZXIoaSkuc2lnbigpICogUlthYnMoaSldIGZvciBpIGlu IHNlbGYudmFsdWUpCisgCistICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2VsZiwgaW50IGkpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBlKHNlbGYsIGludCBpKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBlX2lgIG9uIGBgc2VsZmBgLgor IAorQEAgLTE2NDMsNyArMTY0Myw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5 cGVfRTZfZWxlbWVudChMZXR0ZXJUdXBsZSk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAg IHJldHVybiBOb25lCisgCistICAgIGNwZGVmIExldHRlclR1cGxlIGYoc2VsZiwgaW50IGkpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBmKHNlbGYsIGludCBpKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBmX2lgIG9uIGBgc2VsZmBgLgor IAorQEAgLTE3NzQsNyArMTc3NCw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5 cGVfRTZfZWxlbWVudF9kdWFsKExldHRlclR1cGxlKToKKyAgICAgICAgICAgICByZXR1cm4gbFtz ZWxmLl9wYXJlbnQubGlzdCgpLmluZGV4KHNlbGYpXQorICAgICAgICAgcmV0dXJuIHJlcHIoc2Vs Zi52YWx1ZSkKKyAKKy0gICAgY3BkZWYgTGV0dGVyVHVwbGUgbGlmdChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgTGV0dGVyVHVwbGUgbGlmdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgTGlmdCBhbiBlbGVtZW50IG9mIGBgc2VsZmBgIHRvIHRoZSBjcnlzdGFsIG9mIGxldHRlcnMK KyAgICAgICAgIGBgY3J5c3RhbHMuTGV0dGVycyhbJ0UnLDZdKWBgIGJ5IHRha2luZyBpdHMgaW52 ZXJzZSB3ZWlnaHQuCitAQCAtMTc5MSw3ICsxNzkxLDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29m X2xldHRlcnNfdHlwZV9FNl9lbGVtZW50X2R1YWwoTGV0dGVyVHVwbGUpOgorICAgICAgICAgIyAg dHVwbGUgZnJvbSBhIGxpc3QKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX2FtYmllbnQo dHVwbGUoWy1pIGZvciBpIGluIHNlbGYudmFsdWVdKSkKKyAKKy0gICAgY3BkZWYgTGV0dGVyVHVw bGUgcmV0cmFjdChzZWxmLCBMZXR0ZXJUdXBsZSBwKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0 dGVyVHVwbGUgcmV0cmFjdChzZWxmLCBMZXR0ZXJUdXBsZSBwKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0cmFjdCBlbGVtZW50IGBgcGBgLCB3aGljaCBpcyBhbiBlbGVtZW50IGluCisgICAg ICAgICBgYGNyeXN0YWxzLkxldHRlcnMoWydFJyw2XSlgYCB0byBhbiBlbGVtZW50IGluCitAQCAt MTgxNCw3ICsxODE0LDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9FNl9l bGVtZW50X2R1YWwoTGV0dGVyVHVwbGUpOgorICAgICAgICAgIyAgdHVwbGUgZnJvbSBhIGxpc3QK KyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX2VsZW1lbnRfY29uc3RydWN0b3JfKHR1cGxl KFstaSBmb3IgaSBpbiBwLnZhbHVlXSkpCisgCistICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2Vs ZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBlKHNlbGYsIGludCBp KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBlX2lgIG9u IGBgc2VsZmBgLgorIAorQEAgLTE4MjYsNyArMTgyNiw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9v Zl9sZXR0ZXJzX3R5cGVfRTZfZWxlbWVudF9kdWFsKExldHRlclR1cGxlKToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYucmV0cmFjdChzZWxmLmxpZnQoKS5mKGkpKQorIAorLSAg ICBjcGRlZiBMZXR0ZXJUdXBsZSBmKHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg TGV0dGVyVHVwbGUgZihzZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGFjdGlvbiBvZiBgZl9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0xOTU2LDcgKzE5NTYs NyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBlX0U3X2VsZW1lbnQoTGV0dGVy VHVwbGUpOgorICAgICAgICAgUiA9IHNlbGYuX3BhcmVudC53ZWlnaHRfbGF0dGljZV9yZWFsaXph dGlvbigpLmZ1bmRhbWVudGFsX3dlaWdodHMoKQorICAgICAgICAgcmV0dXJuIHN1bShJbnRlZ2Vy KGkpLnNpZ24oKSAqIFJbYWJzKGkpXSBmb3IgaSBpbiBzZWxmLnZhbHVlKQorIAorLSAgICBjcGRl ZiBMZXR0ZXJUdXBsZSBlKHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVy VHVwbGUgZShzZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGFjdGlvbiBvZiBgZV9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0yMTM4LDcgKzIxMzgsNyBAQCBj ZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBlX0U3X2VsZW1lbnQoTGV0dGVyVHVwbGUp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRl ZiBMZXR0ZXJUdXBsZSBmKHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVy VHVwbGUgZihzZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGFjdGlvbiBvZiBgZl9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0yMzk1LDcgKzIzOTUsNyBAQCBj ZGVmIGNsYXNzIEJLS0xldHRlcihMZXR0ZXIpOgorICAgICAgICAgICAgIHJldCA9ICJcXHVuZGVy bGluZXt7e319fSIuZm9ybWF0KHJldCkKKyAgICAgICAgIHJldHVybiByZXQKKyAKKy0gICAgY3Bk ZWYgTGV0dGVyIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXIgZShz ZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBv ZiBgZV9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0yNDM1LDcgKzI0MzUsNyBAQCBjZGVmIGNsYXNz IEJLS0xldHRlcihMZXR0ZXIpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX2Vs ZW1lbnRfY29uc3RydWN0b3JfKC0xKQorICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3Bk ZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXIgZihz ZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBv ZiBgZl9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0yNzE1LDcgKzI3MTUsNyBAQCBjZGVmIGNsYXNz IFF1ZWVyTGV0dGVyX2VsZW1lbnQoTGV0dGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX3BhcmVudC53ZWlnaHRfbGF0dGljZV9yZWFsaXphdGlvbigpLm1vbm9taWFsKHNl bGYudmFsdWUtMSkKKyAKKy0gICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBgZV9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0yNzMx LDcgKzI3MzEsNyBAQCBjZGVmIGNsYXNzIFF1ZWVyTGV0dGVyX2VsZW1lbnQoTGV0dGVyKToKKyAg ICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Ll9lbGVtZW50X2NvbnN0cnVjdG9yXyhzZWxm LnZhbHVlLTEpCisgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBMZXR0ZXIgZihz ZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBmX2lgIG9uIGBg c2VsZmBgLgorIAorQEAgLTI4MjMsNyArMjgyMyw3IEBAIGNkZWYgY2xhc3MgTGV0dGVyV3JhcHBl ZChFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGhhc2goc2VsZi52YWx1 ZSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIENoZWNrIGNvbXBhcmlzb24gYmV0d2VlbiBgYGxlZnRgYCBhbmQgYGByaWdo dGBgIGJhc2VkIG9uIGBgb3BgYAorIAorQEAgLTI4NTQsNyArMjg1NCw3IEBAIGNkZWYgY2xhc3Mg TGV0dGVyV3JhcHBlZChFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi52YWx1ZSA9 PSB4LnZhbHVlIG9yIHguX3BhcmVudC5sdF9lbGVtZW50cyh4LCBzZWxmKQorICAgICAgICAgcmV0 dXJuIEZhbHNlCisgCistICAgIGNwZGVmIHR1cGxlIF90b190dXBsZShzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgdHVwbGUgX3RvX3R1cGxlKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIGEgdHVwbGUgZW5jb2RpbmcgdGhlIGBcdmFyZXBzaWxvbl9pYCBhbmQgYFx2YXJw aGlfaWAKKyAgICAgICAgIHZhbHVlcyBvZiBgYGVsdGBgLgorQEAgLTI5MjMsNyArMjkyMyw3IEBA IGNkZWYgY2xhc3MgTGV0dGVyV3JhcHBlZChFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcmV0 Kz0gcmVwcih2KQorICAgICAgICAgcmV0dXJuIHJldCArICJcXHJpZ2h0KSIKKyAKKy0gICAgY3Bk ZWYgTGV0dGVyV3JhcHBlZCBlKHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0 dGVyV3JhcHBlZCBlKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biBgZV9pYCBvZiBgYHNlbGZgYC4KKyAKK0BAIC0yOTM5LDcgKzI5MzksNyBAQCBjZGVmIGNsYXNz IExldHRlcldyYXBwZWQoRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAg ICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgcmV0KQorIAorLSAgICBjcGRlZiBM ZXR0ZXJXcmFwcGVkIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJX cmFwcGVkIGYoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBm X2lgIG9mIGBgc2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0 YWxzL3Bid19kYXR1bS5weGQgYi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9wYndfZGF0dW0u cHhkCitpbmRleCBlY2ZiZjYwYjg0Mi4uOWMzYWFiMDgzZGYgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9jb21iaW5hdC9jcnlzdGFscy9wYndfZGF0dW0ucHhkCisrKysgYi9zcmMvc2FnZS9jb21iaW5h dC9jcnlzdGFscy9wYndfZGF0dW0ucHhkCitAQCAtMSwzICsxLDMgQEAKKy1jcGRlZiB0dXBsZSBj b21wdXRlX25ld19sdXN6dGlnX2RhdHVtKGxpc3QgZW5oYW5jZWRfYnJhaWRfY2hhaW4sIGluaXRp YWxfbHVzenRpZ19kYXR1bSkgbm9leGNlcHQKKy1jcGRlZiB0dXBsZSB0cm9waWNhbF9wbHVja2Vy X3JlbGF0aW9uKHR1cGxlIGEsIGx1c3p0aWdfZGF0dW0pIG5vZXhjZXB0CistY3BkZWYgbGlzdCBl bmhhbmNlX2JyYWlkX21vdmVfY2hhaW4oYnJhaWRfbW92ZV9jaGFpbiwgY2FydGFuX3R5cGUpIG5v ZXhjZXB0CisrY3BkZWYgdHVwbGUgY29tcHV0ZV9uZXdfbHVzenRpZ19kYXR1bShsaXN0IGVuaGFu Y2VkX2JyYWlkX2NoYWluLCBpbml0aWFsX2x1c3p0aWdfZGF0dW0pCisrY3BkZWYgdHVwbGUgdHJv cGljYWxfcGx1Y2tlcl9yZWxhdGlvbih0dXBsZSBhLCBsdXN6dGlnX2RhdHVtKQorK2NwZGVmIGxp c3QgZW5oYW5jZV9icmFpZF9tb3ZlX2NoYWluKGJyYWlkX21vdmVfY2hhaW4sIGNhcnRhbl90eXBl KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3Bid19kYXR1bS5weXgg Yi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9wYndfZGF0dW0ucHl4CitpbmRleCBhODE3MzJj ZGM3My4uMmFkY2IwOWQ5MDIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFs cy9wYndfZGF0dW0ucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9wYndfZGF0 dW0ucHl4CitAQCAtMjgyLDcgKzI4Miw3IEBAIGNsYXNzIFBCV0RhdGEoKTogIyBVbmlxdWVSZXBy ZXNlbnRhdGlvbj8KKyAjIGVuaGFuY2VkX2JyYWlkX2NoYWluIGlzIGFuIHVnbHkgZGF0YSBzdHJ1 Y3R1cmUuCisgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyBAY3l0aG9uLndyYXBhcm91bmQo RmFsc2UpCistY3BkZWYgdHVwbGUgY29tcHV0ZV9uZXdfbHVzenRpZ19kYXR1bShsaXN0IGVuaGFu Y2VkX2JyYWlkX2NoYWluLCBpbml0aWFsX2x1c3p0aWdfZGF0dW0pIG5vZXhjZXB0OgorK2NwZGVm IHR1cGxlIGNvbXB1dGVfbmV3X2x1c3p0aWdfZGF0dW0obGlzdCBlbmhhbmNlZF9icmFpZF9jaGFp biwgaW5pdGlhbF9sdXN6dGlnX2RhdHVtKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgTHVz enRpZyBkYXR1bSBvYnRhaW5lZCBieSBhcHBseWluZyB0cm9waWNhbCBQbMO8Y2tlcgorICAgICBy ZWxhdGlvbnMgYWxvbmcgYGBlbmhhbmNlZF9icmFpZF9jaGFpbmBgIHN0YXJ0aW5nIHdpdGgKK0BA IC0zMzAsNyArMzMwLDcgQEAgY3BkZWYgdHVwbGUgY29tcHV0ZV9uZXdfbHVzenRpZ19kYXR1bShs aXN0IGVuaGFuY2VkX2JyYWlkX2NoYWluLCBpbml0aWFsX2x1c3p0aWcKKyAjIFRoZSB0cm9waWNh bCBQbMO8Y2tlciByZWxhdGlvbnMKKyBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQorIEBjeXRo b24ud3JhcGFyb3VuZChGYWxzZSkKKy1jcGRlZiB0dXBsZSB0cm9waWNhbF9wbHVja2VyX3JlbGF0 aW9uKHR1cGxlIGEsIGx1c3p0aWdfZGF0dW0pIG5vZXhjZXB0OgorK2NwZGVmIHR1cGxlIHRyb3Bp Y2FsX3BsdWNrZXJfcmVsYXRpb24odHVwbGUgYSwgbHVzenRpZ19kYXR1bSk6CisgICAgIHIiIiIK KyAgICAgQXBwbHkgdGhlIHRyb3BpY2FsIFBsw7xja2VyIHJlbGF0aW9uIG9mIHR5cGUgYGBhYGAg dG8gYGBsdXN6dGlnX2RhdHVtYGAuCisgCitAQCAtNDAzLDcgKzQwMyw3IEBAIGNwZGVmIHR1cGxl IHRyb3BpY2FsX3BsdWNrZXJfcmVsYXRpb24odHVwbGUgYSwgbHVzenRpZ19kYXR1bSkgbm9leGNl cHQ6CisgIyBUT0RPOiBNb3ZlIHRvIFBCV19kYXRhPworIEBjeXRob24uYm91bmRzY2hlY2soRmFs c2UpCisgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorLWNwZGVmIGxpc3QgZW5oYW5jZV9icmFp ZF9tb3ZlX2NoYWluKGJyYWlkX21vdmVfY2hhaW4sIGNhcnRhbl90eXBlKSBub2V4Y2VwdDoKKytj cGRlZiBsaXN0IGVuaGFuY2VfYnJhaWRfbW92ZV9jaGFpbihicmFpZF9tb3ZlX2NoYWluLCBjYXJ0 YW5fdHlwZSk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIGEgbGlzdCBvZiB0dXBsZXMgdGhhdCBy ZWNvcmRzIHRoZSBkYXRhIG9mIHRoZSBsb25nIHdvcmRzIGluCisgICAgIGBgYnJhaWRfbW92ZV9j aGFpbmBgIHBsdXMgdGhlIGRhdGEgb2YgdGhlIGludGVydmFscyB3aGVyZSB0aGUgYnJhaWQgbW92 ZXMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9zcGlucy5weGQgYi9z cmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9zcGlucy5weGQKK2luZGV4IGE5OGYxNzAyNTA4Li4z ZWY1ZTBiN2M1ZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3NwaW5z LnB4ZAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvc3BpbnMucHhkCitAQCAtNSwx NiArNSwxNiBAQCBjZGVmIGNsYXNzIFNwaW4oRWxlbWVudCk6CisgICAgIGNkZWYgaW50IF9uCisg ICAgIGNkZWYgbG9uZyBfaGFzaAorIAorLSAgICBjZGVmIFNwaW4gX25ld19jKHNlbGYsIGJpbnQq IHZhbHVlKSBub2V4Y2VwdAorKyAgICBjZGVmIFNwaW4gX25ld19jKHNlbGYsIGJpbnQqIHZhbHVl KQorIAorIGNkZWYgY2xhc3MgU3Bpbl9jcnlzdGFsX3R5cGVfQl9lbGVtZW50KFNwaW4pOgorLSAg ICBjcGRlZiBTcGluIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIFNwaW4gZihz ZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgU3BpbiBlKHNlbGYsIGludCBpKQorKyAg ICBjcGRlZiBTcGluIGYoc2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBlcHNpbG9uKHNlbGYs IGludCBpKSBub2V4Y2VwdAorICAgICBjcGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2Vw dAorIAorIGNkZWYgY2xhc3MgU3Bpbl9jcnlzdGFsX3R5cGVfRF9lbGVtZW50KFNwaW4pOgorLSAg ICBjcGRlZiBTcGluIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIFNwaW4gZihz ZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgU3BpbiBlKHNlbGYsIGludCBpKQorKyAg ICBjcGRlZiBTcGluIGYoc2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBlcHNpbG9uKHNlbGYs IGludCBpKSBub2V4Y2VwdAorICAgICBjcGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2Vw dAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3NwaW5zLnB5eCBiL3Ny Yy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3NwaW5zLnB5eAoraW5kZXggOTdlODE1N2FmZDUuLjYy Mjk5YTQzNGY1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvc3BpbnMu cHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9zcGlucy5weXgKK0BAIC0yOTcs NyArMjk3LDcgQEAgY2RlZiBjbGFzcyBTcGluKEVsZW1lbnQpOgorICAgICAgICAgICAgIHNlbGYu X3ZhbHVlW2ldID0gKHZhbFtpXSAhPSAxKQorICAgICAgICAgRWxlbWVudC5fX2luaXRfXyhzZWxm LCBwYXJlbnQpCisgCistICAgIGNkZWYgU3BpbiBfbmV3X2Moc2VsZiwgYmludCogdmFsdWUpIG5v ZXhjZXB0OgorKyAgICBjZGVmIFNwaW4gX25ld19jKHNlbGYsIGJpbnQqIHZhbHVlKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIEZhc3QgY3JlYXRpb24gb2YgYSBzcGluIGVsZW1lbnQuCisgICAg ICAgICAiIiIKK0BAIC0zNDksNyArMzQ5LDcgQEAgY2RlZiBjbGFzcyBTcGluKEVsZW1lbnQpOgor ICAgICAgICAgdHVwID0gdHVwbGUoWy0xIGlmIHNlbGYuX3ZhbHVlW2ldIGVsc2UgMSBmb3IgaSBp biByYW5nZShzZWxmLl9uKV0pCisgICAgICAgICByZXR1cm4gKHNlbGYuX3BhcmVudCwgKHR1cCwp KQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIGBgbGVmdGBgIGNvbXBhcmVzIHdpdGggYGBy aWdodGBgIGJhc2VkIG9uIGBgb3BgYC4KKyAKK0BAIC01MzQsNyArNTM0LDcgQEAgY2RlZiBjbGFz cyBTcGluX2NyeXN0YWxfdHlwZV9CX2VsZW1lbnQoU3Bpbik6CisgICAgIHIiIiIKKyAgICAgVHlw ZSBCIHNwaW4gcmVwcmVzZW50YXRpb24gY3J5c3RhbCBlbGVtZW50CisgICAgICIiIgorLSAgICBj cGRlZiBTcGluIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBTcGluIGUoc2Vs ZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2Yg YGVfaWAgb24gYGBzZWxmYGAuCisgCitAQCAtNTY3LDcgKzU2Nyw3IEBAIGNkZWYgY2xhc3MgU3Bp bl9jcnlzdGFsX3R5cGVfQl9lbGVtZW50KFNwaW4pOgorICAgICAgICAgICAgIHJldHVybiBzZWxm Ll9uZXdfYyhyZXQpCisgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBTcGluIGYo c2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBTcGluIGYoc2VsZiwgaW50IGkpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24gYGBz ZWxmYGAuCisgCitAQCAtNjM4LDcgKzYzOCw3IEBAIGNkZWYgY2xhc3MgU3Bpbl9jcnlzdGFsX3R5 cGVfRF9lbGVtZW50KFNwaW4pOgorICAgICByIiIiCisgICAgIFR5cGUgRCBzcGluIHJlcHJlc2Vu dGF0aW9uIGNyeXN0YWwgZWxlbWVudAorICAgICAiIiIKKy0gICAgY3BkZWYgU3BpbiBlKHNlbGYs IGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgU3BpbiBlKHNlbGYsIGludCBpKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBlX2lgIG9uIGBgc2VsZmBg LgorIAorQEAgLTY3OSw3ICs2NzksNyBAQCBjZGVmIGNsYXNzIFNwaW5fY3J5c3RhbF90eXBlX0Rf ZWxlbWVudChTcGluKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MocmV0KQorICAg ICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgU3BpbiBmKHNlbGYsIGludCBpKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgU3BpbiBmKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBmX2lgIG9uIGBgc2VsZmBgLgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3RlbnNvcl9wcm9kdWN0X2VsZW1lbnQu cHhkIGIvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvdGVuc29yX3Byb2R1Y3RfZWxlbWVudC5w eGQKK2luZGV4IGMxYWY0ZTFjYjIwLi43OTJkNmQzMzUxZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2NvbWJpbmF0L2NyeXN0YWxzL3RlbnNvcl9wcm9kdWN0X2VsZW1lbnQucHhkCisrKysgYi9zcmMv c2FnZS9jb21iaW5hdC9jcnlzdGFscy90ZW5zb3JfcHJvZHVjdF9lbGVtZW50LnB4ZAorQEAgLTEs MTQgKzEsMTQgQEAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLmxpc3RfY2xvbmUgY2ltcG9ydCBDbG9u YWJsZUFycmF5CisgCisgY2RlZiBjbGFzcyBJbW11dGFibGVMaXN0V2l0aFBhcmVudChDbG9uYWJs ZUFycmF5KToKKy0gICAgY3BkZWYgX3NldF9pbmRleChzZWxmLCBrLCB2YWx1ZSkgbm9leGNlcHQK KysgICAgY3BkZWYgX3NldF9pbmRleChzZWxmLCBrLCB2YWx1ZSkKKyAKKyBjZGVmIGNsYXNzIFRl bnNvclByb2R1Y3RPZkNyeXN0YWxzRWxlbWVudChJbW11dGFibGVMaXN0V2l0aFBhcmVudCk6Cisg ICAgIHBhc3MKKyAKKyBjZGVmIGNsYXNzIFRlbnNvclByb2R1Y3RPZlJlZ3VsYXJDcnlzdGFsc0Vs ZW1lbnQoVGVuc29yUHJvZHVjdE9mQ3J5c3RhbHNFbGVtZW50KToKKy0gICAgY3BkZWYgcG9zaXRp b25fb2ZfbGFzdF91bm1hdGNoZWRfbWludXMoc2VsZiwgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYg cG9zaXRpb25fb2ZfZmlyc3RfdW5tYXRjaGVkX3BsdXMoc2VsZiwgaSkgbm9leGNlcHQKKysgICAg Y3BkZWYgcG9zaXRpb25fb2ZfbGFzdF91bm1hdGNoZWRfbWludXMoc2VsZiwgaSkKKysgICAgY3Bk ZWYgcG9zaXRpb25fb2ZfZmlyc3RfdW5tYXRjaGVkX3BsdXMoc2VsZiwgaSkKKyAKKyBjZGVmIGNs YXNzIENyeXN0YWxPZlRhYmxlYXV4RWxlbWVudChUZW5zb3JQcm9kdWN0T2ZSZWd1bGFyQ3J5c3Rh bHNFbGVtZW50KToKKyAgICAgcGFzcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2Ny eXN0YWxzL3RlbnNvcl9wcm9kdWN0X2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvY3J5 c3RhbHMvdGVuc29yX3Byb2R1Y3RfZWxlbWVudC5weXgKK2luZGV4IDI5OTIxYzk1ODM4Li40MmE3 ZjI3MTA5MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3RlbnNvcl9w cm9kdWN0X2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy90ZW5z b3JfcHJvZHVjdF9lbGVtZW50LnB5eAorQEAgLTczLDcgKzczLDcgQEAgY2RlZiBjbGFzcyBJbW11 dGFibGVMaXN0V2l0aFBhcmVudChDbG9uYWJsZUFycmF5KToKKyAgICAgICAgIHNlbGYuX2lzX2lt bXV0YWJsZSA9IFRydWUKKyAgICAgICAgIHNlbGYuX2hhc2ggPSAwCisgCistICAgIGNwZGVmIF9z ZXRfaW5kZXgoc2VsZiwgaywgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc2V0X2luZGV4 KHNlbGYsIGssIHZhbHVlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIHNpYmxp bmcgb2YgYGBzZWxmYGAgb2J0YWluZWQgYnkgc2V0dGluZyB0aGUKKyAgICAgICAgIGBrXnt0aH1g IGVudHJ5IG9mIHNlbGYgdG8gdmFsdWUuCitAQCAtNTczLDcgKzU3Myw3IEBAIGNkZWYgY2xhc3Mg VGVuc29yUHJvZHVjdE9mUmVndWxhckNyeXN0YWxzRWxlbWVudChUZW5zb3JQcm9kdWN0T2ZDcnlz dGFsc0VsZW1lbnQpCisgICAgICAgICAgICAgICAgIGhlaWdodCA9IGhlaWdodCAtIG1pbnVzICsg cGx1cworICAgICAgICAgcmV0dXJuIGhlaWdodAorIAorLSAgICBjcGRlZiBwb3NpdGlvbl9vZl9s YXN0X3VubWF0Y2hlZF9taW51cyhzZWxmLCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcG9zaXRp b25fb2ZfbGFzdF91bm1hdGNoZWRfbWludXMoc2VsZiwgaSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgdW5tYXRjaGVkIGAtYCBvciBgYE5v bmVgYCBpZgorICAgICAgICAgdGhlcmUgaXMgbm8gdW5tYXRjaGVkIGAtYC4KK0BAIC01OTksNyAr NTk5LDcgQEAgY2RlZiBjbGFzcyBUZW5zb3JQcm9kdWN0T2ZSZWd1bGFyQ3J5c3RhbHNFbGVtZW50 KFRlbnNvclByb2R1Y3RPZkNyeXN0YWxzRWxlbWVudCkKKyAgICAgICAgICAgICAgICAgaGVpZ2h0 ID0gaGVpZ2h0IC0gbWludXMgKyBwbHVzCisgICAgICAgICByZXR1cm4gdW5tYXRjaGVkX21pbnVz CisgCistICAgIGNwZGVmIHBvc2l0aW9uX29mX2ZpcnN0X3VubWF0Y2hlZF9wbHVzKHNlbGYsIGkp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBwb3NpdGlvbl9vZl9maXJzdF91bm1hdGNoZWRfcGx1cyhz ZWxmLCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwb3NpdGlvbiBvZiB0 aGUgZmlyc3QgdW5tYXRjaGVkIGArYCBvciBgYE5vbmVgYCBpZgorICAgICAgICAgdGhlcmUgaXMg bm8gdW5tYXRjaGVkIGArYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9kZWJydWlq bl9zZXF1ZW5jZS5weXggYi9zcmMvc2FnZS9jb21iaW5hdC9kZWJydWlqbl9zZXF1ZW5jZS5weXgK K2luZGV4IDE4ZmU5MjEyNTA0Li4wMmUyMjQyODNjMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2Nv bWJpbmF0L2RlYnJ1aWpuX3NlcXVlbmNlLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvZGVi cnVpam5fc2VxdWVuY2UucHl4CitAQCAtOTUsNyArOTUsNyBAQCBkZWYgZGVicnVpam5fc2VxdWVu Y2UoaW50IGssIGludCBuKToKKyAgICAgcmV0dXJuIHNlcXVlbmNlCisgCisgCistY2RlZiBnZW4o aW50IHQsIGludCBwLCBrLCBuKSBub2V4Y2VwdDoKKytjZGVmIGdlbihpbnQgdCwgaW50IHAsIGss IG4pOgorICAgICAiIiIKKyAgICAgVGhlIGludGVybmFsIGdlbmVyYXRpb24gZnVuY3Rpb24uIFRo aXMgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZCBieSB0aGUKKyAgICAgdXNlci4KK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9jb21iaW5hdC9kZWdyZWVfc2VxdWVuY2VzLnB5eCBiL3NyYy9zYWdlL2NvbWJp bmF0L2RlZ3JlZV9zZXF1ZW5jZXMucHl4CitpbmRleCBiMjVlNzZkOTIwOC4uNmEwYjA3MGE0NGUg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9kZWdyZWVfc2VxdWVuY2VzLnB5eAorKysr IGIvc3JjL3NhZ2UvY29tYmluYXQvZGVncmVlX3NlcXVlbmNlcy5weXgKK0BAIC00MTQsNyArNDE0 LDcgQEAgY2xhc3MgRGVncmVlU2VxdWVuY2VzOgorICAgICAgICAgc2lnX2ZyZWUoc2VxKQorIAor IAorLWNkZWYgaW5pdChpbnQgbikgbm9leGNlcHQ6CisrY2RlZiBpbml0KGludCBuKToKKyAgICAg IiIiCisgICAgIEluaXRpYWxpemVzIHRoZSBtZW1vcnkgYW5kIHN0YXJ0cyB0aGUgZW51bWVyYXRp b24gYWxnb3JpdGhtLgorICAgICAiIiIKK0BAIC00MzgsNyArNDM4LDcgQEAgY2RlZiBpbml0KGlu dCBuKSBub2V4Y2VwdDoKKyAgICAgc2lnX2ZyZWUoc2VxKQorICAgICByZXR1cm4gc2VxdWVuY2Vz CisgCistY2RlZiBpbmxpbmUgYWRkX3NlcSgpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGFkZF9z ZXEoKToKKyAgICAgIiIiCisgICAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW5ldmVyIGEg c2VxdWVuY2UgaXMgZm91bmQuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvZGVz aWducy9kZXNpZ25zX3B5eC5weGQgYi9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL2Rlc2lnbnNf cHl4LnB4ZAoraW5kZXggOGZmNmJlZTViZDQuLjM0NWE0MWYyOTQ1IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvY29tYmluYXQvZGVzaWducy9kZXNpZ25zX3B5eC5weGQKKysrKyBiL3NyYy9zYWdlL2Nv bWJpbmF0L2Rlc2lnbnMvZGVzaWduc19weXgucHhkCitAQCAtMTcsNCArMTcsNCBAQCBjZGVmIHN0 cnVjdCBjYWNoZV9lbnRyeToKKyBjZGVmIGNhY2hlX2VudHJ5ICogX09BX2NhY2hlCisgY2RlZiBp bnQgX09BX2NhY2hlX3NpemUKKyAKKy1jcGRlZiBfT0FfY2FjaGVfZ2V0KGludCBrLCBpbnQgbikg bm9leGNlcHQKKytjcGRlZiBfT0FfY2FjaGVfZ2V0KGludCBrLCBpbnQgbikKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL2Rlc2lnbnNfcHl4LnB5eCBiL3NyYy9zYWdlL2Nv bWJpbmF0L2Rlc2lnbnMvZGVzaWduc19weXgucHl4CitpbmRleCBkMTgwMGQ0MzgyZS4uNGEyMzdl YzgyYjMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL2Rlc2lnbnNfcHl4 LnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvZGVzaWducy9kZXNpZ25zX3B5eC5weXgKK0BA IC05NTQsNyArOTU0LDcgQEAgX09BX2NhY2hlWzBdLm1heF90cnVlID0gLTEKKyBfT0FfY2FjaGVb MV0ubWF4X3RydWUgPSAtMQorIF9PQV9jYWNoZV9zaXplID0gMgorIAorLWNwZGVmIF9PQV9jYWNo ZV9zZXQoaW50IGssaW50IG4sdHJ1dGhfdmFsdWUpIG5vZXhjZXB0OgorK2NwZGVmIF9PQV9jYWNo ZV9zZXQoaW50IGssaW50IG4sdHJ1dGhfdmFsdWUpOgorICAgICByIiIiCisgICAgIFNldHMgYSB2 YWx1ZSBpbiB0aGUgT0EgY2FjaGUgb2YgZXhpc3RlbmNlIHJlc3VsdHMKKyAKK0BAIC05ODksNyAr OTg5LDcgQEAgY3BkZWYgX09BX2NhY2hlX3NldChpbnQgayxpbnQgbix0cnV0aF92YWx1ZSkgbm9l eGNlcHQ6CisgICAgIGVsc2U6CisgICAgICAgICBfT0FfY2FjaGVbbl0ubWluX2ZhbHNlICAgPSBr IGlmIGs8X09BX2NhY2hlW25dLm1pbl9mYWxzZSAgIGVsc2UgX09BX2NhY2hlW25dLm1pbl9mYWxz ZQorIAorLWNwZGVmIF9PQV9jYWNoZV9nZXQoaW50IGssaW50IG4pIG5vZXhjZXB0OgorK2NwZGVm IF9PQV9jYWNoZV9nZXQoaW50IGssaW50IG4pOgorICAgICByIiIiCisgICAgIEdldHMgYSB2YWx1 ZSBmcm9tIHRoZSBPQSBjYWNoZSBvZiBleGlzdGVuY2UgcmVzdWx0cworIAorQEAgLTEwMDgsNyAr MTAwOCw3IEBAIGNwZGVmIF9PQV9jYWNoZV9nZXQoaW50IGssaW50IG4pIG5vZXhjZXB0OgorIAor ICAgICByZXR1cm4gTm9uZQorIAorLWNwZGVmIF9PQV9jYWNoZV9jb25zdHJ1Y3Rpb25fYXZhaWxh YmxlKGludCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBfT0FfY2FjaGVfY29uc3RydWN0aW9u X2F2YWlsYWJsZShpbnQgayxpbnQgbik6CisgICAgIHIiIiIKKyAgICAgVGVzdHMgaWYgYSBjb25z dHJ1Y3Rpb24gaXMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIGNhY2hlJ3MgaW5mb3JtYXRpb24KKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL29ydGhvZ29uYWxfYXJyYXlz X2ZpbmRfcmVjdXJzaXZlLnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L2Rlc2lnbnMvb3J0aG9nb25h bF9hcnJheXNfZmluZF9yZWN1cnNpdmUucHl4CitpbmRleCBkYjZiYjNjMjk0YS4uN2U4MGFiMDAw MzQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL29ydGhvZ29uYWxfYXJy YXlzX2ZpbmRfcmVjdXJzaXZlLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvZGVzaWducy9v cnRob2dvbmFsX2FycmF5c19maW5kX3JlY3Vyc2l2ZS5weXgKK0BAIC0xMTYsNyArMTE2LDcgQEAg ZGVmIGZpbmRfcmVjdXJzaXZlX2NvbnN0cnVjdGlvbihrLCBuKToKKyAgICAgcmV0dXJuIEZhbHNl CisgCisgCistY3BkZWYgZmluZF9wcm9kdWN0X2RlY29tcG9zaXRpb24oaW50IGssaW50IG4pIG5v ZXhjZXB0OgorK2NwZGVmIGZpbmRfcHJvZHVjdF9kZWNvbXBvc2l0aW9uKGludCBrLGludCBuKToK KyAgICAgciIiIgorICAgICBGaW5kIGBuXzFuXzI9bmAgdG8gb2J0YWluIGFuIGBPQShrLG4pYCBi eSB0aGUgcHJvZHVjdCBjb25zdHJ1Y3Rpb24uCisgCitAQCAtMTU3LDcgKzE1Nyw3IEBAIGNwZGVm IGZpbmRfcHJvZHVjdF9kZWNvbXBvc2l0aW9uKGludCBrLGludCBuKSBub2V4Y2VwdDoKKyAgICAg ICAgICAgICByZXR1cm4gd2lsc29uX2NvbnN0cnVjdGlvbiwgKE5vbmUsayxuMSxuMiwoKSxGYWxz ZSkKKyAgICAgcmV0dXJuIEZhbHNlCisgCistY3BkZWYgZmluZF93aWxzb25fZGVjb21wb3NpdGlv bl93aXRoX29uZV90cnVuY2F0ZWRfZ3JvdXAoaW50IGssaW50IG4pIG5vZXhjZXB0OgorK2NwZGVm IGZpbmRfd2lsc29uX2RlY29tcG9zaXRpb25fd2l0aF9vbmVfdHJ1bmNhdGVkX2dyb3VwKGludCBr LGludCBuKToKKyAgICAgciIiIgorICAgICBGaW5kIGBybSt1PW5gIHRvIG9idGFpbiBhbiBgT0Eo ayxuKWAgYnkgV2lsc29uJ3MgY29uc3RydWN0aW9uIHdpdGggb25lIHRydW5jYXRlZCBjb2x1bW4u CisgCitAQCAtMjA4LDcgKzIwOCw3IEBAIGNwZGVmIGZpbmRfd2lsc29uX2RlY29tcG9zaXRpb25f d2l0aF9vbmVfdHJ1bmNhdGVkX2dyb3VwKGludCBrLGludCBuKSBub2V4Y2VwdDoKKyAKKyAgICAg cmV0dXJuIEZhbHNlCisgCistY3BkZWYgZmluZF93aWxzb25fZGVjb21wb3NpdGlvbl93aXRoX3R3 b190cnVuY2F0ZWRfZ3JvdXBzKGludCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBmaW5kX3dp bHNvbl9kZWNvbXBvc2l0aW9uX3dpdGhfdHdvX3RydW5jYXRlZF9ncm91cHMoaW50IGssaW50IG4p OgorICAgICByIiIiCisgICAgIEZpbmQgYHJtK3JfMStyXzI9bmAgdG8gb2J0YWluIGFuIGBPQShr LG4pYCBieSBXaWxzb24ncyBjb25zdHJ1Y3Rpb24gd2l0aCB0d28gdHJ1bmNhdGVkIGNvbHVtbnMu CisgCitAQCAtMjcwLDcgKzI3MCw3IEBAIGNwZGVmIGZpbmRfd2lsc29uX2RlY29tcG9zaXRpb25f d2l0aF90d29fdHJ1bmNhdGVkX2dyb3VwcyhpbnQgayxpbnQgbikgbm9leGNlcHQ6CisgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gd2lsc29uX2NvbnN0cnVjdGlvbiwgKE5vbmUsayxyLG0sKHIx LHIyKSxGYWxzZSkKKyAgICAgcmV0dXJuIEZhbHNlCisgCistY3BkZWYgZmluZF9jb25zdHJ1Y3Rp b25fM18zKGludCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8z XzMoaW50IGssaW50IG4pOgorICAgICByIiIiCisgICAgIEZpbmQgYSBkZWNvbXBvc2l0aW9uIGZv ciBjb25zdHJ1Y3Rpb24gMy4zIGZyb20gW0FDMDddXworIAorQEAgLTMwOSw3ICszMDksNyBAQCBj cGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8zXzMoaW50IGssaW50IG4pIG5vZXhjZXB0OgorICAgICAg ICAgICAgICAgICBmcm9tIHNhZ2UuY29tYmluYXQuZGVzaWducy5vcnRob2dvbmFsX2FycmF5c19i dWlsZF9yZWN1cnNpdmUgaW1wb3J0IGNvbnN0cnVjdGlvbl8zXzMKKyAgICAgICAgICAgICAgICAg cmV0dXJuIGNvbnN0cnVjdGlvbl8zXzMsIChrLG5uLG1tLGkpCisgCistY3BkZWYgZmluZF9jb25z dHJ1Y3Rpb25fM180KGludCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBmaW5kX2NvbnN0cnVj dGlvbl8zXzQoaW50IGssaW50IG4pOgorICAgICByIiIiCisgICAgIEZpbmQgYSBkZWNvbXBvc2l0 aW9uIGZvciBjb25zdHJ1Y3Rpb24gMy40IGZyb20gW0FDMDddXworIAorQEAgLTM1Miw3ICszNTIs NyBAQCBjcGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8zXzQoaW50IGssaW50IG4pIG5vZXhjZXB0Ogor ICAgICAgICAgICAgICAgICAgICAgZnJvbSBzYWdlLmNvbWJpbmF0LmRlc2lnbnMub3J0aG9nb25h bF9hcnJheXNfYnVpbGRfcmVjdXJzaXZlIGltcG9ydCBjb25zdHJ1Y3Rpb25fM180CisgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0aW9uXzNfNCwgKGssbm4sbW0scixzKQorIAor LWNwZGVmIGZpbmRfY29uc3RydWN0aW9uXzNfNShpbnQgayxpbnQgbikgbm9leGNlcHQ6CisrY3Bk ZWYgZmluZF9jb25zdHJ1Y3Rpb25fM181KGludCBrLGludCBuKToKKyAgICAgciIiIgorICAgICBG aW5kIGEgZGVjb21wb3NpdGlvbiBmb3IgY29uc3RydWN0aW9uIDMuNSBmcm9tIFtBQzA3XV8KKyAK K0BAIC00MDIsNyArNDAyLDcgQEAgY3BkZWYgZmluZF9jb25zdHJ1Y3Rpb25fM181KGludCBrLGlu dCBuKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHNhZ2UuY29tYmlu YXQuZGVzaWducy5vcnRob2dvbmFsX2FycmF5c19idWlsZF9yZWN1cnNpdmUgaW1wb3J0IGNvbnN0 cnVjdGlvbl8zXzUKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0aW9u XzNfNSwgKGssbm4sbW0scixzLHQpCisgCistY3BkZWYgZmluZF9jb25zdHJ1Y3Rpb25fM182KGlu dCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8zXzYoaW50IGss aW50IG4pOgorICAgICByIiIiCisgICAgIEZpbmQgYSBkZWNvbXBvc2l0aW9uIGZvciBjb25zdHJ1 Y3Rpb24gMy42IGZyb20gW0FDMDddXworIAorQEAgLTQ0Myw3ICs0NDMsNyBAQCBjcGRlZiBmaW5k X2NvbnN0cnVjdGlvbl8zXzYoaW50IGssaW50IG4pIG5vZXhjZXB0OgorICAgICAgICAgICAgICAg ICBmcm9tIHNhZ2UuY29tYmluYXQuZGVzaWducy5vcnRob2dvbmFsX2FycmF5c19idWlsZF9yZWN1 cnNpdmUgaW1wb3J0IGNvbnN0cnVjdGlvbl8zXzYKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGNv bnN0cnVjdGlvbl8zXzYsIChrLG5uLG1tLGkpCisgCistY3BkZWYgZmluZF9xX3goaW50IGssaW50 IG4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfcV94KGludCBrLGludCBuKToKKyAgICAgciIiIgor ICAgICBGaW5kIGludGVnZXJzIGBxLHhgIHN1Y2ggdGhhdCB0aGUgYHEteGAgY29uc3RydWN0aW9u IHlpZWxkcyBhbiBgT0EoayxuKWAuCisgCitAQCAtNDk2LDcgKzQ5Niw3IEBAIGNwZGVmIGZpbmRf cV94KGludCBrLGludCBuKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0 aW9uX3FfeCwgKGsscSx4KQorICAgICByZXR1cm4gRmFsc2UKKyAKKy1jcGRlZiBmaW5kX3Rod2Fy dF9sZW1tYV8zXzUoaW50IGssaW50IE4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfdGh3YXJ0X2xl bW1hXzNfNShpbnQgayxpbnQgTik6CisgICAgIHIiIiIKKyAgICAgRmluZCB0aGUgdmFsdWVzIG9u IHdoaWNoIExlbW1hIDMuNSBmcm9tIFtUaHdhcnRzXV8gYXBwbGllcy4KKyAKK0BAIC02MTcsNyAr NjE3LDcgQEAgY3BkZWYgZmluZF90aHdhcnRfbGVtbWFfM181KGludCBrLGludCBOKSBub2V4Y2Vw dDoKKyAKKyAgICAgcmV0dXJuIEZhbHNlCisgCistY3BkZWYgZmluZF90aHdhcnRfbGVtbWFfNF8x KGludCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBmaW5kX3Rod2FydF9sZW1tYV80XzEoaW50 IGssaW50IG4pOgorICAgICByIiIiCisgICAgIEZpbmQgYSBkZWNvbXBvc2l0aW9uIGZvciBMZW1t YSA0LjEgZnJvbSBbVGh3YXJ0c11fLgorIAorQEAgLTY2Niw3ICs2NjYsNyBAQCBjcGRlZiBmaW5k X3Rod2FydF9sZW1tYV80XzEoaW50IGssaW50IG4pIG5vZXhjZXB0OgorIAorICAgICByZXR1cm4g RmFsc2UKKyAKKy1jcGRlZiBmaW5kX3RocmVlX2ZhY3Rvcl9wcm9kdWN0KGludCBrLGludCBuKSBu b2V4Y2VwdDoKKytjcGRlZiBmaW5kX3RocmVlX2ZhY3Rvcl9wcm9kdWN0KGludCBrLGludCBuKToK KyAgICAgciIiIgorICAgICBGaW5kIGBuXzFuXzJuXzM9bmAgdG8gb2J0YWluIGFuIGBPQShrLG4p YCBieSB0aGUgdGhyZWUtZmFjdG9yIHByb2R1Y3QgZnJvbSBbRHVrZXNMaW5nMTRdXworIAorQEAg LTcxMSw3ICs3MTEsNyBAQCBjcGRlZiBmaW5kX3RocmVlX2ZhY3Rvcl9wcm9kdWN0KGludCBrLGlu dCBuKSBub2V4Y2VwdDoKKyAKKyAgICAgcmV0dXJuIEZhbHNlCisgCistY3BkZWYgZmluZF9icm91 d2VyX3NlcGFyYWJsZV9kZXNpZ24oaW50IGssaW50IG4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRf YnJvdXdlcl9zZXBhcmFibGVfZGVzaWduKGludCBrLGludCBuKToKKyAgICAgciIiIgorICAgICBG aW5kIGB0KHFeMitxKzEpK3g9bmAgdG8gb2J0YWluIGFuIGBPQShrLG4pYCBieSBCcm91d2VyJ3Mg c2VwYXJhYmxlIGRlc2lnbiBjb25zdHJ1Y3Rpb24uCisgCitAQCAtODgyLDcgKzg4Miw3IEBAIGRl ZiBpbnRfYXNfc3VtKGludCB2YWx1ZSwgbGlzdCBTLCBpbnQga19tYXgpOgorICAgICByZXR1cm4g Tm9uZQorIAorIAorLWNwZGVmIGZpbmRfYnJvdXdlcl92YW5fcmVlc193aXRoX29uZV90cnVuY2F0 ZWRfY29sdW1uKGludCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBmaW5kX2Jyb3V3ZXJfdmFu X3JlZXNfd2l0aF9vbmVfdHJ1bmNhdGVkX2NvbHVtbihpbnQgayxpbnQgbik6CisgICAgIHIiIiIK KyAgICAgRmluZCBgcm0reF8xKy4uLit4X2M9bmAgc3VjaCB0aGF0IHRoZSBCcm91d2VyLXZhbiBS ZWVzIGNvbnN0cnVjdGlvbnMgeWllbGRzIGEgYE9BKGssbilgLgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2NvbWJpbmF0L2Rlc2lnbnMvc3ViaHlwZXJncmFwaF9zZWFyY2gucHl4IGIvc3JjL3Nh Z2UvY29tYmluYXQvZGVzaWducy9zdWJoeXBlcmdyYXBoX3NlYXJjaC5weXgKK2luZGV4IGMzMWU4 ZGNkMjI5Li45NjgxNTliOTAxMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2Rlc2ln bnMvc3ViaHlwZXJncmFwaF9zZWFyY2gucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9kZXNp Z25zL3N1Ymh5cGVyZ3JhcGhfc2VhcmNoLnB5eAorQEAgLTIyOSw3ICsyMjksNyBAQCBjZGVmIGlu bGluZSB2b2lkIHBlcm11dGUoaHlwZXJncmFwaCAqIGgsaW50IG4xLGludCBuMikgbm9leGNlcHQ6 CisgICAgICAgICBic19zZXQoaC5zZXRzW2ldLG4xLGIyKQorICAgICAgICAgYnNfc2V0KGguc2V0 c1tpXSxuMixiMSkKKyAKKy1jZGVmIGluZHVjZWRfaHlwZXJncmFwaChoeXBlcmdyYXBoICogaCwg aW50IG4sIGh5cGVyZ3JhcGggKiB0bXApIG5vZXhjZXB0OgorK2NkZWYgaW5kdWNlZF9oeXBlcmdy YXBoKGh5cGVyZ3JhcGggKiBoLCBpbnQgbiwgaHlwZXJncmFwaCAqIHRtcCk6CisgICAgIHIiIiIK KyAgICAgRmlsbHMgdG1wIHdpdGggdGhlIGh5cGVyZ3JhcGggaW5kdWNlZCBieSBwb2ludHMgezAs Li4uLG4tMX0gaW4gaC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9lbnVtZXJh dGlvbl9tb2RfcGVybWdyb3VwLnB4ZCBiL3NyYy9zYWdlL2NvbWJpbmF0L2VudW1lcmF0aW9uX21v ZF9wZXJtZ3JvdXAucHhkCitpbmRleCA2ZDczZjQwMjMyMS4uMjRhMGUxNTIxN2MgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9jb21iaW5hdC9lbnVtZXJhdGlvbl9tb2RfcGVybWdyb3VwLnB4ZAorKysr IGIvc3JjL3NhZ2UvY29tYmluYXQvZW51bWVyYXRpb25fbW9kX3Blcm1ncm91cC5weGQKK0BAIC0x LDkgKzEsOSBAQAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUubGlzdF9jbG9uZSBjaW1wb3J0IENsb25h YmxlSW50QXJyYXkKKyAKKy1jcGRlZiBsaXN0IGFsbF9jaGlsZHJlbihDbG9uYWJsZUludEFycmF5 IHYsIGludCBtYXhfcGFydCkgbm9leGNlcHQKKytjcGRlZiBsaXN0IGFsbF9jaGlsZHJlbihDbG9u YWJsZUludEFycmF5IHYsIGludCBtYXhfcGFydCkKKyBjcGRlZiBpbnQgbGV4X2NtcF9wYXJ0aWFs KENsb25hYmxlSW50QXJyYXkgdDEsIENsb25hYmxlSW50QXJyYXkgdDIsIGludCBzdGVwKSBub2V4 Y2VwdAorIGNwZGVmIGludCBsZXhfY21wKENsb25hYmxlSW50QXJyYXkgdDEsIENsb25hYmxlSW50 QXJyYXkgdDIpIG5vZXhjZXB0CisgY3BkZWYgYmludCBpc19jYW5vbmljYWwobGlzdCBzZ3MsIENs b25hYmxlSW50QXJyYXkgdikgZXhjZXB0IC0xCistY3BkZWYgQ2xvbmFibGVJbnRBcnJheSBjYW5v bmljYWxfcmVwcmVzZW50YXRpdmVfb2Zfb3JiaXRfb2YobGlzdCBzZ3MsIENsb25hYmxlSW50QXJy YXkgdikgbm9leGNlcHQKKy1jcGRlZiBsaXN0IGNhbm9uaWNhbF9jaGlsZHJlbihsaXN0IHNncywg Q2xvbmFibGVJbnRBcnJheSB2LCBpbnQgbWF4X3BhcnQpIG5vZXhjZXB0CistY3BkZWYgc2V0IG9y Yml0KGxpc3Qgc2dzLCBDbG9uYWJsZUludEFycmF5IHYpIG5vZXhjZXB0CisrY3BkZWYgQ2xvbmFi bGVJbnRBcnJheSBjYW5vbmljYWxfcmVwcmVzZW50YXRpdmVfb2Zfb3JiaXRfb2YobGlzdCBzZ3Ms IENsb25hYmxlSW50QXJyYXkgdikKKytjcGRlZiBsaXN0IGNhbm9uaWNhbF9jaGlsZHJlbihsaXN0 IHNncywgQ2xvbmFibGVJbnRBcnJheSB2LCBpbnQgbWF4X3BhcnQpCisrY3BkZWYgc2V0IG9yYml0 KGxpc3Qgc2dzLCBDbG9uYWJsZUludEFycmF5IHYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29t YmluYXQvZW51bWVyYXRpb25fbW9kX3Blcm1ncm91cC5weXggYi9zcmMvc2FnZS9jb21iaW5hdC9l bnVtZXJhdGlvbl9tb2RfcGVybWdyb3VwLnB5eAoraW5kZXggNzQyMjAyZDA0YWQuLjcwYjA1YzYy NzZiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvZW51bWVyYXRpb25fbW9kX3Blcm1n cm91cC5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L2VudW1lcmF0aW9uX21vZF9wZXJtZ3Jv dXAucHl4CitAQCAtMTMsNyArMTMsNyBAQCBUb29scyBmb3IgZW51bWVyYXRpb24gbW9kdWxvIHRo ZSBhY3Rpb24gb2YgYSBwZXJtdXRhdGlvbiBncm91cAorIAorIGZyb20gc2FnZS5ncm91cHMucGVy bV9ncHMucGVybWdyb3VwX2VsZW1lbnQgY2ltcG9ydCBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudAor IAorLWNwZGVmIGxpc3QgYWxsX2NoaWxkcmVuKENsb25hYmxlSW50QXJyYXkgdiwgaW50IG1heF9w YXJ0KSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IGFsbF9jaGlsZHJlbihDbG9uYWJsZUludEFycmF5 IHYsIGludCBtYXhfcGFydCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJucyBhbGwgdGhlIGNoaWxk cmVuIG9mIGFuIGludGVnZXIgdmVjdG9yICg6Y2xhc3M6YH5zYWdlLnN0cnVjdHVyZS5saXN0X2Ns b25lLkNsb25hYmxlSW50QXJyYXlgKQorICAgICBgYHZgYCBpbiB0aGUgdHJlZSBvZiBlbnVtZXJh dGlvbiBieSBsZXhpY29ncmFwaGljIG9yZGVyLiBUaGUgY2hpbGRyZW4gb2YKK0BAIC0xODQsNyAr MTg0LDcgQEAgY3BkZWYgYmludCBpc19jYW5vbmljYWwobGlzdCBzZ3MsIENsb25hYmxlSW50QXJy YXkgdikgZXhjZXB0IC0xOgorICAgICByZXR1cm4gVHJ1ZQorIAorIAorLWNwZGVmIENsb25hYmxl SW50QXJyYXkgY2Fub25pY2FsX3JlcHJlc2VudGF0aXZlX29mX29yYml0X29mKGxpc3Qgc2dzLCBD bG9uYWJsZUludEFycmF5IHYpIG5vZXhjZXB0OgorK2NwZGVmIENsb25hYmxlSW50QXJyYXkgY2Fu b25pY2FsX3JlcHJlc2VudGF0aXZlX29mX29yYml0X29mKGxpc3Qgc2dzLCBDbG9uYWJsZUludEFy cmF5IHYpOgorICAgICByIiIiCisgICAgIFJldHVybnMgdGhlIG1heGltYWwgdmVjdG9yIGZvciB0 aGUgbGV4aWNvZ3JhcGhpYyBvcmRlciBsaXZpbmcgaW4KKyAgICAgdGhlIG9yYml0IG9mIGB2YCB1 bmRlciB0aGUgYWN0aW9uIG9mIHRoZSBwZXJtdXRhdGlvbiBncm91cCB3aG9zZQorQEAgLTIzMCw3 ICsyMzAsNyBAQCBjcGRlZiBDbG9uYWJsZUludEFycmF5IGNhbm9uaWNhbF9yZXByZXNlbnRhdGl2 ZV9vZl9vcmJpdF9vZihsaXN0IHNncywgQ2xvbmFibGVJbgorICAgICAgICAgcmVwcmVzZW50YXRp dmUgPSBtYXgodG9fYW5hbHlzZSkKKyAgICAgcmV0dXJuIHJlcHJlc2VudGF0aXZlCisgCistY3Bk ZWYgbGlzdCBjYW5vbmljYWxfY2hpbGRyZW4obGlzdCBzZ3MsIENsb25hYmxlSW50QXJyYXkgdiwg aW50IG1heF9wYXJ0KSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IGNhbm9uaWNhbF9jaGlsZHJlbihs aXN0IHNncywgQ2xvbmFibGVJbnRBcnJheSB2LCBpbnQgbWF4X3BhcnQpOgorICAgICByIiIiCisg ICAgIFJldHVybnMgdGhlIGNhbm9uaWNhbCBjaGlsZHJlbiBvZiB0aGUgaW50ZWdlciB2ZWN0b3Ig YGB2YGAuIFRoaXMKKyAgICAgZnVuY3Rpb24gY29tcHV0ZXMgYWxsIGNoaWxkcmVuIG9mIHRoZSBp bnRlZ2VyIHZlY3RvciBgYHZgYCB2aWEgdGhlCitAQCAtMjUxLDcgKzI1MSw3IEBAIGNwZGVmIGxp c3QgY2Fub25pY2FsX2NoaWxkcmVuKGxpc3Qgc2dzLCBDbG9uYWJsZUludEFycmF5IHYsIGludCBt YXhfcGFydCkgbm9leGNlCisgICAgIGNkZWYgQ2xvbmFibGVJbnRBcnJheSBjaGlsZAorICAgICBy ZXR1cm4gW2NoaWxkIGZvciBjaGlsZCBpbiBhbGxfY2hpbGRyZW4odiwgbWF4X3BhcnQpIGlmIGlz X2Nhbm9uaWNhbChzZ3MsIGNoaWxkKV0KKyAKKy1jcGRlZiBzZXQgb3JiaXQobGlzdCBzZ3MsIENs b25hYmxlSW50QXJyYXkgdikgbm9leGNlcHQ6CisrY3BkZWYgc2V0IG9yYml0KGxpc3Qgc2dzLCBD bG9uYWJsZUludEFycmF5IHYpOgorICAgICByIiIiCisgICAgIFJldHVybnMgdGhlIG9yYml0IG9m IHRoZSBpbnRlZ2VyIHZlY3RvciBgYHZgYCB1bmRlciB0aGUgYWN0aW9uIG9mIHRoZQorICAgICBw ZXJtdXRhdGlvbiBncm91cCB3aG9zZSBzdHJvbmcgZ2VuZXJhdGluZyBzeXN0ZW0gaXMgYGBzZ3Ng YC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9mYXN0X3ZlY3Rvcl9wYXJ0aXRpb25z LnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L2Zhc3RfdmVjdG9yX3BhcnRpdGlvbnMucHl4CitpbmRl eCA1MTQyZWI3OTEwOC4uZmU5MzdiNzVlZTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5h dC9mYXN0X3ZlY3Rvcl9wYXJ0aXRpb25zLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvZmFz dF92ZWN0b3JfcGFydGl0aW9ucy5weXgKK0BAIC0zMCw3ICszMCw3IEBAIEFVVEhPUlM6CisgIwor ICMgVG8gdW5kZXJzdGFuZCB0aGUgY29kZSBiZWxvdywgY29uc3VsdCB0aGUgQUxHT1JJVEhNLgor IAorLWNkZWYgbGlzdCB2ZWN0b3JfaGFsdmUobGlzdCB2KSBub2V4Y2VwdDoKKytjZGVmIGxpc3Qg dmVjdG9yX2hhbHZlKGxpc3Qgdik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSB2ZWN0b3Ig aGFsZndheSAobGV4aWNvZ3JhcGhpY2FsbHkpIGJldHdlZW4gYGB2YGAgYW5kIHplcm8uCisgCitA QCAtMjMxLDcgKzIzMSw3IEBAIGRlZiB3aXRoaW5fZnJvbV90byhsaXN0IG0sIGxpc3QgcywgbGlz dCBlKToKKyAgICAgeWllbGQgZnJvbSByZWN1cnNpdmVfd2l0aGluX2Zyb21fdG8obSwgc3MsIGUs IFRydWUsIFRydWUpCisgCisgCistY2RlZiBpbmxpbmUgbGlzdCB2ZWN0b3Jfc3ViKGxpc3QgYSwg bGlzdCBiKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBsaXN0IHZlY3Rvcl9zdWIobGlzdCBhLCBs aXN0IGIpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGBgYSAtIGJgYCBjb25zaWRlcmVkIGFzIHZl Y3RvcnMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvcGVybXV0YXRpb25fY3l0 aG9uLnB4ZCBiL3NyYy9zYWdlL2NvbWJpbmF0L3Blcm11dGF0aW9uX2N5dGhvbi5weGQKK2luZGV4 IDk3NDRiMmY1NDllLi4wOTRkYWZjOGRkYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0 L3Blcm11dGF0aW9uX2N5dGhvbi5weGQKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3Blcm11dGF0 aW9uX2N5dGhvbi5weGQKK0BAIC0zLDkgKzMsOSBAQCBmcm9tIGNweXRob24uYXJyYXkgY2ltcG9y dCBhcnJheQorIGNkZWYgdm9pZCByZXNldF9zd2FwKGludCBuLCBpbnQgKmMsIGludCAqbykgbm9l eGNlcHQKKyBjZGVmIGludCBuZXh0X3N3YXAoaW50IG4sIGludCAqYywgaW50ICpvKSBub2V4Y2Vw dAorIGNwZGVmIGJpbnQgbmV4dF9wZXJtKGFycmF5IGwpIG5vZXhjZXB0CistY3BkZWYgbWFwX3Rv X2xpc3QoYXJyYXkgbCwgdHVwbGUgdmFsdWVzLCBpbnQgbikgbm9leGNlcHQKKy1jcGRlZiBsaXN0 IGxlZnRfYWN0aW9uX3NhbWVfbihsaXN0IGwsIGxpc3Qgcikgbm9leGNlcHQKKy1jcGRlZiBsaXN0 IHJpZ2h0X2FjdGlvbl9zYW1lX24obGlzdCBsLCBsaXN0IHIpIG5vZXhjZXB0CistY3BkZWYgbGlz dCBsZWZ0X2FjdGlvbl9wcm9kdWN0KGxpc3QgbCwgbGlzdCByKSBub2V4Y2VwdAorLWNwZGVmIGxp c3QgcmlnaHRfYWN0aW9uX3Byb2R1Y3QobGlzdCBsLCBsaXN0IHIpIG5vZXhjZXB0CisrY3BkZWYg bWFwX3RvX2xpc3QoYXJyYXkgbCwgdHVwbGUgdmFsdWVzLCBpbnQgbikKKytjcGRlZiBsaXN0IGxl ZnRfYWN0aW9uX3NhbWVfbihsaXN0IGwsIGxpc3QgcikKKytjcGRlZiBsaXN0IHJpZ2h0X2FjdGlv bl9zYW1lX24obGlzdCBsLCBsaXN0IHIpCisrY3BkZWYgbGlzdCBsZWZ0X2FjdGlvbl9wcm9kdWN0 KGxpc3QgbCwgbGlzdCByKQorK2NwZGVmIGxpc3QgcmlnaHRfYWN0aW9uX3Byb2R1Y3QobGlzdCBs LCBsaXN0IHIpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvcGVybXV0YXRpb25f Y3l0aG9uLnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L3Blcm11dGF0aW9uX2N5dGhvbi5weXgKK2lu ZGV4IDE3MDEwNDc2Y2Q5Li5kMTZhMGIxNzVhOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJp bmF0L3Blcm11dGF0aW9uX2N5dGhvbi5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3Blcm11 dGF0aW9uX2N5dGhvbi5weXgKK0BAIC0yNTUsNyArMjU1LDcgQEAgY3BkZWYgYmludCBuZXh0X3Bl cm0oYXJyYXkgbCkgbm9leGNlcHQ6CisgCisgCisgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkK Ky1jcGRlZiBtYXBfdG9fbGlzdChhcnJheSBsLCB0dXBsZSB2YWx1ZXMsIGludCBuKSBub2V4Y2Vw dDoKKytjcGRlZiBtYXBfdG9fbGlzdChhcnJheSBsLCB0dXBsZSB2YWx1ZXMsIGludCBuKToKKyAg ICAgIiIiCisgICAgIEJ1aWxkIGEgbGlzdCBieSBtYXBwaW5nIHRoZSBhcnJheSBgYGxgYCB1c2lu ZyBgYHZhbHVlc2BgLgorIAorQEAgLTI5MSw3ICsyOTEsNyBAQCBjcGRlZiBtYXBfdG9fbGlzdChh cnJheSBsLCB0dXBsZSB2YWx1ZXMsIGludCBuKSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAj IyBNdWx0aXBsaWNhdGlvbiBmdW5jdGlvbnMgZm9yIHBlcm11dGF0aW9ucworIAorLWNwZGVmIGxp c3QgbGVmdF9hY3Rpb25fc2FtZV9uKGxpc3QgUywgbGlzdCBscCkgbm9leGNlcHQ6CisrY3BkZWYg bGlzdCBsZWZ0X2FjdGlvbl9zYW1lX24obGlzdCBTLCBsaXN0IGxwKToKKyAgICAgciIiIgorICAg ICBSZXR1cm4gdGhlIHBlcm11dGF0aW9uIG9idGFpbmVkIGJ5IGNvbXBvc2luZyBhIHBlcm11dGF0 aW9uCisgICAgIGBgU2BgIHdpdGggYSBwZXJtdXRhdGlvbiBgYGxwYGAgaW4gc3VjaCBhbiBvcmRl ciB0aGF0IGBgbHBgYAorQEAgLTMxOCw3ICszMTgsNyBAQCBjcGRlZiBsaXN0IGxlZnRfYWN0aW9u X3NhbWVfbihsaXN0IFMsIGxpc3QgbHApIG5vZXhjZXB0OgorICAgICAgICAgcmV0LmFwcGVuZChT W2ktMV0pCisgICAgIHJldHVybiByZXQKKyAKKy1jcGRlZiBsaXN0IHJpZ2h0X2FjdGlvbl9zYW1l X24obGlzdCBTLCBsaXN0IHJwKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IHJpZ2h0X2FjdGlvbl9z YW1lX24obGlzdCBTLCBsaXN0IHJwKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgcGVybXV0 YXRpb24gb2J0YWluZWQgYnkgY29tcG9zaW5nIGEgcGVybXV0YXRpb24KKyAgICAgYGBTYGAgd2l0 aCBhIHBlcm11dGF0aW9uIGBgcnBgYCBpbiBzdWNoIGFuIG9yZGVyIHRoYXQgYGBTYGAgaXMKK0BA IC0zNDUsNyArMzQ1LDcgQEAgY3BkZWYgbGlzdCByaWdodF9hY3Rpb25fc2FtZV9uKGxpc3QgUywg bGlzdCBycCkgbm9leGNlcHQ6CisgICAgICAgICByZXQuYXBwZW5kKHJwW2ktMV0pCisgICAgIHJl dHVybiByZXQKKyAKKy1jcGRlZiBsaXN0IGxlZnRfYWN0aW9uX3Byb2R1Y3QobGlzdCBTLCBsaXN0 IGxwKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IGxlZnRfYWN0aW9uX3Byb2R1Y3QobGlzdCBTLCBs aXN0IGxwKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHBlcm11dGF0aW9uIG9idGFpbmVk IGJ5IGNvbXBvc2luZyBhIHBlcm11dGF0aW9uCisgICAgIGBgU2BgIHdpdGggYSBwZXJtdXRhdGlv biBgYGxwYGAgaW4gc3VjaCBhbiBvcmRlciB0aGF0IGBgbHBgYCBpcworQEAgLTM3OSw3ICszNzks NyBAQCBjcGRlZiBsaXN0IGxlZnRfYWN0aW9uX3Byb2R1Y3QobGlzdCBTLCBsaXN0IGxwKSBub2V4 Y2VwdDoKKyAgICAgICAgIGxwLmFwcGVuZChpKQorICAgICByZXR1cm4gbGVmdF9hY3Rpb25fc2Ft ZV9uKFMsIGxwKQorIAorLWNwZGVmIGxpc3QgcmlnaHRfYWN0aW9uX3Byb2R1Y3QobGlzdCBTLCBs aXN0IHJwKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IHJpZ2h0X2FjdGlvbl9wcm9kdWN0KGxpc3Qg UywgbGlzdCBycCk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHBlcm11dGF0aW9uIG9idGFp bmVkIGJ5IGNvbXBvc2luZyBhIHBlcm11dGF0aW9uCisgICAgIGBgU2BgIHdpdGggYSBwZXJtdXRh dGlvbiBgYHJwYGAgaW4gc3VjaCBhbiBvcmRlciB0aGF0IGBgU2BgIGlzCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvY29tYmluYXQvcG9zZXRzL2hhc3NlX2N5dGhvbl9mbGludC5weXggYi9zcmMvc2Fn ZS9jb21iaW5hdC9wb3NldHMvaGFzc2VfY3l0aG9uX2ZsaW50LnB5eAoraW5kZXggZmIwMWQ1OTY3 ZjIuLjVkMmM1Yjk2N2FlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvcG9zZXRzL2hh c3NlX2N5dGhvbl9mbGludC5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3Bvc2V0cy9oYXNz ZV9jeXRob25fZmxpbnQucHl4CitAQCAtMjIsNyArMjIsNyBAQCBmcm9tIHNhZ2UubWF0cml4Lm1h dHJpeF9zcGFjZSBpbXBvcnQgTWF0cml4U3BhY2UKKyBmcm9tIHNhZ2UucmluZ3MuaW50ZWdlcl9y aW5nIGltcG9ydCBaWgorIAorIAorLWNwZGVmIE1hdHJpeF9pbnRlZ2VyX2RlbnNlIG1vZWJpdXNf bWF0cml4X2Zhc3QobGlzdCBwb3NpdGlvbnMpIG5vZXhjZXB0OgorK2NwZGVmIE1hdHJpeF9pbnRl Z2VyX2RlbnNlIG1vZWJpdXNfbWF0cml4X2Zhc3QobGlzdCBwb3NpdGlvbnMpOgorICAgICAiIiIK KyAgICAgQ29tcHV0ZSB0aGUgTcO2Yml1cyBtYXRyaXggb2YgYSBwb3NldCBieSBhIHNwZWNpZmlj IHRyaWFuZ3VsYXIgaW52ZXJzaW9uLgorIAorQEAgLTgxLDcgKzgxLDcgQEAgY3BkZWYgTWF0cml4 X2ludGVnZXJfZGVuc2UgbW9lYml1c19tYXRyaXhfZmFzdChsaXN0IHBvc2l0aW9ucykgbm9leGNl cHQ6CisgICAgIHJldHVybiBBCisgCisgCistY3BkZWYgTWF0cml4X2ludGVnZXJfZGVuc2UgY294 ZXRlcl9tYXRyaXhfZmFzdChsaXN0IHBvc2l0aW9ucykgbm9leGNlcHQ6CisrY3BkZWYgTWF0cml4 X2ludGVnZXJfZGVuc2UgY294ZXRlcl9tYXRyaXhfZmFzdChsaXN0IHBvc2l0aW9ucyk6CisgICAg ICIiIgorICAgICBDb21wdXRlIHRoZSBDb3hldGVyIG1hdHJpeCBvZiBhIHBvc2V0IGJ5IGEgc3Bl Y2lmaWMgYWxnb3JpdGhtLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L3JpZ2dl ZF9jb25maWd1cmF0aW9ucy9yaWdnZWRfcGFydGl0aW9uLnB4ZCBiL3NyYy9zYWdlL2NvbWJpbmF0 L3JpZ2dlZF9jb25maWd1cmF0aW9ucy9yaWdnZWRfcGFydGl0aW9uLnB4ZAoraW5kZXggOWIzMzNi NGZkYzYuLmU5OTI1OGYzM2IyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvcmlnZ2Vk X2NvbmZpZ3VyYXRpb25zL3JpZ2dlZF9wYXJ0aXRpb24ucHhkCisrKysgYi9zcmMvc2FnZS9jb21i aW5hdC9yaWdnZWRfY29uZmlndXJhdGlvbnMvcmlnZ2VkX3BhcnRpdGlvbi5weGQKK0BAIC02LDkg KzYsOSBAQCBjZGVmIGNsYXNzIFJpZ2dlZFBhcnRpdGlvbihTYWdlT2JqZWN0KToKKyAgICAgY2Rl ZiBwdWJsaWMgbGlzdCByaWdnaW5nCisgICAgIGNkZWYgbG9uZyBfaGFzaAorIAorLSAgICBjcGRl ZiBnZXRfbnVtX2NlbGxzX3RvX2NvbHVtbihzZWxmLCBpbnQgZW5kX2NvbHVtbiwgdD0qKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBpbnNlcnRfY2VsbChzZWxmLCBpbnQgbWF4X3dpZHRoKSBub2V4Y2Vw dAorLSAgICBjcGRlZiByZW1vdmVfY2VsbChzZWxmLCByb3csIGludCBudW1fY2VsbHM9Kikgbm9l eGNlcHQKKysgICAgY3BkZWYgZ2V0X251bV9jZWxsc190b19jb2x1bW4oc2VsZiwgaW50IGVuZF9j b2x1bW4sIHQ9KikKKysgICAgY3BkZWYgaW5zZXJ0X2NlbGwoc2VsZiwgaW50IG1heF93aWR0aCkK KysgICAgY3BkZWYgcmVtb3ZlX2NlbGwoc2VsZiwgcm93LCBpbnQgbnVtX2NlbGxzPSopCisgCisg Y2RlZiBjbGFzcyBSaWdnZWRQYXJ0aXRpb25UeXBlQihSaWdnZWRQYXJ0aXRpb24pOgorICAgICBw YXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvcmlnZ2VkX2NvbmZpZ3VyYXRpb25z L3JpZ2dlZF9wYXJ0aXRpb24ucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvcmlnZ2VkX2NvbmZpZ3Vy YXRpb25zL3JpZ2dlZF9wYXJ0aXRpb24ucHl4CitpbmRleCA5OGE5MDQ3ZDZjOS4uOTdmZjQ4ZDc5 MTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9yaWdnZWRfY29uZmlndXJhdGlvbnMv cmlnZ2VkX3BhcnRpdGlvbi5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3JpZ2dlZF9jb25m aWd1cmF0aW9ucy9yaWdnZWRfcGFydGl0aW9uLnB5eAorQEAgLTM1NCw3ICszNTQsNyBAQCBjZGVm IGNsYXNzIFJpZ2dlZFBhcnRpdGlvbihTYWdlT2JqZWN0KToKKyAKKyAgICAgIyBTaG91bGQgd2Ug bW92ZSB0aGVzZSBmdW5jdGlvbnMgdG8gdGhlIENQIC0+IFJDIGJpamVjdGlvbnM/CisgCistICAg IGNwZGVmIGdldF9udW1fY2VsbHNfdG9fY29sdW1uKHNlbGYsIGludCBlbmRfY29sdW1uLCB0PTEp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfbnVtX2NlbGxzX3RvX2NvbHVtbihzZWxmLCBpbnQg ZW5kX2NvbHVtbiwgdD0xKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdldCB0aGUgbnVtYmVy IG9mIGNlbGxzIGluIGFsbCBjb2x1bW5zIGJlZm9yZSB0aGUgYGBlbmRfY29sdW1uYGAuCisgCitA QCAtMzk0LDcgKzM5NCw3IEBAIGNkZWYgY2xhc3MgUmlnZ2VkUGFydGl0aW9uKFNhZ2VPYmplY3Qp OgorIAorICAgICAgICAgcmV0dXJuIHN1bV9jZWxscworIAorLSAgICBjcGRlZiBpbnNlcnRfY2Vs bChzZWxmLCBpbnQgbWF4X3dpZHRoKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW5zZXJ0X2NlbGwo c2VsZiwgaW50IG1heF93aWR0aCk6CisgICAgICAgICByIiIiCisgICAgICAgICBJbnNlcnQgYSBj ZWxsIGdpdmVuIGF0IGEgc2luZ3VsYXIgdmFsdWUgYXMgbG9uZyBhcyBpdHMgbGVzcyB0aGFuIHRo ZQorICAgICAgICAgc3BlY2lmaWVkIHdpZHRoLgorQEAgLTQ0Niw3ICs0NDYsNyBAQCBjZGVmIGNs YXNzIFJpZ2dlZFBhcnRpdGlvbihTYWdlT2JqZWN0KToKKyAgICAgICAgIHNlbGYucmlnZ2luZ1tt YXhfcG9zXSA9IE5vbmUgIyBTdGF0ZSB0aGF0IHdlJ3ZlIGNoYW5nZWQgdGhpcyByb3cKKyAgICAg ICAgIHJldHVybiBzZWxmLl9saXN0W21heF9wb3NdIC0gMQorIAorLSAgICBjcGRlZiByZW1vdmVf Y2VsbChzZWxmLCByb3csIGludCBudW1fY2VsbHM9MSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJl bW92ZV9jZWxsKHNlbGYsIHJvdywgaW50IG51bV9jZWxscz0xKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJlbW92ZXMgYSBjZWxsIGF0IHRoZSBzcGVjaWZpZWQgYGByb3dgYC4KKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9icmFpZF9vcmJpdC5weXggYi9z cmMvc2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9icmFpZF9vcmJpdC5weXgKK2luZGV4IGM3OTgz ZWViNDNhLi41MTA3MDM4ZGY0YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L3Jvb3Rf c3lzdGVtL2JyYWlkX29yYml0LnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0 ZW0vYnJhaWRfb3JiaXQucHl4CitAQCAtNyw3ICs3LDcgQEAgQ3l0aG9uIGZ1bmN0aW9uIHRvIGNv bXB1dGUgdGhlIG9yYml0IG9mIHRoZSBicmFpZCBtb3ZlcyBvbiBhIHJlZHVjZWQgd29yZC4KKyBm cm9tIGN5c2lnbmFscy5zaWduYWxzIGNpbXBvcnQgc2lnX2NoZWNrCisgCisgCistY3BkZWYgc2V0 IEJyYWlkT3JiaXQobGlzdCB3b3JkLCBsaXN0IHJlbHMpIG5vZXhjZXB0OgorK2NwZGVmIHNldCBC cmFpZE9yYml0KGxpc3Qgd29yZCwgbGlzdCByZWxzKToKKyAgICAgciIiIgorICAgICBSZXR1cm4g dGhlIG9yYml0IG9mIGBgd29yZGBgIGJ5IGFsbCByZXBsYWNlbWVudHMgZ2l2ZW4gYnkgYGByZWxz YGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVj dGlvbl9ncm91cF9jLnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L3Jvb3Rfc3lzdGVtL3JlZmxlY3Rp b25fZ3JvdXBfYy5weXgKK2luZGV4IGE0NGE1ODc0YjdmLi5kYmZjNzYyODJmOCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2NvbWJpbmF0L3Jvb3Rfc3lzdGVtL3JlZmxlY3Rpb25fZ3JvdXBfYy5weXgK KysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3Jvb3Rfc3lzdGVtL3JlZmxlY3Rpb25fZ3JvdXBfYy5w eXgKK0BAIC0zMiw3ICszMiw3IEBAIGNkZWYgY2xhc3MgSXRlcmF0b3IoKToKKyAgICAgY2RlZiBs aXN0IG5vbmNvbQorICAgICBjZGVmIGxpc3Qgb3JkZXIKKyAKKy0gICAgY2RlZiBsaXN0IG5vbmNv bV9sZXR0ZXJzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3Qgbm9uY29tX2xldHRlcnMo c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGxpc3QgYGBMYGAgb2YgbGlz dHMgc3VjaCB0aGF0IC4uLgorIAorQEAgLTkwLDcgKzkwLDcgQEAgY2RlZiBjbGFzcyBJdGVyYXRv cigpOgorIAorICAgICAgICAgIyBzZWxmLm5vbmNvbSA9IHNlbGYubm9uY29tX2xldHRlcnMoKQor IAorLSAgICBjZGVmIGxpc3Qgc3VjYyhzZWxmLCBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCB1LCBp bnQgZmlyc3QpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3Qgc3VjYyhzZWxmLCBQZXJtdXRhdGlv bkdyb3VwRWxlbWVudCB1LCBpbnQgZmlyc3QpOgorICAgICAgICAgY2RlZiBQZXJtdXRhdGlvbkdy b3VwRWxlbWVudCBzaQorICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAgY2RlZiBsaXN0IHN1 Y2Nlc3NvcnMgPSBbXQorQEAgLTExMCw3ICsxMTAsNyBAQCBjZGVmIGNsYXNzIEl0ZXJhdG9yKCk6 CisgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3JzLmFwcGVuZCgoX25ld19tdWxfKHNpLCB1 KSwgaSkpCisgICAgICAgICByZXR1cm4gc3VjY2Vzc29ycworIAorLSAgICBjZGVmIGxpc3Qgc3Vj Y193b3JkcyhzZWxmLCBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCB1LCBsaXN0IHdvcmQsIGludCBm aXJzdCkgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBzdWNjX3dvcmRzKHNlbGYsIFBlcm11dGF0 aW9uR3JvdXBFbGVtZW50IHUsIGxpc3Qgd29yZCwgaW50IGZpcnN0KToKKyAgICAgICAgIGNkZWYg UGVybXV0YXRpb25Hcm91cEVsZW1lbnQgdTEsIHNpCisgICAgICAgICBjZGVmIGludCBpCisgICAg ICAgICBjZGVmIGxpc3Qgc3VjY2Vzc29ycyA9IFtdCitAQCAtNDYwLDcgKzQ2MCw3IEBAIGNkZWYg aW50IGZpcnN0X2Rlc2NlbnRfaW5fcGFyYWJvbGljKFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHcs IGxpc3QgcGFyYWJvbGljLAorIAorIAorIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHJl ZHVjZV9pbl9jb3NldChQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCB3LCB0dXBsZSBTLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IHBhcmFib2xpYywg aW50IE4sIGJpbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaXN0IHBhcmFib2xpYywgaW50IE4sIGJpbnQgcmlnaHQpOgor ICAgICByIiIiCisgICAgIFJldHVybiB0aGUgbWluaW1hbCBsZW5ndGggY29zZXQgcmVwcmVzZW50 YXRpdmUgb2YgYGB3YGAgb2YgdGhlIHBhcmFib2xpYworICAgICBzdWJncm91cCBpbmRleGVkIGJ5 IGBgcGFyYWJvbGljYGAgKHdpdGggaW5kaWNlcyBgXHswLCBcbGRvdHMsIG5cfWApLgorQEAgLTUw NCw3ICs1MDQsNyBAQCBjcGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCByZWR1Y2VfaW5fY29z ZXQoUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgdywgdHVwbGUgUworICAgICAgICAgICAgIHcgPSBf bmV3X211bF8odywgc2kpCisgCisgY2RlZiBsaXN0IHJlZHVjZWRfY29zZXRfcmVwcmVzZW50YXRp dmVzKFcsIGxpc3QgcGFyYWJvbGljX2JpZywgbGlzdCBwYXJhYm9saWNfc21hbGwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW50IHJpZ2h0KToKKyAg ICAgY2RlZiB0dXBsZSBTID0gdHVwbGUoVy5zaW1wbGVfcmVmbGVjdGlvbnMoKSkKKyAgICAgY2Rl ZiBpbnQgTiA9IFcubnVtYmVyX29mX3JlZmxlY3Rpb25zKCkKKyAgICAgY2RlZiBzZXQgdG90ZXN0 ID0gc2V0KFtXLm9uZSgpXSkKK0BAIC01MjEsNyArNTIxLDcgQEAgY2RlZiBsaXN0IHJlZHVjZWRf Y29zZXRfcmVwcmVzZW50YXRpdmVzKFcsIGxpc3QgcGFyYWJvbGljX2JpZywgbGlzdCBwYXJhYm9s aWNfc20KKyAgICAgICAgIHRvdGVzdCA9IG5ldy5kaWZmZXJlbmNlKHJlcykgICMgW3cgZm9yIHcg aW4gbmV3IGlmIHcgbm90IGluIHJlc10KKyAgICAgcmV0dXJuIGxpc3QocmVzKQorIAorLWNkZWYg cGFyYWJvbGljX3JlY3Vyc2l2ZShQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCB4LCBsaXN0IHYsIGYp IG5vZXhjZXB0OgorK2NkZWYgcGFyYWJvbGljX3JlY3Vyc2l2ZShQZXJtdXRhdGlvbkdyb3VwRWxl bWVudCB4LCBsaXN0IHYsIGYpOgorICAgICBpZiBub3QgdjoKKyAgICAgICAgIGYoeCkKKyAgICAg ZWxzZToKK0BAIC01NjIsNyArNTYyLDcgQEAgZGVmIHBhcmFib2xpY19pdGVyYXRpb25fYXBwbGlj YXRpb24oVywgZik6CisgICAgIHBhcmFib2xpY19yZWN1cnNpdmUoVy5vbmUoKSwgY29zZXRfcmVw cywgZikKKyAKKyAKKy1jcGRlZiBsaXN0IHJlZHVjZWRfd29yZF9jKFcsIFBlcm11dGF0aW9uR3Jv dXBFbGVtZW50IHcpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3QgcmVkdWNlZF93b3JkX2MoVywgUGVy bXV0YXRpb25Hcm91cEVsZW1lbnQgdyk6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0ZXMgYSByZWR1 Y2VkIHdvcmQgZm9yIHRoZSBlbGVtZW50IGBgd2BgIGluIHRoZQorICAgICByZWZsZWN0aW9uIGdy b3VwIGBgV2BgIGluIHRoZSBwb3NpdGlvbnMgYGByYW5nZShuKWBgLgorQEAgLTU4OCw3ICs1ODgs NyBAQCBjcGRlZiBsaXN0IHJlZHVjZWRfd29yZF9jKFcsIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50 IHcpIG5vZXhjZXB0OgorICAgICAgICAgd29yZC5hcHBlbmQoZmRlcykKKyAgICAgcmV0dXJuIHdv cmQKKyAKKy1jZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF9uZXdfbXVsXyhQZXJtdXRhdGlv bkdyb3VwRWxlbWVudCBsZWZ0LCBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCByaWdodCkgbm9leGNl cHQ6CisrY2RlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfbmV3X211bF8oUGVybXV0YXRpb25H cm91cEVsZW1lbnQgbGVmdCwgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgcmlnaHQpOgorICAgICAi IiIKKyAgICAgTXVsdGlwbHkgdHdvIDpjbGFzczpgUGVybXV0YXRpb25Hcm91cEVsZW1lbnRgIGRp cmVjdGx5IHdpdGhvdXQgdGhlCisgICAgIGNvZXJjaW9uIGZyYW1ld29yay4KK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQu cHhkIGIvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9lbGVt ZW50LnB4ZAoraW5kZXggMTk0Njg4ZTI1YjYuLjIxOGRkNmMyNTc1IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9lbGVtZW50LnB4ZAor KysrIGIvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9lbGVt ZW50LnB4ZAorQEAgLTEsMTEgKzEsMTEgQEAKKyBmcm9tIHNhZ2UuZ3JvdXBzLnBlcm1fZ3BzLnBl cm1ncm91cF9lbGVtZW50IGNpbXBvcnQgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQKKyAKKyBjZGVm IGNsYXNzIENvbXBsZXhSZWZsZWN0aW9uR3JvdXBFbGVtZW50KFBlcm11dGF0aW9uR3JvdXBFbGVt ZW50KToKKy0gICAgY3BkZWYgYWN0aW9uKHNlbGYsIHZlYywgb25fc3BhY2U9Kikgbm9leGNlcHQK Ky0gICAgY3BkZWYgYWN0aW9uX29uX3Jvb3RfaW5kaWNlcyhzZWxmLCBpKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBhY3Rpb24oc2VsZiwgdmVjLCBvbl9zcGFjZT0qKQorKyAgICBjcGRlZiBhY3Rpb25f b25fcm9vdF9pbmRpY2VzKHNlbGYsIGkpCisgCisgY2RlZiBjbGFzcyBSZWFsUmVmbGVjdGlvbkdy b3VwRWxlbWVudChDb21wbGV4UmVmbGVjdGlvbkdyb3VwRWxlbWVudCk6CisgICAgIGNwZGVmIGJp bnQgaGFzX2xlZnRfZGVzY2VudChzZWxmLCBpKSBub2V4Y2VwdAorICAgICBjcGRlZiBiaW50IGhh c19kZXNjZW50KHNlbGYsIGksIHNpZGU9KiwgcG9zaXRpdmU9Kikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgYWN0aW9uKHNlbGYsIHZlYywgc2lkZT0qLCBvbl9zcGFjZT0qKSBub2V4Y2VwdAorLSAgICBj cGRlZiBhY3Rpb25fb25fcm9vdF9pbmRpY2VzKHNlbGYsIGksIHNpZGU9Kikgbm9leGNlcHQKKysg ICAgY3BkZWYgYWN0aW9uKHNlbGYsIHZlYywgc2lkZT0qLCBvbl9zcGFjZT0qKQorKyAgICBjcGRl ZiBhY3Rpb25fb25fcm9vdF9pbmRpY2VzKHNlbGYsIGksIHNpZGU9KikKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQucHl4 IGIvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9lbGVtZW50 LnB5eAoraW5kZXggNjgwZTQwZjE2Y2QuLjNkODFhODRmZjRiIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9lbGVtZW50LnB5eAorKysr IGIvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9lbGVtZW50 LnB5eAorQEAgLTM0OCw3ICszNDgsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhSZWZsZWN0aW9uR3Jv dXBFbGVtZW50KFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KToKKyAgICAgICAgIG1hdC5zZXRfaW1t dXRhYmxlKCkKKyAgICAgICAgIHJldHVybiBtYXQKKyAKKy0gICAgY3BkZWYgYWN0aW9uKHNlbGYs IHZlYywgb25fc3BhY2U9InByaW1hbCIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhY3Rpb24oc2Vs ZiwgdmVjLCBvbl9zcGFjZT0icHJpbWFsIik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGltYWdlIG9mIGBgdmVjYGAgdW5kZXIgdGhlIGFjdGlvbiBvZiBgYHNlbGZgYC4KKyAK K0BAIC0zNzMsNyArMzczLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4UmVmbGVjdGlvbkdyb3VwRWxl bWVudChQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCk6CisgICAgICAgICBtYXQgPSBzZWxmLm1hdHJp eChvbl9zcGFjZT1vbl9zcGFjZSkKKyAgICAgICAgIHJldHVybiB2ZWMgKiBtYXQKKyAKKy0gICAg Y3BkZWYgX2FjdF9vbl8oc2VsZiwgdmVjLCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hY3Rfb25fKHNlbGYsIHZlYywgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAg ICAgciIiIgorICAgICAgICAgRGVmaW5lcyB0aGUgYWN0aW9uIG9mIGBgc2VsZmBgIGFzIGEgbGlu ZWFyIHRyYW5zZm9ybWF0aW9uCisgICAgICAgICBvbiB0aGUgdmVjdG9yIHNwYWNlLCBpbiB0aGUg YmFzaXMgZ2l2ZW4gYnkgdGhlIHNpbXBsZQorQEAgLTM5Nyw3ICszOTcsNyBAQCBjZGVmIGNsYXNz IENvbXBsZXhSZWZsZWN0aW9uR3JvdXBFbGVtZW50KFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KToK KyAgICAgICAgICAgICByZXR1cm4gKH5zZWxmKS5hY3Rpb24odmVjKQorICAgICAgICAgcmV0dXJu IHNlbGYuYWN0aW9uKHZlYykKKyAKKy0gICAgY3BkZWYgYWN0aW9uX29uX3Jvb3RfaW5kaWNlcyhz ZWxmLCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWN0aW9uX29uX3Jvb3RfaW5kaWNlcyhzZWxm LCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSByaWdodCBhY3Rpb24gb24g dGhlIHNldCBvZiByb290cy4KKyAKK0BAIC05NTksNyArOTU5LDcgQEAgY2RlZiBjbGFzcyBSZWFs UmVmbGVjdGlvbkdyb3VwRWxlbWVudChDb21wbGV4UmVmbGVjdGlvbkdyb3VwRWxlbWVudCk6Cisg CisgICAgIG1hdHJpeCA9IHRvX21hdHJpeAorIAorLSAgICBjcGRlZiBhY3Rpb24oc2VsZiwgdmVj LCBzaWRlPSJyaWdodCIsIG9uX3NwYWNlPSJwcmltYWwiKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg YWN0aW9uKHNlbGYsIHZlYywgc2lkZT0icmlnaHQiLCBvbl9zcGFjZT0icHJpbWFsIik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGltYWdlIG9mIGBgdmVjYGAgdW5kZXIgdGhl IGFjdGlvbiBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xMDIyLDcgKzEwMjIsNyBAQCBjZGVmIGNsYXNz IFJlYWxSZWZsZWN0aW9uR3JvdXBFbGVtZW50KENvbXBsZXhSZWZsZWN0aW9uR3JvdXBFbGVtZW50 KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignb25fc3Bh Y2UgbXVzdCBiZSAicHJpbWFsIiBvciAiZHVhbCInKQorIAorLSAgICBjcGRlZiBfYWN0X29uXyhz ZWxmLCB2ZWMsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF9v bl8oc2VsZiwgdmVjLCBiaW50IHNlbGZfb25fbGVmdCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBHaXZlIHRoZSBhY3Rpb24gb2YgYGBzZWxmYGAgYXMgYSBsaW5lYXIgdHJhbnNmb3JtYXRpb24g b24KKyAgICAgICAgIHRoZSB2ZWN0b3Igc3BhY2UsIGluIHRoZSBiYXNpcyBnaXZlbiBieSB0aGUg c2ltcGxlIHJvb3RzLgorQEAgLTEwNTQsNyArMTA1NCw3IEBAIGNkZWYgY2xhc3MgUmVhbFJlZmxl Y3Rpb25Hcm91cEVsZW1lbnQoQ29tcGxleFJlZmxlY3Rpb25Hcm91cEVsZW1lbnQpOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmLmFjdGlvbih2ZWMsIHNpZGU9ImxlZnQiKQorICAgICAgICAgcmV0 dXJuIHNlbGYuYWN0aW9uKHZlYywgc2lkZT0icmlnaHQiKQorIAorLSAgICBjcGRlZiBhY3Rpb25f b25fcm9vdF9pbmRpY2VzKHNlbGYsIGksIHNpZGU9InJpZ2h0Iikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGFjdGlvbl9vbl9yb290X2luZGljZXMoc2VsZiwgaSwgc2lkZT0icmlnaHQiKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb24gdGhlIHNldCBvZiByb290cy4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9zZXRfcGFydGl0aW9uX2l0ZXJhdG9y LnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L3NldF9wYXJ0aXRpb25faXRlcmF0b3IucHl4CitpbmRl eCA3YzliYzBlYWFmNS4uZmY3ZDJlN2M2YzMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5h dC9zZXRfcGFydGl0aW9uX2l0ZXJhdG9yLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvc2V0 X3BhcnRpdGlvbl9pdGVyYXRvci5weXgKK0BAIC03LDcgKzcsNyBAQCBjaW1wb3J0IGN5dGhvbgor IAorIEBjeXRob24ud3JhcGFyb3VuZChGYWxzZSkKKyBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNl KQorLWNkZWYgbGlzdCBmcm9tX3dvcmQobGlzdCB3LCBsaXN0IGJhc2Vfc2V0KSBub2V4Y2VwdDoK KytjZGVmIGxpc3QgZnJvbV93b3JkKGxpc3QgdywgbGlzdCBiYXNlX3NldCk6CisgICAgIGNkZWYg bGlzdCBzcCA9IFtdCisgICAgIGNkZWYgUHlfc3NpemVfdCBpCisgICAgIGNkZWYgUHlfc3NpemVf dCBiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvc3Vid29yZF9jb21wbGV4X2MucHl4 IGIvc3JjL3NhZ2UvY29tYmluYXQvc3Vid29yZF9jb21wbGV4X2MucHl4CitpbmRleCAzMWE5ODVm ODY3NS4uNWIxNTVlZmRhNzUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9zdWJ3b3Jk X2NvbXBsZXhfYy5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3N1YndvcmRfY29tcGxleF9j LnB5eAorQEAgLTYzLDcgKzYzLDcgQEAgY3BkZWYgaW50IF9mbGlwX2MoVywgc2V0IHBvc2l0aW9u cywgbGlzdCBleHRlbmRlZF9yb290X2NvbmZfaW5kaWNlcywKKyAgICAgcmV0dXJuIGoKKyAKKyAK Ky1jcGRlZiBsaXN0IF9jb25zdHJ1Y3RfZmFjZXRzX2ModHVwbGUgUSwgdywgaW50IG49LTEsIGlu dCBwb3M9MCwgaW50IGw9LTEpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3QgX2NvbnN0cnVjdF9mYWNl dHNfYyh0dXBsZSBRLCB3LCBpbnQgbj0tMSwgaW50IHBvcz0wLCBpbnQgbD0tMSk6CisgICAgIHIi IiIKKyAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGZhY2V0cyBvZiB0aGUgc3Vid29yZCBjb21wbGV4 IGFzc29jaWF0ZWQgdG8gdGhlCisgICAgIHdvcmQgYFFgIGFuZCB0aGUgZWxlbWVudCBgd2AgaW4g YSBDb3hldGVyIGdyb3VwIGBXYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC93b3Jk cy93b3JkX2NoYXIucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvd29yZHMvd29yZF9jaGFyLnB5eAor aW5kZXggYjM0YmJhZDdjMTkuLjA2OWYxN2ZiY2JjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29t YmluYXQvd29yZHMvd29yZF9jaGFyLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvd29yZHMv d29yZF9jaGFyLnB5eAorQEAgLTEwMCw3ICsxMDAsNyBAQCBjZGVmIGNsYXNzIFdvcmREYXRhdHlw ZV9jaGFyKFdvcmREYXRhdHlwZSk6CisgCisgICAgIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2Up ICAjIGFzc3VtZSB0aGF0IGluZGV4aW5nIHdpbGwgbm90IGNhdXNlIGFueSBJbmRleEVycm9ycwor ICAgICBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpICAjIG5vdCBjaGVjayBub3QgY29ycmVjdGx5 IGhhbmRsZSBuZWdhdGl2ZSBpbmRpY2VzCistICAgIGNkZWYgX3NldF9kYXRhKHNlbGYsIGRhdGEp IG5vZXhjZXB0OgorKyAgICBjZGVmIF9zZXRfZGF0YShzZWxmLCBkYXRhKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIHNldCB0aGUgYXR0cmlidXRlIC5fZGF0YSBhbmQgLl9sZW5ndGggZnJvbSB0 aGUgc2VxdWVuY2UgZGF0YQorICAgICAgICAgKHVzdWFsbHkgZGF0YSBpcyBhIHdvcmQsIGEgdHVw bGUgb3IgYSBsaXN0KQorQEAgLTIwOSw3ICsyMDksNyBAQCBjZGVmIGNsYXNzIFdvcmREYXRhdHlw ZV9jaGFyKFdvcmREYXRhdHlwZSk6CisgICAgICAgICBiaXRzZXRfZnJlZShzZWVuKQorICAgICAg ICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVmIF9uZXdfYyhzZWxmLCB1bnNpZ25lZCBjaGFyICog ZGF0YSwgc2l6ZV90IGxlbmd0aCwgV29yZERhdGF0eXBlX2NoYXIgbWFzdGVyKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfbmV3X2Moc2VsZiwgdW5zaWduZWQgY2hhciAqIGRhdGEsIHNpemVfdCBsZW5n dGgsIFdvcmREYXRhdHlwZV9jaGFyIG1hc3Rlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBU TyBESVNDVVNTOiBpbiBJbnRlZ2VyIChzYWdlLnJpbmdzLmludGVnZXIpIHRoaXMgbWV0aG9kIGlz IGFjdHVhbGx5IGFuCisgICAgICAgICBleHRlcm5hbCBmdW5jdGlvbi4gQnV0IHdlIG1pZ2h0IHdh bnQgdG8gaGF2ZSBzZXZlcmFsIHBvc3NpYmxlIGluaGVyaXRhbmNlLgorQEAgLTQyNSw3ICs0MjUs NyBAQCBjZGVmIGNsYXNzIFdvcmREYXRhdHlwZV9jaGFyKFdvcmREYXRhdHlwZSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiByZXZlcnNlZF93b3JkX2l0ZXJhdG9yKHNlbGYpCisgCist ICAgIGNkZWYgX2NvbmNhdGVuYXRlKHNlbGYsIFdvcmREYXRhdHlwZV9jaGFyIG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfY29uY2F0ZW5hdGUoc2VsZiwgV29yZERhdGF0eXBlX2NoYXIgb3Ro ZXIpOgorICAgICAgICAgY2RlZiB1bnNpZ25lZCBjaGFyICogZGF0YQorICAgICAgICAgZGF0YSA9 IDx1bnNpZ25lZCBjaGFyICo+Y2hlY2tfYWxsb2NhcnJheShzZWxmLl9sZW5ndGggKyBvdGhlci5f bGVuZ3RoLCBzaXplb2YodW5zaWduZWQgY2hhcikpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv Y29tYmluYXQvd29yZHMvd29yZF9kYXRhdHlwZXMucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvd29y ZHMvd29yZF9kYXRhdHlwZXMucHl4CitpbmRleCA5YWI4OGQ3OTliYS4uNjIxMzJjNjQwMzIgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC93b3Jkcy93b3JkX2RhdGF0eXBlcy5weXgKKysr KyBiL3NyYy9zYWdlL2NvbWJpbmF0L3dvcmRzL3dvcmRfZGF0YXR5cGVzLnB5eAorQEAgLTQxOSw3 ICs0MTksNyBAQCBjZGVmIGNsYXNzIFdvcmREYXRhdHlwZV9zdHIoV29yZERhdGF0eXBlKToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIGEgaW4gc2VsZi5fZGF0YQorIAorLSAg ICBjcGRlZiBfaGFzX2ZhY3Rvcl9uYWl2ZShzZWxmLCB3KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2hhc19mYWN0b3JfbmFpdmUoc2VsZiwgdyk6CisgICAgICAgICByIiIiCisgICAgICAgICBBIG5h aXZlIHRlc3QgZm9yIHRlc3Rpbmcgd2hldGhlciB0aGUgd29yZCBjb250YWlucyBgYHdgYCBhcyBh IGZhY3Rvci4KKyAKK0BAIC00NDksNyArNDQ5LDcgQEAgY2RlZiBjbGFzcyBXb3JkRGF0YXR5cGVf c3RyKFdvcmREYXRhdHlwZSk6CisgICAgICAgICAgICAgcmV0dXJuIHcgaW4gc2VsZi5fZGF0YQor ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorIAorLSAgICBjcGRlZiBmaW5kKHNlbGYsIHN1Yiwg c3RhcnQ9MCwgZW5kPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmaW5kKHNlbGYsIHN1Yiwg c3RhcnQ9MCwgZW5kPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyB0aGUg aW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2Ygc3ViIGluIHNlbGYsCisgICAgICAgICBz dWNoIHRoYXQgc3ViIGlzIGNvbnRhaW5lZCB3aXRoaW4gc2VsZltzdGFydDplbmRdLgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weGQgYi9zcmMvc2FnZS9jcHl0aG9uL2dl dGF0dHIucHhkCitpbmRleCAyOTk1MDlhMDBkYy4uZTA5ODdjZmE0YzUgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHhkCisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL2dldGF0 dHIucHhkCitAQCAtNSw0ICs1LDQgQEAgY2RlZiBjbGFzcyBBdHRyaWJ1dGVFcnJvck1lc3NhZ2U6 CisgICAgIGNkZWYgcHVibGljIGNscworICAgICBjZGVmIHB1YmxpYyBuYW1lCisgCistY3BkZWYg Z2V0YXR0cl9mcm9tX290aGVyX2NsYXNzKHNlbGYsIGNscywgbmFtZSkgbm9leGNlcHQKKytjcGRl ZiBnZXRhdHRyX2Zyb21fb3RoZXJfY2xhc3Moc2VsZiwgY2xzLCBuYW1lKQorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weXggYi9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIu cHl4CitpbmRleCA1ZGYyODgwZDgzNS4uZDhhNTc5NWMwYzQgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9jcHl0aG9uL2dldGF0dHIucHl4CisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHl4 CitAQCAtMTExLDcgKzExMSw3IEBAIGNkZWYgY2xhc3MgQXR0cmlidXRlRXJyb3JNZXNzYWdlOgor IGNkZWYgQXR0cmlidXRlRXJyb3JNZXNzYWdlIGR1bW15X2Vycm9yX21lc3NhZ2UgPSBBdHRyaWJ1 dGVFcnJvck1lc3NhZ2UoKQorIAorIAorLWNwZGVmIHJhd19nZXRhdHRyKG9iaiwgbmFtZSkgbm9l eGNlcHQ6CisrY3BkZWYgcmF3X2dldGF0dHIob2JqLCBuYW1lKToKKyAgICAgIiIiCisgICAgIExp a2UgYGBnZXRhdHRyKG9iaiwgbmFtZSlgYCBidXQgd2l0aG91dCBpbnZva2luZyB0aGUgYmluZGlu ZworICAgICBiZWhhdmlvciBvZiBkZXNjcmlwdG9ycyB1bmRlciBub3JtYWwgYXR0cmlidXRlIGFj Y2Vzcy4KK0BAIC0yMjcsNyArMjI3LDcgQEAgY3BkZWYgcmF3X2dldGF0dHIob2JqLCBuYW1lKSBu b2V4Y2VwdDoKKyAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoZHVtbXlfZXJyb3JfbWVzc2FnZSkK KyAKKyAKKy1jcGRlZiBnZXRhdHRyX2Zyb21fb3RoZXJfY2xhc3Moc2VsZiwgY2xzLCBuYW1lKSBu b2V4Y2VwdDoKKytjcGRlZiBnZXRhdHRyX2Zyb21fb3RoZXJfY2xhc3Moc2VsZiwgY2xzLCBuYW1l KToKKyAgICAgIiIiCisgICAgIEVtdWxhdGUgYGBnZXRhdHRyKHNlbGYsIG5hbWUpYGAsIGFzIGlm IGBgc2VsZmBgIHdhcyBhbiBpbnN0YW5jZSBvZgorICAgICBgYGNsc2BgLgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2NweXRob24vc3RyaW5nLnB4ZCBiL3NyYy9zYWdlL2NweXRob24vc3RyaW5nLnB4 ZAoraW5kZXggZGJmMWM5MWMwOGIuLjFmZGUwYWVjMGRlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv Y3B5dGhvbi9zdHJpbmcucHhkCisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL3N0cmluZy5weGQKK0BA IC0xMyw3ICsxMyw3IEBAIGNkZWYgZXh0ZXJuIGZyb20gInN0cmluZ19pbXBsLmgiOgorICAgICBi eXRlcyBfc3RyX3RvX2J5dGVzKHMsIGVuY29kaW5nLCBlcnJvcnMpCisgCisgCistY2RlZiBpbmxp bmUgc3RyIGNoYXJfdG9fc3RyKGNvbnN0IGNoYXIqIGMsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1O b25lKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBzdHIgY2hhcl90b19zdHIoY29uc3QgY2hhciog YywgZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUpOgorICAgICByIiIiCisgICAgIENvbnZlcnQg YSBDIHN0cmluZyB0byBhIFB5dGhvbiBgYHN0cmBgLgorICAgICAiIiIKK0BAIC0yMyw3ICsyMyw3 IEBAIGNkZWYgaW5saW5lIHN0ciBjaGFyX3RvX3N0cihjb25zdCBjaGFyKiBjLCBlbmNvZGluZz1O b25lLCBlcnJvcnM9Tm9uZSkgbm9leGNlcHQ6CisgICAgIHJldHVybiBfY3N0cl90b19zdHIoYywg ZW5jb2RpbmcsIGVycm9ycykKKyAKKyAKKy1jcGRlZiBpbmxpbmUgc3RyIGJ5dGVzX3RvX3N0cihi LCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgaW5saW5lIHN0 ciBieXRlc190b19zdHIoYiwgZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUpOgorICAgICByIiIi CisgICAgIENvbnZlcnQgYGBieXRlc2BgIHRvIGBgc3RyYGAuCisgCitAQCAtNDksNyArNDksNyBA QCBjcGRlZiBpbmxpbmUgc3RyIGJ5dGVzX3RvX3N0cihiLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9 Tm9uZSkgbm9leGNlcHQ6CisgICAgIHJldHVybiBfY3N0cl90b19zdHIoPGJ5dGVzPmIsIGVuY29k aW5nLCBlcnJvcnMpCisgCisgCistY3BkZWYgaW5saW5lIGJ5dGVzIHN0cl90b19ieXRlcyhzLCBl bmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgaW5saW5lIGJ5dGVz IHN0cl90b19ieXRlcyhzLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSk6CisgICAgIHIiIiIK KyAgICAgQ29udmVydCBgYHN0cmBgIG9yIGBgdW5pY29kZWBgIHRvIGBgYnl0ZXNgYC4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jcHl0aG9uL3dyYXBwZXJkZXNjci5weGQgYi9zcmMvc2FnZS9j cHl0aG9uL3dyYXBwZXJkZXNjci5weGQKK2luZGV4IDIyNjBjMDYyZjFmLi5iNjc3NTg2MDcxMCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NweXRob24vd3JhcHBlcmRlc2NyLnB4ZAorKysrIGIvc3Jj L3NhZ2UvY3B5dGhvbi93cmFwcGVyZGVzY3IucHhkCitAQCAtMjQsNyArMjQsNyBAQCBjZGVmIGV4 dGVybiBmcm9tICo6CisgICAgIFB5RGVzY3JfTmV3V3JhcHBlcihQeVR5cGVPYmplY3QqIGNscywg d3JhcHBlcmJhc2UqIHdyYXBwZXIsIHZvaWQqIHdyYXBwZWQpCisgCisgCistY2RlZiB3cmFwcGVy ZGVzY3JfZmFzdGNhbGwod3JhcHBlcl9kZXNjcmlwdG9yIHNsb3R3cmFwcGVyLCBzZWxmLCBhcmdz LCBrd2RzKSBub2V4Y2VwdAorK2NkZWYgd3JhcHBlcmRlc2NyX2Zhc3RjYWxsKHdyYXBwZXJfZGVz Y3JpcHRvciBzbG90d3JhcHBlciwgc2VsZiwgYXJncywga3dkcykKKyAKKyAKKyBjZGVmIGlubGlu ZSB3cmFwcGVyYmFzZSogZ2V0X3Nsb3RkZWYod3JhcHBlcl9kZXNjcmlwdG9yIHNsb3R3cmFwcGVy KSBleGNlcHQgTlVMTDoKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jcHl0aG9uL3dyYXBwZXJkZXNj ci5weXggYi9zcmMvc2FnZS9jcHl0aG9uL3dyYXBwZXJkZXNjci5weXgKK2luZGV4IDU3MzhhODdh ZjQ2Li43NzZlNGZlOTRhOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NweXRob24vd3JhcHBlcmRl c2NyLnB5eAorKysrIGIvc3JjL3NhZ2UvY3B5dGhvbi93cmFwcGVyZGVzY3IucHl4CitAQCAtODcs NyArODcsNyBAQCBkZWYgd3JhcHBlcmRlc2NyX2NhbGwoc2xvdHdyYXBwZXIsIHNlbGYsICphcmdz LCAqKmt3ZHMpOgorICAgICByZXR1cm4gd3JhcHBlcmRlc2NyX2Zhc3RjYWxsKHNsb3R3cmFwcGVy LCBzZWxmLCBhcmdzLCBrd2RzKQorIAorIAorLWNkZWYgd3JhcHBlcmRlc2NyX2Zhc3RjYWxsKHdy YXBwZXJfZGVzY3JpcHRvciBzbG90d3JhcHBlciwgc2VsZiwgYXJncywga3dkcykgbm9leGNlcHQ6 CisrY2RlZiB3cmFwcGVyZGVzY3JfZmFzdGNhbGwod3JhcHBlcl9kZXNjcmlwdG9yIHNsb3R3cmFw cGVyLCBzZWxmLCBhcmdzLCBrd2RzKToKKyAgICAgIyBDeXRob24gaW1wbGVtZW50YXRpb24gb2Yg d3JhcHBlcmRlc2NyX2NhbGwKKyAgICAgY2RlZiB3cmFwcGVyYmFzZSogc2xvdGRlZiA9IHNsb3R3 cmFwcGVyLmRfYmFzZQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NyeXB0by9ib29sZWFuX2Z1 bmN0aW9uLnB4ZCBiL3NyYy9zYWdlL2NyeXB0by9ib29sZWFuX2Z1bmN0aW9uLnB4ZAoraW5kZXgg ZDlmZDEwMTdmY2QuLjU3MDM5NDMxMjNjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY3J5cHRvL2Jv b2xlYW5fZnVuY3Rpb24ucHhkCisrKysgYi9zcmMvc2FnZS9jcnlwdG8vYm9vbGVhbl9mdW5jdGlv bi5weGQKK0BAIC02LDQgKzYsNCBAQCBjZGVmIGlubGluZSB1bnNpZ25lZCBpbnQgaGFtbWluZ193 ZWlnaHQodW5zaWduZWQgaW50IHgpIG5vZXhjZXB0OgorICAgICB4ICo9IDB4MDEwMTAxMDFVTAor ICAgICByZXR1cm4geD4+MjQKKyAKKy1jZGVmIHdhbHNoX2hhZGFtYXJkKGxvbmcgKmYsIGludCBs ZG4pIG5vZXhjZXB0CisrY2RlZiB3YWxzaF9oYWRhbWFyZChsb25nICpmLCBpbnQgbGRuKQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2NyeXB0by9ib29sZWFuX2Z1bmN0aW9uLnB5eCBiL3NyYy9zYWdl L2NyeXB0by9ib29sZWFuX2Z1bmN0aW9uLnB5eAoraW5kZXggNjE5MDEyOTI3OGYuLjcwODMzYzYz ZGMzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY3J5cHRvL2Jvb2xlYW5fZnVuY3Rpb24ucHl4Cisr KysgYi9zcmMvc2FnZS9jcnlwdG8vYm9vbGVhbl9mdW5jdGlvbi5weXgKK0BAIC01MSw3ICs1MSw3 IEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAjIHdhbHNoX2hhZGFtYXJkIHRyYW5zZm9ybSwgcmVl ZF9tdWxsZXIgdHJhbnNmb3JtLCBhbmQgYSBsb3QKKyAjIG1vcmUsIHNlZSAnTWF0dGVycyBjb21w dXRhdGlvbmFsJyBhdmFpbGFibGUgb24gd3d3Lmpqai5kZS4KKyAKKy1jZGVmIHdhbHNoX2hhZGFt YXJkKGxvbmcgKmYsIGludCBsZG4pIG5vZXhjZXB0OgorK2NkZWYgd2Fsc2hfaGFkYW1hcmQobG9u ZyAqZiwgaW50IGxkbik6CisgICAgIHIiIiIKKyAgICAgVGhlIFdhbHNoIEhhZGFtYXJkIHRyYW5z Zm9ybSBpcyBhbiBvcnRob2dvbmFsIHRyYW5zZm9ybSBlcXVpdmFsZW50CisgICAgIHRvIGEgbXVs dGlkaW1lbnNpb25hbCBkaXNjcmV0ZSBGb3VyaWVyIHRyYW5zZm9ybSBvZiBzaXplIDJ4MnguLi54 Mi4KK0BAIC0xMDksNyArMTA5LDcgQEAgY2RlZiBsb25nIHllbGxvd19jb2RlKHVuc2lnbmVkIGxv bmcgYSkgbm9leGNlcHQ6CisgICAgICAgICBtIF49IChtPDxzKQorICAgICByZXR1cm4gcgorIAor LWNkZWYgcmVlZF9tdWxsZXIobXBfbGltYl90KiBmLCBpbnQgbGRuKSBub2V4Y2VwdDoKKytjZGVm IHJlZWRfbXVsbGVyKG1wX2xpbWJfdCogZiwgaW50IGxkbik6CisgICAgIHIiIiIKKyAgICAgVGhl IFJlZWQgTXVsbGVyIHRyYW5zZm9ybSAoYWxzbyBrbm93biBhcyBiaW5hcnkgTcO2Yml1cyB0cmFu c2Zvcm0pCisgICAgIGlzIGFuIG9ydGhvZ29uYWwgdHJhbnNmb3JtLiBGb3IgYSBmdW5jdGlvbiBg ZmAgZGVmaW5lZCBieQorQEAgLTY5NSw3ICs2OTUsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5GdW5j dGlvbihTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3dh bHNoX2hhZGFtYXJkX3RyYW5zZm9ybQorIAorLSAgICBjcGRlZiB0dXBsZSB3YWxzaF9oYWRhbWFy ZF90cmFuc2Zvcm0oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHR1cGxlIHdhbHNoX2hhZGFt YXJkX3RyYW5zZm9ybShzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXB1dGUgdGhl IFdhbHNoIEhhZGFtYXJkIHRyYW5zZm9ybSBgV2Agb2YgdGhlIGZ1bmN0aW9uIGBmYC4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jcnlwdG8vc2JveC5weXggYi9zcmMvc2FnZS9jcnlwdG8vc2Jv eC5weXgKK2luZGV4IDM2YTJjNGE0ZTY2Li4zMjJmN2NhNWY0NSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2NyeXB0by9zYm94LnB5eAorKysrIGIvc3JjL3NhZ2UvY3J5cHRvL3Nib3gucHl4CitAQCAt MjY4LDcgKzI2OCw3IEBAIGNkZWYgY2xhc3MgU0JveChTYWdlT2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKKyAKKy0gICAgY3BkZWYg bGlzdCB0b19iaXRzKHNlbGYsIHgsIG49Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3Qg dG9fYml0cyhzZWxmLCB4LCBuPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g Yml0c3RyaW5nIG9mIGxlbmd0aCBgYG5gYCBmb3IgaW50ZWdlciBgYHhgYC4gVGhlCisgICAgICAg ICByZXR1cm5lZCBiaXRzdHJpbmcgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGxlbmd0aCBgYG5gYC4K K0BAIC0zMzMsNyArMzMzLDcgQEAgY2RlZiBjbGFzcyBTQm94KFNhZ2VPYmplY3QpOgorIAorICAg ICAgICAgcmV0dXJuIFpaKHNlbGYuX3JwYWQoeCwgbiksIDIpCisgCistICAgIGNkZWYgbGlzdCBf cnBhZChzZWxmLCBsaXN0IHgsIFB5X3NzaXplX3Qgbj0tMSkgbm9leGNlcHQ6CisrICAgIGNkZWYg bGlzdCBfcnBhZChzZWxmLCBsaXN0IHgsIFB5X3NzaXplX3Qgbj0tMSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJpZ2h0IHBhZHMgYGB4YGAgc3VjaCB0aGF0IGBgbGVuKHgpID09IG5gYC4KKyAK K0BAIC0xOTc3LDcgKzE5NzcsNyBAQCBjZGVmIFB5X3NzaXplX3QgbWlzdHlfc3Vic3RpdHV0ZShQ eV9zc2l6ZV90IHgsIFB5X3NzaXplX3QgaW5wdXRfc2l6ZSwgbGlzdCBzYm94ZQorIGN0eXBlZGVm IFB5X3NzaXplX3QgKCpfU0JPWF9DT05TVFIpIChQeV9zc2l6ZV90LCBQeV9zc2l6ZV90LCBsaXN0 KSBub2V4Y2VwdAorIAorIAorLWNkZWYgc2JveF9jb25zdHJ1Y3Rpb24oX1NCT1hfQ09OU1RSIGNv bnN0cnVjdGlvbiwgbGlzdCBhcmdzKSBub2V4Y2VwdDoKKytjZGVmIHNib3hfY29uc3RydWN0aW9u KF9TQk9YX0NPTlNUUiBjb25zdHJ1Y3Rpb24sIGxpc3QgYXJncyk6CisgICAgICIiIgorICAgICBD b25zdHJ1Y3QgYW4gU2JveCBmcm9tIHRoZSBnaXZlbiBpbnB1dCBzYm94ZXMgdGhhdCBoYXMgYSB0 d2ljZQorICAgICBhcyBiaWcgaW5wdXQgc2l6ZS4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9kYXRh X3N0cnVjdHVyZXMvYmluYXJ5X21hdHJpeC5weGQgYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMv YmluYXJ5X21hdHJpeC5weGQKK2luZGV4IDg0ODQ4OWU3Njk3Li5hMmViOGQ3MDliYiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9iaW5hcnlfbWF0cml4LnB4ZAorKysrIGIv c3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpbmFyeV9tYXRyaXgucHhkCitAQCAtMTI2LDcgKzEy Niw3IEBAIGNkZWYgaW5saW5lIGJpbnQgYmluYXJ5X21hdHJpeF9nZXQoYmluYXJ5X21hdHJpeF90 IG0sIG1wX2JpdGNudF90IHJvdywgbXBfYml0Y250CisgICAgICIiIgorICAgICByZXR1cm4gYml0 c2V0X2luKG0ucm93c1tyb3ddLCBjb2wpCisgCistY2RlZiBpbmxpbmUgYmluYXJ5X21hdHJpeF9w cmludChiaW5hcnlfbWF0cml4X3QgbSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgYmluYXJ5X21h dHJpeF9wcmludChiaW5hcnlfbWF0cml4X3QgbSk6CisgICAgIHIiIiIKKyAgICAgUHJpbnQgdGhl IGJpbmFyeSBtYXRyaXgKKyAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZGF0YV9zdHJ1 Y3R1cmVzL2JpdHNldC5weGQgYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYml0c2V0LnB4ZAor aW5kZXggMGQ3MmY3ZWI2ZWQuLjM1MzQzZmEyOGFlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZGF0 YV9zdHJ1Y3R1cmVzL2JpdHNldC5weGQKKysrKyBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9i aXRzZXQucHhkCitAQCAtMTIsMjkgKzEyLDI5IEBAIGZyb20gc2FnZS5kYXRhX3N0cnVjdHVyZXMu Yml0c2V0X2Jhc2UgY2ltcG9ydCBiaXRzZXRfdAorICMgUHl0aG9uIGxheWVyIG92ZXIgYml0c2V0 X3QKKyBjZGVmIGNsYXNzIEZyb3plbkJpdHNldDoKKyAgICAgY2RlZiBiaXRzZXRfdCBfYml0c2V0 CistICAgIGNkZWYgRnJvemVuQml0c2V0IF9uZXcoc2VsZixsb25nIGludCBjYXBhY2l0eSkgbm9l eGNlcHQKKy0gICAgY3BkZWYgRnJvemVuQml0c2V0IF9sYXJnZXJfY2FwYWNpdHlfKHNlbGYsIGxv bmcgc2l6ZSkgbm9leGNlcHQKKysgICAgY2RlZiBGcm96ZW5CaXRzZXQgX25ldyhzZWxmLGxvbmcg aW50IGNhcGFjaXR5KQorKyAgICBjcGRlZiBGcm96ZW5CaXRzZXQgX2xhcmdlcl9jYXBhY2l0eV8o c2VsZiwgbG9uZyBzaXplKQorICAgICBjcGRlZiBsb25nIGNhcGFjaXR5KHNlbGYpIG5vZXhjZXB0 CisgICAgIGNwZGVmIGJpbnQgaXNlbXB0eShzZWxmKSBub2V4Y2VwdAorICAgICBjcGRlZiBiaW50 IGlzc3Vic2V0KHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgZXhjZXB0IC0xCisgICAgIGNwZGVm IGJpbnQgaXNzdXBlcnNldChzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIGV4Y2VwdCAtMQorICAg ICBjcGRlZiBiaW50IGlzZGlzam9pbnQoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKSBleGNlcHQg LTEKKy0gICAgY3BkZWYgX3VuaW9uKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQK Ky0gICAgY3BkZWYgaW50ZXJzZWN0aW9uKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNl cHQKKy0gICAgY3BkZWYgZGlmZmVyZW5jZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5vZXhj ZXB0CistICAgIGNwZGVmIHN5bW1ldHJpY19kaWZmZXJlbmNlKHNlbGYsIEZyb3plbkJpdHNldCBv dGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgY29tcGxlbWVudChzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfX2NvcHlfXyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfdW5pb24oc2VsZiwg RnJvemVuQml0c2V0IG90aGVyKQorKyAgICBjcGRlZiBpbnRlcnNlY3Rpb24oc2VsZiwgRnJvemVu Qml0c2V0IG90aGVyKQorKyAgICBjcGRlZiBkaWZmZXJlbmNlKHNlbGYsIEZyb3plbkJpdHNldCBv dGhlcikKKysgICAgY3BkZWYgc3ltbWV0cmljX2RpZmZlcmVuY2Uoc2VsZiwgRnJvemVuQml0c2V0 IG90aGVyKQorKyAgICBjcGRlZiBjb21wbGVtZW50KHNlbGYpCisrICAgIGNwZGVmIF9fY29weV9f KHNlbGYpCisgCisgY2RlZiBjbGFzcyBCaXRzZXQoRnJvemVuQml0c2V0KToKKy0gICAgY3BkZWYg X19jb3B5X18oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgdXBkYXRlKHNlbGYsIEZyb3plbkJp dHNldCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgaW50ZXJzZWN0aW9uX3VwZGF0ZShzZWxm LCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIGRpZmZlcmVuY2VfdXBk YXRlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgc3ltbWV0 cmljX2RpZmZlcmVuY2VfdXBkYXRlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQK Ky0gICAgY3BkZWYgYWRkKHNlbGYsIHVuc2lnbmVkIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgcmVtb3ZlKHNlbGYsIHVuc2lnbmVkIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGlz Y2FyZChzZWxmLCB1bnNpZ25lZCBsb25nIG4pIG5vZXhjZXB0CistICAgIGNwZGVmIHBvcChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBjbGVhcihzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBf X2NvcHlfXyhzZWxmKQorKyAgICBjcGRlZiB1cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVy KQorKyAgICBjcGRlZiBpbnRlcnNlY3Rpb25fdXBkYXRlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhl cikKKysgICAgY3BkZWYgZGlmZmVyZW5jZV91cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVy KQorKyAgICBjcGRlZiBzeW1tZXRyaWNfZGlmZmVyZW5jZV91cGRhdGUoc2VsZiwgRnJvemVuQml0 c2V0IG90aGVyKQorKyAgICBjcGRlZiBhZGQoc2VsZiwgdW5zaWduZWQgbG9uZyBuKQorKyAgICBj cGRlZiByZW1vdmUoc2VsZiwgdW5zaWduZWQgbG9uZyBuKQorKyAgICBjcGRlZiBkaXNjYXJkKHNl bGYsIHVuc2lnbmVkIGxvbmcgbikKKysgICAgY3BkZWYgcG9wKHNlbGYpCisrICAgIGNwZGVmIGNs ZWFyKHNlbGYpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpdHNl dC5weXggYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYml0c2V0LnB5eAoraW5kZXggZWUzZTY0 YTgxMDcuLjhhNWU5MWMwYTlhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVz L2JpdHNldC5weXgKKysrKyBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9iaXRzZXQucHl4CitA QCAtNDA0LDcgKzQwNCw3IEBAIGNkZWYgY2xhc3MgRnJvemVuQml0c2V0OgorICAgICAgICAgICAg IGZvciBuIGluIGl0ZXI6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoc2VsZi5fYml0c2V0 LCBuKQorIAorLSAgICBjZGVmIEZyb3plbkJpdHNldCBfbmV3KHNlbGYsIGxvbmcgaW50IGNhcGFj aXR5KSBub2V4Y2VwdDoKKysgICAgY2RlZiBGcm96ZW5CaXRzZXQgX25ldyhzZWxmLCBsb25nIGlu dCBjYXBhY2l0eSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYW4gb2JqZWN0IG9m IHRoZSBzYW1lIHR5cGUgYXMgYGBzZWxmYGAsIGluaXRpYWxpemVkIHdpdGggYQorICAgICAgICAg Yml0c2V0IG9mIGNhcGFjaXR5IGBgY2FwYWNpdHlgYC4KK0BAIC00NzEsNyArNDcxLDcgQEAgY2Rl ZiBjbGFzcyBGcm96ZW5CaXRzZXQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiByZXZl cnNlZChiaXRzZXRfbGlzdChzZWxmLl9iaXRzZXQpKQorIAorLSAgICBjcGRlZiBGcm96ZW5CaXRz ZXQgX2xhcmdlcl9jYXBhY2l0eV8oc2VsZiwgbG9uZyBjYXBhY2l0eSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIEZyb3plbkJpdHNldCBfbGFyZ2VyX2NhcGFjaXR5XyhzZWxmLCBsb25nIGNhcGFjaXR5 KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgY29weSBvZiBgYHNlbGZgYCB3aGVy ZSB0aGUgYml0c2V0IGhhcyB0aGUgbWF4aW11bSBvZiB0aGUKKyAgICAgICAgIGN1cnJlbnQgY2Fw YWNpdHkgYW5kIHRoZSBjYXBhY2l0eSBwYXNzZWQuICBJZiBubyByZXNpemluZyBpcyBuZWVkZWQs CitAQCAtODcyLDcgKzg3Miw3IEBAIGNkZWYgY2xhc3MgRnJvemVuQml0c2V0OgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc3RyKHNlbGYpCisgCistICAgIGNwZGVmIF91bmlvbihzZWxm LCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfdW5pb24oc2VsZiwg RnJvemVuQml0c2V0IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB1 bmlvbiBvZiBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgorIAorQEAgLTk3MSw3ICs5NzEsNyBAQCBj ZGVmIGNsYXNzIEZyb3plbkJpdHNldDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNl bGYuX3VuaW9uKG90aGVyKQorIAorLSAgICBjcGRlZiBpbnRlcnNlY3Rpb24oc2VsZiwgRnJvemVu Qml0c2V0IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW50ZXJzZWN0aW9uKHNlbGYsIEZy b3plbkJpdHNldCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW50 ZXJzZWN0aW9uIG9mIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAuCisgCitAQCAtMTA0MSw3ICsxMDQx LDcgQEAgY2RlZiBjbGFzcyBGcm96ZW5CaXRzZXQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLmludGVyc2VjdGlvbihvdGhlcikKKyAKKy0gICAgY3BkZWYgZGlmZmVyZW5jZShz ZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaWZmZXJlbmNl KHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgZGlmZmVyZW5jZSBvZiBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgorIAorQEAgLTExMTAs NyArMTExMCw3IEBAIGNkZWYgY2xhc3MgRnJvemVuQml0c2V0OgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5kaWZmZXJlbmNlKG90aGVyKQorIAorLSAgICBjcGRlZiBzeW1tZXRy aWNfZGlmZmVyZW5jZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBzeW1tZXRyaWNfZGlmZmVyZW5jZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHN5bW1ldHJpYyBkaWZmZXJlbmNlIG9mIGBg c2VsZmBgIGFuZCBgYG90aGVyYGAuCisgCitAQCAtMTE4Myw3ICsxMTgzLDcgQEAgY2RlZiBjbGFz cyBGcm96ZW5CaXRzZXQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnN5bW1l dHJpY19kaWZmZXJlbmNlKG90aGVyKQorIAorLSAgICBjcGRlZiBjb21wbGVtZW50KHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBjb21wbGVtZW50KHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIGNvbXBsZW1lbnQgb2Ygc2VsZi4KKyAKK0BAIC0xMjI5LDcgKzEyMjks NyBAQCBjZGVmIGNsYXNzIEZyb3plbkJpdHNldDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuY29tcGxlbWVudCgpCisgCistICAgIGNwZGVmICBfX2NvcHlfXyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gYGBzZWxmYGAgKHNpbmNlIGBgc2VsZmBgIGlzIGltbXV0YWJsZSkuCisgCitAQCAt MTI4Nyw3ICsxMjg3LDcgQEAgY2RlZiBjbGFzcyBCaXRzZXQoRnJvemVuQml0c2V0KToKKyAgICAg ICAgIFRydWUKKyAgICAgIiIiCisgCistICAgIGNwZGVmIF9fY29weV9fKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIGEgY29weSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xNDI3LDcgKzE0MjcsNyBAQCBjZGVmIGNs YXNzIEJpdHNldChGcm96ZW5CaXRzZXQpOgorICAgICAgICAgZWxpZiBvcCA9PSBQeV9HRToKKyAg ICAgICAgICAgICByZXR1cm4gYml0c2V0X2lzc3VwZXJzZXQobGVmdC5fYml0c2V0LCByaWdodC5f Yml0c2V0KQorIAorLSAgICBjZGVmIEZyb3plbkJpdHNldCBfbmV3KHNlbGYsIGxvbmcgaW50IGNh cGFjaXR5KSBub2V4Y2VwdDoKKysgICAgY2RlZiBGcm96ZW5CaXRzZXQgX25ldyhzZWxmLCBsb25n IGludCBjYXBhY2l0eSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBvYmplY3Qg b2YgdGhlIHNhbWUgdHlwZSBhcyBgYHNlbGZgYCwgaW5pdGlhbGl6ZWQgd2l0aCBhCisgICAgICAg ICBiaXRzZXQgb2YgY2FwYWNpdHkgYGBjYXBhY2l0eWBgLgorQEAgLTE0MzYsNyArMTQzNiw3IEBA IGNkZWYgY2xhc3MgQml0c2V0KEZyb3plbkJpdHNldCk6CisgICAgICAgICBiID0gQml0c2V0Ll9f bmV3X18oQml0c2V0LCBOb25lLCBjYXBhY2l0eSkKKyAgICAgICAgIHJldHVybiBiCisgCistICAg IGNwZGVmIHVwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBj cGRlZiB1cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKToKKyAgICAgICAgICIiIgorICAg ICAgICAgVXBkYXRlIHRoZSBiaXRzZXQgdG8gaW5jbHVkZSBpdGVtcyBpbiBgYG90aGVyYGAuCisg CitAQCAtMTUwOCw3ICsxNTA4LDcgQEAgY2RlZiBjbGFzcyBCaXRzZXQoRnJvemVuQml0c2V0KToK KyAgICAgICAgIHNlbGYudXBkYXRlKG90aGVyKQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0g ICAgY3BkZWYgaW50ZXJzZWN0aW9uX3VwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBpbnRlcnNlY3Rpb25fdXBkYXRlKHNlbGYsIEZyb3plbkJpdHNl dCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFVwZGF0ZSB0aGUgYml0c2V0IHRvIHRo ZSBpbnRlcnNlY3Rpb24gb2YgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYC4KKyAKK0BAIC0xNTc3LDcg KzE1NzcsNyBAQCBjZGVmIGNsYXNzIEJpdHNldChGcm96ZW5CaXRzZXQpOgorICAgICAgICAgc2Vs Zi5pbnRlcnNlY3Rpb25fdXBkYXRlKG90aGVyKQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0g ICAgY3BkZWYgZGlmZmVyZW5jZV91cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgZGlmZmVyZW5jZV91cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90 aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXBkYXRlIHRoZSBiaXRzZXQgdG8gdGhlIGRp ZmZlcmVuY2Ugb2YgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYC4KKyAKK0BAIC0xNjc0LDcgKzE2NzQs NyBAQCBjZGVmIGNsYXNzIEJpdHNldChGcm96ZW5CaXRzZXQpOgorICAgICAgICAgc2VsZi5kaWZm ZXJlbmNlX3VwZGF0ZShvdGhlcikKKyAgICAgICAgIHJldHVybiBzZWxmCisgCistICAgIGNwZGVm IHN5bW1ldHJpY19kaWZmZXJlbmNlX3VwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBzeW1tZXRyaWNfZGlmZmVyZW5jZV91cGRhdGUoc2VsZiwgRnJv emVuQml0c2V0IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXBkYXRlIHRoZSBiaXRz ZXQgdG8gdGhlIHN5bW1ldHJpYyBkaWZmZXJlbmNlIG9mIGBgc2VsZmBgIGFuZAorICAgICAgICAg YGBvdGhlcmBgLgorQEAgLTE3NjcsNyArMTc2Nyw3IEBAIGNkZWYgY2xhc3MgQml0c2V0KEZyb3pl bkJpdHNldCk6CisgICAgICAgICBzZWxmLnN5bW1ldHJpY19kaWZmZXJlbmNlX3VwZGF0ZShvdGhl cikKKyAgICAgICAgIHJldHVybiBzZWxmCisgCistICAgIGNwZGVmIGFkZChzZWxmLCB1bnNpZ25l ZCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGQoc2VsZiwgdW5zaWduZWQgbG9uZyBu KToKKyAgICAgICAgICIiIgorICAgICAgICAgVXBkYXRlIHRoZSBiaXRzZXQgYnkgYWRkaW5nIGBg bmBgLgorIAorQEAgLTE3OTYsNyArMTc5Niw3IEBAIGNkZWYgY2xhc3MgQml0c2V0KEZyb3plbkJp dHNldCk6CisgICAgICAgICAgICAgYml0c2V0X3JlYWxsb2Moc2VsZi5fYml0c2V0LCBuICsgMSkK KyAgICAgICAgIGJpdHNldF9hZGQoc2VsZi5fYml0c2V0LCBuKQorIAorLSAgICBjcGRlZiByZW1v dmUoc2VsZiwgdW5zaWduZWQgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVtb3ZlKHNl bGYsIHVuc2lnbmVkIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFVwZGF0ZSB0aGUg Yml0c2V0IGJ5IHJlbW92aW5nIGBgbmBgLiAgUmFpc2VzIGBgS2V5RXJyb3JgYCBpZiBgYG5gYCBp cworICAgICAgICAgbm90IGNvbnRhaW5lZCBpbiB0aGUgYml0c2V0LgorQEAgLTE4MzYsNyArMTgz Niw3IEBAIGNkZWYgY2xhc3MgQml0c2V0KEZyb3plbkJpdHNldCk6CisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIGJpdHNldF9yZW1vdmUoc2VsZi5fYml0c2V0LCBuKQorIAorLSAgICBjcGRl ZiBkaXNjYXJkKHNlbGYsIHVuc2lnbmVkIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRp c2NhcmQoc2VsZiwgdW5zaWduZWQgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXBk YXRlIHRoZSBiaXRzZXQgYnkgcmVtb3ZpbmcgYGBuYGAuCisgCitAQCAtMTg2OSw3ICsxODY5LDcg QEAgY2RlZiBjbGFzcyBCaXRzZXQoRnJvemVuQml0c2V0KToKKyAgICAgICAgIGlmIG4gPCBzZWxm Ll9iaXRzZXQuc2l6ZToKKyAgICAgICAgICAgICBiaXRzZXRfZGlzY2FyZChzZWxmLl9iaXRzZXQs IG4pCisgCistICAgIGNwZGVmIHBvcChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcG9wKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZW1vdmUgYW5kIHJldHVybiBhbiBhcmJpdHJh cnkgZWxlbWVudCBmcm9tIHRoZSBzZXQuIFJhaXNlcworICAgICAgICAgYGBLZXlFcnJvcmBgIGlm IHRoZSBzZXQgaXMgZW1wdHkuCitAQCAtMTg5Nyw3ICsxODk3LDcgQEAgY2RlZiBjbGFzcyBCaXRz ZXQoRnJvemVuQml0c2V0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGJpdHNldF9w b3Aoc2VsZi5fYml0c2V0KQorIAorLSAgICBjcGRlZiBjbGVhcihzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgY2xlYXIoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlbW92ZXMgYWxs IGVsZW1lbnRzIGZyb20gdGhlIGJpdHNldC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9kYXRh X3N0cnVjdHVyZXMvYml0c2V0X2Jhc2UucHhkIGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2Jp dHNldF9iYXNlLnB4ZAoraW5kZXggNDUwZTg2NTZjMzUuLmRmNDBkNjY2ZDg2IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpdHNldF9iYXNlLnB4ZAorKysrIGIvc3JjL3Nh Z2UvZGF0YV9zdHJ1Y3R1cmVzL2JpdHNldF9iYXNlLnB4ZAorQEAgLTkxMSwxMiArOTExLDEyIEBA IGNkZWYgaW50IGJpdHNldF9mcm9tX2NoYXIoYml0c2V0X3QgYml0cywgY2hhciogcywgY2hhciB6 ZXJvPSosIGNoYXIgb25lPSopIGV4Y2VwCisgCisgY2RlZiBpbnQgYml0c2V0X2Zyb21fc3RyKGJp dHNldF90IGJpdHMsIG9iamVjdCBzLCBjaGFyIHplcm89KiwgY2hhciBvbmU9KikgZXhjZXB0IC0x CisgCistY2RlZiBiaXRzZXRfc3RyaW5nKGZ1c2VkX2JpdHNldF90IGJpdHMpIG5vZXhjZXB0Cisr Y2RlZiBiaXRzZXRfc3RyaW5nKGZ1c2VkX2JpdHNldF90IGJpdHMpCisgCistY2RlZiBiaXRzZXRf Ynl0ZXMoZnVzZWRfYml0c2V0X3QgYml0cykgbm9leGNlcHQKKytjZGVmIGJpdHNldF9ieXRlcyhm dXNlZF9iaXRzZXRfdCBiaXRzKQorIAorLWNkZWYgbGlzdCBiaXRzZXRfbGlzdChmdXNlZF9iaXRz ZXRfdCBiaXRzKSBub2V4Y2VwdAorK2NkZWYgbGlzdCBiaXRzZXRfbGlzdChmdXNlZF9iaXRzZXRf dCBiaXRzKQorIAorLWNkZWYgYml0c2V0X3BpY2tsZShiaXRzZXRfdCBicykgbm9leGNlcHQKKytj ZGVmIGJpdHNldF9waWNrbGUoYml0c2V0X3QgYnMpCisgCistY2RlZiBiaXRzZXRfdW5waWNrbGUo Yml0c2V0X3QgYnMsIHR1cGxlIGlucHV0KSBub2V4Y2VwdAorK2NkZWYgYml0c2V0X3VucGlja2xl KGJpdHNldF90IGJzLCB0dXBsZSBpbnB1dCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9kYXRhX3N0 cnVjdHVyZXMvYml0c2V0X2Jhc2UucHl4IGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpdHNl dF9iYXNlLnB5eAoraW5kZXggNjE2ZTNiMWFiMDQuLjE4MjgxMmE4OTFmIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpdHNldF9iYXNlLnB5eAorKysrIGIvc3JjL3NhZ2Uv ZGF0YV9zdHJ1Y3R1cmVzL2JpdHNldF9iYXNlLnB5eAorQEAgLTQ3LDEzICs0NywxMyBAQCBjZGVm IGludCBiaXRzZXRfZnJvbV9zdHIoYml0c2V0X3QgYml0cywgb2JqZWN0IHMsIGNoYXIgemVybz1j JzAnLCBjaGFyIG9uZT1jJzEnKQorICAgICBjZGVmIGJ5dGVzIGIgPSBzdHJfdG9fYnl0ZXMocykK KyAgICAgcmV0dXJuIGJpdHNldF9mcm9tX2NoYXIoYml0cywgYiwgemVybywgb25lKQorIAorLWNk ZWYgYml0c2V0X3N0cmluZyhmdXNlZF9iaXRzZXRfdCBiaXRzKSBub2V4Y2VwdDoKKytjZGVmIGJp dHNldF9zdHJpbmcoZnVzZWRfYml0c2V0X3QgYml0cyk6CisgICAgICIiIgorICAgICBSZXR1cm4g YSBweXRob24gc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgYml0c2V0LgorICAgICAiIiIKKyAgICAg cmV0dXJuIGJ5dGVzX3RvX3N0cihiaXRzZXRfYnl0ZXMoYml0cykpCisgCistY2RlZiBiaXRzZXRf Ynl0ZXMoZnVzZWRfYml0c2V0X3QgYml0cykgbm9leGNlcHQ6CisrY2RlZiBiaXRzZXRfYnl0ZXMo ZnVzZWRfYml0c2V0X3QgYml0cyk6CisgICAgICIiIgorICAgICBSZXR1cm4gYSBweXRob24gYnl0 ZXMgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgYml0c2V0LgorIAorQEAgLTY2LDcgKzY2LDcgQEAg Y2RlZiBiaXRzZXRfYnl0ZXMoZnVzZWRfYml0c2V0X3QgYml0cykgbm9leGNlcHQ6CisgICAgIHNp Z19mcmVlKHMpCisgICAgIHJldHVybiBweV9zCisgCistY2RlZiBsaXN0IGJpdHNldF9saXN0KGZ1 c2VkX2JpdHNldF90IGJpdHMpIG5vZXhjZXB0OgorK2NkZWYgbGlzdCBiaXRzZXRfbGlzdChmdXNl ZF9iaXRzZXRfdCBiaXRzKToKKyAgICAgIiIiCisgICAgIFJldHVybiBhIGxpc3Qgb2YgZWxlbWVu dHMgaW4gdGhlIGJpdHNldC4KKyAgICAgIiIiCitAQCAtNzcsNyArNzcsNyBAQCBjZGVmIGxpc3Qg Yml0c2V0X2xpc3QoZnVzZWRfYml0c2V0X3QgYml0cykgbm9leGNlcHQ6CisgICAgICAgICBlbHQg PSBiaXRzZXRfbmV4dChiaXRzLCBlbHQgKyAxKQorICAgICByZXR1cm4gZWx0cworIAorLWNkZWYg Yml0c2V0X3BpY2tsZShiaXRzZXRfdCBicykgbm9leGNlcHQ6CisrY2RlZiBiaXRzZXRfcGlja2xl KGJpdHNldF90IGJzKToKKyAgICAgIiIiCisgICAgIENvbnZlcnQgYGBic2BgIHRvIGEgcmVhc29u YWJseSBjb21wYWN0IFB5dGhvbiBzdHJ1Y3R1cmUuCisgCitAQCAtOTEsNyArOTEsNyBAQCBjZGVm IGJpdHNldF9waWNrbGUoYml0c2V0X3QgYnMpIG5vZXhjZXB0OgorICAgICAgICAgZGF0YS5hcHBl bmQoYnMuYml0c1tpXSkKKyAgICAgcmV0dXJuICh2ZXJzaW9uLCBicy5zaXplLCBicy5saW1icywg c2l6ZW9mKHVuc2lnbmVkIGxvbmcpLCB0dXBsZShkYXRhKSkKKyAKKy1jZGVmIGJpdHNldF91bnBp Y2tsZShiaXRzZXRfdCBicywgdHVwbGUgaW5wdXQpIG5vZXhjZXB0OgorK2NkZWYgYml0c2V0X3Vu cGlja2xlKGJpdHNldF90IGJzLCB0dXBsZSBpbnB1dCk6CisgICAgICIiIgorICAgICBDb252ZXJ0 IHRoZSBkYXRhIGludG8gYSBiaXRzZXQuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZGF0YV9z dHJ1Y3R1cmVzL2JsYXNfZGljdC5weGQgYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYmxhc19k aWN0LnB4ZAoraW5kZXggM2RlZjRmNWE5NTAuLjc0NjRjMGRhYmE4IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JsYXNfZGljdC5weGQKKysrKyBiL3NyYy9zYWdlL2RhdGFf c3RydWN0dXJlcy9ibGFzX2RpY3QucHhkCitAQCAtMSwxMSArMSwxMSBAQAorIGNwZGVmIGludCBp YXhweShhLCBkaWN0IFgsIGRpY3QgWSwgYmludCByZW1vdmVfemVyb3M9KiwgYmludCBmYWN0b3Jf b25fbGVmdD0qKSBleGNlcHQgLTEKKy1jcGRlZiBkaWN0IGF4cHkoYSwgZGljdCBYLCBkaWN0IFks IGJpbnQgZmFjdG9yX29uX2xlZnQ9Kikgbm9leGNlcHQKKy1jcGRlZiBkaWN0IG5lZ2F0ZShkaWN0 IEQpIG5vZXhjZXB0CistY3BkZWYgZGljdCBzY2FsKGEsIGRpY3QgRCwgYmludCBmYWN0b3Jfb25f bGVmdD0qKSBub2V4Y2VwdAorLWNwZGVmIGRpY3QgYWRkKGRpY3QgRCwgZGljdCBEMikgbm9leGNl cHQKKy1jcGRlZiBkaWN0IHN1bShkaWN0X2l0ZXIpIG5vZXhjZXB0CistY3BkZWYgZGljdCBsaW5l YXJfY29tYmluYXRpb24oZGljdF9mYWN0b3JfaXRlciwgYmludCBmYWN0b3Jfb25fbGVmdD0qKSBu b2V4Y2VwdAorLWNwZGVmIGRpY3Qgc3VtX29mX21vbm9taWFscyhtb25vbWlhbHMsIHNjYWxhcikg bm9leGNlcHQKKy1jcGRlZiBkaWN0IHN1bV9vZl90ZXJtcyhpbmRleF9jb2VmZl9wYWlycykgbm9l eGNlcHQKKy1jZGVmIGRpY3QgcmVtb3ZlX3plcm9zKGRpY3QgRCkgbm9leGNlcHQKKy1jcGRlZiBk aWN0IGNvbnZlcnRfcmVtb3ZlX3plcm9lcyhkaWN0IEQsIFIpIG5vZXhjZXB0CisrY3BkZWYgZGlj dCBheHB5KGEsIGRpY3QgWCwgZGljdCBZLCBiaW50IGZhY3Rvcl9vbl9sZWZ0PSopCisrY3BkZWYg ZGljdCBuZWdhdGUoZGljdCBEKQorK2NwZGVmIGRpY3Qgc2NhbChhLCBkaWN0IEQsIGJpbnQgZmFj dG9yX29uX2xlZnQ9KikKKytjcGRlZiBkaWN0IGFkZChkaWN0IEQsIGRpY3QgRDIpCisrY3BkZWYg ZGljdCBzdW0oZGljdF9pdGVyKQorK2NwZGVmIGRpY3QgbGluZWFyX2NvbWJpbmF0aW9uKGRpY3Rf ZmFjdG9yX2l0ZXIsIGJpbnQgZmFjdG9yX29uX2xlZnQ9KikKKytjcGRlZiBkaWN0IHN1bV9vZl9t b25vbWlhbHMobW9ub21pYWxzLCBzY2FsYXIpCisrY3BkZWYgZGljdCBzdW1fb2ZfdGVybXMoaW5k ZXhfY29lZmZfcGFpcnMpCisrY2RlZiBkaWN0IHJlbW92ZV96ZXJvcyhkaWN0IEQpCisrY3BkZWYg ZGljdCBjb252ZXJ0X3JlbW92ZV96ZXJvZXMoZGljdCBELCBSKQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2RhdGFfc3RydWN0dXJlcy9ibGFzX2RpY3QucHl4IGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1 cmVzL2JsYXNfZGljdC5weXgKK2luZGV4IGM2MjRhYTZhMmQ1Li5jMTNjYWIyYWFiOSAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9ibGFzX2RpY3QucHl4CisrKysgYi9zcmMv c2FnZS9kYXRhX3N0cnVjdHVyZXMvYmxhc19kaWN0LnB5eAorQEAgLTE0Myw3ICsxNDMsNyBAQCBj cGRlZiBpbnQgaWF4cHkoYSwgZGljdCBYLCBkaWN0IFksIGJpbnQgcmVtb3ZlX3plcm9zPVRydWUs IGJpbnQgZmFjdG9yX29uX2xlZnQ9VAorICAgICAgICAgICAgIGRlbCBZW2tleV0KKyAgICAgcmV0 dXJuIDAKKyAKKy1jcGRlZiBkaWN0IGF4cHkoYSwgZGljdCBYLCBkaWN0IFksIGJpbnQgZmFjdG9y X29uX2xlZnQ9VHJ1ZSkgbm9leGNlcHQ6CisrY3BkZWYgZGljdCBheHB5KGEsIGRpY3QgWCwgZGlj dCBZLCBiaW50IGZhY3Rvcl9vbl9sZWZ0PVRydWUpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGBh IFggKyBZYC4KKyAKK0BAIC0yMDMsNyArMjAzLDcgQEAgY3BkZWYgZGljdCBheHB5KGEsIGRpY3Qg WCwgZGljdCBZLCBiaW50IGZhY3Rvcl9vbl9sZWZ0PVRydWUpIG5vZXhjZXB0OgorICAgICAgICAg aWF4cHkoYSwgWCwgWSwgVHJ1ZSwgZmFjdG9yX29uX2xlZnQpCisgICAgIHJldHVybiBZCisgCist Y3BkZWYgZGljdCBuZWdhdGUoZGljdCBEKSBub2V4Y2VwdDoKKytjcGRlZiBkaWN0IG5lZ2F0ZShk aWN0IEQpOgorICAgICByIiIiCisgICAgIFJldHVybiBhIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5n IHRoZSB2ZWN0b3IgYC1YYC4KKyAKK0BAIC0yMjAsNyArMjIwLDcgQEAgY3BkZWYgZGljdCBuZWdh dGUoZGljdCBEKSBub2V4Y2VwdDoKKyAgICAgIiIiCisgICAgIHJldHVybiB7IGtleTogLXZhbHVl IGZvciBrZXksIHZhbHVlIGluIEQuaXRlcml0ZW1zKCkgfQorIAorLWNwZGVmIGRpY3Qgc2NhbChh LCBkaWN0IEQsIGJpbnQgZmFjdG9yX29uX2xlZnQ9VHJ1ZSkgbm9leGNlcHQ6CisrY3BkZWYgZGlj dCBzY2FsKGEsIGRpY3QgRCwgYmludCBmYWN0b3Jfb25fbGVmdD1UcnVlKToKKyAgICAgciIiIgor ICAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IHJlcHJlc2VudGluZyB0aGUgdmVjdG9yIGBhKlhgLgor IAorQEAgLTI0Miw3ICsyNDIsNyBAQCBjcGRlZiBkaWN0IHNjYWwoYSwgZGljdCBELCBiaW50IGZh Y3Rvcl9vbl9sZWZ0PVRydWUpIG5vZXhjZXB0OgorICAgICAjIFNvIGZvciBub3cgd2UganVzdCBk ZWxlZ2F0ZSB0byBheHB5LgorICAgICByZXR1cm4gYXhweShhLCBELCB7fSwgZmFjdG9yX29uX2xl ZnQ9ZmFjdG9yX29uX2xlZnQpCisgCistY3BkZWYgZGljdCBhZGQoZGljdCBELCBkaWN0IEQyKSBu b2V4Y2VwdDoKKytjcGRlZiBkaWN0IGFkZChkaWN0IEQsIGRpY3QgRDIpOgorICAgICByIiIiCisg ICAgIFJldHVybiB0aGUgcG9pbnR3aXNlIGFkZGl0aW9uIG9mIGRpY3Rpb25hcmllcyBgYERgYCBh bmQgYGBEMmBgLgorIAorQEAgLTI2OSw3ICsyNjksNyBAQCBjcGRlZiBkaWN0IGFkZChkaWN0IEQs IGRpY3QgRDIpIG5vZXhjZXB0OgorICAgICAgICAgRCwgRDIgPSBEMiwgRAorICAgICByZXR1cm4g YXhweSgxLCBEMiwgRCkKKyAKKy1jcGRlZiBkaWN0IHN1bShkaWN0X2l0ZXIpIG5vZXhjZXB0Ogor K2NwZGVmIGRpY3Qgc3VtKGRpY3RfaXRlcik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBw b2ludHdpc2UgYWRkaXRpb24gb2YgZGljdGlvbmFyaWVzIHdpdGggY29lZmZpY2llbnRzLgorIAor QEAgLTMxMCw3ICszMTAsNyBAQCBjcGRlZiBkaWN0IHN1bShkaWN0X2l0ZXIpIG5vZXhjZXB0Ogor IAorICAgICByZXR1cm4gcmVtb3ZlX3plcm9zKHJlc3VsdCkKKyAKKy1jcGRlZiBkaWN0IGxpbmVh cl9jb21iaW5hdGlvbihkaWN0X2ZhY3Rvcl9pdGVyLCBiaW50IGZhY3Rvcl9vbl9sZWZ0PVRydWUp IG5vZXhjZXB0OgorK2NwZGVmIGRpY3QgbGluZWFyX2NvbWJpbmF0aW9uKGRpY3RfZmFjdG9yX2l0 ZXIsIGJpbnQgZmFjdG9yX29uX2xlZnQ9VHJ1ZSk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRo ZSBwb2ludHdpc2UgYWRkaXRpb24gb2YgZGljdGlvbmFyaWVzIHdpdGggY29lZmZpY2llbnRzLgor IAorQEAgLTM1NSw3ICszNTUsNyBAQCBjcGRlZiBkaWN0IGxpbmVhcl9jb21iaW5hdGlvbihkaWN0 X2ZhY3Rvcl9pdGVyLCBiaW50IGZhY3Rvcl9vbl9sZWZ0PVRydWUpIG5vZXhjZQorIAorICAgICBy ZXR1cm4gcmVtb3ZlX3plcm9zKHJlc3VsdCkKKyAKKy1jcGRlZiBkaWN0IHN1bV9vZl9tb25vbWlh bHMobW9ub21pYWxzLCBzY2FsYXIpIG5vZXhjZXB0OgorK2NwZGVmIGRpY3Qgc3VtX29mX21vbm9t aWFscyhtb25vbWlhbHMsIHNjYWxhcik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBwb2lu dHdpc2UgYWRkaXRpb24gb2YgYGBtb25vbWlhbHNgYC4KKyAKK0BAIC0zODMsNyArMzgzLDcgQEAg Y3BkZWYgZGljdCBzdW1fb2ZfbW9ub21pYWxzKG1vbm9taWFscywgc2NhbGFyKSBub2V4Y2VwdDoK KyAgICAgICAgICAgICByZXN1bHRbbV0gPSBzY2FsYXIKKyAgICAgcmV0dXJuIHJlbW92ZV96ZXJv cyhyZXN1bHQpCisgCistY3BkZWYgZGljdCBzdW1fb2ZfdGVybXMoaW5kZXhfY29lZmZfcGFpcnMp IG5vZXhjZXB0OgorK2NwZGVmIGRpY3Qgc3VtX29mX3Rlcm1zKGluZGV4X2NvZWZmX3BhaXJzKToK KyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGxpbmVhciBjb21iaW5hdGlvbiBvZiBhIG1vbm9t aWFsIHNjYWxlZCBieSBhIGNvZWZmaWNpZW50LgorIAorQEAgLTQxMSw3ICs0MTEsNyBAQCBjcGRl ZiBkaWN0IHN1bV9vZl90ZXJtcyhpbmRleF9jb2VmZl9wYWlycykgbm9leGNlcHQ6CisgICAgICAg ICAgICAgcmVzdWx0W2luZGV4XSA9IGNvZWZmCisgICAgIHJldHVybiByZW1vdmVfemVyb3MocmVz dWx0KQorIAorLWNkZWYgZGljdCByZW1vdmVfemVyb3MoZGljdCBEKSBub2V4Y2VwdDoKKytjZGVm IGRpY3QgcmVtb3ZlX3plcm9zKGRpY3QgRCk6CisgICAgICIiIgorICAgICBSZW1vdmUgYWxsIGtl eXMgd2hvc2UgdmFsdWUgaXMgemVybyBmcm9tIGBgRGBgLgorICAgICAiIiIKK0BAIC00MjIsNyAr NDIyLDcgQEAgY2RlZiBkaWN0IHJlbW92ZV96ZXJvcyhkaWN0IEQpIG5vZXhjZXB0OgorICAgICAg ICAgZGVsIERbaW5kZXhdCisgICAgIHJldHVybiBECisgCistY3BkZWYgZGljdCBjb252ZXJ0X3Jl bW92ZV96ZXJvZXMoZGljdCBELCBSKSBub2V4Y2VwdDoKKytjcGRlZiBkaWN0IGNvbnZlcnRfcmVt b3ZlX3plcm9lcyhkaWN0IEQsIFIpOgorICAgICAiIiIKKyAgICAgUmVtb3ZlIGFsbCBrZXlzIHdo b3NlIHZhbHVlIGlzIHplcm8gZnJvbSBgYERgYAorICAgICBhZnRlciBjb2VyY2luZyBpbnRvIHRo ZSByaW5nIGBgUmBgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9ib3Vu ZGVkX2ludGVnZXJfc2VxdWVuY2VzLnB4ZCBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9ib3Vu ZGVkX2ludGVnZXJfc2VxdWVuY2VzLnB4ZAoraW5kZXggNDQyNjdiNGZiNDYuLmM4N2ZjOTE0OTIx IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JvdW5kZWRfaW50ZWdlcl9z ZXF1ZW5jZXMucHhkCisrKysgYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYm91bmRlZF9pbnRl Z2VyX3NlcXVlbmNlcy5weGQKK0BAIC0zNiw3ICszNiw3IEBAIGN0eXBlZGVmIGJpc2VxX3MgYmlz ZXFfdFsxXQorIGNkZWYgYmludCBiaXNlcV9pbml0KGJpc2VxX3QgUiwgbXBfc2l6ZV90IGwsIG1w X2JpdGNudF90IGl0ZW1zaXplKSBleGNlcHQgLTEKKyBjZGVmIHZvaWQgYmlzZXFfZGVhbGxvYyhi aXNlcV90IFMpIG5vZXhjZXB0CisgY2RlZiBiaW50IGJpc2VxX2luaXRfY29weShiaXNlcV90IFIs IGJpc2VxX3QgUykgZXhjZXB0IC0xCistY2RlZiB0dXBsZSBiaXNlcV9waWNrbGUoYmlzZXFfdCBT KSBub2V4Y2VwdAorK2NkZWYgdHVwbGUgYmlzZXFfcGlja2xlKGJpc2VxX3QgUykKKyBjZGVmIGJp bnQgYmlzZXFfdW5waWNrbGUoYmlzZXFfdCBSLCB0dXBsZSBiaXRzZXRfZGF0YSwgbXBfYml0Y250 X3QgaXRlbWJpdHNpemUsIG1wX3NpemVfdCBsZW5ndGgpIGV4Y2VwdCAtMQorIGNkZWYgYmludCBi aXNlcV9pbml0X2xpc3QoYmlzZXFfdCBSLCBsaXN0IGRhdGEsIHNpemVfdCBib3VuZCkgZXhjZXB0 IC0xCisgY2RlZiBQeV9oYXNoX3QgYmlzZXFfaGFzaChiaXNlcV90IFMpIG5vZXhjZXB0CitAQCAt NDcsNyArNDcsNyBAQCBjZGVmIG1wX3NpemVfdCBiaXNlcV9jb250YWlucyhiaXNlcV90IFMxLCBi aXNlcV90IFMyLCBtcF9zaXplX3Qgc3RhcnQpIGV4Y2VwdCAtMgorIGNkZWYgbXBfc2l6ZV90IGJp c2VxX3N0YXJ0c3dpdGhfdGFpbChiaXNlcV90IFMxLCBiaXNlcV90IFMyLCBtcF9zaXplX3Qgc3Rh cnQpIGV4Y2VwdCAtMgorIGNkZWYgbXBfc2l6ZV90IGJpc2VxX2luZGV4KGJpc2VxX3QgUywgc2l6 ZV90IGl0ZW0sIG1wX3NpemVfdCBzdGFydCkgZXhjZXB0IC0yCisgY2RlZiBzaXplX3QgYmlzZXFf Z2V0aXRlbShiaXNlcV90IFMsIG1wX3NpemVfdCBpbmRleCkgbm9leGNlcHQKKy1jZGVmIGJpc2Vx X2dldGl0ZW1fcHkoYmlzZXFfdCBTLCBtcF9zaXplX3QgaW5kZXgpIG5vZXhjZXB0CisrY2RlZiBi aXNlcV9nZXRpdGVtX3B5KGJpc2VxX3QgUywgbXBfc2l6ZV90IGluZGV4KQorIGNkZWYgdm9pZCBi aXNlcV9pbml0aXRlbShiaXNlcV90IFMsIG1wX3NpemVfdCBpbmRleCwgc2l6ZV90IGl0ZW0pIG5v ZXhjZXB0CisgY2RlZiB2b2lkIGJpc2VxX2NsZWFyaXRlbShiaXNlcV90IFMsIG1wX3NpemVfdCBp bmRleCkgbm9leGNlcHQKKyBjZGVmIGJpbnQgYmlzZXFfaW5pdF9zbGljZShiaXNlcV90IFIsIGJp c2VxX3QgUywgbXBfc2l6ZV90IHN0YXJ0LCBtcF9zaXplX3Qgc3RvcCwgbXBfc2l6ZV90IHN0ZXAp IGV4Y2VwdCAtMQorQEAgLTU1LDcgKzU1LDcgQEAgY2RlZiBiaW50IGJpc2VxX2luaXRfc2xpY2Uo YmlzZXFfdCBSLCBiaXNlcV90IFMsIG1wX3NpemVfdCBzdGFydCwgbXBfc2l6ZV90IHN0b3AKKyBj ZGVmIGNsYXNzIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2U6CisgICAgIGNkZWYgYmlzZXFfdCBkYXRh CisgICAgIGNwZGVmIGJpbnQgc3RhcnRzd2l0aChzZWxmLCBCb3VuZGVkSW50ZWdlclNlcXVlbmNl IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgQm91bmRlZEludGVnZXJTZXF1ZW5jZSBtYXhpbWFsX292ZXJsYXAoc2VsZiwgQm91 bmRlZEludGVnZXJTZXF1ZW5jZSBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYgbGlzdCBsaXN0 KHNlbGYpCisrICAgIGNwZGVmIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2UgbWF4aW1hbF9vdmVybGFw KHNlbGYsIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2Ugb3RoZXIpCisgCistY3BkZWYgQm91bmRlZElu dGVnZXJTZXF1ZW5jZSBOZXdCSVNFUSh0dXBsZSBiaXRzZXRfZGF0YSwgbXBfYml0Y250X3QgaXRl bWJpdHNpemUsIG1wX3NpemVfdCBsZW5ndGgpIG5vZXhjZXB0CisrY3BkZWYgQm91bmRlZEludGVn ZXJTZXF1ZW5jZSBOZXdCSVNFUSh0dXBsZSBiaXRzZXRfZGF0YSwgbXBfYml0Y250X3QgaXRlbWJp dHNpemUsIG1wX3NpemVfdCBsZW5ndGgpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZGF0YV9zdHJ1 Y3R1cmVzL2JvdW5kZWRfaW50ZWdlcl9zZXF1ZW5jZXMucHl4IGIvc3JjL3NhZ2UvZGF0YV9zdHJ1 Y3R1cmVzL2JvdW5kZWRfaW50ZWdlcl9zZXF1ZW5jZXMucHl4CitpbmRleCAyNDU1ZWNjNzRmZS4u NDA2MzhhYjM5OWMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYm91bmRl ZF9pbnRlZ2VyX3NlcXVlbmNlcy5weXgKKysrKyBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9i b3VuZGVkX2ludGVnZXJfc2VxdWVuY2VzLnB5eAorQEAgLTE2MSw3ICsxNjEsNyBAQCBjZGVmIGJp bnQgYmlzZXFfaW5pdF9jb3B5KGJpc2VxX3QgUiwgYmlzZXFfdCBTKSBleGNlcHQgLTE6CisgIyBQ aWNrbGluZworICMKKyAKKy1jZGVmIHR1cGxlIGJpc2VxX3BpY2tsZShiaXNlcV90IFMpIG5vZXhj ZXB0OgorK2NkZWYgdHVwbGUgYmlzZXFfcGlja2xlKGJpc2VxX3QgUyk6CisgICAgIHJldHVybiAo Yml0c2V0X3BpY2tsZShTLmRhdGEpLCBTLml0ZW1iaXRzaXplLCBTLmxlbmd0aCkKKyAKKyBjZGVm IGJpbnQgYmlzZXFfdW5waWNrbGUoYmlzZXFfdCBSLCB0dXBsZSBiaXRzZXRfZGF0YSwgbXBfYml0 Y250X3QgaXRlbWJpdHNpemUsIG1wX3NpemVfdCBsZW5ndGgpIGV4Y2VwdCAtMToKK0BAIC0yODgs NyArMjg4LDcgQEAgY2RlZiBpbmxpbmUgc2l6ZV90IGJpc2VxX2dldGl0ZW0oYmlzZXFfdCBTLCBt cF9zaXplX3QgaW5kZXgpIG5vZXhjZXB0OgorICAgICAgICAgb3V0IHw9IChTLmRhdGEuYml0c1ts aW1iX2luZGV4KzFdKSA8PCAoR01QX0xJTUJfQklUUyAtIGJpdF9pbmRleCkKKyAgICAgcmV0dXJu IG91dCAmIFMubWFza19pdGVtCisgCistY2RlZiBiaXNlcV9nZXRpdGVtX3B5KGJpc2VxX3QgUywg bXBfc2l6ZV90IGluZGV4KSBub2V4Y2VwdDoKKytjZGVmIGJpc2VxX2dldGl0ZW1fcHkoYmlzZXFf dCBTLCBtcF9zaXplX3QgaW5kZXgpOgorICAgICAiIiIKKyAgICAgR2V0IGl0ZW0gYGBTW2luZGV4 XWBgIGFzIGEgUHl0aG9uIGBgaW50YGAsIHdpdGhvdXQKKyAgICAgY2hlY2tpbmcgbWFyZ2lucy4K K0BAIC0xMDQxLDcgKzEwNDEsNyBAQCBjZGVmIGNsYXNzIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2U6 CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gYmlzZXFfY29udGFp bnMoc2VsZi5kYXRhLCByaWdodC5kYXRhLCAwKSA+PSAwCisgCistICAgIGNwZGVmIGxpc3QgbGlz dChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBDb252ZXJ0cyB0aGlzIGJvdW5kZWQgaW50ZWdlciBzZXF1ZW5jZSB0byBh IGxpc3QKKyAKK0BAIC0xMjM2LDcgKzEyMzYsNyBAQCBjZGVmIGNsYXNzIEJvdW5kZWRJbnRlZ2Vy U2VxdWVuY2U6CisgICAgICAgICBiaXNlcV9pbml0X2NvbmNhdChvdXQuZGF0YSwgbXlzZWxmLmRh dGEsIHJpZ2h0LmRhdGEpCisgICAgICAgICByZXR1cm4gb3V0CisgCistICAgIGNwZGVmIEJvdW5k ZWRJbnRlZ2VyU2VxdWVuY2UgbWF4aW1hbF9vdmVybGFwKHNlbGYsIEJvdW5kZWRJbnRlZ2VyU2Vx dWVuY2Ugb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBCb3VuZGVkSW50ZWdlclNlcXVlbmNl IG1heGltYWxfb3ZlcmxhcChzZWxmLCBCb3VuZGVkSW50ZWdlclNlcXVlbmNlIG90aGVyKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZmBgJ3MgbWF4aW1hbCB0cmFpbGluZyBz dWItc2VxdWVuY2UgdGhhdCBgYG90aGVyYGAgc3RhcnRzIHdpdGguCisgCitAQCAtMTM1NSw3ICsx MzU1LDcgQEAgY2RlZiBjbGFzcyBCb3VuZGVkSW50ZWdlclNlcXVlbmNlOgorICAgICAgICAgICAg IHJldHVybiAwCisgICAgICAgICByZXR1cm4gaAorIAorLWNwZGVmIEJvdW5kZWRJbnRlZ2VyU2Vx dWVuY2UgTmV3QklTRVEodHVwbGUgYml0c2V0X2RhdGEsIG1wX2JpdGNudF90IGl0ZW1iaXRzaXpl LCBtcF9zaXplX3QgbGVuZ3RoKSBub2V4Y2VwdDoKKytjcGRlZiBCb3VuZGVkSW50ZWdlclNlcXVl bmNlIE5ld0JJU0VRKHR1cGxlIGJpdHNldF9kYXRhLCBtcF9iaXRjbnRfdCBpdGVtYml0c2l6ZSwg bXBfc2l6ZV90IGxlbmd0aCk6CisgICAgICIiIgorICAgICBIZWxwZXIgZnVuY3Rpb24gZm9yIHVu cGlja2xpbmcgb2YgOmNsYXNzOmBCb3VuZGVkSW50ZWdlclNlcXVlbmNlYC4KKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9keW5hbWljcy9hcml0aG1ldGljX2R5bmFtaWNzL3Byb2plY3RpdmVfZHNf aGVscGVyLnB5eCBiL3NyYy9zYWdlL2R5bmFtaWNzL2FyaXRobWV0aWNfZHluYW1pY3MvcHJvamVj dGl2ZV9kc19oZWxwZXIucHl4CitpbmRleCA5YjAwMDk2MjlkZS4uNTdkNjA0N2EwZGYgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9keW5hbWljcy9hcml0aG1ldGljX2R5bmFtaWNzL3Byb2plY3RpdmVf ZHNfaGVscGVyLnB5eAorKysrIGIvc3JjL3NhZ2UvZHluYW1pY3MvYXJpdGhtZXRpY19keW5hbWlj cy9wcm9qZWN0aXZlX2RzX2hlbHBlci5weXgKK0BAIC0yNCw3ICsyNCw3IEBAIGZyb20gc2FnZS5y aW5ncy5maW5pdGVfcmluZ3MuZmluaXRlX2ZpZWxkX2NvbnN0cnVjdG9yIGltcG9ydCBHRgorIGZy b20gc2FnZS5jb21iaW5hdC5zdWJzZXQgaW1wb3J0IHN1YnNldHMKKyAKKyAKKy1jcGRlZiBfZmFz dF9wb3NzaWJsZV9wZXJpb2RzKHNlbGYsIHJldHVybl9wb2ludHM9RmFsc2UpIG5vZXhjZXB0Ogor K2NwZGVmIF9mYXN0X3Bvc3NpYmxlX3BlcmlvZHMoc2VsZiwgcmV0dXJuX3BvaW50cz1GYWxzZSk6 CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIHBvc3NpYmxlIG1pbmltYWwgcGVy aW9kcyBvZiBhIHBlcmlvZGljIHBvaW50CisgICAgIG92ZXIgYFxRUWAgYW5kIChvcHRpb25hbGx5 KSBhIHBvaW50IGluIGVhY2ggY3ljbGUuCitAQCAtMTk4LDcgKzE5OCw3IEBAIGNwZGVmIGludCBf aGFzaChsaXN0IFBvaW50LCBpbnQgcHJpbWUpIG5vZXhjZXB0OgorIAorICAgICByZXR1cm4gaGFz aF9xCisgCistY3BkZWYgbGlzdCBfZ2V0X3BvaW50X2Zyb21faGFzaChpbnQgdmFsdWUsIGludCBw cmltZSwgaW50IGRpbWVuc2lvbikgbm9leGNlcHQ6CisrY3BkZWYgbGlzdCBfZ2V0X3BvaW50X2Zy b21faGFzaChpbnQgdmFsdWUsIGludCBwcmltZSwgaW50IGRpbWVuc2lvbik6CisgICAgICIiIgor ICAgICBIYXNoIHVuaXF1ZSBudW1iZXIgdG8gcG9pbnQgYXMgYSBsaXN0LgorIAorQEAgLTI0MCw3 ICsyNDAsNyBAQCBjZGVmIGlubGluZSBpbnQgX21vZF9pbnYoaW50IG51bSwgaW50IHByaW1lKSBu b2V4Y2VwdDoKKyAgICAgZWxzZToKKyAgICAgICAgIHJldHVybiB5CisgCistY3BkZWYgX25vcm1h bGl6ZV9jb29yZGluYXRlcyhsaXN0IHBvaW50LCBpbnQgcHJpbWUsIGludCBsZW5fcG9pbnRzKSBu b2V4Y2VwdDoKKytjcGRlZiBfbm9ybWFsaXplX2Nvb3JkaW5hdGVzKGxpc3QgcG9pbnQsIGludCBw cmltZSwgaW50IGxlbl9wb2ludHMpOgorICAgICAiIiIKKyAgICAgTm9ybWFsaXplIHRoZSBjb29y ZGluYXRlcyBvZiB0aGUgcG9pbnQgZm9yIHRoZSBnaXZlbiBwcmltZS4KKyAKK0BAIC0yNjksNyAr MjY5LDcgQEAgY3BkZWYgX25vcm1hbGl6ZV9jb29yZGluYXRlcyhsaXN0IHBvaW50LCBpbnQgcHJp bWUsIGludCBsZW5fcG9pbnRzKSBub2V4Y2VwdDoKKyAgICAgZm9yIGNvZWZmaWNpZW50IGluIHJh bmdlKGxlbl9wb2ludHMpOgorICAgICAgICAgcG9pbnRbY29lZmZpY2llbnRdID0gKHBvaW50W2Nv ZWZmaWNpZW50XSAqIG1vZF9pbnZlcnNlKSAlIHByaW1lCisgCistY3BkZWYgX2FsbF9wZXJpb2Rp Y19wb2ludHMoc2VsZikgbm9leGNlcHQ6CisrY3BkZWYgX2FsbF9wZXJpb2RpY19wb2ludHMoc2Vs Zik6CisgICAgICIiIgorICAgICBGaW5kIGFsbCBwZXJpb2RpYyBwb2ludHMgb3ZlciBhIGZpbml0 ZSBmaWVsZC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9keW5hbWljcy9jb21wbGV4X2R5bmFt aWNzL21hbmRlbF9qdWxpYV9oZWxwZXIucHl4IGIvc3JjL3NhZ2UvZHluYW1pY3MvY29tcGxleF9k eW5hbWljcy9tYW5kZWxfanVsaWFfaGVscGVyLnB5eAoraW5kZXggMzJmZmIxZWZmZTUuLjQzY2Uw ZWZmZDU4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZHluYW1pY3MvY29tcGxleF9keW5hbWljcy9t YW5kZWxfanVsaWFfaGVscGVyLnB5eAorKysrIGIvc3JjL3NhZ2UvZHluYW1pY3MvY29tcGxleF9k eW5hbWljcy9tYW5kZWxfanVsaWFfaGVscGVyLnB5eAorQEAgLTYxLDcgKzYxLDcgQEAgZGVmIF9j b2xvcl90b19SR0IoY29sb3IpOgorIAorIGNwZGVmIGZhc3RfbWFuZGVsYnJvdF9wbG90KGRvdWJs ZSB4X2NlbnRlciwgZG91YmxlIHlfY2VudGVyLAorICBkb3VibGUgaW1hZ2Vfd2lkdGgsIGxvbmcg bWF4X2l0ZXJhdGlvbiwgbG9uZyBwaXhlbF9jb3VudCwKKy0gbG9uZyBsZXZlbF9zZXAsIGxvbmcg Y29sb3JfbnVtLCBiYXNlX2NvbG9yKSBub2V4Y2VwdDoKKysgbG9uZyBsZXZlbF9zZXAsIGxvbmcg Y29sb3JfbnVtLCBiYXNlX2NvbG9yKToKKyAgICAgciIiIgorICAgICBQbG90cyB0aGUgTWFuZGVs YnJvdCBzZXQgaW4gdGhlIGNvbXBsZXggcGxhbmUgZm9yIHRoZSBtYXAgYFFfYyh6KSA9IHpeMiAr IGNgLgorIAorQEAgLTE3OSw3ICsxNzksNyBAQCBjcGRlZiBmYXN0X21hbmRlbGJyb3RfcGxvdChk b3VibGUgeF9jZW50ZXIsIGRvdWJsZSB5X2NlbnRlciwKKyAKKyAKKyBjcGRlZiBmYXN0X2V4dGVy bmFsX3JheShkb3VibGUgdGhldGEsIGxvbmcgRD0zMCwgbG9uZyBTPTEwLCBsb25nIFI9MTAwLAor LSBsb25nIHBpeGVsX2NvdW50PTUwMCwgZG91YmxlIGltYWdlX3dpZHRoPTQsIGxvbmcgcHJlYz0z MDApIG5vZXhjZXB0OgorKyBsb25nIHBpeGVsX2NvdW50PTUwMCwgZG91YmxlIGltYWdlX3dpZHRo PTQsIGxvbmcgcHJlYz0zMDApOgorICAgICByIiIiCisgICAgIFJldHVybiBhIGxpc3Qgb2YgcG9p bnRzIHRoYXQgYXBwcm94aW1hdGUgdGhlIGV4dGVybmFsIHJheSBmb3IgYSBnaXZlbiBhbmdsZS4K KyAKK0BAIC0yOTAsNyArMjkwLDcgQEAgY3BkZWYgZmFzdF9leHRlcm5hbF9yYXkoZG91YmxlIHRo ZXRhLCBsb25nIEQ9MzAsIGxvbmcgUz0xMCwgbG9uZyBSPTEwMCwKKyAgICAgcmV0dXJuIGNfbGlz dAorIAorIGNwZGVmIGNvbnZlcnRfdG9fcGl4ZWxzKHBvaW50X2xpc3QsIGRvdWJsZSB4XzAsIGRv dWJsZSB5XzAsIGRvdWJsZSB3aWR0aCwKKy0gbG9uZyBudW1iZXJfb2ZfcGl4ZWxzKSBub2V4Y2Vw dDoKKysgbG9uZyBudW1iZXJfb2ZfcGl4ZWxzKToKKyAgICAgciIiIgorICAgICBDb252ZXJ0cyBj YXJ0ZXNpYW4gY29vcmRpbmF0ZXMgdG8gcGl4ZWxzIHdpdGhpbiBhIHNwZWNpZmllZCB3aW5kb3cu CisgCitAQCAtMzM0LDcgKzMzNCw3IEBAIGNwZGVmIGNvbnZlcnRfdG9fcGl4ZWxzKHBvaW50X2xp c3QsIGRvdWJsZSB4XzAsIGRvdWJsZSB5XzAsIGRvdWJsZSB3aWR0aCwKKyAgICAgICAgIHBpeGVs X2xpc3QuYXBwZW5kKCh4X3BpeGVsLCB5X3BpeGVsKSkKKyAgICAgcmV0dXJuIHBpeGVsX2xpc3QK KyAKKy1jcGRlZiBnZXRfbGluZShzdGFydCwgZW5kKSBub2V4Y2VwdDoKKytjcGRlZiBnZXRfbGlu ZShzdGFydCwgZW5kKToKKyAgICAgciIiIgorICAgICBQcm9kdWNlcyBhIGxpc3Qgb2YgcGl4ZWwg Y29vcmRpbmF0ZXMgYXBwcm94aW1hdGluZyBhIGxpbmUgZnJvbSBhIHN0YXJ0aW5nCisgICAgIHBv aW50IHRvIGFuIGVuZGluZyBwb2ludCB1c2luZyB0aGUgQnJlc2VuaGFtJ3MgTGluZSBBbGdvcml0 aG0uCitAQCAtNDIxLDcgKzQyMSw3IEBAIGNwZGVmIGdldF9saW5lKHN0YXJ0LCBlbmQpIG5vZXhj ZXB0OgorIGNwZGVmIGZhc3RfanVsaWFfcGxvdChkb3VibGUgY19yZWFsLCBkb3VibGUgY19pbWFn LAorICAgZG91YmxlIHhfY2VudGVyPTAsIGRvdWJsZSB5X2NlbnRlcj0wLCBkb3VibGUgaW1hZ2Vf d2lkdGg9NCwKKyAgIGxvbmcgbWF4X2l0ZXJhdGlvbj01MDAsIGxvbmcgcGl4ZWxfY291bnQ9NTAw LCBsb25nIGxldmVsX3NlcD0yLAorLSAgbG9uZyBjb2xvcl9udW09NDAsIGJhc2VfY29sb3I9WzUw LCA1MCwgNTBdKSBub2V4Y2VwdDoKKysgIGxvbmcgY29sb3JfbnVtPTQwLCBiYXNlX2NvbG9yPVs1 MCwgNTAsIDUwXSk6CisgICAgIHIiIiIKKyAgICAgUGxvdHMgdGhlIEp1bGlhIHNldCBmb3IgYSBn aXZlbiBgY2AgdmFsdWUgaW4gdGhlIGNvbXBsZXggcGxhbmUgZm9yIHRoZSBtYXAgYFFfYyh6KSA9 IHpeMiArIGNgLgorIAorQEAgLTU0MCw3ICs1NDAsNyBAQCBjcGRlZiBmYXN0X2p1bGlhX3Bsb3Qo ZG91YmxlIGNfcmVhbCwgZG91YmxlIGNfaW1hZywKKyBjcGRlZiBqdWxpYV9oZWxwZXIoZG91Ymxl IGNfcmVhbCwgZG91YmxlIGNfaW1hZywgZG91YmxlIHhfY2VudGVyPTAsCisgIGRvdWJsZSB5X2Nl bnRlcj0wLCBkb3VibGUgaW1hZ2Vfd2lkdGg9NCwgbG9uZyBtYXhfaXRlcmF0aW9uPTUwMCwKKyAg bG9uZyBwaXhlbF9jb3VudD01MDAsIGxvbmcgbGV2ZWxfc2VwPTIsIGxvbmcgY29sb3JfbnVtPTQw LAorLSBiYXNlX2NvbG9yPVs1MCwgNTAsIDUwXSwgcG9pbnRfY29sb3I9WzI1NSwgMCwgMF0pIG5v ZXhjZXB0OgorKyBiYXNlX2NvbG9yPVs1MCwgNTAsIDUwXSwgcG9pbnRfY29sb3I9WzI1NSwgMCwg MF0pOgorICAgICByIiIiCisgICAgIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGlt YWdlIG9mIGEgSnVsaWEgc2V0IGZvciBhIGdpdmVuCisgICAgIGBjYCB2YWx1ZSBzaWRlIGJ5IHNp ZGUgd2l0aCB0aGUgTWFuZGVsYnJvdCBzZXQgd2l0aCBhIHBvaW50IGRlbm90aW5nCitAQCAtNjMx LDcgKzYzMSw3IEBAIGNwZGVmIGp1bGlhX2hlbHBlcihkb3VibGUgY19yZWFsLCBkb3VibGUgY19p bWFnLCBkb3VibGUgeF9jZW50ZXI9MCwKKyAKKyBjcGRlZiBwb2x5bm9taWFsX21hbmRlbGJyb3Qo ZiwgcGFyYW1ldGVyPU5vbmUsIGRvdWJsZSB4X2NlbnRlcj0wLAorICBkb3VibGUgeV9jZW50ZXI9 MCwgaW1hZ2Vfd2lkdGg9NCwgaW50IG1heF9pdGVyYXRpb249NTAsIGludCBwaXhlbF9jb3VudD01 MDAsCistIGludCBsZXZlbF9zZXA9MSwgaW50IGNvbG9yX251bT0zMCwgYmFzZV9jb2xvcj1Db2xv cigncmVkJykpIG5vZXhjZXB0OgorKyBpbnQgbGV2ZWxfc2VwPTEsIGludCBjb2xvcl9udW09MzAs IGJhc2VfY29sb3I9Q29sb3IoJ3JlZCcpKToKKyAgICAgciIiIgorICAgICBQbG90cyB0aGUgTWFu ZGVsYnJvdCBzZXQgaW4gdGhlIGNvbXBsZXggcGxhbmUgZm9yIGEgZmFtaWx5IG9mIHBvbHlub21p YWwgbWFwcy4KKyAKK0BAIC05MzQsNyArOTM0LDcgQEAgY3BkZWYgcG9seW5vbWlhbF9tYW5kZWxi cm90KGYsIHBhcmFtZXRlcj1Ob25lLCBkb3VibGUgeF9jZW50ZXI9MCwKKyAKKyBjcGRlZiBnZW5l cmFsX2p1bGlhKGYsIGRvdWJsZSB4X2NlbnRlcj0wLCBkb3VibGUgeV9jZW50ZXI9MCwgaW1hZ2Vf d2lkdGg9NCwKKyAgaW50IG1heF9pdGVyYXRpb249NTAsIGludCBwaXhlbF9jb3VudD01MDAsIGlu dCBsZXZlbF9zZXA9MSwgaW50IGNvbG9yX251bT0zMCwKKy0gYmFzZV9jb2xvcj1bNTAsNTAsNTBd KSBub2V4Y2VwdDoKKysgYmFzZV9jb2xvcj1bNTAsNTAsNTBdKToKKyAgICAgciIiIgorICAgICBQ bG90cyBKdWxpYSBzZXRzIGZvciBnZW5lcmFsIHBvbHlub21pYWxzLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2V4dC9mYXN0X2NhbGxhYmxlLnB5eCBiL3NyYy9zYWdlL2V4dC9mYXN0X2NhbGxh YmxlLnB5eAoraW5kZXggYTkzNzk5YWIxOWEuLmI5MDcyZGE2MWM1IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvZXh0L2Zhc3RfY2FsbGFibGUucHl4CisrKysgYi9zcmMvc2FnZS9leHQvZmFzdF9jYWxs YWJsZS5weXgKK0BAIC0xNTc4LDcgKzE1NzgsNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb25DaG9p Y2UoRXhwcmVzc2lvbik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVwcihzZWxmLl9jb25kKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXByKHNlbGYuX2lmZmFsc2UpKQorIAorLWNwZGVmIF9leHByZXNzaW9uX2Jpbm9wX2hlbHBl cihzLCBvLCBvcCkgbm9leGNlcHQ6CisrY3BkZWYgX2V4cHJlc3Npb25fYmlub3BfaGVscGVyKHMs IG8sIG9wKToKKyAgICAgciIiIgorICAgICBNYWtlIGFuIEV4cHJlc3Npb24gZm9yIChzIG9wIG8p LiAgRWl0aGVyIHMgb3IgbyAob3IgYm90aCkgbXVzdCBhbHJlYWR5CisgICAgIGJlIGFuIGV4cHJl c3Npb24uCitAQCAtMTcxNCw3ICsxNzE0LDcgQEAgY2xhc3MgSW50ZWdlclBvd2VyRnVuY3Rpb24o KToKKyAgICAgICAgIHJldHVybiB4KipzZWxmLmV4cG9uZW50CisgCisgY2RlZiBkaWN0IGJ1aWx0 aW5fZnVuY3Rpb25zID0gTm9uZQorLWNwZGVmIGRpY3QgZ2V0X2J1aWx0aW5fZnVuY3Rpb25zKCkg bm9leGNlcHQ6CisrY3BkZWYgZGljdCBnZXRfYnVpbHRpbl9mdW5jdGlvbnMoKToKKyAgICAgciIi IgorICAgICBUbyBoYW5kbGUgRXhwcmVzc2lvbkNhbGwsIHdlIG5lZWQgdG8gbWFwIGZyb20gU2Fn ZSBhbmQKKyAgICAgUHl0aG9uIGZ1bmN0aW9ucyB0byBvcGNvZGUgbmFtZXMuCitAQCAtMTc2OCw3 ICsxNzY4LDcgQEAgY3BkZWYgZGljdCBnZXRfYnVpbHRpbl9mdW5jdGlvbnMoKSBub2V4Y2VwdDoK KyAKKyBjZGVmIGNsYXNzIEluc3RydWN0aW9uU3RyZWFtICAjIGZvcndhcmQgZGVjbGFyYXRpb24K KyAKKy1jcGRlZiBnZW5lcmF0ZV9jb2RlKEV4cHJlc3Npb24gZXhwciwgSW5zdHJ1Y3Rpb25TdHJl YW0gc3RyZWFtKSBub2V4Y2VwdDoKKytjcGRlZiBnZW5lcmF0ZV9jb2RlKEV4cHJlc3Npb24gZXhw ciwgSW5zdHJ1Y3Rpb25TdHJlYW0gc3RyZWFtKToKKyAgICAgciIiIgorICAgICBHZW5lcmF0ZSBj b2RlIGZyb20gYW4gRXhwcmVzc2lvbiB0cmVlOyB3cml0ZSB0aGUgcmVzdWx0IGludG8gYW4KKyAg ICAgSW5zdHJ1Y3Rpb25TdHJlYW0uCitAQCAtMjE5Miw3ICsyMTkyLDcgQEAgY2RlZiBjbGFzcyBJ bnN0cnVjdGlvblN0cmVhbToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5pbnN0cjAob3Bu YW1lLCBhcmdzKQorIAorLSAgICBjZGVmIGluc3RyMChzZWxmLCBvcG5hbWUsIHR1cGxlIGFyZ3Mp IG5vZXhjZXB0OgorKyAgICBjZGVmIGluc3RyMChzZWxmLCBvcG5hbWUsIHR1cGxlIGFyZ3MpOgor ICAgICAgICAgIiIiCisgICAgICAgICBDZGVmIHZlcnNpb24gb2YgaW5zdHIuIChDYW4ndCBjcGRl ZiBiZWNhdXNlIG9mIHN0YXIgYXJncy4pCisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9leHQvc3Rkc2FnZS5weGQgYi9zcmMvc2FnZS9leHQvc3Rkc2FnZS5weGQKK2luZGV4IDcy NDlmYmY4NGQ4Li5kZGQzZmQ3NjUwNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2V4dC9zdGRzYWdl LnB4ZAorKysrIGIvc3JjL3NhZ2UvZXh0L3N0ZHNhZ2UucHhkCitAQCAtMTMsNyArMTMsNyBAQCBT dGFuZGFyZCBDIGhlbHBlciBjb2RlIGZvciBDeXRob24gbW9kdWxlcworIGZyb20gY3B5dGhvbi5v YmplY3QgY2ltcG9ydCBQeV9UWVBFLCBQeVR5cGVPYmplY3QsIFB5T2JqZWN0CisgCisgCistY2Rl ZiBpbmxpbmUgUFlfTkVXKHR5cGUgdCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgUFlfTkVXKHR5 cGUgdCk6CisgICAgICIiIgorICAgICBSZXR1cm4gYGB0Ll9fbmV3X18odClgYC4gIFRoaXMgd29y a3MgZXZlbiBmb3IgdHlwZXMgbGlrZQorICAgICA6Y2xhc3M6YEludGVnZXJgIHdoZXJlIHdlIGNo YW5nZSBgYHRwX25ld2BgIGF0IHJ1bnRpbWUgKEN5dGhvbgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2Z1bmN0aW9ucy9wcmltZV9waS5weXggYi9zcmMvc2FnZS9mdW5jdGlvbnMvcHJpbWVfcGkucHl4 CitpbmRleCA1MGJlNGQyNGE3NC4uOGRlZGUwOTQyMjkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9m dW5jdGlvbnMvcHJpbWVfcGkucHl4CisrKysgYi9zcmMvc2FnZS9mdW5jdGlvbnMvcHJpbWVfcGku cHl4CitAQCAtMjEwLDcgKzIxMCw3IEBAIGNkZWYgY2xhc3MgUHJpbWVQaShCdWlsdGluRnVuY3Rp b24pOgorIHByaW1lX3BpID0gUHJpbWVQaSgpCisgCisgCistY3BkZWYgSW50ZWdlciBsZWdlbmRy ZV9waGkoeCwgYSkgbm9leGNlcHQ6CisrY3BkZWYgSW50ZWdlciBsZWdlbmRyZV9waGkoeCwgYSk6 CisgICAgIHIiIiIKKyAgICAgTGVnZW5kcmUncyBmb3JtdWxhLCBhbHNvIGtub3duIGFzIHRoZSBw YXJ0aWFsIHNpZXZlIGZ1bmN0aW9uLCBpcyBhIHVzZWZ1bAorICAgICBjb21iaW5hdG9yaWFsIGZ1 bmN0aW9uIGZvciBjb21wdXRpbmcgdGhlIHByaW1lIGNvdW50aW5nIGZ1bmN0aW9uICh0aGUKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9nZW9tZXRyeS9pbnRlZ3JhbF9wb2ludHMucHhpIGIvc3JjL3Nh Z2UvZ2VvbWV0cnkvaW50ZWdyYWxfcG9pbnRzLnB4aQoraW5kZXggNWExMGViZmU1NDguLjQwZjI2 ZTM5ZDY5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ2VvbWV0cnkvaW50ZWdyYWxfcG9pbnRzLnB4 aQorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvaW50ZWdyYWxfcG9pbnRzLnB4aQorQEAgLTcwLDcg KzcwLDcgQEAgZnJvbSBzYWdlLm1vZHVsZXMuZnJlZV9tb2R1bGUgaW1wb3J0IEZyZWVNb2R1bGUK KyAjICAgICAgZXhpc3RpbmcgbGF0dGljZSBwb2ludCBhbmQgdGhlbiBjb3B5IGl0IQorIAorIAor LWNwZGVmIHR1cGxlIHBhcmFsbGVsb3RvcGVfcG9pbnRzKHNwYW5uaW5nX3BvaW50cywgbGF0dGlj ZSkgbm9leGNlcHQ6CisrY3BkZWYgdHVwbGUgcGFyYWxsZWxvdG9wZV9wb2ludHMoc3Bhbm5pbmdf cG9pbnRzLCBsYXR0aWNlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gaW50ZWdyYWwgcG9pbnRz IGluIHRoZSBwYXJhbGxlbG90b3BlIHN0YXJ0aW5nIGF0IHRoZSBvcmlnaW4KKyAgICAgYW5kIHNw YW5uZWQgYnkgdGhlIGBgc3Bhbm5pbmdfcG9pbnRzYGAuCitAQCAtMTQzLDcgKzE0Myw3IEBAIGNw ZGVmIHR1cGxlIHBhcmFsbGVsb3RvcGVfcG9pbnRzKHNwYW5uaW5nX3BvaW50cywgbGF0dGljZSkg bm9leGNlcHQ6CisgICAgIHJldHVybiBwb2ludHMKKyAKKyAKKy1jcGRlZiB0dXBsZSByYXlfbWF0 cml4X25vcm1hbF9mb3JtKFIpIG5vZXhjZXB0OgorK2NwZGVmIHR1cGxlIHJheV9tYXRyaXhfbm9y bWFsX2Zvcm0oUik6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0ZSB0aGUgU21pdGggbm9ybWFsIGZv cm0gb2YgdGhlIHJheSBtYXRyaXggZm9yCisgICAgIDpmdW5jOmBwYXJhbGxlbG90b3BlX3BvaW50 c2AuCitAQCAtMTc5LDcgKzE3OSw3IEBAIGNwZGVmIHR1cGxlIHJheV9tYXRyaXhfbm9ybWFsX2Zv cm0oUikgbm9leGNlcHQ6CisgIyBUaGUgb3B0aW1pemVkIHZlcnNpb24gYXZvaWRzIGNvbnN0cnVj dGluZyBuZXcgbWF0cmljZXMsIHZlY3RvcnMsIGFuZCBsYXR0aWNlIHBvaW50cworIGNwZGVmIHR1 cGxlIGxvb3Bfb3Zlcl9wYXJhbGxlbG90b3BlX3BvaW50cyhlLCBkLCBNYXRyaXhDbGFzcyBWRGlu diwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0cml4Q2xh c3MgUiwgbGF0dGljZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQT1Ob25lLCBiPU5vbmUpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBPU5vbmUsIGI9Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgVGhlIGlu bmVyIGxvb3Agb2YgOmZ1bmM6YHBhcmFsbGVsb3RvcGVfcG9pbnRzYC4KKyAKK0BAIC0yNDQsNyAr MjQ0LDcgQEAgY3BkZWYgdHVwbGUgbG9vcF9vdmVyX3BhcmFsbGVsb3RvcGVfcG9pbnRzKGUsIGQs IE1hdHJpeENsYXNzIFZEaW52LAorIAorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLWNwZGVm IHR1cGxlIHNpbXBsZXhfcG9pbnRzKHZlcnRpY2VzKSBub2V4Y2VwdDoKKytjcGRlZiB0dXBsZSBz aW1wbGV4X3BvaW50cyh2ZXJ0aWNlcyk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBpbnRl Z3JhbCBwb2ludHMgaW4gYSBsYXR0aWNlIHNpbXBsZXguCisgCitAQCAtMzI5LDcgKzMyOSw3IEBA IGNwZGVmIHR1cGxlIHNpbXBsZXhfcG9pbnRzKHZlcnRpY2VzKSBub2V4Y2VwdDoKKyAgICAgcmV0 dXJuIHBvaW50cworIAorIAorLWNkZWYgdHJhbnNsYXRlX3BvaW50cyh2X2xpc3QsIFZlY3RvckNs YXNzIGRlbHRhKSBub2V4Y2VwdDoKKytjZGVmIHRyYW5zbGF0ZV9wb2ludHModl9saXN0LCBWZWN0 b3JDbGFzcyBkZWx0YSk6CisgICAgIHIiIiIKKyAgICAgQWRkIGBgZGVsdGFgYCB0byBlYWNoIHZl Y3RvciBpbiBgYHZfbGlzdGBgLgorICAgICAiIiIKK0BAIC0zNDgsNyArMzQ4LDcgQEAgY2RlZiB0 cmFuc2xhdGVfcG9pbnRzKHZfbGlzdCwgVmVjdG9yQ2xhc3MgZGVsdGEpIG5vZXhjZXB0OgorIAor IGNwZGVmIHJlY3Rhbmd1bGFyX2JveF9wb2ludHMobGlzdCBib3hfbWluLCBsaXN0IGJveF9tYXgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2x5aGVkcm9uPU5vbmUsIGNvdW50X29u bHk9RmFsc2UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fc2F0dXJhdGVk PUZhbHNlKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl9z YXR1cmF0ZWQ9RmFsc2UpOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgaW50ZWdyYWwgcG9p bnRzIGluIHRoZSBsYXR0aWNlIGJvdW5kaW5nIGJveCB0aGF0IGFyZQorICAgICBhbHNvIGNvbnRh aW5lZCBpbiB0aGUgZ2l2ZW4gcG9seWhlZHJvbi4KK0BAIC01ODMsNyArNTgzLDcgQEAgY3BkZWYg cmVjdGFuZ3VsYXJfYm94X3BvaW50cyhsaXN0IGJveF9taW4sIGxpc3QgYm94X21heCwKKyAKKyAg ICAgcmV0dXJuIHR1cGxlKHBvaW50cykKKyAKKy1jZGVmIGxpc3QgcGVybV9hY3Rpb24obGlzdCBw LCBsaXN0IGxzdCkgbm9leGNlcHQ6CisrY2RlZiBsaXN0IHBlcm1fYWN0aW9uKGxpc3QgcCwgbGlz dCBsc3QpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYSBwZXJtdXRhdGlv biBgYHBgYCBvZiBgKDAsIC4uLiwgbi0xKWAKKyAgICAgb24gYSBsaXN0IG9mIGxlbmd0aCBgbmAu CitAQCAtNTkyLDcgKzU5Miw3IEBAIGNkZWYgbGlzdCBwZXJtX2FjdGlvbihsaXN0IHAsIGxpc3Qg bHN0KSBub2V4Y2VwdDoKKyAKKyBjZGVmIGxvb3Bfb3Zlcl9yZWN0YW5ndWxhcl9ib3hfcG9pbnRz KGxpc3QgYm94X21pbiwgbGlzdCBib3hfbWF4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSW5lcXVhbGl0eUNvbGxlY3Rpb24gaW5lcXVhbGl0aWVzLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGQsIGJpbnQgY291bnRfb25seSkgbm9l eGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZCwgYmlu dCBjb3VudF9vbmx5KToKKyAgICAgIiIiCisgICAgIFRoZSBpbm5lciBsb29wIG9mIDpmdW5jOmBy ZWN0YW5ndWxhcl9ib3hfcG9pbnRzYC4KKyAKK0BAIC02NjYsNyArNjY2LDcgQEAgY2RlZiBsb29w X292ZXJfcmVjdGFuZ3VsYXJfYm94X3BvaW50cyhsaXN0IGJveF9taW4sIGxpc3QgYm94X21heCwK KyAKKyBjZGVmIGxvb3Bfb3Zlcl9yZWN0YW5ndWxhcl9ib3hfcG9pbnRzX3NhdHVyYXRlZChsaXN0 IGJveF9taW4sIGxpc3QgYm94X21heCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmVxdWFsaXR5Q29sbGVjdGlvbiBpbmVxdWFsaXRpZXMsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGQpIG5vZXhj ZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBkKToKKyAgICAgIiIiCisgICAgIFRoZSBhbmFsb2cgb2YgOmZ1bmM6YHJlY3Rhbmd1bGFyX2Jv eF9wb2ludHNgIGV4Y2VwdCB0aGF0IGl0IGtlZXBzCisgICAgIHRyYWNrIG9mIHdoaWNoIGluZXF1 YWxpdGllcyBhcmUgc2F0dXJhdGVkLgorQEAgLTc5MCw3ICs3OTAsNyBAQCBjZGVmIGNsYXNzIElu ZXF1YWxpdHlfZ2VuZXJpYzoKKyAgICAgICAgIHMgKz0gJykgeCArICcgKyBzdHIoc2VsZi5iKSAr ICcgPj0gMCcKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNkZWYgcHJlcGFyZV9uZXh0X3Rv X2lubmVyX2xvb3Aoc2VsZiwgcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcHJlcGFyZV9uZXh0X3Rv X2lubmVyX2xvb3Aoc2VsZiwgcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEluIDpjbGFzczpg SW5lcXVhbGl0eV9pbnRgIHRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcGVlbCBvZiB0aGUKKyAgICAg ICAgIG5leHQtdG8taW5uZXIgbG9vcC4KK0BAIC03OTksNyArNzk5LDcgQEAgY2RlZiBjbGFzcyBJ bmVxdWFsaXR5X2dlbmVyaWM6CisgICAgICAgICAiIiIKKyAgICAgICAgIHBhc3MKKyAKKy0gICAg Y2RlZiBwcmVwYXJlX2lubmVyX2xvb3Aoc2VsZiwgcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcHJl cGFyZV9pbm5lcl9sb29wKHNlbGYsIHApOgorICAgICAgICAgIiIiCisgICAgICAgICBQZWVsIG9m ZiB0aGUgaW5uZXIgbG9vcC4KKyAKK0BAIC05NTYsNyArOTU2LDcgQEAgY2RlZiBjbGFzcyBJbmVx dWFsaXR5X2ludDoKKyAgICAgICAgIHMgKz0gJykgeCArICcgKyBzdHIoc2VsZi5iKSArICcgPj0g MCcKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNkZWYgcHJlcGFyZV9uZXh0X3RvX2lubmVy X2xvb3AoSW5lcXVhbGl0eV9pbnQgc2VsZiwgcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcHJlcGFy ZV9uZXh0X3RvX2lubmVyX2xvb3AoSW5lcXVhbGl0eV9pbnQgc2VsZiwgcCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFBlZWwgb2ZmIHRoZSBuZXh0LXRvLWlubmVyIGxvb3AuCisgCitAQCAtOTY3 LDcgKzk2Nyw3IEBAIGNkZWYgY2xhc3MgSW5lcXVhbGl0eV9pbnQ6CisgICAgICAgICBmb3IgaiBp biByYW5nZSgyLCBzZWxmLmRpbSk6CisgICAgICAgICAgICAgc2VsZi5jYWNoZV9uZXh0ICs9IHNl bGYuQVtqXSAqIHBbal0KKyAKKy0gICAgY2RlZiBwcmVwYXJlX2lubmVyX2xvb3AoSW5lcXVhbGl0 eV9pbnQgc2VsZiwgcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcHJlcGFyZV9pbm5lcl9sb29wKElu ZXF1YWxpdHlfaW50IHNlbGYsIHApOgorICAgICAgICAgIiIiCisgICAgICAgICBQZWVsIG9mZiB0 aGUgaW5uZXIgbG9vcC4KKyAKK0BAIC0xMDU0LDcgKzEwNTQsNyBAQCBjZGVmIGNsYXNzIEluZXF1 YWxpdHlDb2xsZWN0aW9uOgorICAgICAgICAgICAgIHMgKz0gc3RyKDxJbmVxdWFsaXR5X2dlbmVy aWM+aW5lcSkgKyAnXG4nCisgICAgICAgICByZXR1cm4gcy5zdHJpcCgpCisgCistICAgIGNwZGVm IHR1cGxlIF9tYWtlX0FfYihzZWxmLCBIcmVwX29iaiwgbGlzdCBwZXJtdXRhdGlvbikgbm9leGNl cHQ6CisrICAgIGNwZGVmIHR1cGxlIF9tYWtlX0FfYihzZWxmLCBIcmVwX29iaiwgbGlzdCBwZXJt dXRhdGlvbik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvZWZmaWNpZW50 cyBhbmQgY29uc3RhbnQgb2YgdGhlIEgtcmVwcmVzZW50YXRpb24KKyAgICAgICAgIG9iamVjdC4K K0BAIC0xMTI0LDcgKzExMjQsNyBAQCBjZGVmIGNsYXNzIEluZXF1YWxpdHlDb2xsZWN0aW9uOgor ICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ0Nhbm5vdCBleHRyYWN0IEhyZXByZXNl bnRhdGlvbiBkYXRhIGZyb20gcG9seWhlZHJvbi4nKQorIAorICAgICBjZGVmIF9jaW5pdF9mcm9t X1BQTChzZWxmLCBsaXN0IG1heF9hYnNfY29vcmRpbmF0ZXMsIGxpc3QgcGVybXV0YXRpb24sCist ICAgICAgICAgICAgICAgICAgICAgICAgIHBvbHloZWRyb24pIG5vZXhjZXB0OgorKyAgICAgICAg ICAgICAgICAgICAgICAgICBwb2x5aGVkcm9uKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW5p dGlhbGl6ZSB0aGUgaW5lcXVhbGl0aWVzIGZyb20gYSBQUEwgQ19Qb2x5aGVkcm9uCisgCitAQCAt MTE3Myw3ICsxMTczLDcgQEAgY2RlZiBjbGFzcyBJbmVxdWFsaXR5Q29sbGVjdGlvbjoKKyAgICAg ICAgICAgICAgICAgICAgIHNlbGYuaW5lcXNfZ2VuZXJpYy5hcHBlbmQoSCkKKyAKKyAgICAgY2Rl ZiBfY2luaXRfZnJvbV9Qb2x5aGVkcm9uKHNlbGYsIGxpc3QgbWF4X2Fic19jb29yZGluYXRlcywK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgcGVybXV0YXRpb24sIHBvbHlo ZWRyb24pIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBw ZXJtdXRhdGlvbiwgcG9seWhlZHJvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEluaXRpYWxp emUgdGhlIGluZXF1YWxpdGllcyBmcm9tIGEgU2FnZSBQb2x5aGVkcm9uCisgCitAQCAtMTIyNSw3 ICsxMjI1LDcgQEAgY2RlZiBjbGFzcyBJbmVxdWFsaXR5Q29sbGVjdGlvbjoKKyAgICAgICAgICAg ICAgICAgSCA9IEluZXF1YWxpdHlfZ2VuZXJpYyhBLCBiLCBIcmVwX29iai5pbmRleCgpKQorICAg ICAgICAgICAgICAgICBzZWxmLmluZXFzX2dlbmVyaWMuYXBwZW5kKEgpCisgCistICAgIGNwZGVm IHByZXBhcmVfbmV4dF90b19pbm5lcl9sb29wKHNlbGYsIHApIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBwcmVwYXJlX25leHRfdG9faW5uZXJfbG9vcChzZWxmLCBwKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFBlZWwgb2ZmIHRoZSBuZXh0LXRvLWlubmVyIGxvb3AuCisgCitAQCAtMTI2Myw3ICsx MjYzLDcgQEAgY2RlZiBjbGFzcyBJbmVxdWFsaXR5Q29sbGVjdGlvbjoKKyAgICAgICAgIGZvciBp bmVxIGluIHNlbGYuaW5lcXNfZ2VuZXJpYzoKKyAgICAgICAgICAgICAoPEluZXF1YWxpdHlfZ2Vu ZXJpYz5pbmVxKS5wcmVwYXJlX25leHRfdG9faW5uZXJfbG9vcChwKQorIAorLSAgICBjcGRlZiBw cmVwYXJlX2lubmVyX2xvb3Aoc2VsZiwgcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHByZXBhcmVf aW5uZXJfbG9vcChzZWxmLCBwKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFBlZWwgb2ZmIHRo ZSBpbm5lciBsb29wLgorIAorQEAgLTEzMDIsNyArMTMwMiw3IEBAIGNkZWYgY2xhc3MgSW5lcXVh bGl0eUNvbGxlY3Rpb246CisgICAgICAgICBmb3IgaW5lcSBpbiBzZWxmLmluZXFzX2dlbmVyaWM6 CisgICAgICAgICAgICAgKDxJbmVxdWFsaXR5X2dlbmVyaWM+aW5lcSkucHJlcGFyZV9pbm5lcl9s b29wKHApCisgCistICAgIGNwZGVmIHN3YXBfaW5lcV90b19mcm9udChzZWxmLCBpbnQgaSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHN3YXBfaW5lcV90b19mcm9udChzZWxmLCBpbnQgaSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBTd2FwIHRoZSBgYGlgYC10aCBlbnRyeSBvZiB0aGUgbGlzdCB0 byB0aGUgZnJvbnQgb2YgdGhlIGxpc3Qgb2YgaW5lcXVhbGl0aWVzLgorIAorQEAgLTEzNzcsNyAr MTM3Nyw3IEBAIGNkZWYgY2xhc3MgSW5lcXVhbGl0eUNvbGxlY3Rpb246CisgICAgICAgICAgICAg ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgZnJv emVuc2V0IHNhdGlzZmllZF9hc19lcXVhbGl0aWVzKHNlbGYsIGlubmVyX2xvb3BfdmFyaWFibGUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBmcm96ZW5zZXQgc2F0aXNmaWVkX2FzX2VxdWFsaXRpZXMo c2VsZiwgaW5uZXJfbG9vcF92YXJpYWJsZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgaW5lcXVhbGl0aWVzIChieSB0aGVpciBpbmRleCkgdGhhdCBhcmUgc2F0aXNmaWVkIGFz CisgICAgICAgICBlcXVhbGl0aWVzLgorQEAgLTE0MjMsNyArMTQyMyw3IEBAIGNkZWYgY2xhc3Mg SW5lcXVhbGl0eUNvbGxlY3Rpb246CisgCisgCisgCistY3BkZWYgcHJpbnRfY2FjaGUoSW5lcXVh bGl0eUNvbGxlY3Rpb24gaW5lcXVhbGl0eV9jb2xsZWN0aW9uKSBub2V4Y2VwdDoKKytjcGRlZiBw cmludF9jYWNoZShJbmVxdWFsaXR5Q29sbGVjdGlvbiBpbmVxdWFsaXR5X2NvbGxlY3Rpb24pOgor ICAgICByIiIiCisgICAgIFByaW50IHRoZSBjYWNoZWQgdmFsdWVzIGluIDpjbGFzczpgSW5lcXVh bGl0eV9pbnRgIChmb3IKKyAgICAgZGVidWdnaW5nL2RvY3Rlc3Rpbmcgb25seSkuCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRy b24vYmFzZS5weGQgYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxf cG9seWhlZHJvbi9iYXNlLnB4ZAoraW5kZXggMzUwNmFhYjY1YmIuLmEwNGExMTg2ODc2IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHlo ZWRyb24vYmFzZS5weGQKKysrKyBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmlu YXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHhkCitAQCAtMzEsMzQgKzMxLDM0IEBAIGNkZWYgY2xh c3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2FnZU9iamVjdCk6CisgICAgIGNkZWYgTGlzdE9m UGFpcnMgX2ZhY2VfbGF0dGljZV9pbmNpZGVuY2VzICAjIHN0b3JlcyBpbmNpZGVuY2VzIGluIEhh c3NlIGRpYWdyYW0gbGFiZWxlZCBpbmRpY2VzIG9mIHRoZSBmYWNlcworICAgICBjZGVmIFBvbHlo ZWRyb25GYWNlTGF0dGljZSBfYWxsX2ZhY2VzICAgICAjIGNsYXNzIHRvIGdlbmVyYXRlIEhhc3Nl IGRpYWdyYW0gaW5jaWRlbmNlcworIAorLSAgICBjZGVmIHR1cGxlIFZyZXAoc2VsZikgbm9leGNl cHQKKy0gICAgY2RlZiB0dXBsZSBmYWNldF9uYW1lcyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVm IHR1cGxlIGVxdWF0aW9ucyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIHR1cGxlIGVxdWFsaXRp ZXMoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiB0dXBsZSBWcmVwKHNlbGYpCisrICAgIGNkZWYg dHVwbGUgZmFjZXRfbmFtZXMoc2VsZikKKysgICAgY2RlZiB0dXBsZSBlcXVhdGlvbnMoc2VsZikK KysgICAgY2RlZiB0dXBsZSBlcXVhbGl0aWVzKHNlbGYpCisgICAgIGNkZWYgdW5zaWduZWQgaW50 IG5fVnJlcHJlc2VudGF0aW9uKHNlbGYpIG5vZXhjZXB0CisgICAgIGNkZWYgdW5zaWduZWQgaW50 IG5fSHJlcHJlc2VudGF0aW9uKHNlbGYpIG5vZXhjZXB0CisgICAgIGNkZWYgYmludCBpc19ib3Vu ZGVkKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgTGlzdE9mRmFjZXMgYml0cmVwX2ZhY2V0cyhz ZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIExpc3RPZkZhY2VzIGJpdHJlcF9WcmVwKHNlbGYpIG5v ZXhjZXB0CistICAgIGNkZWYgdHVwbGUgZmFyX2ZhY2VfdHVwbGUoc2VsZikgbm9leGNlcHQKKysg ICAgY2RlZiBMaXN0T2ZGYWNlcyBiaXRyZXBfZmFjZXRzKHNlbGYpCisrICAgIGNkZWYgTGlzdE9m RmFjZXMgYml0cmVwX1ZyZXAoc2VsZikKKysgICAgY2RlZiB0dXBsZSBmYXJfZmFjZV90dXBsZShz ZWxmKQorICAgICBjZGVmIGludCBfYWxnb3JpdGhtX3RvX2R1YWwoc2VsZiwgYWxnb3JpdGhtKSBl eGNlcHQgLTIKKyAKKyAgICAgIyBNZXRob2RzIHRvIGluaXRpYWxpemUgdGhlIGNvbWJpbmF0b3Jp YWwgcG9seWhlZHJvbi4KKy0gICAgY2RlZiBfaW5pdF9mcm9tX3BvbHloZWRyb24oc2VsZiwgZGF0 YSkgbm9leGNlcHQKKy0gICAgY2RlZiBfaW5pdF9mcm9tX2xhdHRpY2VfcG9seXRvcGUoc2VsZiwg ZGF0YSkgbm9leGNlcHQKKy0gICAgY2RlZiBfaW5pdF9mcm9tX2NvbmUoc2VsZiwgZGF0YSkgbm9l eGNlcHQKKy0gICAgY2RlZiBfaW5pdF9mYWNldF9uYW1lcyhzZWxmLCBmYWNldHMpIG5vZXhjZXB0 CistICAgIGNkZWYgX2luaXRfZnJvbV9pbmNpZGVuY2VfbWF0cml4KHNlbGYsIGRhdGEpIG5vZXhj ZXB0CistICAgIGNkZWYgX2luaXRfZnJvbV9saXN0X29mX2ZhY2V0cyhzZWxmLCBkYXRhKSBub2V4 Y2VwdAorLSAgICBjZGVmIF9pbml0X2Zyb21fTGlzdE9mRmFjZXMoc2VsZiwgTGlzdE9mRmFjZXMg ZmFjZXRzLCBMaXN0T2ZGYWNlcyBWcmVwKSBub2V4Y2VwdAorLSAgICBjZGVmIF9pbml0aWFsaXpl X2Zhcl9mYWNlKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX2luaXRfYXNfdHJpdmlhbF9wb2x5 aGVkcm9uKHNlbGYsIGludCBkaW1lbnNpb24pIG5vZXhjZXB0CisrICAgIGNkZWYgX2luaXRfZnJv bV9wb2x5aGVkcm9uKHNlbGYsIGRhdGEpCisrICAgIGNkZWYgX2luaXRfZnJvbV9sYXR0aWNlX3Bv bHl0b3BlKHNlbGYsIGRhdGEpCisrICAgIGNkZWYgX2luaXRfZnJvbV9jb25lKHNlbGYsIGRhdGEp CisrICAgIGNkZWYgX2luaXRfZmFjZXRfbmFtZXMoc2VsZiwgZmFjZXRzKQorKyAgICBjZGVmIF9p bml0X2Zyb21faW5jaWRlbmNlX21hdHJpeChzZWxmLCBkYXRhKQorKyAgICBjZGVmIF9pbml0X2Zy b21fbGlzdF9vZl9mYWNldHMoc2VsZiwgZGF0YSkKKysgICAgY2RlZiBfaW5pdF9mcm9tX0xpc3RP ZkZhY2VzKHNlbGYsIExpc3RPZkZhY2VzIGZhY2V0cywgTGlzdE9mRmFjZXMgVnJlcCkKKysgICAg Y2RlZiBfaW5pdGlhbGl6ZV9mYXJfZmFjZShzZWxmKQorKyAgICBjZGVmIF9pbml0X2FzX3RyaXZp YWxfcG9seWhlZHJvbihzZWxmLCBpbnQgZGltZW5zaW9uKQorIAorICAgICAjIE1ldGhvZHMgdG8g b2J0YWluIGEgZGlmZmVyZW50IGNvbWJpbmF0b3JpYWwgcG9seWhlZHJvbi4KKy0gICAgY3BkZWYg Q29tYmluYXRvcmlhbFBvbHloZWRyb24gZHVhbChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBD b21iaW5hdG9yaWFsUG9seWhlZHJvbiBweXJhbWlkKHNlbGYsIG5ld192ZXJ0ZXg9KiwgbmV3X2Zh Y2V0PSopIG5vZXhjZXB0CisrICAgIGNwZGVmIENvbWJpbmF0b3JpYWxQb2x5aGVkcm9uIGR1YWwo c2VsZikKKysgICAgY3BkZWYgQ29tYmluYXRvcmlhbFBvbHloZWRyb24gcHlyYW1pZChzZWxmLCBu ZXdfdmVydGV4PSosIG5ld19mYWNldD0qKQorIAorLSAgICBjZGVmIEZhY2VJdGVyYXRvciBfZmFj ZV9pdGVyKHNlbGYsIGJpbnQgZHVhbCwgaW50IGRpbWVuc2lvbikgbm9leGNlcHQKKysgICAgY2Rl ZiBGYWNlSXRlcmF0b3IgX2ZhY2VfaXRlcihzZWxmLCBiaW50IGR1YWwsIGludCBkaW1lbnNpb24p CisgICAgIGNkZWYgaW50IF9jb21wdXRlX2ZfdmVjdG9yKHNlbGYsIHNpemVfdCBudW1fdGhyZWFk cywgc2l6ZV90IHBhcmFsbGVsaXphdGlvbl9kZXB0aCwgaW50IGR1YWwpIGV4Y2VwdCAtMQorICAg ICBjZGVmIGludCBfcGVyc2lzdF9mX3ZlY3RvcihzZWxmLCBzaXplX3QqIGlucHV0X2ZfdmVjdG9y LCBiaW50IGlucHV0X2lzX3JldmVyc2VkKSBleGNlcHQgLTEKKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9iYXNlLnB5 eCBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9u L2Jhc2UucHl4CitpbmRleCA4ZDlkMDU2NzEwMC4uMzY3MDQ5YjlmYzAgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9iYXNl LnB5eAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3Bv bHloZWRyb24vYmFzZS5weXgKK0BAIC0zOTcsNyArMzk3LDcgQEAgY2RlZiBjbGFzcyBDb21iaW5h dG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgc2VsZi5faW5pdF9mcm9tX2xpc3Rfb2ZfZmFjZXRzKGRhdGEpCisgCistICAgIGNkZWYgX2lu aXRfZnJvbV9wb2x5aGVkcm9uKHNlbGYsIGRhdGEpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pbml0 X2Zyb21fcG9seWhlZHJvbihzZWxmLCBkYXRhKToKKyAgICAgICAgIHInJycKKyAgICAgICAgIElu aXRpYWxpemUgZnJvbSA6Y2xhc3M6YH5zYWdlLmdlb21ldHJ5LnBvbHloZWRyb24ucGFyZW50LlBv bHloZWRyb25fYmFzZWAuCisgICAgICAgICAnJycKK0BAIC00MTQsNyArNDE0LDcgQEAgY2RlZiBj bGFzcyBDb21iaW5hdG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAKKyAgICAgICAgIHJl dHVybiBzZWxmLl9pbml0X2Zyb21faW5jaWRlbmNlX21hdHJpeChkYXRhLmluY2lkZW5jZV9tYXRy aXgoKSkKKyAKKy0gICAgY2RlZiBfaW5pdF9mcm9tX2xhdHRpY2VfcG9seXRvcGUoc2VsZiwgZGF0 YSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRfZnJvbV9sYXR0aWNlX3BvbHl0b3BlKHNlbGYs IGRhdGEpOgorICAgICAgICAgcicnJworICAgICAgICAgSW5pdGlhbGl6ZSBmcm9tIDpjbGFzczpg fnNhZ2UuZ2VvbWV0cnkubGF0dGljZV9wb2x5dG9wZS5MYXR0aWNlUG9seXRvcGVDbGFzc2AuCisg ICAgICAgICAnJycKK0BAIC00MjQsNyArNDI0LDcgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFs UG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAgICAgICAgIHNlbGYuX2RpbWVuc2lvbiA9IGRhdGEu ZGltZW5zaW9uKCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9pbml0X2Zyb21faW5jaWRlbmNlX21h dHJpeChkYXRhLmluY2lkZW5jZV9tYXRyaXgoKSkKKyAKKy0gICAgY2RlZiBfaW5pdF9mcm9tX2Nv bmUoc2VsZiwgZGF0YSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRfZnJvbV9jb25lKHNlbGYs IGRhdGEpOgorICAgICAgICAgcicnJworICAgICAgICAgSW5pdGlhbGl6ZSBmcm9tIDpjbGFzczpg fnNhZ2UuZ2VvbWV0cnkuY29uZS5Db252ZXhSYXRpb25hbFBvbHloZWRyYWxDb25lYC4KKyAgICAg ICAgICcnJworQEAgLTQzOSw3ICs0MzksNyBAQCBjZGVmIGNsYXNzIENvbWJpbmF0b3JpYWxQb2x5 aGVkcm9uKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr IFtbWloub25lKCkgZm9yIF8gaW4gcmFuZ2UobGVuKGRhdGEuZmFjZXRfbm9ybWFscygpKSldXSkK KyAgICAgICAgIHJldHVybiBzZWxmLl9pbml0X2Zyb21faW5jaWRlbmNlX21hdHJpeChpbmNpZGVu Y2VfbWF0cml4KQorIAorLSAgICBjZGVmIF9pbml0X2ZhY2V0X25hbWVzKHNlbGYsIGZhY2V0cykg bm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRfZmFjZXRfbmFtZXMoc2VsZiwgZmFjZXRzKToKKyAg ICAgICAgICcnJworICAgICAgICAgU3RvcmUgZmFjZXQgbmFtZXMgYW5kIGNvbXB1dGUgZXF1YXRp b25zLgorICAgICAgICAgJycnCitAQCAtNDYwLDcgKzQ2MCw3IEBAIGNkZWYgY2xhc3MgQ29tYmlu YXRvcmlhbFBvbHloZWRyb24oU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIHNlbGYuX2ZhY2V0X25hbWVzID0gTm9uZQorIAorLSAgICBjZGVmIF9pbml0X2Zyb21faW5j aWRlbmNlX21hdHJpeChzZWxmLCBkYXRhKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5pdF9mcm9t X2luY2lkZW5jZV9tYXRyaXgoc2VsZiwgZGF0YSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIElu aXRpYWxpemUgZnJvbSBhbiBpbmNpZGVuY2UgbWF0cml4LgorICAgICAgICAgIiIiCitAQCAtNDk2 LDcgKzQ5Niw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2FnZU9iamVj dCk6CisgCisgICAgICAgICBzZWxmLl9pbml0aWFsaXplX2Zhcl9mYWNlKCkKKyAKKy0gICAgY2Rl ZiBfaW5pdF9mcm9tX2xpc3Rfb2ZfZmFjZXRzKHNlbGYsIGRhdGEpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9pbml0X2Zyb21fbGlzdF9vZl9mYWNldHMoc2VsZiwgZGF0YSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEluaXRpYWxpemUgZnJvbSBhIGxpc3Qgb2YgZmFjZXRzLgorIAorQEAgLTU0MSw3 ICs1NDEsNyBAQCBjZGVmIGNsYXNzIENvbWJpbmF0b3JpYWxQb2x5aGVkcm9uKFNhZ2VPYmplY3Qp OgorIAorICAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9mYXJfZmFjZSgpCisgCistICAgIGNkZWYg X2luaXRfZnJvbV9MaXN0T2ZGYWNlcyhzZWxmLCBMaXN0T2ZGYWNlcyBmYWNldHMsIExpc3RPZkZh Y2VzIFZyZXApIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pbml0X2Zyb21fTGlzdE9mRmFjZXMoc2Vs ZiwgTGlzdE9mRmFjZXMgZmFjZXRzLCBMaXN0T2ZGYWNlcyBWcmVwKToKKyAgICAgICAgICIiIgor ICAgICAgICAgSW5pdGlhbGl6ZSBzZWxmIGZyb20gdHdvIGBgTGlzdE9mRmFjZXNgYC4KKyAgICAg ICAgICIiIgorQEAgLTU1NCw3ICs1NTQsNyBAQCBjZGVmIGNsYXNzIENvbWJpbmF0b3JpYWxQb2x5 aGVkcm9uKFNhZ2VPYmplY3QpOgorIAorICAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9mYXJfZmFj ZSgpCisgCistICAgIGNkZWYgX2luaXRpYWxpemVfZmFyX2ZhY2Uoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX2luaXRpYWxpemVfZmFyX2ZhY2Uoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEluaXRpYWxpemUgZmFyX2ZhY2UgaWYgdW5ib3VuZGVkLgorICAgICAgICAgIiIiCitAQCAt NTYyLDcgKzU2Miw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2FnZU9i amVjdCk6CisgICAgICAgICAgICAgZmFjZV9pbml0KHNlbGYuX2Zhcl9mYWNlLCBzZWxmLmJpdHJl cF9mYWNldHMoKS5uX2F0b21zKCksIHNlbGYuX25fZmFjZXRzKQorICAgICAgICAgICAgIFZyZXBf bGlzdF90b19iaXRfcmVwKHR1cGxlKHNlbGYuX2Zhcl9mYWNlX3R1cGxlKSwgc2VsZi5fZmFyX2Zh Y2UpCisgCistICAgIGNkZWYgX2luaXRfYXNfdHJpdmlhbF9wb2x5aGVkcm9uKHNlbGYsIGludCBk aW1lbnNpb24pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pbml0X2FzX3RyaXZpYWxfcG9seWhlZHJv bihzZWxmLCBpbnQgZGltZW5zaW9uKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW5pdGlhbGl6 ZSBwb2x5aGVkcm9uIGVxdWFsIHRvIGl0cyBhZmZpbmUgaHVsbC4KKyAgICAgICAgICIiIgorQEAg LTI4MDEsNyArMjgwMSw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2Fn ZU9iamVjdCk6CisgCisgICAgIGZhY2VfaXRlciA9IGZhY2VfZ2VuZXJhdG9yCisgCistICAgIGNk ZWYgRmFjZUl0ZXJhdG9yIF9mYWNlX2l0ZXIoc2VsZiwgYmludCBkdWFsLCBpbnQgZGltZW5zaW9u KSBub2V4Y2VwdDoKKysgICAgY2RlZiBGYWNlSXRlcmF0b3IgX2ZhY2VfaXRlcihzZWxmLCBiaW50 IGR1YWwsIGludCBkaW1lbnNpb24pOgorICAgICAgICAgciIiIgorICAgICAgICAgQSBtZXRob2Qg dG8gb2J0YWluIHRoZSBGYWNlSXRlcmF0b3IgYXMgQ3l0aG9uIG9iamVjdC4KKyAKK0BAIC0zMjUx LDEzICszMjUxLDEzIEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2FnZU9i amVjdCk6CisgICAgICAgICAgICAgICAgIHRlc3Rlci5hc3NlcnRUcnVlKGFsbChqIGluIGYuYW1i aWVudF9WX2luZGljZXMoKSBmb3IgZiBpbiBiKSkKKyAgICAgICAgICAgICAgICAgdGVzdGVyLmFz c2VydFRydWUoYWxsKGkgaW4gZi5hbWJpZW50X0hfaW5kaWNlcygpIGZvciBmIGluIGIpKQorIAor LSAgICBjZGVmIHR1cGxlIFZyZXAoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgdHVwbGUgVnJl cChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbmFtZXMgb2YgdGhl IFZyZXByZXNlbnRhdGlvbiwgaWYgdGhleSBleGlzdC4gRWxzZSByZXR1cm4gYGBOb25lYGAuCisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9WcmVwCisgCistICAgIGNkZWYgdHVw bGUgZmFjZXRfbmFtZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgdHVwbGUgZmFjZXRfbmFt ZXMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG5hbWVzIEhyZXBy ZXNlbnRhdGl2ZXMsIHdoaWNoIGFyZSBmYWNldHMuCisgCitAQCAtMzI2NSw3ICszMjY1LDcgQEAg Y2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2ZhY2V0X25hbWVzCisgCistICAgIGNkZWYgdHVw bGUgZXF1YXRpb25zKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHR1cGxlIGVxdWF0aW9ucyhz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbmFtZXMgb2YgdGhlIGVx dWF0aW9ucy4KKyAKK0BAIC0zMjczLDcgKzMyNzMsNyBAQCBjZGVmIGNsYXNzIENvbWJpbmF0b3Jp YWxQb2x5aGVkcm9uKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZi5fZXF1YXRpb25zCisgCistICAgIGNkZWYgdHVwbGUgZXF1YWxpdGllcyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiB0dXBsZSBlcXVhbGl0aWVzKHNlbGYpOgorICAgICAgICAgZnJvbSBz YWdlLm1pc2Muc3VwZXJzZWRlZCBpbXBvcnQgZGVwcmVjYXRpb24KKyAgICAgICAgIGRlcHJlY2F0 aW9uKDMxODM0LCAidGhlIG1ldGhvZCBlcXVhbGl0aWVzIG9mIENvbWJpbmF0b3JpYWxQb2x5aGVk cm9uIGlzIGRlcHJlY2F0ZWQ7IHVzZSBlcXVhdGlvbnMiLCAzKQorICAgICAgICAgcmV0dXJuIHNl bGYuZXF1YXRpb25zKCkKK0BAIC0zMzE3LDE5ICszMzE3LDE5IEBAIGNkZWYgY2xhc3MgQ29tYmlu YXRvcmlhbFBvbHloZWRyb24oU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLl9ib3VuZGVkCisgCistICAgIGNkZWYgTGlzdE9mRmFjZXMgYml0cmVwX2ZhY2V0 cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMaXN0T2ZGYWNlcyBiaXRyZXBfZmFjZXRzKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBmYWNldHMgaW4gYml0IHJl cHJlc2VudGF0aW9uLgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYml0cmVw X2ZhY2V0cworIAorLSAgICBjZGVmIExpc3RPZkZhY2VzIGJpdHJlcF9WcmVwKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIExpc3RPZkZhY2VzIGJpdHJlcF9WcmVwKHNlbGYpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBWcmVwcmVzZW50YXRpb25zIGluIGJpdCByZXByZXNl bnRhdGlvbi4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2JpdHJlcF9WcmVw CisgCistICAgIGNkZWYgdHVwbGUgZmFyX2ZhY2VfdHVwbGUoc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgdHVwbGUgZmFyX2ZhY2VfdHVwbGUoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGZhciBmYWNlIGFzIGl0IHdhcyBnaXZlbiBvbiBpbml0aWFsaXphdGlvbi4K KyAgICAgICAgICIiIgorQEAgLTMzNTIsNyArMzM1Miw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRv cmlhbFBvbHloZWRyb24oU2FnZU9iamVjdCk6CisgCisgICAgICMgTWV0aG9kcyB0byBvYnRhaW4g YSBkaWZmZXJlbnQgY29tYmluYXRvcmlhbCBwb2x5aGVkcm9uLgorIAorLSAgICBjcGRlZiBDb21i aW5hdG9yaWFsUG9seWhlZHJvbiBkdWFsKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBDb21i aW5hdG9yaWFsUG9seWhlZHJvbiBkdWFsKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBkdWFsL3BvbGFyIG9mIHNlbGYuCisgCitAQCAtMzM5NSw3ICszMzk1LDcgQEAg Y2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAKKyAgICAg cG9sYXIgPSBkdWFsCisgCistICAgIGNwZGVmIENvbWJpbmF0b3JpYWxQb2x5aGVkcm9uIHB5cmFt aWQoc2VsZiwgbmV3X3ZlcnRleD1Ob25lLCBuZXdfZmFjZXQ9Tm9uZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIENvbWJpbmF0b3JpYWxQb2x5aGVkcm9uIHB5cmFtaWQoc2VsZiwgbmV3X3ZlcnRleD1O b25lLCBuZXdfZmFjZXQ9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IHB5cmFtaWQgb2YgYGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ2VvbWV0cnkv cG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9mYWNlLnB4 ZCBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9u L2NvbWJpbmF0b3JpYWxfZmFjZS5weGQKK2luZGV4IGFmYzAxOTA0ZGEyLi5mMzkyODRhY2U2OCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9w b2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfZmFjZS5weGQKKysrKyBiL3NyYy9zYWdlL2dlb21ldHJ5 L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfZmFjZS5w eGQKK0BAIC0zMiw3ICszMiw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbEZhY2UoU2FnZU9i amVjdCk6CisgICAgICMgSWYgYGBkdWFsID09IDBgYCwgdGhlbiBjb2F0b21zIGFyZSBmYWNldHMs IGF0b21zIHZlcnRpY2VzIGFuZCB2aWNlIHZlcnNhLgorICAgICBjZGVmIExpc3RPZkZhY2VzIGF0 b21zLCBjb2F0b21zCisgCistICAgIGNwZGVmIGRpbWVuc2lvbihzZWxmKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBkaW1lbnNpb24oc2VsZikKKyAgICAgY2RlZiBzaXplX3Qgbl9hdG9tX3JlcChzZWxm KSBleGNlcHQgLTEKKyAgICAgY2RlZiBzaXplX3Qgc2V0X2NvYXRvbV9yZXAoc2VsZikgZXhjZXB0 IC0xCisgICAgIGNkZWYgc2l6ZV90IHNldF9hdG9tX3JlcChzZWxmKSBleGNlcHQgLTEKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhl ZHJvbi9jb21iaW5hdG9yaWFsX2ZhY2UucHl4IGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJv bi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9mYWNlLnB5eAoraW5kZXgg ODFkYzdjMjY5ZGIuLmZiNzgwZTI5MzUzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ2VvbWV0cnkv cG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9mYWNlLnB5 eAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHlo ZWRyb24vY29tYmluYXRvcmlhbF9mYWNlLnB5eAorQEAgLTQ5Nyw3ICs0OTcsNyBAQCBjZGVmIGNs YXNzIENvbWJpbmF0b3JpYWxGYWNlKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImlzX3N1YmZhY2Ugb25s eSBpbXBsZW1lbnRlZCBmb3IgZmFjZXMgb2YgdGhlIHNhbWUgcG9seWhlZHJvbiIpCisgCistICAg IGNwZGVmIGRpbWVuc2lvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGltZW5zaW9uKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkaW1lbnNpb24gb2YgdGhl IGZhY2UuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21i aW5hdG9yaWFsX3BvbHloZWRyb24vZmFjZV9pdGVyYXRvci5weGQgYi9zcmMvc2FnZS9nZW9tZXRy eS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9mYWNlX2l0ZXJhdG9yLnB4ZAor aW5kZXggODdlM2U4N2MxYzYuLjNjMDE1OTczZGQxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ2Vv bWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vZmFjZV9pdGVyYXRvci5w eGQKKysrKyBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5 aGVkcm9uL2ZhY2VfaXRlcmF0b3IucHhkCitAQCAtNzAsNyArNzAsNyBAQCBjZGVmIGNsYXNzIEZh Y2VJdGVyYXRvcl9iYXNlKFNhZ2VPYmplY3QpOgorICAgICAjIElmIGBgZHVhbCA9PSAwYGAsIHRo ZW4gY29hdG9tcyBhcmUgZmFjZXRzLCBhdG9tcyB2ZXJ0aWNlcyBhbmQgdmljZSB2ZXJzYS4KKyAg ICAgY2RlZiBMaXN0T2ZGYWNlcyBhdG9tcywgY29hdG9tcywgY29hdG9tc19jb2F0b21fcmVwCisg CistICAgIGNkZWYgaW5saW5lIENvbWJpbmF0b3JpYWxGYWNlIG5leHRfZmFjZShzZWxmKSBub2V4 Y2VwdAorKyAgICBjZGVmIGlubGluZSBDb21iaW5hdG9yaWFsRmFjZSBuZXh0X2ZhY2Uoc2VsZikK KyAgICAgY2RlZiBpbmxpbmUgaW50IG5leHRfZGltZW5zaW9uKHNlbGYpIGV4Y2VwdCAtMQorICAg ICBjZGVmIGlubGluZSBpbnQgbmV4dF9mYWNlX2xvb3Aoc2VsZikgZXhjZXB0IC0xCisgICAgIGNk ZWYgc2l6ZV90IG5fYXRvbV9yZXAoc2VsZikgZXhjZXB0IC0xCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vZmFjZV9pdGVy YXRvci5weXggYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9s eWhlZHJvbi9mYWNlX2l0ZXJhdG9yLnB5eAoraW5kZXggNzYyMjdjZmUzY2YuLmNhNTYzNGQzMWE3 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFs X3BvbHloZWRyb24vZmFjZV9pdGVyYXRvci5weXgKKysrKyBiL3NyYy9zYWdlL2dlb21ldHJ5L3Bv bHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2ZhY2VfaXRlcmF0b3IucHl4CitAQCAt MTE5OSw3ICsxMTk5LDcgQEAgY2RlZiBjbGFzcyBGYWNlSXRlcmF0b3JfYmFzZShTYWdlT2JqZWN0 KToKKyAgICAgICAgICMgZm9yIHRoZSBkaW1lbnNpb24uIEJ5IHRoaXMgdGltZSB0aGUgY3VycmVu dCBkaW1lbnNpb24gaGFzIGNoYW5nZWQuCisgICAgICAgICBzZWxmLnN0cnVjdHVyZS5oaWdoZXN0 X2RpbWVuc2lvbiA9IHNlbGYuc3RydWN0dXJlLmN1cnJlbnRfZGltZW5zaW9uIC0gMQorIAorLSAg ICBjZGVmIGlubGluZSBDb21iaW5hdG9yaWFsRmFjZSBuZXh0X2ZhY2Uoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNkZWYgaW5saW5lIENvbWJpbmF0b3JpYWxGYWNlIG5leHRfZmFjZShzZWxmKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFNldCBhdHRyaWJ1dGUgYGBmYWNlYGAgdG8gdGhlIG5leHQg ZmFjZSBhbmQgcmV0dXJuIGl0IGFzCisgICAgICAgICA6Y2xhc3M6YHNhZ2UuZ2VvbWV0cnkucG9s eWhlZHJvbi5jb21iaW5hdG9yaWFsX3BvbHloZWRyb24uY29tYmluYXRvcmlhbF9mYWNlLkNvbWJp bmF0b3JpYWxGYWNlYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9u L2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9saXN0X29mX2ZhY2VzLnB4ZCBiL3NyYy9zYWdlL2dl b21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2xpc3Rfb2ZfZmFjZXMu cHhkCitpbmRleCBjNjYwMjQwZmJjNC4uNjJiYTViOTg3Y2YgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9saXN0X29mX2Zh Y2VzLnB4ZAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFs X3BvbHloZWRyb24vbGlzdF9vZl9mYWNlcy5weGQKK0BAIC04LDcgKzgsNyBAQCBjZGVmIGNsYXNz IExpc3RPZkZhY2VzOgorICAgICAjIEl0IHdpbGwgYmUgb2YgInR5cGUiIGBgdWludDY0X3Rbbl9m YWNlc11bZmFjZV9sZW5ndGhdYGAKKyAgICAgY2RlZiBmYWNlX2xpc3RfdCBkYXRhCisgCistICAg IGNwZGVmIExpc3RPZkZhY2VzIF9fY29weV9fKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIExp c3RPZkZhY2VzIF9fY29weV9fKHNlbGYpCisgCisgICAgIGNwZGVmIGludCBjb21wdXRlX2RpbWVu c2lvbihzZWxmKSBleGNlcHQgLTIKKyAKK0BAIC0xOSwxMiArMTksMTIgQEAgY2RlZiBjbGFzcyBM aXN0T2ZGYWNlczoKKyAgICAgY2RlZiBpbmxpbmUgc2l6ZV90IG5fY29hdG9tcyhzZWxmKSBub2V4 Y2VwdDoKKyAgICAgICAgIHJldHVybiBzZWxmLmRhdGEubl9jb2F0b21zCisgCistICAgIGNwZGVm IExpc3RPZkZhY2VzIHB5cmFtaWQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgTGlzdE9mRmFj ZXMgcHlyYW1pZChzZWxmKQorIAorLSAgICBjZGVmIExpc3RPZkZhY2VzIGRlbGV0ZV9hdG9tc191 bnNhZmUoc2VsZiwgYmludCogZGVsZXRlLCBmYWNlX3QgZmFjZSkgbm9leGNlcHQgICMgbm90IGlu IHBsYWNlCisrICAgIGNkZWYgTGlzdE9mRmFjZXMgZGVsZXRlX2F0b21zX3Vuc2FmZShzZWxmLCBi aW50KiBkZWxldGUsIGZhY2VfdCBmYWNlKSAgIyBub3QgaW4gcGxhY2UKKyAgICAgY2RlZiB2b2lk IGRlbGV0ZV9mYWNlc191bnNhZmUoc2VsZiwgYmludCogZGVsZXRlLCBmYWNlX3QgZmFjZSkgbm9l eGNlcHQgICMgaW4gcGxhY2UKKyAKKyAgICAgY2RlZiB2b2lkIGdldF9ub3RfaW5jbHVzaW9uX21h eGltYWxfdW5zYWZlKHNlbGYsIGJpbnQgKm5vdF9pbmNsdXNpb25fbWF4aW1hbCkgbm9leGNlcHQK KyAgICAgY2RlZiB2b2lkIGdldF9mYWNlc19hbGxfc2V0X3Vuc2FmZShzZWxmLCBiaW50ICphbGxf c2V0KSBub2V4Y2VwdAorIAorLWNkZWYgdHVwbGUgZmFjZV9hc19jb21iaW5hdG9yaWFsX3BvbHlo ZWRyb24oTGlzdE9mRmFjZXMgZmFjZXRzLCBMaXN0T2ZGYWNlcyBWcmVwLCBmYWNlX3QgZmFjZSwg YmludCBkdWFsKSBub2V4Y2VwdAorK2NkZWYgdHVwbGUgZmFjZV9hc19jb21iaW5hdG9yaWFsX3Bv bHloZWRyb24oTGlzdE9mRmFjZXMgZmFjZXRzLCBMaXN0T2ZGYWNlcyBWcmVwLCBmYWNlX3QgZmFj ZSwgYmludCBkdWFsKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24v Y29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2xpc3Rfb2ZfZmFjZXMucHl4IGIvc3JjL3NhZ2UvZ2Vv bWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vbGlzdF9vZl9mYWNlcy5w eXgKK2luZGV4IGNkN2I3MzE2YTQzLi40NjgzNDdmNTI1NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2xpc3Rfb2ZfZmFj ZXMucHl4CisrKysgYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxf cG9seWhlZHJvbi9saXN0X29mX2ZhY2VzLnB5eAorQEAgLTE3OCw3ICsxNzgsNyBAQCBjZGVmIGNs YXNzIExpc3RPZkZhY2VzOgorICAgICAgICAgIiIiCisgICAgICAgICBhc3NlcnQgZmFjZV9saXN0 X2NoZWNrX2FsaWdubWVudChzZWxmLmRhdGEpCisgCistICAgIGNwZGVmIExpc3RPZkZhY2VzIF9f Y29weV9fKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMaXN0T2ZGYWNlcyBfX2NvcHlfXyhz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGNvcHkgb2Ygc2VsZi4KKyAK K0BAIC0zMDMsNyArMzAzLDcgQEAgY2RlZiBjbGFzcyBMaXN0T2ZGYWNlczoKKyAgICAgICAgICMg YnkgY2FsY3VsYXRpbmcgZGltZW5zaW9uIG9mIG9uZSBvZiBpdHMgZmFjZXMuCisgICAgICAgICBy ZXR1cm4gbmV3X2ZhY2VzLmNvbXB1dGVfZGltZW5zaW9uKCkgKyAxCisgCistICAgIGNwZGVmIExp c3RPZkZhY2VzIHB5cmFtaWQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIExpc3RPZkZhY2Vz IHB5cmFtaWQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qg b2YgZmFjZXMgb2YgdGhlIHB5cmFtaWQuCisgCitAQCAtMzgxLDcgKzM4MSw3IEBAIGNkZWYgY2xh c3MgTGlzdE9mRmFjZXM6CisgCisgICAgICAgICByZXR1cm4gY29weQorIAorLSAgICBjZGVmIExp c3RPZkZhY2VzIGRlbGV0ZV9hdG9tc191bnNhZmUoc2VsZiwgYmludCAqZGVsZXRlLCBmYWNlX3Qg ZmFjZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgTGlzdE9mRmFjZXMgZGVsZXRlX2F0b21zX3Vuc2Fm ZShzZWxmLCBiaW50ICpkZWxldGUsIGZhY2VfdCBmYWNlKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiBhIGNvcHkgb2YgYGBzZWxmYGAgd2hlcmUgYml0cyBpbiBgYGRlbGV0ZWBgIGhh dmUgYmVlbgorICAgICAgICAgcmVtb3ZlZC9jb250cmFjdGVkLgorQEAgLTUxOCw3ICs1MTgsNyBA QCBjZGVmIGNsYXNzIExpc3RPZkZhY2VzOgorICAgICAgICAgTS5zZXRfaW1tdXRhYmxlKCkKKyAg ICAgICAgIHJldHVybiBNCisgCistY2RlZiB0dXBsZSBmYWNlX2FzX2NvbWJpbmF0b3JpYWxfcG9s eWhlZHJvbihMaXN0T2ZGYWNlcyBmYWNldHMsIExpc3RPZkZhY2VzIFZyZXAsIGZhY2VfdCBmYWNl LCBiaW50IGR1YWwpIG5vZXhjZXB0OgorK2NkZWYgdHVwbGUgZmFjZV9hc19jb21iaW5hdG9yaWFs X3BvbHloZWRyb24oTGlzdE9mRmFjZXMgZmFjZXRzLCBMaXN0T2ZGYWNlcyBWcmVwLCBmYWNlX3Qg ZmFjZSwgYmludCBkdWFsKToKKyAgICAgciIiIgorICAgICBPYnRhaW4gZmFjZXRzIGFuZCBWcmVw cmVzZW50YXRpb24gb2YgYGBmYWNlYGAgYXMgbmV3IGNvbWJpbmF0b3JpYWwgcG9seWhlZHJvbi4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3Jp YWxfcG9seWhlZHJvbi9wb2x5aGVkcm9uX2ZhY2VfbGF0dGljZS5weGQgYi9zcmMvc2FnZS9nZW9t ZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9wb2x5aGVkcm9uX2ZhY2Vf bGF0dGljZS5weGQKK2luZGV4IGFmZTk1NjY3MmZmLi44MjRiODMyZjIzOCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL3Bv bHloZWRyb25fZmFjZV9sYXR0aWNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhl ZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vcG9seWhlZHJvbl9mYWNlX2xhdHRpY2UucHhk CitAQCAtNDEsNyArNDEsNyBAQCBjZGVmIGNsYXNzIFBvbHloZWRyb25GYWNlTGF0dGljZToKKyAK KyAgICAgY2RlZiBpbnQgX3NvcnQoc2VsZikgZXhjZXB0IC0xCisgICAgIGNkZWYgaW5saW5lIHNp emVfdCBmaW5kX2ZhY2Uoc2VsZiwgaW50IGRpbWVuc2lvbiwgZmFjZV90IGZhY2UpIGV4Y2VwdCAt MgorLSAgICBjcGRlZiBDb21iaW5hdG9yaWFsRmFjZSBnZXRfZmFjZShzZWxmLCBpbnQgZGltZW5z aW9uLCBzaXplX3QgaW5kZXgpIG5vZXhjZXB0CisrICAgIGNwZGVmIENvbWJpbmF0b3JpYWxGYWNl IGdldF9mYWNlKHNlbGYsIGludCBkaW1lbnNpb24sIHNpemVfdCBpbmRleCkKKyAgICAgY2RlZiBz aXplX3Qgc2V0X2NvYXRvbV9yZXAoc2VsZiwgaW50IGRpbWVuc2lvbiwgc2l6ZV90IGluZGV4KSBl eGNlcHQgLTEKKyAgICAgY2RlZiBzaXplX3Qgc2V0X2F0b21fcmVwKHNlbGYsIGludCBkaW1lbnNp b24sIHNpemVfdCBpbmRleCkgZXhjZXB0IC0xCisgICAgIGNkZWYgdm9pZCBpbmNpZGVuY2VfaW5p dChzZWxmLCBpbnQgZGltZW5zaW9uX29uZSwgaW50IGRpbWVuc2lvbl90d28pIG5vZXhjZXB0Citk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3Bv bHloZWRyb24vcG9seWhlZHJvbl9mYWNlX2xhdHRpY2UucHl4IGIvc3JjL3NhZ2UvZ2VvbWV0cnkv cG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vcG9seWhlZHJvbl9mYWNlX2xhdHRp Y2UucHl4CitpbmRleCA1YTJjMzFmNjQ1My4uZDAwNjQ3OTVmYTUgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9wb2x5aGVk cm9uX2ZhY2VfbGF0dGljZS5weXgKKysrKyBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24v Y29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL3BvbHloZWRyb25fZmFjZV9sYXR0aWNlLnB5eAorQEAg LTMxMyw3ICszMTMsNyBAQCBjZGVmIGNsYXNzIFBvbHloZWRyb25GYWNlTGF0dGljZToKKyAKKyAg ICAgICAgIHJldHVybiBmaW5kX2ZhY2UoZmFjZSwgc2VsZi5mYWNlc1tkaW1lbnNpb24rMV0pCisg CistICAgIGNwZGVmIENvbWJpbmF0b3JpYWxGYWNlIGdldF9mYWNlKHNlbGYsIGludCBkaW1lbnNp b24sIHNpemVfdCBpbmRleCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIENvbWJpbmF0b3JpYWxGYWNl IGdldF9mYWNlKHNlbGYsIGludCBkaW1lbnNpb24sIHNpemVfdCBpbmRleCk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGZhY2Ugb2YgZGltZW5zaW9uIGBgZGltZW5zaW9uYGAg YW5kIGluZGV4IGBgaW5kZXhgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9nZW9tZXRyeS90 b3JpY19sYXR0aWNlX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvZ2VvbWV0cnkvdG9yaWNfbGF0dGlj ZV9lbGVtZW50LnB5eAoraW5kZXggNjA3ODJhODA1ZjQuLjhhMmY4Nzc2MmViIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvZ2VvbWV0cnkvdG9yaWNfbGF0dGljZV9lbGVtZW50LnB5eAorKysrIGIvc3Jj L3NhZ2UvZ2VvbWV0cnkvdG9yaWNfbGF0dGljZV9lbGVtZW50LnB5eAorQEAgLTIyMyw3ICsyMjMs NyBAQCBjZGVmIGNsYXNzIFRvcmljTGF0dGljZUVsZW1lbnQoVmVjdG9yX2ludGVnZXJfZGVuc2Up OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gVmVjdG9yX2ludGVnZXJfZGVuc2UuX19o YXNoX18oc2VsZikKKyAKKy0gICAgY3BkZWYgX2FjdF9vbl8oc2VsZiwgb3RoZXIsIGJpbnQgc2Vs Zl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF9vbl8oc2VsZiwgb3RoZXIsIGJp bnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWN0IG9uIGBgb3RoZXJg YC4KKyAKK0BAIC0yOTgsNyArMjk4LDcgQEAgY2RlZiBjbGFzcyBUb3JpY0xhdHRpY2VFbGVtZW50 KFZlY3Rvcl9pbnRlZ2VyX2RlbnNlKToKKyAgICAgIyBXZSBuZWVkIHRvIG92ZXJyaWRlIHRoaXMg ZnVuY3Rpb24gdG8gcHJvaGliaXQgZGVmYXVsdCBiZWhhdmlvdXIuCisgICAgICMgSXQgc2VlbXMg dG8gYmUgY2FsbGVkIHdoZW4gcmlnaHQgaXMgaW4gdGhlIHNhbWUgbGF0dGljZSBhcyBzZWxmLCB3 aGljaAorICAgICAjIGlzIHdyb25nIGZyb20gb3VyIHBvaW50IG9mIHZpZXcuCistICAgIGNwZGVm IF9kb3RfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2RvdF9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSYWlzZSBhIDpjbGFzczpgVHlwZUVycm9yYCBleGNlcHRpb24uCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvZ2VvbWV0cnkvdHJpYW5ndWxhdGlvbi9iYXNlLnB5eCBiL3NyYy9zYWdlL2dlb21l dHJ5L3RyaWFuZ3VsYXRpb24vYmFzZS5weXgKK2luZGV4IDMxNjFkMTlhZmJhLi5jYjljYjk0ODI1 NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dlb21ldHJ5L3RyaWFuZ3VsYXRpb24vYmFzZS5weXgK KysrKyBiL3NyYy9zYWdlL2dlb21ldHJ5L3RyaWFuZ3VsYXRpb24vYmFzZS5weXgKK0BAIC0xMDks NyArMTA5LDcgQEAgY2RlZiBjbGFzcyBQb2ludChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5fcG9pbnRfY29uZmlndXJhdGlvbikgXiAoPGxvbmc+ c2VsZi5faW5kZXgpCisgCistICAgIGNwZGVmIHBvaW50X2NvbmZpZ3VyYXRpb24oc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHBvaW50X2NvbmZpZ3VyYXRpb24oc2VsZik6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHBvaW50IGNvbmZpZ3VyYXRpb24gdG8gd2hpY2ggdGhl IHBvaW50IGJlbG9uZ3MuCisgCitAQCAtMTU4LDcgKzE1OCw3IEBAIGNkZWYgY2xhc3MgUG9pbnQo U2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBsZW4oc2VsZi5fYWZm aW5lKQorIAorLSAgICBjcGRlZiBpbmRleChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW5k ZXgoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW5kZXggb2YgdGhl IHBvaW50IGluIHRoZSBwb2ludCBjb25maWd1cmF0aW9uLgorIAorQEAgLTE3Miw3ICsxNzIsNyBA QCBjZGVmIGNsYXNzIFBvaW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gc2VsZi5faW5kZXgKKyAKKy0gICAgY3BkZWYgcHJvamVjdGl2ZShzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgcHJvamVjdGl2ZShzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiB0aGUgcHJvamVjdGl2ZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgaW4gdGhlIGFt YmllbnQgc3BhY2UuCisgCitAQCAtMTk4LDcgKzE5OCw3IEBAIGNkZWYgY2xhc3MgUG9pbnQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9wcm9qZWN0aXZl CisgCistICAgIGNwZGVmIGFmZmluZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWZmaW5l KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhZmZpbmUgY29vcmRp bmF0ZXMgb2YgdGhlIHBvaW50IGluIHRoZSBhbWJpZW50IHNwYWNlLgorIAorQEAgLTIyNCw3ICsy MjQsNyBAQCBjZGVmIGNsYXNzIFBvaW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5fYWZmaW5lCisgCistICAgIGNwZGVmIHJlZHVjZWRfYWZmaW5lKHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2VkX2FmZmluZShzZWxmKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWZmaW5lIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2lu dCBvbiB0aGUgaHlwZXJwbGFuZQorICAgICAgICAgc3Bhbm5lZCBieSB0aGUgcG9pbnQgY29uZmln dXJhdGlvbi4KK0BAIC0yNTEsNyArMjUxLDcgQEAgY2RlZiBjbGFzcyBQb2ludChTYWdlT2JqZWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3JlZHVjZWRfYWZmaW5lCisg CistICAgIGNwZGVmIHJlZHVjZWRfcHJvamVjdGl2ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgcmVkdWNlZF9wcm9qZWN0aXZlKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBwcm9qZWN0aXZlIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2ludCBvbiB0aGUgaHlwZXJw bGFuZQorICAgICAgICAgc3Bhbm5lZCBieSB0aGUgcG9pbnQgY29uZmlndXJhdGlvbi4KK0BAIC0y NzgsNyArMjc4LDcgQEAgY2RlZiBjbGFzcyBQb2ludChTYWdlT2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHR1cGxlKHNlbGYuX3JlZHVjZWRfYWZmaW5lKSsoMSwpCisgCist ICAgIGNwZGVmIHJlZHVjZWRfYWZmaW5lX3ZlY3RvcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgcmVkdWNlZF9hZmZpbmVfdmVjdG9yKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGFmZmluZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgb24gdGhlIGh5cGVycGxh bmUKKyAgICAgICAgIHNwYW5uZWQgYnkgdGhlIHBvaW50IGNvbmZpZ3VyYXRpb24uCitAQCAtMzA1 LDcgKzMwNSw3IEBAIGNkZWYgY2xhc3MgUG9pbnQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLl9yZWR1Y2VkX2FmZmluZV92ZWN0b3IKKyAKKy0gICAgY3Bk ZWYgcmVkdWNlZF9wcm9qZWN0aXZlX3ZlY3RvcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg cmVkdWNlZF9wcm9qZWN0aXZlX3ZlY3RvcihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBhZmZpbmUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IG9uIHRoZSBoeXBlcnBs YW5lCisgICAgICAgICBzcGFubmVkIGJ5IHRoZSBwb2ludCBjb25maWd1cmF0aW9uLgorQEAgLTMz NCw3ICszMzQsNyBAQCBjZGVmIGNsYXNzIFBvaW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc2VsZi5fcmVkdWNlZF9wcm9qZWN0aXZlX3ZlY3RvcgorIAorLSAg ICBjcGRlZiBfcmVwcl8oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yZXByXyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m IHRoZSBwb2ludC4KKyAKK0BAIC0zOTYsNyArMzk2LDcgQEAgY2RlZiBjbGFzcyBQb2ludENvbmZp Z3VyYXRpb25fYmFzZShQYXJlbnQpOgorICAgICBjZGVmIGJpbnQgX2lzX2FmZmluZQorICAgICBj ZGVmIG9iamVjdCBfcmVkdWNlZF9hZmZpbmVfdmVjdG9yX3NwYWNlLCBfcmVkdWNlZF9wcm9qZWN0 aXZlX3ZlY3Rvcl9zcGFjZQorIAorLSAgICBjZGVmIF9pbml0X3BvaW50cyhzZWxmLCB0dXBsZSBw cm9qZWN0aXZlX3BvaW50cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRfcG9pbnRzKHNlbGYs IHR1cGxlIHByb2plY3RpdmVfcG9pbnRzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW50ZXJu YWwgbWV0aG9kIHRvIGRldGVybWluZSBjb29yZGluYXRlcyBvZiBwb2ludHMuCisgCitAQCAtNDY2 LDcgKzQ2Niw3IEBAIGNkZWYgY2xhc3MgUG9pbnRDb25maWd1cmF0aW9uX2Jhc2UoUGFyZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGhhc2hfYnlfaWQoPHZvaWQgKj4gc2VsZikK KyAKKy0gICAgY3BkZWYgcmVkdWNlZF9hZmZpbmVfdmVjdG9yX3NwYWNlKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiByZWR1Y2VkX2FmZmluZV92ZWN0b3Jfc3BhY2Uoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmVjdG9yIHNwYWNlIHRoYXQgY29udGFpbnMgdGhl IGFmZmluZSBwb2ludHMuCisgCitAQCAtNDg2LDcgKzQ4Niw3IEBAIGNkZWYgY2xhc3MgUG9pbnRD b25maWd1cmF0aW9uX2Jhc2UoUGFyZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IHNlbGYuX3JlZHVjZWRfYWZmaW5lX3ZlY3Rvcl9zcGFjZQorIAorLSAgICBjcGRlZiByZWR1Y2Vk X3Byb2plY3RpdmVfdmVjdG9yX3NwYWNlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1 Y2VkX3Byb2plY3RpdmVfdmVjdG9yX3NwYWNlKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHZlY3RvciBzcGFjZSB0aGF0IGlzIHNwYW5uZWQgYnkgdGhlIGhvbW9nZW5l b3VzCisgICAgICAgICBjb29yZGluYXRlcy4KK0BAIC01MDcsNyArNTA3LDcgQEAgY2RlZiBjbGFz cyBQb2ludENvbmZpZ3VyYXRpb25fYmFzZShQYXJlbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5fcmVkdWNlZF9wcm9qZWN0aXZlX3ZlY3Rvcl9zcGFjZQorIAorLSAgICBj cGRlZiBhbWJpZW50X2RpbShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYW1iaWVudF9kaW0o c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGltZW5zaW9uIG9mIHRo ZSBhbWJpZW50IHNwYWNlIG9mIHRoZSBwb2ludAorICAgICAgICAgY29uZmlndXJhdGlvbi4KK0BA IC01MjQsNyArNTI0LDcgQEAgY2RlZiBjbGFzcyBQb2ludENvbmZpZ3VyYXRpb25fYmFzZShQYXJl bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYW1iaWVudF9kaW0KKyAK Ky0gICAgY3BkZWYgZGltKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaW0oc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0dWFsIGRpbWVuc2lvbiBvZiB0aGUg cG9pbnQgY29uZmlndXJhdGlvbi4KKyAKK0BAIC01NDAsNyArNTQwLDcgQEAgY2RlZiBjbGFzcyBQ b2ludENvbmZpZ3VyYXRpb25fYmFzZShQYXJlbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gc2VsZi5fZGltCisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBiYXNlIHJpbmcsIHRoYXQgaXMsIHRoZSByaW5nIGNvbnRhaW5pbmcgdGhlCisgICAg ICAgICBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnRzLgorQEAgLTYzMiw3ICs2MzIsNyBAQCBjZGVm IGNsYXNzIFBvaW50Q29uZmlndXJhdGlvbl9iYXNlKFBhcmVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLl9wdHNbaV0KKyAKKy0gICAgY3BkZWYgbl9wb2ludHMoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIG5fcG9pbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBwb2ludHMuCisgCitAQCAtNjUzLDcgKzY1Myw3IEBA IGNkZWYgY2xhc3MgUG9pbnRDb25maWd1cmF0aW9uX2Jhc2UoUGFyZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9wdHMpCisgCistICAgIGNwZGVmIHBvaW50cyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcG9pbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIHRoZSBwb2ludHMuCisgCitAQCAtNzMxLDcgKzczMSw3 IEBAIGNkZWYgY2xhc3MgUG9pbnRDb25maWd1cmF0aW9uX2Jhc2UoUGFyZW50KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9wdHMpCisgCistICAgIGNwZGVmIHNpbXBs ZXhfdG9faW50KHNlbGYsIHNpbXBsZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzaW1wbGV4X3Rv X2ludChzZWxmLCBzaW1wbGV4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBp bnRlZ2VyIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgZ2l2ZW4gc2ltcGxleC4KKyAKK0BA IC03NzYsNyArNzc2LDcgQEAgY2RlZiBjbGFzcyBQb2ludENvbmZpZ3VyYXRpb25fYmFzZShQYXJl bnQpOgorICAgICAgICAgICAgIGsgPSBsKzEKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNw ZGVmIGludF90b19zaW1wbGV4KHNlbGYsIGludCBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW50 X3RvX3NpbXBsZXgoc2VsZiwgaW50IHMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV2ZXJz ZSB0aGUgZW51bWVyYXRpb24gb2YgcG9zc2libGUgc2ltcGxpY2VzIGluCisgICAgICAgICA6bWV0 aDpgc2ltcGxleF90b19pbnRgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9hc3Rlcm9p ZGFsX3RyaXBsZXMucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2FzdGVyb2lkYWxfdHJpcGxlcy5weXgK K2luZGV4IGZjNWNjM2ZmMDliLi5kMjQyM2M5MTJlMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dy YXBocy9hc3Rlcm9pZGFsX3RyaXBsZXMucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvYXN0ZXJv aWRhbF90cmlwbGVzLnB5eAorQEAgLTE4NCw3ICsxODQsNyBAQCBjZGVmIGxpc3QgaXNfYXN0ZXJv aWRhbF90cmlwbGVfZnJlZV9DKHVpbnQzMl90IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaG9ydF9kaWdyYXBoIHNkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QqKiBjb25uZWN0ZWRfc3RydWN0dXJlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHdhaXRpbmdfbGlzdCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdHNldF90IHNlZW4pIG5vZXhj ZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0c2V0X3Qgc2Vl bik6CisgICAgICIiIgorICAgICBJTlBVVDoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFw aHMvYmFzZS9ib29zdF9ncmFwaC5weXggYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9ib29zdF9ncmFw aC5weXgKK2luZGV4IDg4NTZkYTVhMTY1Li5iNDQ3NGE5NmJkNiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2dyYXBocy9iYXNlL2Jvb3N0X2dyYXBoLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jh c2UvYm9vc3RfZ3JhcGgucHl4CitAQCAtNTUsNyArNTUsNyBAQCBmcm9tIGxpYmNwcC5zZXQgY2lt cG9ydCBzZXQgYXMgY3NldAorIGZyb20gbGliY3BwLnBhaXIgY2ltcG9ydCBwYWlyCisgCisgCist Y2RlZiBib29zdF9ncmFwaF9mcm9tX3NhZ2VfZ3JhcGgoQm9vc3RHZW5HcmFwaCAqZywgZ19zYWdl LCB2ZXJ0ZXhfdG9faW50LCByZXZlcnNlPUZhbHNlKSBub2V4Y2VwdDoKKytjZGVmIGJvb3N0X2dy YXBoX2Zyb21fc2FnZV9ncmFwaChCb29zdEdlbkdyYXBoICpnLCBnX3NhZ2UsIHZlcnRleF90b19p bnQsIHJldmVyc2U9RmFsc2UpOgorICAgICByIiIiCisgICAgIEluaXRpYWxpemUgdGhlIEJvb3N0 IGdyYXBoIGBgZ2BgIHRvIGJlIGVxdWFsIHRvIGBgZ19zYWdlYGAuCisgCitAQCAtOTgsNyArOTgs NyBAQCBjZGVmIGJvb3N0X3dlaWdodGVkX2dyYXBoX2Zyb21fc2FnZV9ncmFwaChCb29zdFdlaWdo dGVkR3JhcGggKmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z19zYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRl eF90b19pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vp Z2h0X2Z1bmN0aW9uPU5vbmUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV2ZXJzZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV2ZXJzZT1GYWxzZSk6CisgICAgIHIiIiIKKyAgICAgSW5pdGlh bGl6ZSB0aGUgQm9vc3Qgd2VpZ2h0ZWQgZ3JhcGggYGBnYGAgdG8gYmUgZXF1YWwgdG8gYGBnX3Nh Z2VgYC4KKyAKK0BAIC0xNjksNyArMTY5LDcgQEAgY2RlZiBib29zdF93ZWlnaHRlZF9ncmFwaF9m cm9tX3NhZ2VfZ3JhcGgoQm9vc3RXZWlnaHRlZEdyYXBoICpnLAorICAgICAgICAgICAgICAgICBn LmFkZF9lZGdlKHZlcnRleF90b19pbnRbdV0sIHZlcnRleF90b19pbnRbdl0sIDEpCisgCisgCist Y2RlZiBib29zdF9lZGdlX2Nvbm5lY3Rpdml0eShCb29zdFZlY0dlbkdyYXBoICpnKSBub2V4Y2Vw dDoKKytjZGVmIGJvb3N0X2VkZ2VfY29ubmVjdGl2aXR5KEJvb3N0VmVjR2VuR3JhcGggKmcpOgor ICAgICByIiIiCisgICAgIENvbXB1dGUgdGhlIGVkZ2UgY29ubmVjdGl2aXR5IG9mIHRoZSBpbnB1 dCBCb29zdCBncmFwaC4KKyAKK0BAIC0xODksNyArMTg5LDcgQEAgY2RlZiBib29zdF9lZGdlX2Nv bm5lY3Rpdml0eShCb29zdFZlY0dlbkdyYXBoICpnKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIChy ZXN1bHQuZWMsIGVkZ2VzKQorIAorIAorLWNwZGVmIGVkZ2VfY29ubmVjdGl2aXR5KGcpIG5vZXhj ZXB0OgorK2NwZGVmIGVkZ2VfY29ubmVjdGl2aXR5KGcpOgorICAgICByIiIiCisgICAgIENvbXB1 dGUgdGhlIGVkZ2UgY29ubmVjdGl2aXR5IG9mIHRoZSBpbnB1dCBncmFwaCwgdXNpbmcgQm9vc3Qu CisgCitAQCAtMjQ0LDcgKzI0NCw3IEBAIGNwZGVmIGVkZ2VfY29ubmVjdGl2aXR5KGcpIG5vZXhj ZXB0OgorICAgICByZXR1cm4gKGVjLCBbKGludF90b192ZXJ0ZXhbdV0sIGludF90b192ZXJ0ZXhb dl0pIGZvciB1LCB2IGluIGVkZ2VzXSkKKyAKKyAKKy1jZGVmIGJvb3N0X2NsdXN0ZXJpbmdfY29l ZmYoQm9vc3RHZW5HcmFwaCAqZywgdmVydGljZXMpIG5vZXhjZXB0OgorK2NkZWYgYm9vc3RfY2x1 c3RlcmluZ19jb2VmZihCb29zdEdlbkdyYXBoICpnLCB2ZXJ0aWNlcyk6CisgICAgIHIiIiIKKyAg ICAgQ29tcHV0ZSB0aGUgY2x1c3RlcmluZyBjb2VmZmljaWVudCBvZiBhbGwgdmVydGljZXMgaW4g dGhlIGxpc3QgcHJvdmlkZWQuCisgCitAQCAtMjc2LDcgKzI3Niw3IEBAIGNkZWYgYm9vc3RfY2x1 c3RlcmluZ19jb2VmZihCb29zdEdlbkdyYXBoICpnLCB2ZXJ0aWNlcykgbm9leGNlcHQ6CisgICAg ICAgICByZXR1cm4gKChzdW0oY2x1c3Rfb2Zfdi5pdGVydmFsdWVzKCkpIC8gbGVuKGNsdXN0X29m X3YpKSwgY2x1c3Rfb2ZfdikKKyAKKyAKKy1jcGRlZiBjbHVzdGVyaW5nX2NvZWZmKGcsIHZlcnRp Y2VzPU5vbmUpIG5vZXhjZXB0OgorK2NwZGVmIGNsdXN0ZXJpbmdfY29lZmYoZywgdmVydGljZXM9 Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0ZSB0aGUgY2x1c3RlcmluZyBjb2VmZmljaWVu dCBvZiB0aGUgaW5wdXQgZ3JhcGgsIHVzaW5nIEJvb3N0LgorIAorQEAgLTM0Myw3ICszNDMsNyBA QCBjcGRlZiBjbHVzdGVyaW5nX2NvZWZmKGcsIHZlcnRpY2VzPU5vbmUpIG5vZXhjZXB0OgorIAor IAorIEBjeXRob24uYmluZGluZyhUcnVlKQorLWNwZGVmIGRvbWluYXRvcl90cmVlKGcsIHJvb3Qs IHJldHVybl9kaWN0PUZhbHNlLCByZXZlcnNlPUZhbHNlKSBub2V4Y2VwdDoKKytjcGRlZiBkb21p bmF0b3JfdHJlZShnLCByb290LCByZXR1cm5fZGljdD1GYWxzZSwgcmV2ZXJzZT1GYWxzZSk6Cisg ICAgIHIiIiIKKyAgICAgVXNlIEJvb3N0IHRvIGNvbXB1dGUgdGhlIGRvbWluYXRvciB0cmVlIG9m IGBgZ2BgLCByb290ZWQgYXQgYGByb290YGAuCisgCitAQCAtNTAwLDcgKzUwMCw3IEBAIGNwZGVm IGRvbWluYXRvcl90cmVlKGcsIHJvb3QsIHJldHVybl9kaWN0PUZhbHNlLCByZXZlcnNlPUZhbHNl KSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gR3JhcGgoZWRnZXMpCisgCisgCistY3Bk ZWYgYmFuZHdpZHRoX2hldXJpc3RpY3MoZywgYWxnb3JpdGhtPSdjdXRoaWxsX21ja2VlJykgbm9l eGNlcHQ6CisrY3BkZWYgYmFuZHdpZHRoX2hldXJpc3RpY3MoZywgYWxnb3JpdGhtPSdjdXRoaWxs X21ja2VlJyk6CisgICAgIHIiIiIKKyAgICAgVXNlIEJvb3N0IGhldXJpc3RpY3MgdG8gYXBwcm94 aW1hdGUgdGhlIGJhbmR3aWR0aCBvZiB0aGUgaW5wdXQgZ3JhcGguCisgCitAQCAtNjIxLDcgKzYy MSw3IEBAIGNwZGVmIGJhbmR3aWR0aF9oZXVyaXN0aWNzKGcsIGFsZ29yaXRobT0nY3V0aGlsbF9t Y2tlZScpIG5vZXhjZXB0OgorIAorIGNwZGVmIG1pbl9zcGFubmluZ190cmVlKGcsCisgICAgICAg ICAgICAgICAgICAgICAgICAgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsCistICAgICAgICAgICAgICAg ICAgICAgICAgYWxnb3JpdGhtPSdLcnVza2FsJykgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAg ICAgICAgICAgYWxnb3JpdGhtPSdLcnVza2FsJyk6CisgICAgIHIiIiIKKyAgICAgVXNlIEJvb3N0 IHRvIGNvbXB1dGUgdGhlIG1pbmltdW0gc3Bhbm5pbmcgdHJlZSBvZiB0aGUgaW5wdXQgZ3JhcGgu CisgCitAQCAtNzQ2LDcgKzc0Niw3IEBAIGNwZGVmIG1pbl9zcGFubmluZ190cmVlKGcsCisgICAg IHJldHVybiBbKHUsIHYsIGcuZWRnZV9sYWJlbCh1LCB2KSkgZm9yIHUsIHYgaW4gZWRnZXNdCisg CisgCistY3BkZWYgYmxvY2tzX2FuZF9jdXRfdmVydGljZXMoZykgbm9leGNlcHQ6CisrY3BkZWYg YmxvY2tzX2FuZF9jdXRfdmVydGljZXMoZyk6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0ZSB0aGUg YmxvY2tzIGFuZCBjdXQgdmVydGljZXMgb2YgdGhlIGdyYXBoLgorIAorQEAgLTg0MSw3ICs4NDEs NyBAQCBjcGRlZiBibG9ja3NfYW5kX2N1dF92ZXJ0aWNlcyhnKSBub2V4Y2VwdDoKKyAgICAgcmV0 dXJuIChyZXN1bHRfYmxvY2tzLCBsaXN0KHJlc3VsdF9jdXQpKQorIAorIAorLWNwZGVmIHNob3J0 ZXN0X3BhdGhzKGcsIHN0YXJ0LCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgYWxnb3JpdGhtPU5vbmUp IG5vZXhjZXB0OgorK2NwZGVmIHNob3J0ZXN0X3BhdGhzKGcsIHN0YXJ0LCB3ZWlnaHRfZnVuY3Rp b249Tm9uZSwgYWxnb3JpdGhtPU5vbmUpOgorICAgICByIiIiCisgICAgIENvbXB1dGUgdGhlIHNo b3J0ZXN0IHBhdGhzIGZyb20gYGBzdGFydGBgIHRvIGFsbCBvdGhlciB2ZXJ0aWNlcy4KKyAKK0BA IC0xMDM5LDcgKzEwMzksNyBAQCBjcGRlZiBzaG9ydGVzdF9wYXRocyhnLCBzdGFydCwgd2VpZ2h0 X2Z1bmN0aW9uPU5vbmUsIGFsZ29yaXRobT1Ob25lKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIChk aXN0LCBwcmVkKQorIAorIAorLWNkZWYgZ2V0X3ByZWRlY2Vzc29ycyhCb29zdFdlaWdodGVkR3Jh cGggZywgcmVzdWx0LCBpbnRfdG9fdiwgZGlyZWN0ZWQsIHdlaWdodF90eXBlKSBub2V4Y2VwdDoK KytjZGVmIGdldF9wcmVkZWNlc3NvcnMoQm9vc3RXZWlnaHRlZEdyYXBoIGcsIHJlc3VsdCwgaW50 X3RvX3YsIGRpcmVjdGVkLCB3ZWlnaHRfdHlwZSk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRo ZSBwcmVkZWNlc3NvciBtYXRyaXggZnJvbSB0aGUgZGlzdGFuY2UgbWF0cml4IG9mIHRoZSBncmFw aC4KKyAKK0BAIC0xMDk2LDcgKzEwOTYsNyBAQCBjZGVmIGdldF9wcmVkZWNlc3NvcnMoQm9vc3RX ZWlnaHRlZEdyYXBoIGcsIHJlc3VsdCwgaW50X3RvX3YsIGRpcmVjdGVkLCB3ZWlnaHRfdAorICAg ICByZXR1cm4gcHJlZAorIAorIAorLWNwZGVmIGpvaG5zb25fc2hvcnRlc3RfcGF0aHMoZywgd2Vp Z2h0X2Z1bmN0aW9uPU5vbmUsIGRpc3RhbmNlcz1UcnVlLCBwcmVkZWNlc3NvcnM9RmFsc2UpIG5v ZXhjZXB0OgorK2NwZGVmIGpvaG5zb25fc2hvcnRlc3RfcGF0aHMoZywgd2VpZ2h0X2Z1bmN0aW9u PU5vbmUsIGRpc3RhbmNlcz1UcnVlLCBwcmVkZWNlc3NvcnM9RmFsc2UpOgorICAgICByIiIiCisg ICAgIFVzZSBKb2huc29uIGFsZ29yaXRobSB0byBzb2x2ZSB0aGUgYWxsLXBhaXJzLXNob3J0ZXN0 LXBhdGhzLgorIAorQEAgLTEyNTEsNyArMTI1MSw3IEBAIGNwZGVmIGpvaG5zb25fc2hvcnRlc3Rf cGF0aHMoZywgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGRpc3RhbmNlcz1UcnVlLCBwcmVkZWNlc3Nv CisgICAgICAgICByZXR1cm4gcHJlZAorIAorIAorLWNwZGVmIGZsb3lkX3dhcnNoYWxsX3Nob3J0 ZXN0X3BhdGhzKGcsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBkaXN0YW5jZXM9VHJ1ZSwgcHJlZGVj ZXNzb3JzPUZhbHNlKSBub2V4Y2VwdDoKKytjcGRlZiBmbG95ZF93YXJzaGFsbF9zaG9ydGVzdF9w YXRocyhnLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgZGlzdGFuY2VzPVRydWUsIHByZWRlY2Vzc29y cz1GYWxzZSk6CisgICAgIHIiIiIKKyAgICAgVXNlIEZsb3lkLVdhcnNoYWxsIGFsZ29yaXRobSB0 byBzb2x2ZSB0aGUgYWxsLXBhaXJzLXNob3J0ZXN0LXBhdGhzLgorIAorQEAgLTE0MDcsNyArMTQw Nyw3IEBAIGNwZGVmIGZsb3lkX3dhcnNoYWxsX3Nob3J0ZXN0X3BhdGhzKGcsIHdlaWdodF9mdW5j dGlvbj1Ob25lLCBkaXN0YW5jZXM9VHJ1ZSwgcHJlCisgICAgICAgICByZXR1cm4gcHJlZAorIAor IAorLWNwZGVmIGpvaG5zb25fY2xvc2VuZXNzX2NlbnRyYWxpdHkoZywgd2VpZ2h0X2Z1bmN0aW9u PU5vbmUpIG5vZXhjZXB0OgorK2NwZGVmIGpvaG5zb25fY2xvc2VuZXNzX2NlbnRyYWxpdHkoZywg d2VpZ2h0X2Z1bmN0aW9uPU5vbmUpOgorICAgICByIiIiCisgICAgIFVzZSBKb2huc29uIGFsZ29y aXRobSB0byBjb21wdXRlIHRoZSBjbG9zZW5lc3MgY2VudHJhbGl0eSBvZiBhbGwgdmVydGljZXMu CisgCitAQCAtMTUxMiw3ICsxNTEyLDcgQEAgY3BkZWYgam9obnNvbl9jbG9zZW5lc3NfY2VudHJh bGl0eShnLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSkgbm9leGNlcHQ6CisgICAgIHJldHVybiB7djog Y2xvc2VuZXNzW2ldIGZvciBpLCB2IGluIGVudW1lcmF0ZShpbnRfdG9fdikgaWYgY2xvc2VuZXNz W2ldICE9IHN5cy5mbG9hdF9pbmZvLm1heH0KKyAKKyAKKy1jcGRlZiBtaW5fY3ljbGVfYmFzaXMo Z19zYWdlLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgYnlfd2VpZ2h0PUZhbHNlKSBub2V4Y2VwdDoK KytjcGRlZiBtaW5fY3ljbGVfYmFzaXMoZ19zYWdlLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgYnlf d2VpZ2h0PUZhbHNlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gYSBtaW5pbXVtIHdlaWdodCBj eWNsZSBiYXNpcyBvZiB0aGUgaW5wdXQgZ3JhcGggYGBnX3NhZ2VgYC4KKyAKK0BAIC0xNjMxLDcg KzE2MzEsNyBAQCBjcGRlZiBtaW5fY3ljbGVfYmFzaXMoZ19zYWdlLCB3ZWlnaHRfZnVuY3Rpb249 Tm9uZSwgYnlfd2VpZ2h0PUZhbHNlKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGN5Y2xlX2Jhc2lz CisgCisgCistY3BkZWYgZWNjZW50cmljaXR5X0RIVihnLCB2ZXJ0ZXhfbGlzdD1Ob25lLCB3ZWln aHRfZnVuY3Rpb249Tm9uZSwgY2hlY2tfd2VpZ2h0PVRydWUpIG5vZXhjZXB0OgorK2NwZGVmIGVj Y2VudHJpY2l0eV9ESFYoZywgdmVydGV4X2xpc3Q9Tm9uZSwgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUs IGNoZWNrX3dlaWdodD1UcnVlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHZlY3RvciBv ZiBlY2NlbnRyaWNpdGllcyB1c2luZyB0aGUgYWxnb3JpdGhtIG9mIFtEcmFnYW4yMDE4XV8uCisg CitAQCAtMTgxOSw3ICsxODE5LDcgQEAgY3BkZWYgZWNjZW50cmljaXR5X0RIVihnLCB2ZXJ0ZXhf bGlzdD1Ob25lLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgY2hlY2tfd2VpZ2h0PVQKKyAgICAgcmV0 dXJuIGVjY2VudHJpY2l0eQorIAorIAorLWNwZGVmIHJhZGl1c19ESFYoZywgd2VpZ2h0X2Z1bmN0 aW9uPU5vbmUsIGNoZWNrX3dlaWdodD1UcnVlKSBub2V4Y2VwdDoKKytjcGRlZiByYWRpdXNfREhW KGcsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBjaGVja193ZWlnaHQ9VHJ1ZSk6CisgICAgIHIiIiIK KyAgICAgUmV0dXJuIHRoZSByYWRpdXMgb2Ygd2VpZ2h0ZWQgZ3JhcGggYGdgLgorIAorQEAgLTE5 NTYsNyArMTk1Niw3IEBAIGNwZGVmIHJhZGl1c19ESFYoZywgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUs IGNoZWNrX3dlaWdodD1UcnVlKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIFVCCisgCisgCistY3Bk ZWYgZGlhbWV0ZXJfREhWKGcsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBjaGVja193ZWlnaHQ9VHJ1 ZSkgbm9leGNlcHQ6CisrY3BkZWYgZGlhbWV0ZXJfREhWKGcsIHdlaWdodF9mdW5jdGlvbj1Ob25l LCBjaGVja193ZWlnaHQ9VHJ1ZSk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBkaWFtZXRl ciBvZiB3ZWlnaHRlZCBncmFwaCBgZ2AuCisgCitAQCAtMjEyOSw3ICsyMTI5LDcgQEAgY3BkZWYg ZGlhbWV0ZXJfREhWKGcsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBjaGVja193ZWlnaHQ9VHJ1ZSkg bm9leGNlcHQ6CisgY2RlZiB0dXBsZSBkaWFtZXRlcl9sb3dlcl9ib3VuZF8yRHN3ZWVwKEJvb3N0 VmVjV2VpZ2h0ZWREaUdyYXBoVSBnX2Jvb3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCb29zdFZlY1dlaWdodGVkRGlHcmFwaFUgcmV2X2dfYm9vc3QsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZfaW5kZXggc291cmNlLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgYWxnb3JpdGhtKSBub2V4 Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyIGFsZ29y aXRobSk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIGEgbG93ZXIgYm91bmQgb24gdGhlIGRpYW1l dGVyIG9mIGBHYC4KKyAKK0BAIC0yNDkwLDcgKzI0OTAsNyBAQCBjZGVmIGRvdWJsZSBkaWFtZXRl cl9EaUZVQihCb29zdFZlY1dlaWdodGVkRGlHcmFwaFUgZ19ib29zdCwKKyAgICAgcmV0dXJuIExC CisgCisgY3BkZWYgZGlhbWV0ZXIoRywgYWxnb3JpdGhtPU5vbmUsIHNvdXJjZT1Ob25lLAorLSAg ICAgICAgICAgICAgIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBjaGVja193ZWlnaHQ9VHJ1ZSkgbm9l eGNlcHQ6CisrICAgICAgICAgICAgICAgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGNoZWNrX3dlaWdo dD1UcnVlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGRpYW1ldGVyIG9mIGBHYC4KKyAK K0BAIC0yNjI2LDcgKzI2MjYsNyBAQCBjcGRlZiBkaWFtZXRlcihHLCBhbGdvcml0aG09Tm9uZSwg c291cmNlPU5vbmUsCisgICAgICAgICByZXR1cm4gTEIKKyAKKyBjcGRlZiBzaG9ydGVzdF9wYXRo c19mcm9tX3ZlcnRpY2VzKGcsIHZlcnRleF9saXN0PU5vbmUsIG9yZGVyPU5vbmUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgYWxnb3Jp dGhtPU5vbmUpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg d2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGFsZ29yaXRobT1Ob25lKToKKyAgICAgciIiIgorICAgICBD b21wdXRlIHRoZSBzaG9ydGVzdCBwYXRocyB0byBhbGwgdmVydGljZXMgZnJvbSBlYWNoIHZlcnRl eCBpbgorICAgICBgYHZlcnRleF9saXN0YGAuCitAQCAtMjg2OSw3ICsyODY5LDcgQEAgY3BkZWYg c2hvcnRlc3RfcGF0aHNfZnJvbV92ZXJ0aWNlcyhnLCB2ZXJ0ZXhfbGlzdD1Ob25lLCBvcmRlcj1O b25lLAorIAorICAgICByZXR1cm4gZGlzdGFuY2VzLCBwcmVkZWNlc3NvcnMKKyAKKy1jcGRlZiB3 aWVuZXJfaW5kZXgoZywgYWxnb3JpdGhtPU5vbmUsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBjaGVj a193ZWlnaHQ9VHJ1ZSkgbm9leGNlcHQ6CisrY3BkZWYgd2llbmVyX2luZGV4KGcsIGFsZ29yaXRo bT1Ob25lLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgY2hlY2tfd2VpZ2h0PVRydWUpOgorICAgICBy IiIiCisgICAgIFJldHVybiB0aGUgV2llbmVyIGluZGV4IG9mIHRoZSBncmFwaC4KKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9jX2dyYXBoLnB4ZCBiL3NyYy9zYWdlL2dyYXBo cy9iYXNlL2NfZ3JhcGgucHhkCitpbmRleCBiMjljYzNjOTUyNy4uOWNkNjcwY2NiYzUgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9jX2dyYXBoLnB4ZAorKysrIGIvc3JjL3NhZ2Uv Z3JhcGhzL2Jhc2UvY19ncmFwaC5weGQKK0BAIC0yMSwxMyArMjEsMTMgQEAgY2RlZiBjbGFzcyBD R3JhcGg6CisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCisgICAg IGNwZGVmIGJpbnQgaGFzX3ZlcnRleChzZWxmLCBpbnQgbikgZXhjZXB0IC0xCistICAgIGNwZGVm IGNoZWNrX3ZlcnRleChzZWxmLCBpbnQgbikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGVsX3ZlcnRl eChzZWxmLCBpbnQgdikgbm9leGNlcHQKKysgICAgY3BkZWYgY2hlY2tfdmVydGV4KHNlbGYsIGlu dCBuKQorKyAgICBjcGRlZiBkZWxfdmVydGV4KHNlbGYsIGludCB2KQorICAgICBjcGRlZiBpbnQg Y3VycmVudF9hbGxvY2F0aW9uKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3QgdmVydHMo c2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgYWRkX3ZlcnRpY2VzKHNlbGYsIHZlcnRzKSBub2V4 Y2VwdAorKyAgICBjcGRlZiBsaXN0IHZlcnRzKHNlbGYpCisrICAgIGNwZGVmIGFkZF92ZXJ0aWNl cyhzZWxmLCB2ZXJ0cykKKyAgICAgY2RlZiBpbnQgZGVsX3ZlcnRleF91bnNhZmUoc2VsZiwgaW50 KSBleGNlcHQgLTEKKy0gICAgY3BkZWYgcmVhbGxvYyhzZWxmLCBpbnQpIG5vZXhjZXB0CisrICAg IGNwZGVmIHJlYWxsb2Moc2VsZiwgaW50KQorICAgICBjZGVmIGludCBhZGRfdmVydGV4X3Vuc2Fm ZShzZWxmLCBpbnQpIGV4Y2VwdCAtMQorIAorICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworQEAgLTQyLDkgKzQyLDkgQEAgY2RlZiBjbGFzcyBDR3JhcGg6CisgCisgICAg IGNkZWYgaW50IGRlbF9hcmNfdW5zYWZlKHNlbGYsIGludCwgaW50KSBleGNlcHQgLTEKKyAKKy0g ICAgY3BkZWYgYWRkX2FyYyhzZWxmLCBpbnQgdSwgaW50IHYpIG5vZXhjZXB0CisrICAgIGNwZGVm IGFkZF9hcmMoc2VsZiwgaW50IHUsIGludCB2KQorICAgICBjcGRlZiBiaW50IGhhc19hcmMoc2Vs ZiwgaW50IHUsIGludCB2KSBleGNlcHQgLTEKKy0gICAgY3BkZWYgZGVsX2FsbF9hcmNzKHNlbGYs IGludCB1LCBpbnQgdikgbm9leGNlcHQKKysgICAgY3BkZWYgZGVsX2FsbF9hcmNzKHNlbGYsIGlu dCB1LCBpbnQgdikKKyAKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyAgICAgIyBMYWJlbGVkIEVkZ2UgRnVuY3Rpb25zCitAQCAtNTcsOCArNTcsOCBAQCBjZGVmIGNs YXNzIENHcmFwaDoKKyAgICAgY2RlZiBpbnQgYWxsX2FyY3NfdW5zYWZlKHNlbGYsIGludCwgaW50 LCBpbnQgKiwgaW50KSBleGNlcHQgLTEKKyAKKyAgICAgY3BkZWYgaW50IGFyY19sYWJlbChzZWxm LCBpbnQgdSwgaW50IHYpIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3QgYWxsX2FyY3Moc2VsZiwg aW50IHUsIGludCB2KSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZWxfYXJjX2xhYmVsKHNlbGYsIGlu dCB1LCBpbnQgdiwgaW50IGwpIG5vZXhjZXB0CisrICAgIGNwZGVmIGxpc3QgYWxsX2FyY3Moc2Vs ZiwgaW50IHUsIGludCB2KQorKyAgICBjcGRlZiBkZWxfYXJjX2xhYmVsKHNlbGYsIGludCB1LCBp bnQgdiwgaW50IGwpCisgICAgIGNwZGVmIGJpbnQgaGFzX2FyY19sYWJlbChzZWxmLCBpbnQgdSwg aW50IHYsIGludCBsKSBub2V4Y2VwdAorIAorICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworQEAgLTc2LDE2ICs3NiwxNiBAQCBjZGVmIGNsYXNzIENHcmFwaDoKKyAKKyAg ICAgY2RlZiBpbnQgbmV4dF9vdXRfbmVpZ2hib3JfdW5zYWZlKHNlbGYsIGludCwgaW50LCBpbnQq KSBleGNlcHQgLTIKKyAgICAgY2RlZiBpbnQgbmV4dF9pbl9uZWlnaGJvcl91bnNhZmUoc2VsZiwg aW50LCBpbnQsIGludCopIGV4Y2VwdCAtMgorLSAgICBjZGVmIGFkamFjZW5jeV9zZXF1ZW5jZV9v dXQoc2VsZiwgaW50IG4sIGludCAqdmVydGljZXMsIGludCB2LCBpbnQqIHNlcXVlbmNlKSBub2V4 Y2VwdAorLSAgICBjZGVmIGFkamFjZW5jeV9zZXF1ZW5jZV9pbihzZWxmLCBpbnQgbiwgaW50ICp2 ZXJ0aWNlcywgaW50IHYsIGludCogc2VxdWVuY2UpIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3Qg aW5fbmVpZ2hib3JzKHNlbGYsIGludCB2KSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaXN0IG91dF9u ZWlnaGJvcnMoc2VsZiwgaW50IHUpIG5vZXhjZXB0CisrICAgIGNkZWYgYWRqYWNlbmN5X3NlcXVl bmNlX291dChzZWxmLCBpbnQgbiwgaW50ICp2ZXJ0aWNlcywgaW50IHYsIGludCogc2VxdWVuY2Up CisrICAgIGNkZWYgYWRqYWNlbmN5X3NlcXVlbmNlX2luKHNlbGYsIGludCBuLCBpbnQgKnZlcnRp Y2VzLCBpbnQgdiwgaW50KiBzZXF1ZW5jZSkKKysgICAgY3BkZWYgbGlzdCBpbl9uZWlnaGJvcnMo c2VsZiwgaW50IHYpCisrICAgIGNwZGVmIGxpc3Qgb3V0X25laWdoYm9ycyhzZWxmLCBpbnQgdSkK KyAKKyAKKyBjZGVmIGNsYXNzIENHcmFwaEJhY2tlbmQoR2VuZXJpY0dyYXBoQmFja2VuZCk6Cisg ICAgIGNkZWYgaW50IGdldF92ZXJ0ZXgoc2VsZiwgdSkgZXhjZXB0ID8gLTIKKyAgICAgY2RlZiBp bnQgZ2V0X3ZlcnRleF9jaGVja2VkKHNlbGYsIHUpIGV4Y2VwdCA/IC0yCistICAgIGNkZWYgdmVy dGV4X2xhYmVsKHNlbGYsIGludCB1X2ludCkgbm9leGNlcHQKKysgICAgY2RlZiB2ZXJ0ZXhfbGFi ZWwoc2VsZiwgaW50IHVfaW50KQorICAgICBjZGVmIGludCBjaGVja19sYWJlbGxlZF92ZXJ0ZXgo c2VsZiwgdSwgYmludCByZXZlcnNlKSBleGNlcHQgPyAtMQorICAgICAjY2RlZiBDR3JhcGggX2Nn ICAjIGEgY2hpbGQgY2xhc3Mgc2hvdWxkIGRlY2xhcmUgdGhpcyBhY2NvcmRpbmdseQorICAgICBj ZGVmIGJpbnQgX2RpcmVjdGVkCitAQCAtOTQsMTIgKzk0LDEyIEBAIGNkZWYgY2xhc3MgQ0dyYXBo QmFja2VuZChHZW5lcmljR3JhcGhCYWNrZW5kKToKKyAgICAgY2RlZiBkaWN0IGVkZ2VfbGFiZWxz CisgICAgIGNkZWYgYmludCBfbG9vcHMKKyAgICAgY2RlZiBiaW50IF9tdWx0aXBsZV9lZGdlcwor LSAgICBjZGVmIENHcmFwaCBjZyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBhZGRfZWRnZShz ZWxmLCBvYmplY3QgdSwgb2JqZWN0IHYsIG9iamVjdCBsLCBiaW50IGRpcmVjdGVkKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBkZWxfZWRnZShzZWxmLCBvYmplY3QgdSwgb2JqZWN0IHYsIG9iamVjdCBs LCBiaW50IGRpcmVjdGVkKSBub2V4Y2VwdAorKyAgICBjZGVmIENHcmFwaCBjZyhzZWxmKQorKyAg ICBjcGRlZiBhZGRfZWRnZShzZWxmLCBvYmplY3QgdSwgb2JqZWN0IHYsIG9iamVjdCBsLCBiaW50 IGRpcmVjdGVkKQorKyAgICBjcGRlZiBkZWxfZWRnZShzZWxmLCBvYmplY3QgdSwgb2JqZWN0IHYs IG9iamVjdCBsLCBiaW50IGRpcmVjdGVkKQorICAgICBjZGVmIGJpbnQgX2hhc19sYWJlbGVkX2Vk Z2VfdW5zYWZlKHNlbGYsIGludCwgaW50LCBvYmplY3QpIGV4Y2VwdCAtMQorICAgICBjZGVmIGJp bnQgX2RlbGV0ZV9lZGdlX2JlZm9yZV9hZGRpbmcoc2VsZikgbm9leGNlcHQKKyAgICAgY2RlZiBp bnQgbmV3X2VkZ2VfbGFiZWwoc2VsZiwgb2JqZWN0IGwpIGV4Y2VwdCAtMQorICAgICBjZGVmIGlu dCBmcmVlX2VkZ2VfbGFiZWwoc2VsZiwgaW50IGxfaW50KSBleGNlcHQgLTEKKyAgICAgY2RlZiBp bnQgX3VzZV9lZGdlX2l0ZXJhdG9yX29uX3N1YmdyYXBoKHNlbGYsIENHcmFwaEJhY2tlbmQgb3Ro ZXIsIG9iamVjdCB2ZXJ0aWNlcywgY29uc3QgaW50IG1vZHVzKSBleGNlcHQgLTEKKy0gICAgY2Rl ZiBsaXN0IF9hbGxfZWRnZV9sYWJlbHMoc2VsZiwgaW50IHUsIGludCB2LCB1aW50MzJfdCogZWRn ZT0qKSBub2V4Y2VwdAorKyAgICBjZGVmIGxpc3QgX2FsbF9lZGdlX2xhYmVscyhzZWxmLCBpbnQg dSwgaW50IHYsIHVpbnQzMl90KiBlZGdlPSopCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhz L2Jhc2UvY19ncmFwaC5weXggYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9jX2dyYXBoLnB5eAoraW5k ZXggOWI5ZGFjNjkxN2IuLmM4ZDY4YzQ4MzdmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhz L2Jhc2UvY19ncmFwaC5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL2NfZ3JhcGgucHl4 CitAQCAtMTI2LDcgKzEyNiw3IEBAIGNkZWYgY2xhc3MgQ0dyYXBoOgorICAgICAgICAgICAgICAg ICA8bXBfYml0Y250X3Q+biA8IHNlbGYuYWN0aXZlX3ZlcnRpY2VzLnNpemUgYW5kCisgICAgICAg ICAgICAgICAgIGJpdHNldF9pbihzZWxmLmFjdGl2ZV92ZXJ0aWNlcywgbikpCisgCistICAgIGNw ZGVmIGNoZWNrX3ZlcnRleChzZWxmLCBpbnQgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNoZWNr X3ZlcnRleChzZWxmLCBpbnQgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENoZWNrIHRoYXQg YGBuYGAgaXMgYSB2ZXJ0ZXggb2YgYGBzZWxmYGAuCisgCitAQCAtMzMzLDcgKzMzMyw3IEBAIGNk ZWYgY2xhc3MgQ0dyYXBoOgorICAgICAgICAgICAgIHNlbGYucmVhbGxvYygyICogc2VsZi5hY3Rp dmVfdmVydGljZXMuc2l6ZSkKKyAgICAgICAgIHJldHVybiBzZWxmLmFkZF92ZXJ0ZXhfdW5zYWZl KGspCisgCistICAgIGNwZGVmIGFkZF92ZXJ0aWNlcyhzZWxmLCB2ZXJ0cykgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGFkZF92ZXJ0aWNlcyhzZWxmLCB2ZXJ0cyk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEFkZCB2ZXJ0aWNlcyBmcm9tIHRoZSBpdGVyYWJsZSBgYHZlcnRzYGAuCisgCitAQCAtNDMz LDcgKzQzMyw3IEBAIGNkZWYgY2xhc3MgQ0dyYXBoOgorICAgICAgICAgc2VsZi5udW1fdmVydHMg LT0gMQorICAgICAgICAgYml0c2V0X3JlbW92ZShzZWxmLmFjdGl2ZV92ZXJ0aWNlcywgdikKKyAK Ky0gICAgY3BkZWYgZGVsX3ZlcnRleChzZWxmLCBpbnQgdikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGRlbF92ZXJ0ZXgoc2VsZiwgaW50IHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWxldGUg dGhlIHZlcnRleCBgYHZgYCwgYWxvbmcgd2l0aCBhbGwgZWRnZXMgaW5jaWRlbnQgdG8gaXQuCisg CitAQCAtNTgxLDcgKzU4MSw3IEBAIGNkZWYgY2xhc3MgQ0dyYXBoOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5hY3RpdmVfdmVydGljZXMuc2l6ZQorIAorLSAgICBjcGRlZiBs aXN0IHZlcnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IHZlcnRzKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIHRoZSB2ZXJ0aWNlcyBpbiBg YHNlbGZgYC4KKyAKK0BAIC02MTQsNyArNjE0LDcgQEAgY2RlZiBjbGFzcyBDR3JhcGg6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGlzdChzZWxmLmFjdGl2ZV92ZXJ0aWNl cykKKyAKKy0gICAgY3BkZWYgcmVhbGxvYyhzZWxmLCBpbnQgdG90YWwpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiByZWFsbG9jKHNlbGYsIGludCB0b3RhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJlYWxsb2NhdGUgdGhlIG51bWJlciBvZiB2ZXJ0aWNlcyB0byB1c2UsIHdpdGhvdXQgYWN0dWFs bHkgYWRkaW5nIGFueS4KKyAKK0BAIC03MjUsNyArNzI1LDcgQEAgY2RlZiBjbGFzcyBDR3JhcGg6 CisgICAgIGNkZWYgaW50IGRlbF9hcmNfdW5zYWZlKHNlbGYsIGludCB1LCBpbnQgdikgZXhjZXB0 IC0xOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVm IGFkZF9hcmMoc2VsZiwgaW50IHUsIGludCB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX2Fy YyhzZWxmLCBpbnQgdSwgaW50IHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgYXJjIGBg KHUsIHYpYGAgdG8gdGhlIGdyYXBoLgorIAorQEAgLTgyMyw3ICs4MjMsNyBAQCBjZGVmIGNsYXNz IENHcmFwaDoKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBzZWxm Lmhhc19hcmNfdW5zYWZlKHUsIHYpID09IDEKKyAKKy0gICAgY3BkZWYgZGVsX2FsbF9hcmNzKHNl bGYsIGludCB1LCBpbnQgdikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRlbF9hbGxfYXJjcyhzZWxm LCBpbnQgdSwgaW50IHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWxldGUgYWxsIGFyY3Mg ZnJvbSBgYHVgYCB0byBgYHZgYC4KKyAKK0BAIC05MzMsNyArOTMzLDcgQEAgY2RlZiBjbGFzcyBD R3JhcGg6CisgICAgICAgICBzZWxmLmNoZWNrX3ZlcnRleCh2KQorICAgICAgICAgcmV0dXJuIHNl bGYuYXJjX2xhYmVsX3Vuc2FmZSh1LCB2KQorIAorLSAgICBjcGRlZiBsaXN0IGFsbF9hcmNzKHNl bGYsIGludCB1LCBpbnQgdikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgYWxsX2FyY3Moc2Vs ZiwgaW50IHUsIGludCB2KToKKyAgICAgICAgICIiIgorICAgICAgICAgR2l2ZXMgdGhlIGxhYmVs cyBvZiBhbGwgYXJjcyBgYCh1LCB2KWBgLiBBbiB1bmxhYmVsZWQgYXJjIGlzIGludGVycHJldGVk IGFzCisgICAgICAgICBoYXZpbmcgbGFiZWwgMC4KK0BAIC05NzMsNyArOTczLDcgQEAgY2RlZiBj bGFzcyBDR3JhcGg6CisgICAgICAgICBzaWdfZnJlZShhcmNfbGFiZWxzKQorICAgICAgICAgcmV0 dXJuIG91dHB1dAorIAorLSAgICBjcGRlZiBkZWxfYXJjX2xhYmVsKHNlbGYsIGludCB1LCBpbnQg diwgaW50IGwpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkZWxfYXJjX2xhYmVsKHNlbGYsIGludCB1 LCBpbnQgdiwgaW50IGwpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWxldGUgYW4gYXJjIGBg KHUsIHYpYGAgd2l0aCBsYWJlbCBgYGxgYC4KKyAKK0BAIC0xMTI0LDcgKzExMjQsNyBAQCBjZGVm IGNsYXNzIENHcmFwaDoKKyAgICAgY2RlZiBpbnQgbmV4dF9pbl9uZWlnaGJvcl91bnNhZmUoc2Vs ZiwgaW50IHYsIGludCB1LCBpbnQqIGwpIGV4Y2VwdCAtMjoKKyAgICAgICAgIHJhaXNlIE5vdElt cGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBjZGVmIGFkamFjZW5jeV9zZXF1ZW5jZV9vdXQoc2Vs ZiwgaW50IG4sIGludCAqdmVydGljZXMsIGludCB2LCBpbnQqIHNlcXVlbmNlKSBub2V4Y2VwdDoK KysgICAgY2RlZiBhZGphY2VuY3lfc2VxdWVuY2Vfb3V0KHNlbGYsIGludCBuLCBpbnQgKnZlcnRp Y2VzLCBpbnQgdiwgaW50KiBzZXF1ZW5jZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGFkamFjZW5jeSBzZXF1ZW5jZSBjb3JyZXNwb25kaW5nIHRvIGEgbGlzdCBvZiB2ZXJ0 aWNlcyBhbmQgYQorICAgICAgICAgdmVydGV4LgorQEAgLTExNjQsNyArMTE2NCw3IEBAIGNkZWYg Y2xhc3MgQ0dyYXBoOgorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uobik6CisgICAgICAgICAgICAg c2VxdWVuY2VbaV0gPSBzZWxmLmhhc19hcmNfdW5zYWZlKHYsIHZlcnRpY2VzW2ldKQorIAorLSAg ICBjZGVmIGFkamFjZW5jeV9zZXF1ZW5jZV9pbihzZWxmLCBpbnQgbiwgaW50ICp2ZXJ0aWNlcywg aW50IHYsIGludCogc2VxdWVuY2UpIG5vZXhjZXB0OgorKyAgICBjZGVmIGFkamFjZW5jeV9zZXF1 ZW5jZV9pbihzZWxmLCBpbnQgbiwgaW50ICp2ZXJ0aWNlcywgaW50IHYsIGludCogc2VxdWVuY2Up OgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgYWRqYWNlbmN5IHNlcXVlbmNl IGNvcnJlc3BvbmRpbmcgdG8gYSBsaXN0IG9mIHZlcnRpY2VzIGFuZCBhCisgICAgICAgICB2ZXJ0 ZXguCitAQCAtMTIwMyw3ICsxMjAzLDcgQEAgY2RlZiBjbGFzcyBDR3JhcGg6CisgICAgICAgICBm b3IgaSBpbiByYW5nZShuKToKKyAgICAgICAgICAgICBzZXF1ZW5jZVtpXSA9IHNlbGYuaGFzX2Fy Y191bnNhZmUodmVydGljZXNbaV0sIHYpCisgCistICAgIGNwZGVmIGxpc3Qgb3V0X25laWdoYm9y cyhzZWxmLCBpbnQgdSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3Qgb3V0X25laWdoYm9ycyhz ZWxmLCBpbnQgdSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBv dXQtbmVpZ2hib3JzIG9mIHRoZSB2ZXJ0ZXggYGB1YGAuCisgCitAQCAtMTI1Nyw3ICsxMjU3LDcg QEAgY2RlZiBjbGFzcyBDR3JhcGg6CisgICAgICAgICBzaWdfZnJlZShuZWlnaGJvcnMpCisgICAg ICAgICByZXR1cm4gb3V0cHV0CisgCistICAgIGNwZGVmIGxpc3QgaW5fbmVpZ2hib3JzKHNlbGYs IGludCB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBpbl9uZWlnaGJvcnMoc2VsZiwgaW50 IHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgaW4tbmVpZ2hi b3JzIG9mIHRoZSB2ZXJ0ZXggYGB2YGAuCisgCitAQCAtMTM3NSw3ICsxMzc1LDcgQEAgY2RlZiBj bGFzcyBDR3JhcGhCYWNrZW5kKEdlbmVyaWNHcmFwaEJhY2tlbmQpOgorICAgICAjIEJhc2ljIEFj Y2VzcworICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLSAgICBj ZGVmIENHcmFwaCBjZyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBDR3JhcGggY2coc2VsZik6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGF0dHJpYnV0ZSBgYF9jZ2BgIGNh c3RlZCBpbnRvIGBgQ0dyYXBoYGAuCisgICAgICAgICAiIiIKK0BAIC0xNjMxLDcgKzE2MzEsNyBA QCBjZGVmIGNsYXNzIENHcmFwaEJhY2tlbmQoR2VuZXJpY0dyYXBoQmFja2VuZCk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiAtMQorIAorLSAgICBjZGVmIHZlcnRleF9sYWJl bChzZWxmLCBpbnQgdV9pbnQpIG5vZXhjZXB0OgorKyAgICBjZGVmIHZlcnRleF9sYWJlbChzZWxm LCBpbnQgdV9pbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG9iamVjdCBy ZXByZXNlbnRlZCBieSBgYHVfaW50YGAsIG9yIGBgTm9uZWBgIGlmIHRoaXMgZG9lcyBub3QKKyAg ICAgICAgIHJlcHJlc2VudCBhIHZlcnRleC4KK0BAIC0yMzU3LDcgKzIzNTcsNyBAQCBjZGVmIGNs YXNzIENHcmFwaEJhY2tlbmQoR2VuZXJpY0dyYXBoQmFja2VuZCk6CisgICAgICAgICAgICAgICAg IGNvbnRpbnVlCisgICAgICAgICAgICAgc2VsZi5hZGRfZWRnZSh1LCB2LCBsLCBkaXJlY3RlZCkK KyAKKy0gICAgY3BkZWYgYWRkX2VkZ2Uoc2VsZiwgb2JqZWN0IHUsIG9iamVjdCB2LCBvYmplY3Qg bCwgYmludCBkaXJlY3RlZCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9lZGdlKHNlbGYsIG9i amVjdCB1LCBvYmplY3Qgdiwgb2JqZWN0IGwsIGJpbnQgZGlyZWN0ZWQpOgorICAgICAgICAgIiIi CisgICAgICAgICBBZGQgdGhlIGVkZ2UgYGAodSx2KWBgIHRvIHNlbGYuCisgCitAQCAtMjQ4OSw3 ICsyNDg5LDcgQEAgY2RlZiBjbGFzcyBDR3JhcGhCYWNrZW5kKEdlbmVyaWNHcmFwaEJhY2tlbmQp OgorICAgICAgICAgICAgICAgICBsID0gTm9uZQorICAgICAgICAgICAgIHNlbGYuZGVsX2VkZ2Uo dSwgdiwgbCwgZGlyZWN0ZWQpCisgCistICAgIGNwZGVmIGRlbF9lZGdlKHNlbGYsIG9iamVjdCB1 LCBvYmplY3Qgdiwgb2JqZWN0IGwsIGJpbnQgZGlyZWN0ZWQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBkZWxfZWRnZShzZWxmLCBvYmplY3QgdSwgb2JqZWN0IHYsIG9iamVjdCBsLCBiaW50IGRpcmVj dGVkKToKKyAgICAgICAgICIiIgorICAgICAgICAgRGVsZXRlIGVkZ2UgYGAodSwgdiwgbClgYC4K KyAKK0BAIC0yNjA3LDcgKzI2MDcsNyBAQCBjZGVmIGNsYXNzIENHcmFwaEJhY2tlbmQoR2VuZXJp Y0dyYXBoQmFja2VuZCk6CisgICAgIGNkZWYgaW50IGZyZWVfZWRnZV9sYWJlbChzZWxmLCBpbnQg bF9pbnQpIGV4Y2VwdCAtMToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQor IAorLSAgICBjZGVmIGxpc3QgX2FsbF9lZGdlX2xhYmVscyhzZWxmLCBpbnQgdSwgaW50IHYsIHVp bnQzMl90KiBlZGdlPU5VTEwpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3QgX2FsbF9lZGdlX2xh YmVscyhzZWxmLCBpbnQgdSwgaW50IHYsIHVpbnQzMl90KiBlZGdlPU5VTEwpOgorICAgICAgICAg IiIiCisgICAgICAgICBHaXZlcyB0aGUgbGFiZWxzIG9mIGFsbCBhcmNzIGZyb20gYGB1YGAgdG8g YGB2YGAuCisgCitAQCAtNDg4NSw3ICs0ODg1LDcgQEAgY2RlZiBjbGFzcyBTZWFyY2hfaXRlcmF0 b3I6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmCisgCistICAgIGNkZWYgaW5s aW5lIG5leHRfYnJlYWR0aF9maXJzdF9zZWFyY2goc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg aW5saW5lIG5leHRfYnJlYWR0aF9maXJzdF9zZWFyY2goc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIG5leHQgdmVydGV4IGluIGEgYnJlYWR0aCBmaXJzdCBzZWFyY2gg dHJhdmVyc2FsIG9mIGEgZ3JhcGguCisgCitAQCAtNDk0Nyw3ICs0OTQ3LDcgQEAgY2RlZiBjbGFz cyBTZWFyY2hfaXRlcmF0b3I6CisgICAgICAgICAgICAgcmV0dXJuIHZhbHVlX3ByZXYsIHZhbHVl CisgICAgICAgICByZXR1cm4gdmFsdWUKKyAKKy0gICAgY2RlZiBpbmxpbmUgbmV4dF9kZXB0aF9m aXJzdF9zZWFyY2goc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIG5leHRfZGVwdGhf Zmlyc3Rfc2VhcmNoKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBu ZXh0IHZlcnRleCBpbiBhIGRlcHRoIGZpcnN0IHNlYXJjaCB0cmF2ZXJzYWwgb2YgYSBncmFwaC4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9kZW5zZV9ncmFwaC5weGQgYi9z cmMvc2FnZS9ncmFwaHMvYmFzZS9kZW5zZV9ncmFwaC5weGQKK2luZGV4IDZjNDE0NTY5NGZlLi44 MjY1OTcxM2JkOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL2RlbnNlX2dyYXBo LnB4ZAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2UvZGVuc2VfZ3JhcGgucHhkCitAQCAtMjEs NSArMjEsNSBAQCBjZGVmIGludCBjb3B5X2RlbnNlX2dyYXBoKERlbnNlR3JhcGggZGVzdCwgRGVu c2VHcmFwaCBzcmMpIGV4Y2VwdCAtMQorIAorIGNkZWYgY2xhc3MgRGVuc2VHcmFwaEJhY2tlbmQo Q0dyYXBoQmFja2VuZCk6CisgICAgIGNkZWYgRGVuc2VHcmFwaCBfY2cKKy0gICAgY2RlZiBpbmxp bmUgQ0dyYXBoIGNnKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBDR3JhcGggY2co c2VsZik6CisgICAgICAgICByZXR1cm4gPENHcmFwaD4gc2VsZi5fY2cKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9ncmFwaHMvYmFzZS9kZW5zZV9ncmFwaC5weXggYi9zcmMvc2FnZS9ncmFwaHMvYmFz ZS9kZW5zZV9ncmFwaC5weXgKK2luZGV4IGRiNGEwMmE1YTNmLi5lY2E4ZGU2YWZlZCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL2RlbnNlX2dyYXBoLnB5eAorKysrIGIvc3JjL3Nh Z2UvZ3JhcGhzL2Jhc2UvZGVuc2VfZ3JhcGgucHl4CitAQCAtMTk1LDcgKzE5NSw3IEBAIGNkZWYg Y2xhc3MgRGVuc2VHcmFwaChDR3JhcGgpOgorICAgICAgICAgc2lnX2ZyZWUoc2VsZi5vdXRfZGVn cmVlcykKKyAgICAgICAgIGJpdHNldF9mcmVlKHNlbGYuYWN0aXZlX3ZlcnRpY2VzKQorIAorLSAg ICBjcGRlZiByZWFsbG9jKHNlbGYsIGludCB0b3RhbF92ZXJ0cykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHJlYWxsb2Moc2VsZiwgaW50IHRvdGFsX3ZlcnRzKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmVhbGxvY2F0ZSB0aGUgbnVtYmVyIG9mIHZlcnRpY2VzIHRvIHVzZSwgd2l0aG91dCBhY3R1 YWxseSBhZGRpbmcgYW55LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL3Nw YXJzZV9ncmFwaC5weGQgYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zcGFyc2VfZ3JhcGgucHhkCitp bmRleCAzNzk1YzhmZjBmMC4uNTQwYTg4Mjc4MDEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFw aHMvYmFzZS9zcGFyc2VfZ3JhcGgucHhkCisrKysgYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zcGFy c2VfZ3JhcGgucHhkCitAQCAtNzAsNSArNzAsNSBAQCBjZGVmIGNsYXNzIFNwYXJzZUdyYXBoQmFj a2VuZChDR3JhcGhCYWNrZW5kKToKKyAgICAgY2RlZiBpbnQgZWRnZV9sYWJlbHNfbWF4CisgICAg IGNkZWYgbGlzdCBlZGdlX2xhYmVsc19hdmFpbGFibGVfaWRzCisgICAgIGNkZWYgU3BhcnNlR3Jh cGggX2NnCistICAgIGNkZWYgaW5saW5lIENHcmFwaCBjZyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBpbmxpbmUgQ0dyYXBoIGNnKHNlbGYpOgorICAgICAgICAgcmV0dXJuIDxDR3JhcGg+IHNl bGYuX2NnCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3BhcnNlX2dyYXBoLnB5 eCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3NwYXJzZV9ncmFwaC5weXgKK2luZGV4IGU1MTI4MzJk OTU4Li44NjcyOTQwYzQwNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL3NwYXJz ZV9ncmFwaC5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3NwYXJzZV9ncmFwaC5weXgK K0BAIC0zNzAsNyArMzcwLDcgQEAgY2RlZiBjbGFzcyBTcGFyc2VHcmFwaChDR3JhcGgpOgorICAg ICAgICAgc2lnX2ZyZWUoc2VsZi5vdXRfZGVncmVlcykKKyAgICAgICAgIGJpdHNldF9mcmVlKHNl bGYuYWN0aXZlX3ZlcnRpY2VzKQorIAorLSAgICBjcGRlZiByZWFsbG9jKHNlbGYsIGludCB0b3Rh bCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlYWxsb2Moc2VsZiwgaW50IHRvdGFsKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmVhbGxvY2F0ZSB0aGUgbnVtYmVyIG9mIHZlcnRpY2VzIHRvIHVz ZSwgd2l0aG91dCBhY3R1YWxseSBhZGRpbmcgYW55LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2dyYXBocy9iYXNlL3N0YXRpY19kZW5zZV9ncmFwaC5weGQgYi9zcmMvc2FnZS9ncmFwaHMvYmFz ZS9zdGF0aWNfZGVuc2VfZ3JhcGgucHhkCitpbmRleCBkMWMyYTBhYTNmOS4uMGU1ODBhMDJiNTcg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfZGVuc2VfZ3JhcGgucHhk CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfZGVuc2VfZ3JhcGgucHhkCitAQCAt MSw0ICsxLDQgQEAKKyBmcm9tIHNhZ2UuZGF0YV9zdHJ1Y3R1cmVzLmJpbmFyeV9tYXRyaXggY2lt cG9ydCBiaW5hcnlfbWF0cml4X3QKKyBmcm9tIGxpYmMuc3RkaW50IGNpbXBvcnQgdWludDMyX3Qs IHVpbnQ2NF90CisgCistY2RlZiBkaWN0IGRlbnNlX2dyYXBoX2luaXQoYmluYXJ5X21hdHJpeF90 IG0sIGcsIHRyYW5zbGF0aW9uID0gPywgZm9yY2VfdW5kaXJlY3RlZCA9ID8pIG5vZXhjZXB0Cisr Y2RlZiBkaWN0IGRlbnNlX2dyYXBoX2luaXQoYmluYXJ5X21hdHJpeF90IG0sIGcsIHRyYW5zbGF0 aW9uID0gPywgZm9yY2VfdW5kaXJlY3RlZCA9ID8pCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3Jh cGhzL2Jhc2Uvc3RhdGljX2RlbnNlX2dyYXBoLnB5eCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0 YXRpY19kZW5zZV9ncmFwaC5weXgKK2luZGV4IGZlMzU2ZDkzOWQ2Li5iMjNlYWI2NmEzYiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19kZW5zZV9ncmFwaC5weXgKKysr KyBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19kZW5zZV9ncmFwaC5weXgKK0BAIC01NCw3 ICs1NCw3IEBAIGZyb20gaXRlcnRvb2xzIGltcG9ydCBwcm9kdWN0CisgZnJvbSBzYWdlLm1pc2Mu ZmxhdHRlbiBpbXBvcnQgZmxhdHRlbgorIAorIAorLWNkZWYgZGljdCBkZW5zZV9ncmFwaF9pbml0 KGJpbmFyeV9tYXRyaXhfdCBtLCBnLCB0cmFuc2xhdGlvbj1Ob25lLCBmb3JjZV91bmRpcmVjdGVk PUZhbHNlKSBub2V4Y2VwdDoKKytjZGVmIGRpY3QgZGVuc2VfZ3JhcGhfaW5pdChiaW5hcnlfbWF0 cml4X3QgbSwgZywgdHJhbnNsYXRpb249Tm9uZSwgZm9yY2VfdW5kaXJlY3RlZD1GYWxzZSk6Cisg ICAgIHIiIiIKKyAgICAgRmlsbCBhIGJpbmFyeSBtYXRyaXggd2l0aCB0aGUgaW5mb3JtYXRpb24g ZnJvbSBhIFNhZ2UgKGRpKWdyYXBoLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9i YXNlL3N0YXRpY19zcGFyc2VfYmFja2VuZC5weGQgYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0 aWNfc3BhcnNlX2JhY2tlbmQucHhkCitpbmRleCBmYjcyYTg5MTgwYi4uMzFmM2IxNzJhOTQgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2JhY2tlbmQucHhk CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2JhY2tlbmQucHhkCitA QCAtMjEsNiArMjEsNiBAQCBjZGVmIGNsYXNzIFN0YXRpY1NwYXJzZUJhY2tlbmQoQ0dyYXBoQmFj a2VuZCk6CisgICAgIGNkZWYgbGlzdCBfdmVydGV4X3RvX2xhYmVscworICAgICBjZGVmIGRpY3Qg X3ZlcnRleF90b19pbnQKKyAgICAgY2RlZiBTdGF0aWNTcGFyc2VDR3JhcGggX2NnCistICAgIGNk ZWYgaW5saW5lIENHcmFwaCBjZyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgQ0dy YXBoIGNnKHNlbGYpOgorICAgICAgICAgcmV0dXJuIDxDR3JhcGg+IHNlbGYuX2NnCisgICAgIGNk ZWYgaW50IF91c2VfZWRnZV9pdGVyYXRvcl9vbl9zdWJncmFwaChzZWxmLCBDR3JhcGhCYWNrZW5k IG90aGVyLCBvYmplY3QgdmVydGljZXMsIGNvbnN0IGludCBtb2R1cykgZXhjZXB0IC0xCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX3NwYXJzZV9iYWNrZW5kLnB5eCBi L3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFyc2VfYmFja2VuZC5weXgKK2luZGV4IDY3 OGQ3ZTg2YzhhLi4xZGM1MTdhOTU3YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9iYXNl L3N0YXRpY19zcGFyc2VfYmFja2VuZC5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0 YXRpY19zcGFyc2VfYmFja2VuZC5weXgKK0BAIC0xOTYsNyArMTk2LDcgQEAgY2RlZiBjbGFzcyBT dGF0aWNTcGFyc2VDR3JhcGgoQ0dyYXBoKToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5h ZGRfdmVydGV4X3Vuc2FmZShrKQorIAorLSAgICBjcGRlZiBkZWxfdmVydGV4KHNlbGYsIGludCBr KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGVsX3ZlcnRleChzZWxmLCBpbnQgayk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZW1vdmUgYSB2ZXJ0ZXggZnJvbSB0aGUgZ3JhcGguIE5vIHdheS4K KyAKK0BAIC0yMTEsNyArMjExLDcgQEAgY2RlZiBjbGFzcyBTdGF0aWNTcGFyc2VDR3JhcGgoQ0dy YXBoKToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5kZWxfdmVydGV4X3Vuc2FmZShrKQor IAorLSAgICBjcGRlZiBsaXN0IHZlcnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0 IHZlcnRzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyB0aGUgbGlzdCBv ZiB2ZXJ0aWNlcworIAorQEAgLTMxOCw3ICszMTgsNyBAQCBjZGVmIGNsYXNzIFN0YXRpY1NwYXJz ZUNHcmFwaChDR3JhcGgpOgorICAgICAgICAgICAgIG5laWdoYm9yc1tpXSA9IHNlbGYuZ19yZXYu bmVpZ2hib3JzW3VdW2ldCisgICAgICAgICByZXR1cm4gLTEgaWYgc2l6ZSA8IGRlZ3JlZSBlbHNl IGRlZ3JlZQorIAorLSAgICBjcGRlZiBsaXN0IG91dF9uZWlnaGJvcnMoc2VsZiwgaW50IHUpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IG91dF9uZWlnaGJvcnMoc2VsZiwgaW50IHUpOgorICAg ICAgICAgciIiIgorICAgICAgICAgTGlzdCB0aGUgb3V0LW5laWdoYm9ycyBvZiBhIHZlcnRleAor IAorQEAgLTM0Myw3ICszNDMsNyBAQCBjZGVmIGNsYXNzIFN0YXRpY1NwYXJzZUNHcmFwaChDR3Jh cGgpOgorICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAgcmV0dXJuIFs8aW50PiBzZWxmLmcu bmVpZ2hib3JzW3VdW2ldIGZvciBpIGluIHJhbmdlKG91dF9kZWdyZWUoc2VsZi5nLCB1KSldCisg CistICAgIGNwZGVmIGxpc3QgaW5fbmVpZ2hib3JzKHNlbGYsIGludCB1KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbGlzdCBpbl9uZWlnaGJvcnMoc2VsZiwgaW50IHUpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBpbi1uZWlnaGJvcnMgb2YgYSB2ZXJ0ZXgKKyAKK0BAIC01NTYs NyArNTU2LDcgQEAgY2RlZiBjbGFzcyBTdGF0aWNTcGFyc2VCYWNrZW5kKENHcmFwaEJhY2tlbmQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gdiBpbiBzZWxmLl92ZXJ0ZXhfdG9faW50 CisgCistICAgIGNwZGVmIGFkZF9lZGdlKHNlbGYsIG9iamVjdCB1LCBvYmplY3Qgdiwgb2JqZWN0 IGwsIGJpbnQgZGlyZWN0ZWQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfZWRnZShzZWxmLCBv YmplY3QgdSwgb2JqZWN0IHYsIG9iamVjdCBsLCBiaW50IGRpcmVjdGVkKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFNldCBlZGdlIGxhYmVsLiBObyB3YXkuCisgCitAQCAtNjAxLDcgKzYwMSw3 IEBAIGNkZWYgY2xhc3MgU3RhdGljU3BhcnNlQmFja2VuZChDR3JhcGhCYWNrZW5kKToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZ3JhcGggaXMgaW1tdXRhYmxlOyBw bGVhc2UgY2hhbmdlIGEgY29weSBpbnN0ZWFkICh1c2UgZnVuY3Rpb24gY29weSgpKSIpCisgCist ICAgIGNwZGVmIGRlbF9lZGdlKHNlbGYsIG9iamVjdCB1LCBvYmplY3Qgdiwgb2JqZWN0IGwsIGJp bnQgZGlyZWN0ZWQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkZWxfZWRnZShzZWxmLCBvYmplY3Qg dSwgb2JqZWN0IHYsIG9iamVjdCBsLCBiaW50IGRpcmVjdGVkKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFNldCBlZGdlIGxhYmVsLiBObyB3YXkuCisgCitAQCAtNjk4LDcgKzY5OCw3IEBAIGNk ZWYgY2xhc3MgU3RhdGljU3BhcnNlQmFja2VuZChDR3JhcGhCYWNrZW5kKToKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZi5fYWxsX2VkZ2VfbGFiZWxzKHUsIHYsIGVkZ2UpCisgICAgICAgICByZXR1 cm4gZWRnZV9sYWJlbChjZy5nLCBlZGdlKQorIAorLSAgICBjZGVmIGlubGluZSBsaXN0IF9hbGxf ZWRnZV9sYWJlbHMoc2VsZiwgaW50IHUsIGludCB2LCB1aW50MzJfdCogZWRnZT1OVUxMKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgbGlzdCBfYWxsX2VkZ2VfbGFiZWxzKHNlbGYsIGludCB1 LCBpbnQgdiwgdWludDMyX3QqIGVkZ2U9TlVMTCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdp dmVzIHRoZSBsYWJlbHMgb2YgYWxsIGFyY3MgZnJvbSBgYHVgYCB0byBgYHZgYC4KKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2dyYXBoLnB4ZCBiL3Ny Yy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFyc2VfZ3JhcGgucHhkCitpbmRleCA0YTQyN2Y4 MTIzNy4uYmVjZTY5NDZiZTMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0 aWNfc3BhcnNlX2dyYXBoLnB4ZAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX3Nw YXJzZV9ncmFwaC5weGQKK0BAIC0yNyw3ICsyNyw3IEBAIGNkZWYgdm9pZCBmcmVlX3Nob3J0X2Rp Z3JhcGgoc2hvcnRfZGlncmFwaCBnKSBub2V4Y2VwdAorIGNkZWYgaW50IGluaXRfcmV2ZXJzZShz aG9ydF9kaWdyYXBoIGRzdCwgc2hvcnRfZGlncmFwaCBzcmMpIGV4Y2VwdCAtMQorIGNkZWYgaW50 IG91dF9kZWdyZWUoc2hvcnRfZGlncmFwaCBnLCBpbnQgdSkgbm9leGNlcHQKKyBjZGVmIHVpbnQz Ml90ICogaGFzX2VkZ2Uoc2hvcnRfZGlncmFwaCBnLCBpbnQgdSwgaW50IHYpIG5vZXhjZXB0Cist Y2RlZiBvYmplY3QgZWRnZV9sYWJlbChzaG9ydF9kaWdyYXBoIGcsIHVpbnQzMl90ICogZWRnZSkg bm9leGNlcHQKKytjZGVmIG9iamVjdCBlZGdlX2xhYmVsKHNob3J0X2RpZ3JhcGggZywgdWludDMy X3QgKiBlZGdlKQorIGNkZWYgaW50IHRhcmphbl9zdHJvbmdseV9jb25uZWN0ZWRfY29tcG9uZW50 c19DKHNob3J0X2RpZ3JhcGggZywgaW50ICpzY2MpIG5vZXhjZXB0CisgY2RlZiB2b2lkIHN0cm9u Z2x5X2Nvbm5lY3RlZF9jb21wb25lbnRzX2RpZ3JhcGhfQyhzaG9ydF9kaWdyYXBoIGcsIGludCBu c2NjLCBpbnQgKnNjYywgc2hvcnRfZGlncmFwaCBvdXRwdXQpIG5vZXhjZXB0CisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX3NwYXJzZV9ncmFwaC5weXggYi9zcmMv c2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2dyYXBoLnB5eAoraW5kZXggMzVmM2RlNjdj OTguLjRjNjhmNDA0M2QzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGlj X3NwYXJzZV9ncmFwaC5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFy c2VfZ3JhcGgucHl4CitAQCAtNDE4LDcgKzQxOCw3IEBAIGNkZWYgaW5saW5lIHVpbnQzMl90ICog aGFzX2VkZ2Uoc2hvcnRfZGlncmFwaCBnLCBpbnQgdSwgaW50IHYpIG5vZXhjZXB0OgorICAgICBy ZXR1cm4gPHVpbnQzMl90ICo+IGJzZWFyY2goJnYsIGcubmVpZ2hib3JzW3VdLCBnLm5laWdoYm9y c1t1ICsgMV0gLSBnLm5laWdoYm9yc1t1XSwgc2l6ZW9mKHVpbnQzMl90KSwgY29tcGFyZV91aW50 MzJfcCkKKyAKKyAKKy1jZGVmIGlubGluZSBvYmplY3QgZWRnZV9sYWJlbChzaG9ydF9kaWdyYXBo IGcsIHVpbnQzMl90ICogZWRnZSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgb2JqZWN0IGVkZ2Vf bGFiZWwoc2hvcnRfZGlncmFwaCBnLCB1aW50MzJfdCAqIGVkZ2UpOgorICAgICByIiIiCisgICAg IFJldHVybiB0aGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gZWRnZQorICAgICAiIiIK K0BAIC04ODcsNyArODg3LDcgQEAgZGVmIHN0cm9uZ2x5X2Nvbm5lY3RlZF9jb21wb25lbnRzX2Rp Z3JhcGgoRyk6CisgICAgIHJldHVybiBvdXRwdXQsIHt2OiBzY2NbaV0gZm9yIGksIHYgaW4gZW51 bWVyYXRlKGludF90b192ZXJ0ZXgpfQorIAorIAorLWNkZWYgc3Ryb25nbHlfY29ubmVjdGVkX2Nv bXBvbmVudF9jb250YWluaW5nX3ZlcnRleChzaG9ydF9kaWdyYXBoIGcsIHNob3J0X2RpZ3JhcGgg Z19yZXZlcnNlZCwgaW50IHYsIGJpdHNldF90IHNjYykgbm9leGNlcHQ6CisrY2RlZiBzdHJvbmds eV9jb25uZWN0ZWRfY29tcG9uZW50X2NvbnRhaW5pbmdfdmVydGV4KHNob3J0X2RpZ3JhcGggZywg c2hvcnRfZGlncmFwaCBnX3JldmVyc2VkLCBpbnQgdiwgYml0c2V0X3Qgc2NjKToKKyAgICAgIiIi CisgICAgIEZlZWQgYGBzY2NgYCB3aXRoIHRoZSB2ZXJ0aWNlcyBpbiB0aGUgc3Ryb25nbHkgY29u bmVjdGVkIGNvbXBvbmVudCBvZiBgYHZgYC4KKyAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvZ3JhcGhzL2NlbnRyYWxpdHkucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2NlbnRyYWxpdHkucHl4 CitpbmRleCAxMThlZGQ1ZDdiMC4uZDczYzc1NzFkMTggMTAwNzU1CistLS0gYS9zcmMvc2FnZS9n cmFwaHMvY2VudHJhbGl0eS5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9jZW50cmFsaXR5LnB5 eAorQEAgLTEyMyw3ICsxMjMsNyBAQCBkZWYgY2VudHJhbGl0eV9iZXR3ZWVubmVzcyhHLCBiaW50 IGV4YWN0PUZhbHNlLCBiaW50IG5vcm1hbGl6ZT1UcnVlKToKKyAKKyAKKyBAY3l0aG9uLmNkaXZp c2lvbihUcnVlKQorLWNkZWYgZGljdCBjZW50cmFsaXR5X2JldHdlZW5uZXNzX0MoRywgbnVtZXJp Y2FsX3R5cGUgXywgYmludCBub3JtYWxpemU9VHJ1ZSkgbm9leGNlcHQ6CisrY2RlZiBkaWN0IGNl bnRyYWxpdHlfYmV0d2Vlbm5lc3NfQyhHLCBudW1lcmljYWxfdHlwZSBfLCBiaW50IG5vcm1hbGl6 ZT1UcnVlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGNlbnRyYWxpdHkgYmV0d2Vlbm5l c3Mgb2YgRyAoQyBpbXBsZW1lbnRhdGlvbikKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFw aHMvY29ubmVjdGl2aXR5LnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9jb25uZWN0aXZpdHkucHhkCitp bmRleCA1ZTQ5ZTY2Y2MzYS4uZjUyOWQyZWJkZWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFw aHMvY29ubmVjdGl2aXR5LnB4ZAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Nvbm5lY3Rpdml0eS5w eGQKK0BAIC0xNiw5ICsxNiw5IEBAIGNkZWYgY2xhc3MgX0NvbXBvbmVudDoKKyAgICAgY2RlZiBf TGlua2VkTGlzdCAqIGVkZ2VfbGlzdAorICAgICBjZGVmIGludCBjb21wb25lbnRfdHlwZQorIAor LSAgICBjZGVmIGFkZF9lZGdlKHNlbGYsIFB5X3NzaXplX3QgZV9pbmRleCkgbm9leGNlcHQKKy0g ICAgY2RlZiBmaW5pc2hfdHJpY19vcl9wb2x5KHNlbGYsIFB5X3NzaXplX3QgZV9pbmRleCkgbm9l eGNlcHQKKy0gICAgY2RlZiBsaXN0IGdldF9lZGdlX2xpc3Qoc2VsZikgbm9leGNlcHQKKysgICAg Y2RlZiBhZGRfZWRnZShzZWxmLCBQeV9zc2l6ZV90IGVfaW5kZXgpCisrICAgIGNkZWYgZmluaXNo X3RyaWNfb3JfcG9seShzZWxmLCBQeV9zc2l6ZV90IGVfaW5kZXgpCisrICAgIGNkZWYgbGlzdCBn ZXRfZWRnZV9saXN0KHNlbGYpCisgCisgY2RlZiBjbGFzcyBUcmljb25uZWN0aXZpdHlTUFFSOgor ICAgICBjZGVmIE1lbW9yeUFsbG9jYXRvciBtZW0KK0BAIC04OCw3ICs4OCw3IEBAIGNkZWYgY2xh c3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAKKyAgICAgIyA9PT0gTWV0aG9kcyA9PT0KKyAKKy0g ICAgY2RlZiBpbmxpbmUgX190c3RhY2tfcHVzaChzZWxmLCBpbnQgaCwgaW50IGEsIGludCBiKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgX190c3RhY2tfcHVzaChzZWxmLCBpbnQgaCwgaW50 IGEsIGludCBiKToKKyAgICAgICAgICIiIgorICAgICAgICAgUHVzaCBgYChoLCBhLCBiKWBgIHRy aXBsZSBvbiBgYFRzdGFja2BgLgorICAgICAgICAgIiIiCitAQCAtOTcsNyArOTcsNyBAQCBjZGVm IGNsYXNzIFRyaWNvbm5lY3Rpdml0eVNQUVI6CisgICAgICAgICBzZWxmLnRfc3RhY2tfYVtzZWxm LnRfc3RhY2tfdG9wXSA9IGEKKyAgICAgICAgIHNlbGYudF9zdGFja19iW3NlbGYudF9zdGFja190 b3BdID0gYgorIAorLSAgICBjZGVmIGlubGluZSBfX3RzdGFja19wdXNoX2VvcyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgX190c3RhY2tfcHVzaF9lb3Moc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFB1c2ggZW5kLW9mLXN0YWNrIG1hcmtlciBvbiBgYFRzdGFja2BgLgor ICAgICAgICAgIiIiCitAQCAtMTE2LDcgKzExNiw3IEBAIGNkZWYgY2xhc3MgVHJpY29ubmVjdGl2 aXR5U1BRUjoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIDxpbnQ+IHNlbGYuZV9zdGFj ay5wb3AoKQorIAorLSAgICBjZGVmIGlubGluZSBfX25ld19jb21wb25lbnQoc2VsZiwgbGlzdCBl ZGdlcywgaW50IHR5cGVfYykgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIF9fbmV3X2NvbXBv bmVudChzZWxmLCBsaXN0IGVkZ2VzLCBpbnQgdHlwZV9jKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ3JlYXRlIGEgbmV3IGNvbXBvbmVudCBhbmQgYWRkIGBgZWRnZXNgYCB0byBpdC4KKyAKK0BA IC0xNDUsMTIgKzE0NSwxMiBAQCBjZGVmIGNsYXNzIFRyaWNvbm5lY3Rpdml0eVNQUVI6CisgICAg IGNkZWYgaW50IF9fbmV3X3ZpcnR1YWxfZWRnZShzZWxmLCBpbnQgdSwgaW50IHYpIG5vZXhjZXB0 CisgICAgIGNkZWYgX0xpbmtlZExpc3ROb2RlICogX19uZXdfTGlua2VkTGlzdE5vZGUoc2VsZiwg UHlfc3NpemVfdCBlX2luZGV4KSBub2V4Y2VwdAorICAgICBjZGVmIFB5X3NzaXplX3QgX19oaWdo KHNlbGYsIFB5X3NzaXplX3Qgdikgbm9leGNlcHQKKy0gICAgY2RlZiBfX2RlbF9oaWdoKHNlbGYs IGludCBlX2luZGV4KSBub2V4Y2VwdAorLSAgICBjZGVmIF9fc3BsaXRfbXVsdGlwbGVfZWRnZXMo c2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBfX2RlbF9oaWdoKHNlbGYsIGludCBlX2luZGV4KQor KyAgICBjZGVmIF9fc3BsaXRfbXVsdGlwbGVfZWRnZXMoc2VsZikKKyAgICAgY2RlZiBpbnQgX19k ZnMxKHNlbGYsIGludCBzdGFydCwgYmludCBjaGVjaz0qKSBub2V4Y2VwdAorLSAgICBjZGVmIF9f YnVpbGRfYWNjZXB0YWJsZV9hZGpfc3RydWN0KHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX19w YXRoX2ZpbmRlcihzZWxmLCBpbnQgc3RhcnQpIG5vZXhjZXB0CistICAgIGNkZWYgX19kZnMyKHNl bGYpIG5vZXhjZXB0CisrICAgIGNkZWYgX19idWlsZF9hY2NlcHRhYmxlX2Fkal9zdHJ1Y3Qoc2Vs ZikKKysgICAgY2RlZiBfX3BhdGhfZmluZGVyKHNlbGYsIGludCBzdGFydCkKKysgICAgY2RlZiBf X2RmczIoc2VsZikKKyAgICAgY2RlZiBpbnQgX19wYXRoX3NlYXJjaChzZWxmLCBpbnQgc3RhcnQp IGV4Y2VwdCAtMQorLSAgICBjZGVmIF9fYXNzZW1ibGVfdHJpY29ubmVjdGVkX2NvbXBvbmVudHMo c2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfX2J1aWxkX3NwcXJfdHJlZShzZWxmKSBub2V4Y2Vw dAorKyAgICBjZGVmIF9fYXNzZW1ibGVfdHJpY29ubmVjdGVkX2NvbXBvbmVudHMoc2VsZikKKysg ICAgY2RlZiBfX2J1aWxkX3NwcXJfdHJlZShzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dy YXBocy9jb25uZWN0aXZpdHkucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2Nvbm5lY3Rpdml0eS5weXgK K2luZGV4IGQ5N2YzYTI4MTlhLi5lZTM4N2FiMzUyYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dy YXBocy9jb25uZWN0aXZpdHkucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvY29ubmVjdGl2aXR5 LnB5eAorQEAgLTI2NzYsNyArMjY3Niw3IEBAIGRlZiBzcHFyX3RyZWVfdG9fZ3JhcGgoVCk6Cisg IyBIZWxwZXIgbWV0aG9kcyBmb3IgYGBUcmljb25uZWN0aXZpdHlTUFFSYGAuCisgIyBEZWZpbmUg YSBkb3VibHkgbGlua2VkIGxpc3QKKyAKKy1jZGVmIGlubGluZSBfTGlua2VkTGlzdE5vZGVfaW5p dGlhbGl6ZShfTGlua2VkTGlzdE5vZGUgKiBub2RlLCBQeV9zc2l6ZV90IGRhdGEpIG5vZXhjZXB0 OgorK2NkZWYgaW5saW5lIF9MaW5rZWRMaXN0Tm9kZV9pbml0aWFsaXplKF9MaW5rZWRMaXN0Tm9k ZSAqIG5vZGUsIFB5X3NzaXplX3QgZGF0YSk6CisgICAgICIiIgorICAgICBJbml0aWFsaXplIHRo ZSBgYF9MaW5rZWRMaXN0Tm9kZWBgIHdpdGggdmFsdWUgZGF0YS4KKyAgICAgIiIiCitAQCAtMjY4 NSw3ICsyNjg1LDcgQEAgY2RlZiBpbmxpbmUgX0xpbmtlZExpc3ROb2RlX2luaXRpYWxpemUoX0xp bmtlZExpc3ROb2RlICogbm9kZSwgUHlfc3NpemVfdCBkYXRhKQorICAgICBub2RlLmRhdGEgPSBk YXRhCisgCisgCistY2RlZiBpbmxpbmUgX0xpbmtlZExpc3RfaW5pdGlhbGl6ZShfTGlua2VkTGlz dCAqIGxsKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBfTGlua2VkTGlzdF9pbml0aWFsaXplKF9M aW5rZWRMaXN0ICogbGwpOgorICAgICAiIiIKKyAgICAgSW5pdGlhbGl6ZSB0aGUgYGBfTGlua2Vk TGlzdGBgLgorICAgICAiIiIKK0BAIC0yNjkzLDcgKzI2OTMsNyBAQCBjZGVmIGlubGluZSBfTGlu a2VkTGlzdF9pbml0aWFsaXplKF9MaW5rZWRMaXN0ICogbGwpIG5vZXhjZXB0OgorICAgICBsbC50 YWlsID0gTlVMTAorICAgICBsbC5sZW5ndGggPSAwCisgCistY2RlZiBfTGlua2VkTGlzdF9zZXRf aGVhZChfTGlua2VkTGlzdCAqIGxsLCBfTGlua2VkTGlzdE5vZGUgKiBoKSBub2V4Y2VwdDoKKytj ZGVmIF9MaW5rZWRMaXN0X3NldF9oZWFkKF9MaW5rZWRMaXN0ICogbGwsIF9MaW5rZWRMaXN0Tm9k ZSAqIGgpOgorICAgICAiIiIKKyAgICAgU2V0IHRoZSBub2RlIGBgaGBgIGFzIHRoZSBoZWFkIGFu ZCB0YWlsIG9mIHRoZSBsaW5rZWQgbGlzdCBgYGxsYGAuCisgICAgICIiIgorQEAgLTI3MTMsNyAr MjcxMyw3IEBAIGNkZWYgaW5saW5lIFB5X3NzaXplX3QgX0xpbmtlZExpc3RfZ2V0X2xlbmd0aChf TGlua2VkTGlzdCAqIGxsKSBub2V4Y2VwdDoKKyAgICAgIiIiCisgICAgIHJldHVybiBsbC5sZW5n dGgKKyAKKy1jZGVmIF9MaW5rZWRMaXN0X2FwcGVuZChfTGlua2VkTGlzdCAqIGxsLCBfTGlua2Vk TGlzdE5vZGUgKiBub2RlKSBub2V4Y2VwdDoKKytjZGVmIF9MaW5rZWRMaXN0X2FwcGVuZChfTGlu a2VkTGlzdCAqIGxsLCBfTGlua2VkTGlzdE5vZGUgKiBub2RlKToKKyAgICAgIiIiCisgICAgIEFw cGVuZCB0aGUgbm9kZSBgYG5vZGVgYCB0byB0aGUgbGlua2VkIGxpc3QgYGBsbGBgLgorICAgICAi IiIKK0BAIC0yNzI1LDcgKzI3MjUsNyBAQCBjZGVmIF9MaW5rZWRMaXN0X2FwcGVuZChfTGlua2Vk TGlzdCAqIGxsLCBfTGlua2VkTGlzdE5vZGUgKiBub2RlKSBub2V4Y2VwdDoKKyAgICAgICAgIGxs LnRhaWwgPSBub2RlCisgICAgICAgICBsbC5sZW5ndGggKz0gMQorIAorLWNkZWYgX0xpbmtlZExp c3RfcmVtb3ZlKF9MaW5rZWRMaXN0ICogbGwsIF9MaW5rZWRMaXN0Tm9kZSAqIG5vZGUpIG5vZXhj ZXB0OgorK2NkZWYgX0xpbmtlZExpc3RfcmVtb3ZlKF9MaW5rZWRMaXN0ICogbGwsIF9MaW5rZWRM aXN0Tm9kZSAqIG5vZGUpOgorICAgICAiIiIKKyAgICAgUmVtb3ZlIHRoZSBub2RlIGBgbm9kZWBg IGZyb20gdGhlIGxpbmtlZCBsaXN0IGBgbGxgYC4KKyAgICAgIiIiCitAQCAtMjc0Myw3ICsyNzQz LDcgQEAgY2RlZiBfTGlua2VkTGlzdF9yZW1vdmUoX0xpbmtlZExpc3QgKiBsbCwgX0xpbmtlZExp c3ROb2RlICogbm9kZSkgbm9leGNlcHQ6CisgICAgICAgICBub2RlLm5leHQucHJldiA9IG5vZGUu cHJldgorICAgICBsbC5sZW5ndGggLT0gMQorIAorLWNkZWYgX0xpbmtlZExpc3RfcHVzaF9mcm9u dChfTGlua2VkTGlzdCAqIGxsLCBfTGlua2VkTGlzdE5vZGUgKiBub2RlKSBub2V4Y2VwdDoKKytj ZGVmIF9MaW5rZWRMaXN0X3B1c2hfZnJvbnQoX0xpbmtlZExpc3QgKiBsbCwgX0xpbmtlZExpc3RO b2RlICogbm9kZSk6CisgICAgICIiIgorICAgICBBZGQgbm9kZSBgYG5vZGVgYCB0byB0aGUgYmVn aW5uaW5nIG9mIHRoZSBsaW5rZWQgbGlzdCBgYGxsYGAuCisgICAgICIiIgorQEAgLTI3NTUsNyAr Mjc1NSw3IEBAIGNkZWYgX0xpbmtlZExpc3RfcHVzaF9mcm9udChfTGlua2VkTGlzdCAqIGxsLCBf TGlua2VkTGlzdE5vZGUgKiBub2RlKSBub2V4Y2VwdDoKKyAgICAgICAgIGxsLmhlYWQgPSBub2Rl CisgICAgICAgICBsbC5sZW5ndGggKz0gMQorIAorLWNkZWYgX0xpbmtlZExpc3RfY29uY2F0ZW5h dGUoX0xpbmtlZExpc3QgKiBsc3QxLCBfTGlua2VkTGlzdCAqIGxzdDIpIG5vZXhjZXB0OgorK2Nk ZWYgX0xpbmtlZExpc3RfY29uY2F0ZW5hdGUoX0xpbmtlZExpc3QgKiBsc3QxLCBfTGlua2VkTGlz dCAqIGxzdDIpOgorICAgICAiIiIKKyAgICAgQ29uY2F0ZW5hdGUgbHN0MiB0byBsc3QxLgorIAor QEAgLTI3NjgsNyArMjc2OCw3IEBAIGNkZWYgX0xpbmtlZExpc3RfY29uY2F0ZW5hdGUoX0xpbmtl ZExpc3QgKiBsc3QxLCBfTGlua2VkTGlzdCAqIGxzdDIpIG5vZXhjZXB0OgorICAgICBsc3QyLmhl YWQgPSBOVUxMCisgICAgIGxzdDIubGVuZ3RoID0gMAorIAorLWNkZWYgc3RyIF9MaW5rZWRMaXN0 X3RvX3N0cmluZyhfTGlua2VkTGlzdCAqIGxsKSBub2V4Y2VwdDoKKytjZGVmIHN0ciBfTGlua2Vk TGlzdF90b19zdHJpbmcoX0xpbmtlZExpc3QgKiBsbCk6CisgICAgICIiIgorICAgICBSZXR1cm4g YSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Ygc2VsZi4KKyAgICAgIiIiCitAQCAtMjgyNyw3ICsy ODI3LDcgQEAgY2RlZiBjbGFzcyBfQ29tcG9uZW50OgorICAgICAgICAgICAgIHNlbGYuYWRkX2Vk Z2UoZV9pbmRleCkKKyAgICAgICAgIHNlbGYuY29tcG9uZW50X3R5cGUgPSB0eXBlX2MKKyAKKy0g ICAgY2RlZiBhZGRfZWRnZShzZWxmLCBQeV9zc2l6ZV90IGVfaW5kZXgpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGFkZF9lZGdlKHNlbGYsIFB5X3NzaXplX3QgZV9pbmRleCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEFkZCBlZGdlIGluZGV4IGBgZV9pbmRleGBgIHRvIHRoZSBjb21wb25lbnQuCisg ICAgICAgICAiIiIKK0BAIC0yODM1LDcgKzI4MzUsNyBAQCBjZGVmIGNsYXNzIF9Db21wb25lbnQ6 CisgICAgICAgICBfTGlua2VkTGlzdE5vZGVfaW5pdGlhbGl6ZShub2RlLCBlX2luZGV4KQorICAg ICAgICAgX0xpbmtlZExpc3RfYXBwZW5kKHNlbGYuZWRnZV9saXN0LCBub2RlKQorIAorLSAgICBj ZGVmIGZpbmlzaF90cmljX29yX3BvbHkoc2VsZiwgUHlfc3NpemVfdCBlX2luZGV4KSBub2V4Y2Vw dDoKKysgICAgY2RlZiBmaW5pc2hfdHJpY19vcl9wb2x5KHNlbGYsIFB5X3NzaXplX3QgZV9pbmRl eCk6CisgICAgICAgICByIiIiCisgICAgICAgICBGaW5hbGl6ZSB0aGUgY29tcG9uZW50IGJ5IGFk ZGluZyBlZGdlIGBgZWBgLgorIAorQEAgLTI4NzMsNyArMjg3Myw3IEBAIGNkZWYgY2xhc3MgX0Nv bXBvbmVudDoKKyAgICAgICAgICAgICB0eXBlX3N0ciA9ICJUcmljb25uZWN0ZWQ6ICIKKyAgICAg ICAgIHJldHVybiB0eXBlX3N0ciArIF9MaW5rZWRMaXN0X3RvX3N0cmluZyhzZWxmLmVkZ2VfbGlz dCkKKyAKKy0gICAgY2RlZiBsaXN0IGdldF9lZGdlX2xpc3Qoc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgbGlzdCBnZXRfZWRnZV9saXN0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGxpc3Qgb2YgZWRnZXMgYmVsb25naW5nIHRvIHRoZSBjb21wb25lbnQuCisgICAg ICAgICAiIiIKK0BAIC0zMzAxLDcgKzMzMDEsNyBAQCBjZGVmIGNsYXNzIFRyaWNvbm5lY3Rpdml0 eVNQUVI6CisgICAgICAgICAgICAgcmV0dXJuIGhlYWQuZGF0YQorICAgICAgICAgcmV0dXJuIDAK KyAKKy0gICAgY2RlZiBfX2RlbF9oaWdoKHNlbGYsIGludCBlX2luZGV4KSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfX2RlbF9oaWdoKHNlbGYsIGludCBlX2luZGV4KToKKyAgICAgICAgICIiIgorICAg ICAgICAgRGVsZXRlIGVkZ2UgYGBlYGAgZnJvbSB0aGUgYGBoaWdocHRgYCBsaXN0IG9mIHRoZSBl bmRwb2ludCBgYHZgYAorICAgICAgICAgaXQgYmVsb25ncyB0by4KK0BAIC0zMzE1LDcgKzMzMTUs NyBAQCBjZGVmIGNsYXNzIFRyaWNvbm5lY3Rpdml0eVNQUVI6CisgICAgICAgICAgICAgICAgIHYg PSBzZWxmLmVkZ2VfZXh0cmVtaXR5X3NlY29uZFtlX2luZGV4XQorICAgICAgICAgICAgIF9MaW5r ZWRMaXN0X3JlbW92ZShzZWxmLmhpZ2hwdFt2XSwgaXQpCisgCistICAgIGNkZWYgX19zcGxpdF9t dWx0aXBsZV9lZGdlcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX3NwbGl0X211bHRpcGxl X2VkZ2VzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBNYWtlIHRoZSBncmFwaCBzaW1w bGUgYW5kIGJ1aWxkIGJvbmRzIHJlY29yZGluZyBtdWx0aXBsZSBlZGdlcy4KKyAKK0BAIC0zNDg3 LDcgKzM0ODcsNyBAQCBjZGVmIGNsYXNzIFRyaWNvbm5lY3Rpdml0eVNQUVI6CisgCisgICAgICAg ICByZXR1cm4gY3V0X3ZlcnRleCAgIyBjdXRfdmVydGV4IGlzIC0xIGlmIGdyYXBoIGRvZXMgbm90 IGhhdmUgYSBjdXQgdmVydGV4CisgCistICAgIGNkZWYgX19idWlsZF9hY2NlcHRhYmxlX2Fkal9z dHJ1Y3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX19idWlsZF9hY2NlcHRhYmxlX2Fkal9z dHJ1Y3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEJ1aWxkIHRoZSBhZGphY2VuY3kg bGlzdHMgZm9yIGVhY2ggdmVydGV4IHdpdGggY2VydGFpbiBwcm9wZXJ0aWVzIG9mCisgICAgICAg ICB0aGUgb3JkZXJpbmcsIHVzaW5nIHRoZSBgYGxvd3B0MWBgIGFuZCBgYGxvd3B0MmBgIHZhbHVl cy4KK0BAIC0zNTQyLDcgKzM1NDIsNyBAQCBjZGVmIGNsYXNzIFRyaWNvbm5lY3Rpdml0eVNQUVI6 CisgICAgICAgICAgICAgICAgICAgICBfTGlua2VkTGlzdF9hcHBlbmQoc2VsZi5hZGpbc2VsZi5l ZGdlX2V4dHJlbWl0eV9maXJzdFtlX2luZGV4XV0sIG5vZGUpCisgICAgICAgICAgICAgICAgIHNl bGYuaW5fYWRqW2VfaW5kZXhdID0gbm9kZQorIAorLSAgICBjZGVmIF9fcGF0aF9maW5kZXIoc2Vs ZiwgaW50IHN0YXJ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX3BhdGhfZmluZGVyKHNlbGYsIGlu dCBzdGFydCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgYSBoZWxw ZXIgZnVuY3Rpb24gZm9yIDptZXRoOmBfX2RmczJgIGZ1bmN0aW9uLgorIAorQEAgLTM2MDEsNyAr MzYwMSw3IEBAIGNkZWYgY2xhc3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAgICAgICAgICAgICAg ICAgc2VsZi5kZnNfY291bnRlciAtPSAxCisgICAgICAgICAgICAgICAgIHN0YWNrX3RvcCAtPSAx CisgCistICAgIGNkZWYgX19kZnMyKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9fZGZzMihz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXBkYXRlIHRoZSB2YWx1ZXMgb2YgYGBsb3dw dDFgYCBhbmQgYGBsb3dwdDJgYCBsaXN0cyB3aXRoIHRoZQorICAgICAgICAgaGVscCBvZiBuZXcg bnVtYmVyaW5nIG9idGFpbmVkIGZyb20gOm1ldGg6YF9fcGF0aF9maW5kZXJgLgorQEAgLTM5ODQs NyArMzk4NCw3IEBAIGNkZWYgY2xhc3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAgICAgICAgICAg ICAjIEdvIHRvIG5leHQgZWRnZSBpbiBhZGphY2VuY3kgbGlzdAorICAgICAgICAgICAgIGVfbm9k ZV9kaWN0W3ZdID0gZV9ub2RlLm5leHQKKyAKKy0gICAgY2RlZiBfX2Fzc2VtYmxlX3RyaWNvbm5l Y3RlZF9jb21wb25lbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9fYXNzZW1ibGVfdHJp Y29ubmVjdGVkX2NvbXBvbmVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEl0ZXJh dGUgdGhyb3VnaCBhbGwgdGhlIHNwbGl0IGNvbXBvbmVudHMgYnVpbHQgYnkgOm1ldGg6YF9fcGF0 aF9maW5kZXJgCisgICAgICAgICBhbmQgbWVyZ2VzIHR3byBib25kcyBvciB0d28gcG9seWdvbnMg dGhhdCBzaGFyZSBhbiBlZGdlIGZvciBjb25zdHJ1Y3RpbmcKK0BAIC00MTExLDcgKzQxMTEsNyBA QCBjZGVmIGNsYXNzIFRyaWNvbm5lY3Rpdml0eVNQUVI6CisgICAgICAgICAgICAgICAgIHNlbGYu Y29tcF90eXBlLmFwcGVuZCgoPF9Db21wb25lbnQ+IGNvbXApLmNvbXBvbmVudF90eXBlKQorICAg ICAgICAgICAgICAgICBzZWxmLmNvbXBfZmluYWxfZWRnZV9saXN0LmFwcGVuZChlX2xpc3RfbmV3 KQorIAorLSAgICBjZGVmIF9fYnVpbGRfc3Bxcl90cmVlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9fYnVpbGRfc3Bxcl90cmVlKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCdWls ZCB0aGUgU1BRUi10cmVlIG9mIHRoZSBncmFwaCBhbmQgc3RvcmUgaXQgaW4gdmFyaWFibGUKKyAg ICAgICAgIGBgc2VsZi5zcHFyX3RyZWVgYC4gU2VlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3Jh cGhzL2NvbnZleGl0eV9wcm9wZXJ0aWVzLnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9jb252ZXhpdHlf cHJvcGVydGllcy5weGQKK2luZGV4IGNjODBlMjE0ZWE1Li5mNmMxYjY4YjZiOCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2dyYXBocy9jb252ZXhpdHlfcHJvcGVydGllcy5weGQKKysrKyBiL3NyYy9z YWdlL2dyYXBocy9jb252ZXhpdHlfcHJvcGVydGllcy5weGQKK0BAIC03LDkgKzcsOSBAQCBjZGVm IGNsYXNzIENvbnZleGl0eVByb3BlcnRpZXM6CisgICAgIGNkZWYgZGljdCBfZGljdF92ZXJ0aWNl c190b19pbnRlZ2VycworICAgICBjZGVmIGJpbmFyeV9tYXRyaXhfdCBfY2FjaGVfaHVsbF9wYWly cworIAorLSAgICBjZGVmIGxpc3QgX3ZlcnRpY2VzX3RvX2ludGVnZXJzKHNlbGYsIHZlcnRpY2Vz KSBub2V4Y2VwdAorLSAgICBjZGVmIGxpc3QgX2ludGVnZXJzX3RvX3ZlcnRpY2VzKHNlbGYsIGxp c3QgaW50ZWdlcnMpIG5vZXhjZXB0CistICAgIGNkZWYgX2JpdHNldF9jb252ZXhfaHVsbChzZWxm LCBiaXRzZXRfdCBodWxsKSBub2V4Y2VwdAorLSAgICBjcGRlZiBodWxsKHNlbGYsIGxpc3QgdmVy dGljZXMpIG5vZXhjZXB0CistICAgIGNkZWYgX2dyZWVkeV9pbmNyZWFzZShzZWxmLCBiaXRzZXRf dCBicykgbm9leGNlcHQKKy0gICAgY3BkZWYgaHVsbF9udW1iZXIoc2VsZiwgdmFsdWVfb25seSA9 ICosIHZlcmJvc2UgPSAqKSBub2V4Y2VwdAorKyAgICBjZGVmIGxpc3QgX3ZlcnRpY2VzX3RvX2lu dGVnZXJzKHNlbGYsIHZlcnRpY2VzKQorKyAgICBjZGVmIGxpc3QgX2ludGVnZXJzX3RvX3ZlcnRp Y2VzKHNlbGYsIGxpc3QgaW50ZWdlcnMpCisrICAgIGNkZWYgX2JpdHNldF9jb252ZXhfaHVsbChz ZWxmLCBiaXRzZXRfdCBodWxsKQorKyAgICBjcGRlZiBodWxsKHNlbGYsIGxpc3QgdmVydGljZXMp CisrICAgIGNkZWYgX2dyZWVkeV9pbmNyZWFzZShzZWxmLCBiaXRzZXRfdCBicykKKysgICAgY3Bk ZWYgaHVsbF9udW1iZXIoc2VsZiwgdmFsdWVfb25seSA9ICosIHZlcmJvc2UgPSAqKQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2dyYXBocy9jb252ZXhpdHlfcHJvcGVydGllcy5weXggYi9zcmMvc2Fn ZS9ncmFwaHMvY29udmV4aXR5X3Byb3BlcnRpZXMucHl4CitpbmRleCA3MDI0MzI0ZjM2Mi4uNjBj Nzk0MTE0N2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvY29udmV4aXR5X3Byb3BlcnRp ZXMucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvY29udmV4aXR5X3Byb3BlcnRpZXMucHl4CitA QCAtMjI3LDIwICsyMjcsMjAgQEAgY2RlZiBjbGFzcyBDb252ZXhpdHlQcm9wZXJ0aWVzOgorICAg ICAgICAgIiIiCisgICAgICAgICBiaW5hcnlfbWF0cml4X2ZyZWUoc2VsZi5fY2FjaGVfaHVsbF9w YWlycykKKyAKKy0gICAgY2RlZiBsaXN0IF92ZXJ0aWNlc190b19pbnRlZ2VycyhzZWxmLCB2ZXJ0 aWNlcykgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBfdmVydGljZXNfdG9faW50ZWdlcnMoc2Vs ZiwgdmVydGljZXMpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29udmVydHMgYSBsaXN0IG9m IHZlcnRpY2VzIHRvIGEgbGlzdCBvZiBpbnRlZ2VycyB3aXRoIHRoZSBjYWNoZWQgZGF0YS4KKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIFtzZWxmLl9kaWN0X3ZlcnRpY2VzX3RvX2ludGVn ZXJzW3ZdIGZvciB2IGluIHZlcnRpY2VzXQorIAorLSAgICBjZGVmIGxpc3QgX2ludGVnZXJzX3Rv X3ZlcnRpY2VzKHNlbGYsIGxpc3QgaW50ZWdlcnMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3Qg X2ludGVnZXJzX3RvX3ZlcnRpY2VzKHNlbGYsIGxpc3QgaW50ZWdlcnMpOgorICAgICAgICAgciIi IgorICAgICAgICAgQ29udmVydCBhIGxpc3Qgb2YgaW50ZWdlcnMgdG8gYSBsaXN0IG9mIHZlcnRp Y2VzIHdpdGggdGhlIGNhY2hlZCBkYXRhLgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGlu dCBpCisgICAgICAgICByZXR1cm4gW3NlbGYuX2xpc3RfaW50ZWdlcnNfdG9fdmVydGljZXNbaV0g Zm9yIGkgaW4gaW50ZWdlcnNdCisgCistICAgIGNkZWYgX2JpdHNldF9jb252ZXhfaHVsbChzZWxm LCBiaXRzZXRfdCBodWxsKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfYml0c2V0X2NvbnZleF9odWxs KHNlbGYsIGJpdHNldF90IGh1bGwpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZSB0 aGUgY29udmV4IGh1bGwgb2YgYSBsaXN0IG9mIHZlcnRpY2VzIGdpdmVuIGFzIGEgYml0c2V0Lgor IAorQEAgLTI5MCw3ICsyOTAsNyBAQCBjZGVmIGNsYXNzIENvbnZleGl0eVByb3BlcnRpZXM6Cisg ICAgICAgICAgICAgIyBPdGhlcndpc2UsIHVwZGF0ZSBhbmQgYmFjayB0byB0aGUgbG9vcAorICAg ICAgICAgICAgIGNvdW50ID0gdG1wX2NvdW50CisgCistICAgIGNwZGVmIGh1bGwoc2VsZiwgbGlz dCB2ZXJ0aWNlcykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGh1bGwoc2VsZiwgbGlzdCB2ZXJ0aWNl cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvbnZleCBodWxsIG9mIGEg c2V0IG9mIHZlcnRpY2VzLgorIAorQEAgLTMyMSw3ICszMjEsNyBAQCBjZGVmIGNsYXNzIENvbnZl eGl0eVByb3BlcnRpZXM6CisgCisgICAgICAgICByZXR1cm4gYW5zd2VyCisgCistICAgIGNkZWYg X2dyZWVkeV9pbmNyZWFzZShzZWxmLCBiaXRzZXRfdCBicykgbm9leGNlcHQ6CisrICAgIGNkZWYg X2dyZWVkeV9pbmNyZWFzZShzZWxmLCBiaXRzZXRfdCBicyk6CisgICAgICAgICByIiIiCisgICAg ICAgICBHaXZlbiBhIGJpdHNldCB3aG9zZSBodWxsIGlzIG5vdCB0aGUgd2hvbGUgc2V0LCBncmVl ZGlseSBhZGQgdmVydGljZXMKKyAgICAgICAgIGFuZCBzdG9wIGJlZm9yZSBpdHMgaHVsbCBpcyB0 aGUgd2hvbGUgc2V0LgorQEAgLTM0Myw3ICszNDMsNyBAQCBjZGVmIGNsYXNzIENvbnZleGl0eVBy b3BlcnRpZXM6CisgCisgICAgICAgICBiaXRzZXRfZnJlZSh0bXApCisgCistICAgIGNwZGVmIGh1 bGxfbnVtYmVyKHNlbGYsIHZhbHVlX29ubHk9VHJ1ZSwgdmVyYm9zZT1GYWxzZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGh1bGxfbnVtYmVyKHNlbGYsIHZhbHVlX29ubHk9VHJ1ZSwgdmVyYm9zZT1G YWxzZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBodWxsIG51bWJlciBh bmQgYSBjb3JyZXNwb25kaW5nIGdlbmVyYXRpbmcgc2V0LgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2dyYXBocy9kaXN0YW5jZXNfYWxsX3BhaXJzLnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9kaXN0 YW5jZXNfYWxsX3BhaXJzLnB4ZAoraW5kZXggOTgzMDFiOTIyMTMuLmQ4N2EwMDFkMTQzIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2Rpc3RhbmNlc19hbGxfcGFpcnMucHhkCisrKysgYi9z cmMvc2FnZS9ncmFwaHMvZGlzdGFuY2VzX2FsbF9wYWlycy5weGQKK0BAIC02LDYgKzYsNiBAQCBj ZGVmIGFsbF9wYWlyc19zaG9ydGVzdF9wYXRoX0JGUyhnZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqIHByZWRlY2Vzc29ycywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqIGRpc3RhbmNlcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAqIGVjY2VudHJpY2l0 eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhfbGlzdD0qKSBub2V4 Y2VwdAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRleF9saXN0PSopCisg CisgY2RlZiB1aW50MzJfdCAqIGNfZWNjZW50cmljaXR5KEcsIHZlcnRleF9saXN0PSopIGV4Y2Vw dCBOVUxMCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Rpc3RhbmNlc19hbGxfcGFpcnMu cHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2Rpc3RhbmNlc19hbGxfcGFpcnMucHl4CitpbmRleCBkYjZk ZjZiMmNiMS4uM2ViMTUxMjlkMTkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvZGlzdGFu Y2VzX2FsbF9wYWlycy5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9kaXN0YW5jZXNfYWxsX3Bh aXJzLnB5eAorQEAgLTE0NSw3ICsxNDUsNyBAQCBmcm9tIHNhZ2UuZ3JhcGhzLmJhc2Uuc3RhdGlj X3NwYXJzZV9ncmFwaCBjaW1wb3J0IChzaG9ydF9kaWdyYXBoLAorIGNkZWYgaW5saW5lIGNfYWxs X3BhaXJzX3Nob3J0ZXN0X3BhdGhfQkZTKHNob3J0X2RpZ3JhcGggc2QsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQqIHByZWRlY2Vzc29y cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBz aG9ydCogZGlzdGFuY2VzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90KiBlY2NlbnRyaWNpdHkpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBlY2NlbnRyaWNpdHkpOgorICAgICBy IiIiCisgICAgIFNlZSB0aGUgbW9kdWxlJ3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgIiIiCitAQCAt MjY5LDcgKzI2OSw3IEBAIGNkZWYgaW5saW5lIGFsbF9wYWlyc19zaG9ydGVzdF9wYXRoX0JGUyhn ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hv cnQqIHByZWRlY2Vzc29ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgc2hvcnQqIGRpc3RhbmNlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QqIGVjY2VudHJpY2l0eSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmVydGV4X2xpc3Q9Tm9uZSkgbm9leGNlcHQ6CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRleF9saXN0PU5vbmUpOgor ICAgICByIiIiCisgICAgIFNlZSB0aGUgbW9kdWxlJ3MgZG9jdW1lbnRhdGlvbi4KKyAKK0BAIC0x MTQxLDcgKzExNDEsNyBAQCBjZGVmIHVpbnQzMl90IGRpYW1ldGVyX2xvd2VyX2JvdW5kXzJzd2Vl cChzaG9ydF9kaWdyYXBoIGcsCisgCisgY2RlZiB0dXBsZSBkaWFtZXRlcl9sb3dlcl9ib3VuZF8y RHN3ZWVwKHNob3J0X2RpZ3JhcGggZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2hvcnRfZGlncmFwaCByZXZfZywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3Qgc291cmNlKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc291cmNlKToKKyAgICAgciIiIgor ICAgICBMb3dlciBib3VuZCBvbiB0aGUgZGlhbWV0ZXIgb2YgZGlncmFwaCB1c2luZyBkaXJlY3Rl ZCB2ZXJzaW9uIG9mIDItc3dlZXAuCisgCitAQCAtMTI1NSw3ICsxMjU1LDcgQEAgY2RlZiB0dXBs ZSBkaWFtZXRlcl9sb3dlcl9ib3VuZF8yRHN3ZWVwKHNob3J0X2RpZ3JhcGggZywKKyAKKyAKKyBj ZGVmIHR1cGxlIGRpYW1ldGVyX2xvd2VyX2JvdW5kX211bHRpX3N3ZWVwKHNob3J0X2RpZ3JhcGgg ZywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IHNvdXJjZSkgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBzb3VyY2UpOgorICAgICAiIiIKKyAgICAgTG93ZXIgYm91bmQgb24g dGhlIGRpYW1ldGVyIHVzaW5nIG11bHRpLXN3ZWVwLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2dyYXBocy9lZGdlX2Nvbm5lY3Rpdml0eS5weXggYi9zcmMvc2FnZS9ncmFwaHMvZWRnZV9jb25u ZWN0aXZpdHkucHl4CitpbmRleCBhMmUzNjdiYjU3Ny4uYWVmOGU0M2Q5OGUgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9ncmFwaHMvZWRnZV9jb25uZWN0aXZpdHkucHl4CisrKysgYi9zcmMvc2FnZS9n cmFwaHMvZWRnZV9jb25uZWN0aXZpdHkucHl4CitAQCAtMzAwLDcgKzMwMCw3IEBAIGNkZWYgY2xh c3MgR2Fib3dFZGdlQ29ubmVjdGl2aXR5OgorICAgICAgICAgXyA9IHNlbGYuY29tcHV0ZV9lZGdl X2Nvbm5lY3Rpdml0eSgpCisgICAgICAgICBzaWdfY2hlY2soKQorIAorLSAgICBjZGVmIGJ1aWxk X2dyYXBoX2RhdGFfc3RydWN0dXJlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGJ1aWxkX2dy YXBoX2RhdGFfc3RydWN0dXJlKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgQnVpbGQg Z3JhcGggZGF0YSBzdHJ1Y3R1cmVzLgorIAorQEAgLTEwMjQsNyArMTAyNCw3IEBAIGNkZWYgY2xh c3MgR2Fib3dFZGdlQ29ubmVjdGl2aXR5OgorICAgICAgICAgICAgIGUgPSBlcAorICAgICAgICAg ICAgIGVwID0gc2VsZi5sYWJlbHNbZV0KKyAKKy0gICAgY2RlZiByZV9pbml0KHNlbGYsIGludCB0 cmVlKSBub2V4Y2VwdDoKKysgICAgY2RlZiByZV9pbml0KHNlbGYsIGludCB0cmVlKToKKyAgICAg ICAgICIiIgorICAgICAgICAgTWFrZSBmX3RyZWVzIGFjdGl2ZSAoZXhjZXB0IHRoZSBmX3RyZWUg b2YgdGhlIHJvb3QpLCB1cGRhdGUgZGVwdGhzIGFuZAorICAgICAgICAgcGFyZW50IHZhbHVlcywg YW5kIGNsZWFyIHRoZSBsYWJlbHMuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2dlbmVy aWNfZ3JhcGhfcHl4LnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9nZW5lcmljX2dyYXBoX3B5eC5weGQK K2luZGV4IDFhNDcyYzU5YTcwLi5hMDljMWQ2OTMzMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dy YXBocy9nZW5lcmljX2dyYXBoX3B5eC5weGQKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9nZW5lcmlj X2dyYXBoX3B5eC5weGQKK0BAIC04LDcgKzgsNyBAQCBjdHlwZWRlZiBmdXNlZCBkaW1lbnNpb25f dDoKKyAgICAgRF9UV08KKyAgICAgRF9USFJFRQorIAorLWNkZWYgcnVuX3NwcmluZyhpbnQsIGRp bWVuc2lvbl90LCBkb3VibGUqLCBpbnQqLCBpbnQsIGludCwgYmludCkgbm9leGNlcHQKKytjZGVm IHJ1bl9zcHJpbmcoaW50LCBkaW1lbnNpb25fdCwgZG91YmxlKiwgaW50KiwgaW50LCBpbnQsIGJp bnQpCisgCisgY2RlZiBjbGFzcyBHZW5lcmljR3JhcGhfcHl4KFNhZ2VPYmplY3QpOgorICAgICBw YXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2dlbmVyaWNfZ3JhcGhfcHl4LnB5eCBi L3NyYy9zYWdlL2dyYXBocy9nZW5lcmljX2dyYXBoX3B5eC5weXgKK2luZGV4IDlkMDkxY2RlZTU4 Li43NGE2ZjEzYzFjNiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9nZW5lcmljX2dyYXBo X3B5eC5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9nZW5lcmljX2dyYXBoX3B5eC5weXgKK0BA IC0yNTgsNyArMjU4LDcgQEAgZGVmIHNwcmluZ19sYXlvdXRfZmFzdChHLCBpdGVyYXRpb25zPTUw LCBpbnQgZGltPTIsIHZwb3M9Tm9uZSwgYmludCByZXNjYWxlPVRydWUKKyAKKyAKKyBAY3l0aG9u LmNkaXZpc2lvbihUcnVlKQorLWNkZWYgcnVuX3NwcmluZyhpbnQgaXRlcmF0aW9ucywgZGltZW5z aW9uX3QgX2RpbSwgZG91YmxlKiBwb3MsIGludCogZWRnZXMsIGludCBuLCBpbnQgbSwgYmludCBo ZWlnaHQpIG5vZXhjZXB0OgorK2NkZWYgcnVuX3NwcmluZyhpbnQgaXRlcmF0aW9ucywgZGltZW5z aW9uX3QgX2RpbSwgZG91YmxlKiBwb3MsIGludCogZWRnZXMsIGludCBuLCBpbnQgbSwgYmludCBo ZWlnaHQpOgorICAgICByIiIiCisgICAgIEZpbmQgYSBsb2NhbGx5IG9wdGltYWwgbGF5b3V0IGZv ciB0aGlzIGdyYXBoLCBhY2NvcmRpbmcgdG8gdGhlCisgICAgIGNvbnN0cmFpbnRzIHRoYXQgbmVp Z2hib3Jpbmcgbm9kZXMgd2FudCB0byBiZSBhIGZpeGVkIGRpc3RhbmNlCitAQCAtMTE1OSw3ICsx MTU5LDcgQEAgZGVmIF90ZXN0X3ZlY3RvcnNfZXF1YWxfaW5mZXJpb3IoKToKKyAKKyAKKyBjcGRl ZiB0dXBsZSBmaW5kX2hhbWlsdG9uaWFuKEcsIGxvbmcgbWF4X2l0ZXI9MTAwMDAwLCBsb25nIHJl c2V0X2JvdW5kPTMwMDAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBiYWNr dHJhY2tfYm91bmQ9MTAwMCwgZmluZF9wYXRoPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxvbmcgYmFja3RyYWNrX2JvdW5kPTEwMDAsIGZpbmRfcGF0aD1G YWxzZSk6CisgICAgIHIiIiIKKyAgICAgUmFuZG9taXplZCBiYWNrdHJhY2tpbmcgZm9yIGZpbmRp bmcgSGFtaWx0b25pYW4gY3ljbGVzIGFuZCBwYXRocy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9ncmFwaHMvZ2VudXMucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2dlbnVzLnB5eAoraW5kZXggNDQx ZmFlNzU0ZDYuLmRhZTZmNzEzMDhmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2dlbnVz LnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2dlbnVzLnB5eAorQEAgLTQ3Nyw3ICs0NzcsNyBA QCBjZGVmIGNsYXNzIHNpbXBsZV9jb25uZWN0ZWRfZ2VudXNfYmFja3RyYWNrZXI6CisgICAgIGNk ZWYgaW50IGdlbnVzX2JhY2t0cmFjayhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IGN1dG9mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQgcmVjb3Jk X2VtYmVkZGluZywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQgKCopKHNpbXBs ZV9jb25uZWN0ZWRfZ2VudXNfYmFja3RyYWNrZXIsIGludCwgYmludCwgaW50KSljaGVja19lbWJl ZGRpbmcpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCAoKiko c2ltcGxlX2Nvbm5lY3RlZF9nZW51c19iYWNrdHJhY2tlciwgaW50LCBiaW50LCBpbnQpIG5vZXhj ZXB0KSBjaGVja19lbWJlZGRpbmcpIG5vZXhjZXB0OgorICAgICAgICAgIiIiCisgICAgICAgICBI ZXJlJ3MgdGhlIG1haW4gYmFja3RyYWNraW5nIHJvdXRpbmUuCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvZ3JhcGhzL2dyYXBoX2NvbG9yaW5nLnB5eCBiL3NyYy9zYWdlL2dyYXBocy9ncmFwaF9j b2xvcmluZy5weXgKK2luZGV4IGMzMDBkNGYzOWE5Li5lNGI2ZGQ5ODczZSAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2dyYXBocy9ncmFwaF9jb2xvcmluZy5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBo cy9ncmFwaF9jb2xvcmluZy5weXgKK0BAIC0zMjcsNyArMzI3LDcgQEAgZGVmIGFsbF9ncmFwaF9j b2xvcmluZ3MoRywgbiwgY291bnRfb25seT1GYWxzZSwgaGV4X2NvbG9ycz1GYWxzZSwKKyAgICAg ICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidG9vIG11Y2ggcmVjdXJzaW9uLCBHcmFwaCBjb2xvcmlu ZyBmYWlsZWQiKQorIAorIAorLWNwZGVmIGZpcnN0X2NvbG9yaW5nKEcsIG49MCwgaGV4X2NvbG9y cz1GYWxzZSkgbm9leGNlcHQ6CisrY3BkZWYgZmlyc3RfY29sb3JpbmcoRywgbj0wLCBoZXhfY29s b3JzPUZhbHNlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGZpcnN0IHZlcnRleCBjb2xv cmluZyBmb3VuZC4KKyAKK0BAIC0zNjUsNyArMzY1LDcgQEAgY3BkZWYgZmlyc3RfY29sb3Jpbmco Rywgbj0wLCBoZXhfY29sb3JzPUZhbHNlKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4g QworIAorIAorLWNwZGVmIG51bWJlcl9vZl9uX2NvbG9yaW5ncyhHLCBuKSBub2V4Y2VwdDoKKytj cGRlZiBudW1iZXJfb2Zfbl9jb2xvcmluZ3MoRywgbik6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0 ZSB0aGUgbnVtYmVyIG9mIGBuYC1jb2xvcmluZ3Mgb2YgYSBncmFwaAorIAorQEAgLTM5Nyw3ICsz OTcsNyBAQCBjcGRlZiBudW1iZXJfb2Zfbl9jb2xvcmluZ3MoRywgbikgbm9leGNlcHQ6CisgICAg IHJldHVybiBtCisgCisgCistY3BkZWYgbnVtYmVyc19vZl9jb2xvcmluZ3MoRykgbm9leGNlcHQ6 CisrY3BkZWYgbnVtYmVyc19vZl9jb2xvcmluZ3MoRyk6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0 ZSB0aGUgbnVtYmVyIG9mIGNvbG9yaW5ncyBvZiBhIGdyYXBoLgorIAorQEAgLTQxNiw3ICs0MTYs NyBAQCBjcGRlZiBudW1iZXJzX29mX2NvbG9yaW5ncyhHKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJu IGFuc3dlcgorIAorIAorLWNwZGVmIGNocm9tYXRpY19udW1iZXIoRykgbm9leGNlcHQ6CisrY3Bk ZWYgY2hyb21hdGljX251bWJlcihHKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGNocm9t YXRpYyBudW1iZXIgb2YgdGhlIGdyYXBoLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBo cy9ncmFwaF9kZWNvbXBvc2l0aW9ucy9yYW5rd2lkdGgucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2dy YXBoX2RlY29tcG9zaXRpb25zL3Jhbmt3aWR0aC5weXgKK2luZGV4IDViZTU0MGJhZmUyLi5kODE3 Y2YwNGE1ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9ncmFwaF9kZWNvbXBvc2l0aW9u cy9yYW5rd2lkdGgucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvZ3JhcGhfZGVjb21wb3NpdGlv bnMvcmFua3dpZHRoLnB5eAorQEAgLTMyMSw3ICszMjEsNyBAQCBkZWYgbWtncmFwaChpbnQgbnVt X3ZlcnRpY2VzKToKKyAgICAgcmV0dXJuIGcKKyAKKyAKKy1jZGVmIGJpdHNldF90b192ZXJ0ZXhf c2V0KHN1YnNldF90IHMpIG5vZXhjZXB0OgorK2NkZWYgYml0c2V0X3RvX3ZlcnRleF9zZXQoc3Vi c2V0X3Qgcyk6CisgICAgICIiIgorICAgICBSZXR1cm4gYXMgYSBTZXQgb2JqZWN0IHRoZSBzZXQg Y29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gc3Vic2V0X3QKKyAgICAgdmFyaWFibGUuCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2RlY29tcG9zaXRpb25zL3ZlcnRleF9zZXBh cmF0aW9uLnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9ncmFwaF9kZWNvbXBvc2l0aW9ucy92ZXJ0ZXhf c2VwYXJhdGlvbi5weGQKK2luZGV4IGZiYWRjODkzNDM2Li5mYTc1N2IyYzI4ZSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2dyYXBocy9ncmFwaF9kZWNvbXBvc2l0aW9ucy92ZXJ0ZXhfc2VwYXJhdGlv bi5weGQKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9ncmFwaF9kZWNvbXBvc2l0aW9ucy92ZXJ0ZXhf c2VwYXJhdGlvbi5weGQKK0BAIC0xLDQgKzEsNCBAQAorIGZyb20gbGliYy5zdGRpbnQgY2ltcG9y dCB1aW50OF90CisgZnJvbSBzYWdlLmdyYXBocy5ncmFwaF9kZWNvbXBvc2l0aW9ucy5mYXN0X2Rp Z3JhcGggY2ltcG9ydCBGYXN0RGlncmFwaAorIAorLWNkZWYgbGlzdCBmaW5kX29yZGVyKEZhc3RE aWdyYXBoLCB1aW50OF90ICosIGludCkgbm9leGNlcHQKKytjZGVmIGxpc3QgZmluZF9vcmRlcihG YXN0RGlncmFwaCwgdWludDhfdCAqLCBpbnQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhz L2dyYXBoX2RlY29tcG9zaXRpb25zL3ZlcnRleF9zZXBhcmF0aW9uLnB5eCBiL3NyYy9zYWdlL2dy YXBocy9ncmFwaF9kZWNvbXBvc2l0aW9ucy92ZXJ0ZXhfc2VwYXJhdGlvbi5weXgKK2luZGV4IGVh ZWMzMWI1Yzk2Li4yZDQ5ZjRiZGIyOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9ncmFw aF9kZWNvbXBvc2l0aW9ucy92ZXJ0ZXhfc2VwYXJhdGlvbi5weXgKKysrKyBiL3NyYy9zYWdlL2dy YXBocy9ncmFwaF9kZWNvbXBvc2l0aW9ucy92ZXJ0ZXhfc2VwYXJhdGlvbi5weXgKK0BAIC0xMDUy LDcgKzEwNTIsNyBAQCBjZGVmIGlubGluZSBpbnQgZXhpc3RzKEZhc3REaWdyYXBoIGcsIHVpbnQ4 X3QqIG5laWdoYm9yaG9vZHMsIGludCBjdXJyZW50LCBpbnQgYworICAgICByZXR1cm4gbmVpZ2hi b3Job29kc1tjdXJyZW50XQorIAorIAorLWNkZWYgbGlzdCBmaW5kX29yZGVyKEZhc3REaWdyYXBo IGcsIHVpbnQ4X3QqIG5laWdoYm9yaG9vZHMsIGludCBjb3N0KSBub2V4Y2VwdDoKKytjZGVmIGxp c3QgZmluZF9vcmRlcihGYXN0RGlncmFwaCBnLCB1aW50OF90KiBuZWlnaGJvcmhvb2RzLCBpbnQg Y29zdCk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIG9yZGVyaW5nIG9uY2Ugd2UgYXJlIHN1 cmUgaXQgZXhpc3RzCisgICAgICIiIgorQEAgLTE3NDEsNyArMTc0MSw3IEBAIGRlZiB2ZXJ0ZXhf c2VwYXJhdGlvbl9CQUIoRywKKyAgICAgcmV0dXJuICh3aWR0aCBpZiB3aWR0aCA8IHVwcGVyX2Jv dW5kIGVsc2UgLTEpLCBvcmRlcgorIAorIAorLWNkZWYgaW5saW5lIF9teV9pbnZlcnRfcG9zaXRp b25zKGludCAqcHJlZml4LCBpbnQgKnBvc2l0aW9ucywgaW50IHBvc19hLCBpbnQgcG9zX2IpIG5v ZXhjZXB0OgorK2NkZWYgaW5saW5lIF9teV9pbnZlcnRfcG9zaXRpb25zKGludCAqcHJlZml4LCBp bnQgKnBvc2l0aW9ucywgaW50IHBvc19hLCBpbnQgcG9zX2IpOgorICAgICAiIiIKKyAgICAgUGVy bXV0ZSB2ZXJ0aWNlcyBhdCBwb3NpdGlvbnMgYGBwb3NfYWBgIGFuZCBgYHBvc19iYGAgaW4gYXJy YXkgYGBwcmVmaXhgYCwKKyAgICAgYW5kIHJlY29yZCB0aGUgbmV3IHBvc2l0aW9ucyBpbiBhcnJh eSBgYHBvc2l0aW9uc2BgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9oeXBlcmJvbGlj aXR5LnB5eCBiL3NyYy9zYWdlL2dyYXBocy9oeXBlcmJvbGljaXR5LnB5eAoraW5kZXggNjQ3NGU5 ZDY4NjkuLjc4YjMyMDViNmZkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2h5cGVyYm9s aWNpdHkucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvaHlwZXJib2xpY2l0eS5weXgKK0BAIC0y NjMsNyArMjYzLDcgQEAgY2RlZiBpbmxpbmUgaW50IF9faHlwX18odW5zaWduZWQgc2hvcnQqKiBk aXN0YW5jZXMsIGludCBhLCBpbnQgYiwgaW50IGMsIGludCBkKQorIAorIGNkZWYgdHVwbGUgaHlw ZXJib2xpY2l0eV9iYXNpY19hbGdvcml0aG0oaW50IE4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCoqIGRpc3RhbmNlcywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2UpIG5vZXhjZXB0OgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZSk6CisgICAgICIi IgorICAgICBSZXR1cm4gKip0d2ljZSoqIHRoZSBoeXBlcmJvbGljaXR5IG9mIGEgZ3JhcGgsIGFu ZCBhIGNlcnRpZmljYXRlLgorIAorQEAgLTM2OCw3ICszNjgsNyBAQCBkZWYgX2dyZWVkeV9kb21p bmF0aW5nX3NldChILCB2ZXJib3NlPUZhbHNlKToKKyBjZGVmIGlubGluZSBkaXN0YW5jZXNfYW5k X2Zhcl9hcGFydF9wYWlycyhnZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBzaG9ydCogZGlzdGFuY2VzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0KiBmYXJfYXBhcnRfcGFpcnMsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBpbnRfdG9fdmVy dGV4KSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaXN0IGludF90b192ZXJ0ZXgpOgorICAgICAiIiIKKyAgICAgQ29tcHV0ZSBib3RoIGRpc3Rh bmNlcyBiZXR3ZWVuIGFsbCBwYWlycyBhbmQgZmFyLWFwYXJ0IHBhaXJzLgorIAorQEAgLTU4Myw3 ICs1ODMsNyBAQCBjZGVmIHR1cGxlIGh5cGVyYm9saWNpdHlfQkNDTShpbnQgTiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgaF9MQiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmbG9hdCBhcHByb3hpbWF0aW9uX2ZhY3RvciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmbG9hdCBhZGRpdGl2ZV9nYXAsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmVyYm9zZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmVyYm9zZT1GYWxzZSk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIGh5cGVyYm9s aWNpdHkgb2YgYSBncmFwaC4KKyAKK0BAIC04NDEsNyArODQxLDcgQEAgY2RlZiB0dXBsZSBoeXBl cmJvbGljaXR5X0NDTChpbnQgTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBo X0xCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYXBwcm94aW1hdGlvbl9m YWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhZGRpdGl2ZV9nYXAs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlPUZhbHNlKSBub2V4Y2VwdDoK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9RmFsc2UpOgorICAgICAiIiIK KyAgICAgUmV0dXJuIHRoZSBoeXBlcmJvbGljaXR5IG9mIGEgZ3JhcGguCisgCitAQCAtMTQ2NSw3 ICsxNDY1LDcgQEAgZGVmIGh5cGVyYm9saWNpdHkoRywKKyAjIERpc3RyaWJ1dGlvbiBvZiB0aGUg aHlwZXJib2xpY2l0eSBvZiA0LXR1cGxlcworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIGRpY3Qg X19oeXBlcmJvbGljaXR5X2Rpc3RyaWJ1dGlvbl9fKGludCBOLCB1bnNpZ25lZCBzaG9ydCoqIGRp c3RhbmNlcykgbm9leGNlcHQ6CisrY2RlZiBkaWN0IF9faHlwZXJib2xpY2l0eV9kaXN0cmlidXRp b25fXyhpbnQgTiwgdW5zaWduZWQgc2hvcnQqKiBkaXN0YW5jZXMpOgorICAgICAiIiIKKyAgICAg UmV0dXJuIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIGh5cGVyYm9saWNpdHkgb2YgdGhlIDQtdHVw bGVzIG9mIHRoZSBncmFwaC4KKyAKK0BAIC0xNTI2LDcgKzE1MjYsNyBAQCBjZGVmIGV4dGVybiBm cm9tICJzdGRsaWIuaCI6CisgICAgIHZvaWQgY19saWJjX3NyYW5kb20gInNyYW5kb20iKHVuc2ln bmVkIGludCBzZWVkKQorIAorIAorLWNkZWYgZGljdCBfX2h5cGVyYm9saWNpdHlfc2FtcGxpbmdf XyhpbnQgTiwgdW5zaWduZWQgc2hvcnQqKiBkaXN0YW5jZXMsIHVpbnQ2NF90IHNhbXBsaW5nX3Np emUpIG5vZXhjZXB0OgorK2NkZWYgZGljdCBfX2h5cGVyYm9saWNpdHlfc2FtcGxpbmdfXyhpbnQg TiwgdW5zaWduZWQgc2hvcnQqKiBkaXN0YW5jZXMsIHVpbnQ2NF90IHNhbXBsaW5nX3NpemUpOgor ICAgICAiIiIKKyAgICAgUmV0dXJuIGEgc2FtcGxpbmcgb2YgdGhlIGh5cGVyYm9saWNpdHkgZGlz dHJpYnV0aW9uIG9mIHRoZSBncmFwaC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMv c3Ryb25nbHlfcmVndWxhcl9kYi5weXggYi9zcmMvc2FnZS9ncmFwaHMvc3Ryb25nbHlfcmVndWxh cl9kYi5weXgKK2luZGV4IDk1NWY4NzIyMmExLi4yN2NmZDNkYTUzNSAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2dyYXBocy9zdHJvbmdseV9yZWd1bGFyX2RiLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3Jh cGhzL3N0cm9uZ2x5X3JlZ3VsYXJfZGIucHl4CitAQCAtMTczNiw3ICsxNzM2LDcgQEAgZGVmIGlz X25vd2hlcmUwX3R3b3dlaWdodChpbnQgdiwgaW50IGssIGludCBsLCBpbnQgbXUpOgorICAgICAg ICAgcmV0dXJuIChOb3doZXJlMFdvcmRzVHdvV2VpZ2h0Q29kZUdyYXBoLCBxKQorIAorIAorLWNk ZWYgZWlnZW52YWx1ZXMoaW50IHYsIGludCBrLCBpbnQgbCwgaW50IG11KSBub2V4Y2VwdDoKKytj ZGVmIGVpZ2VudmFsdWVzKGludCB2LCBpbnQgaywgaW50IGwsIGludCBtdSk6CisgICAgIHIiIiIK KyAgICAgUmV0dXJuIHRoZSBlaWdlbnZhbHVlcyBvZiBhICh2LGssbCxtdSktc3Ryb25nbHkgcmVn dWxhciBncmFwaC4KKyAKK0BAIC0xODQ2LDcgKzE4NDYsNyBAQCBkZWYgZWlnZW5tYXRyaXgoaW50 IHYsIGludCBrLCBpbnQgbCwgaW50IG11KToKKyAgICAgICAgIHJldHVybiBNYXRyaXgoWlosIFtb MSwgaywgdi1rLTFdLCBbMSwgciwgLXItMV0sIFsxLCBzLCAtcy0xXV0pCisgCisgCistY3BkZWYg bGF0aW5fc3F1YXJlc19ncmFwaF9wYXJhbWV0ZXJzKGludCB2LCBpbnQgaywgaW50IGwsaW50IG11 KSBub2V4Y2VwdDoKKytjcGRlZiBsYXRpbl9zcXVhcmVzX2dyYXBoX3BhcmFtZXRlcnMoaW50IHYs IGludCBrLCBpbnQgbCxpbnQgbXUpOgorICAgICByIiIiCisgICAgIENoZWNrIHdoZXRoZXIgKHYs ayxsLG11KS1zdHJvbmdseSByZWd1bGFyIGdyYXBoIGhhcyBwYXJhbWV0ZXJzIG9mIGFuIGBMX2co bilgIHMuci5nLgorIAorQEAgLTMyNTYsNyArMzI1Niw3IEBAIGRlZiBfYnVpbGRfc21hbGxfc3Jn X2RhdGFiYXNlKCk6CisgICAgICAgICAgICAgX3NtYWxsX3NyZ19kYXRhYmFzZVtOLCBLLCBsLCBt XSA9IFtzdHJvbmdseV9yZWd1bGFyX2Zyb21fdHdvX3dlaWdodF9jb2RlLCBjb2RlWydNJ11dCisg CisgCistY2RlZiBsb2FkX2Jyb3V3ZXJfZGF0YWJhc2UoKSBub2V4Y2VwdDoKKytjZGVmIGxvYWRf YnJvdXdlcl9kYXRhYmFzZSgpOgorICAgICByIiIiCisgICAgIExvYWRzIEFuZHJpZXMgQnJvdXdl cidzIGRhdGFiYXNlIGludG8gX2Jyb3V3ZXJfZGF0YWJhc2UuCisgICAgICIiIgorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2dyYXBocy90cmF2ZXJzYWxzLnB4ZCBiL3NyYy9zYWdlL2dyYXBocy90cmF2 ZXJzYWxzLnB4ZAoraW5kZXggYzlhODQ0NGJlMGMuLmE4MWM3MmRjZDlkIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvZ3JhcGhzL3RyYXZlcnNhbHMucHhkCisrKysgYi9zcmMvc2FnZS9ncmFwaHMvdHJh dmVyc2Fscy5weGQKK0BAIC01LDQgKzUsNCBAQCBjZGVmIG1heGltdW1fY2FyZGluYWxpdHlfc2Vh cmNoX01fc2hvcnRfZGlncmFwaChzaG9ydF9kaWdyYXBoIHNkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogYWxwaGEsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBhbHBoYV9pbnYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBGLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQqIFgpIG5v ZXhjZXB0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmludCogWCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvdHJhdmVyc2Fscy5weXggYi9z cmMvc2FnZS9ncmFwaHMvdHJhdmVyc2Fscy5weXgKK2luZGV4IGFlODUxOGQzYjI1Li5kN2RmYWQ0 N2EzMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy90cmF2ZXJzYWxzLnB5eAorKysrIGIv c3JjL3NhZ2UvZ3JhcGhzL3RyYXZlcnNhbHMucHl4CitAQCAtMTA3LDcgKzEwNyw3IEBAIGRlZiBf aXNfdmFsaWRfbGV4X0JGU19vcmRlcihHLCBMKToKKyAgICAgcmV0dXJuIFRydWUKKyAKKyAKKy1j ZGVmIGxleF9CRlNfZmFzdF9zaG9ydF9kaWdyYXBoKHNob3J0X2RpZ3JhcGggc2QsIHVpbnQzMl90 ICpzaWdtYSwgdWludDMyX3QgKnByZWQpIG5vZXhjZXB0OgorK2NkZWYgbGV4X0JGU19mYXN0X3No b3J0X2RpZ3JhcGgoc2hvcnRfZGlncmFwaCBzZCwgdWludDMyX3QgKnNpZ21hLCB1aW50MzJfdCAq cHJlZCk6CisgICAgIHIiIiIKKyAgICAgUGVyZm9ybSBhIGxleGljb2dyYXBoaWMgYnJlYWR0aCBm aXJzdCBzZWFyY2ggKExleEJGUykgb24gdGhlIGdyYXBoLgorIAorQEAgLTE3NDcsNyArMTc0Nyw3 IEBAIGNkZWYgaW5saW5lIGludCBzd2FwKGludCogYWxwaGEsIGludCogYWxwaGFfaW52LCBpbnQg dSwgaW50IG5ld19wb3NfdSkgbm9leGNlcHQ6CisgCisgCisgY2RlZiBtYXhpbXVtX2NhcmRpbmFs aXR5X3NlYXJjaF9NX3Nob3J0X2RpZ3JhcGgoc2hvcnRfZGlncmFwaCBzZCwgaW50IGluaXRpYWxf dmVydGV4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCogYWxwaGEsIGludCogYWxwaGFfaW52LCBsaXN0IEYsIGJpbnQqIFgpIG5vZXhjZXB0Ogor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogYWxw aGEsIGludCogYWxwaGFfaW52LCBsaXN0IEYsIGJpbnQqIFgpOgorICAgICByIiIiCisgICAgIENv bXB1dGUgdGhlIG9yZGVyaW5nIGFuZCB0aGUgZWRnZXMgb2YgdGhlIHRyaWFuZ3VsYXRpb24gcHJv ZHVjZWQgYnkgTUNTLU0uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL3dlYWtseV9j aG9yZGFsLnB5eCBiL3NyYy9zYWdlL2dyYXBocy93ZWFrbHlfY2hvcmRhbC5weXgKK2luZGV4IDkx NTNjOGVlOTNkLi5lYTgyMDQyZjk5NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy93ZWFr bHlfY2hvcmRhbC5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy93ZWFrbHlfY2hvcmRhbC5weXgK K0BAIC01MSw3ICs1MSw3IEBAIGNkZWYgaW5saW5lIGlzX2xvbmdfaG9sZV9mcmVlX3Byb2Nlc3Mo Zywgc2hvcnRfZGlncmFwaCBzZCwgYml0c2V0X3QgZGVuc2VfZ3JhcGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGlkX2xhYmVsLCBpbnQqIHBhdGgsIGludCog SW5QYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBuZWln aGJvcl9pbmRleCwgc2V0IFZpc2l0ZWRQMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJpbnQgY2VydGlmaWNhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgYSwgaW50IGIsIGludCBjLCBpbnQgbikgbm9leGNlcHQ6CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYSwgaW50IGIsIGludCBjLCBpbnQg bik6CisgICAgICIiIgorICAgICBUaGlzIG1ldGhvZCBpcyBwYXJ0IG9mIG1ldGhvZCBgYGlzX2xv bmdfaG9sZV9mcmVlYGAuCisgCitAQCAtMjc5LDcgKzI3OSw3IEBAIGNkZWYgaW5saW5lIGlzX2xv bmdfYW50aWhvbGVfZnJlZV9wcm9jZXNzKGcsIHNob3J0X2RpZ3JhcGggc2QsIGJpdHNldF90IGRl bnNlX2dyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBp ZF9sYWJlbCwgaW50KiBwYXRoLCBpbnQqIEluUGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQqIG5laWdoYm9yX2luZGV4LCBzZXQgVmlzaXRlZFAzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQgY2VydGlmaWNh dGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGEsIGlu dCBiLCBpbnQgYywgaW50IG4pIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBhLCBpbnQgYiwgaW50IGMsIGludCBuKToKKyAgICAgIiIiCisg ICAgIFRoaXMgbWV0aG9kIGlzIHBhcnQgb2YgbWV0aG9kIGBgaXNfbG9uZ19hbnRpaG9sZV9mcmVl YGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL2xpYmdhcF93cmFwcGVyLnB4ZCBi L3NyYy9zYWdlL2dyb3Vwcy9saWJnYXBfd3JhcHBlci5weGQKK2luZGV4IDI1NTk5ZWVhMmE4Li4w YzQzYjA5ODE0MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9saWJnYXBfd3JhcHBlci5w eGQKKysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9saWJnYXBfd3JhcHBlci5weGQKK0BAIC00LDUgKzQs NSBAQCBmcm9tIHNhZ2UubGlicy5nYXAuZWxlbWVudCBjaW1wb3J0IEdhcEVsZW1lbnQKKyAKKyBj ZGVmIGNsYXNzIEVsZW1lbnRMaWJHQVAoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAg ICBjZGVmIEdhcEVsZW1lbnQgX2xpYmdhcAorLSAgICBjcGRlZiBHYXBFbGVtZW50IGdhcChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAg Y3BkZWYgR2FwRWxlbWVudCBnYXAoc2VsZikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL2xpYmdhcF93cmFwcGVyLnB5eCBiL3NyYy9z YWdlL2dyb3Vwcy9saWJnYXBfd3JhcHBlci5weXgKK2luZGV4IDY5Mzk1ZWQ3ZTczLi4zZDI3ZWM0 NGVhMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9saWJnYXBfd3JhcHBlci5weXgKKysr KyBiL3NyYy9zYWdlL2dyb3Vwcy9saWJnYXBfd3JhcHBlci5weXgKK0BAIC01MTgsNyArNTE4LDcg QEAgY2RlZiBjbGFzcyBFbGVtZW50TGliR0FQKE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToK KyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ25l ZWQgYSBsaWJnYXAgZ3JvdXAgZWxlbWVudCBvciAiMSIgaW4gY29uc3RydWN0b3InKQorIAorLSAg ICBjcGRlZiBHYXBFbGVtZW50IGdhcChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgR2FwRWxl bWVudCBnYXAoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIExpYkdBUCBy ZXByZXNlbnRhdGlvbiBvZiB0aGUgZWxlbWVudC4KKyAKK0BAIC02NDAsNyArNjQwLDcgQEAgY2Rl ZiBjbGFzcyBFbGVtZW50TGliR0FQKE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAg ICAgICAgICBmcm9tIHNhZ2UubWlzYy5sYXRleCBpbXBvcnQgbGF0ZXgKKyAgICAgICAgICAgICBy ZXR1cm4gbGF0ZXgoc2VsZi5fcmVwcl8oKSkKKyAKKy0gICAgY3BkZWYgX211bF8obGVmdCwgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIE11bHRpcGxpY2F0aW9uIG9mIGdyb3VwIGVsZW1lbnRzCisgCitAQCAtNjYy LDcgKzY2Miw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudExpYkdBUChNdWx0aXBsaWNhdGl2ZUdyb3Vw RWxlbWVudCk6CisgICAgICAgICByZXR1cm4gUC5lbGVtZW50X2NsYXNzKFAsICg8RWxlbWVudExp YkdBUD4gbGVmdCkuX2xpYmdhcCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg8RWxlbWVudExpYkdBUD4gcmlnaHQpLl9saWJnYXApCisgCistICAgIGNwZGVmIF9yaWNoY21w XyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxl ZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIG1ldGhvZCBp bXBsZW1lbnRzIGNvbXBhcmlzb24uCisgCitAQCAtNjgyLDcgKzY4Miw3IEBAIGNkZWYgY2xhc3Mg RWxlbWVudExpYkdBUChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICByZXR1 cm4gcmljaGNtcCgoPEVsZW1lbnRMaWJHQVA+bGVmdCkuX2xpYmdhcCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICg8RWxlbWVudExpYkdBUD5yaWdodCkuX2xpYmdhcCwgb3ApCisgCistICAgIGNw ZGVmIF9kaXZfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8obGVmdCwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpc2lvbiBvZiBncm91cCBlbGVtZW50 cy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncm91cHMvbWF0cml4X2dwcy9ncm91cF9lbGVt ZW50LnB4ZCBiL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3VwX2VsZW1lbnQucHhkCitp bmRleCAxYjMyZWVhMzYwMi4uMzZhNWE5ZmM0Y2UgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncm91 cHMvbWF0cml4X2dwcy9ncm91cF9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvZ3JvdXBzL21h dHJpeF9ncHMvZ3JvdXBfZWxlbWVudC5weGQKK0BAIC0xLDEwICsxLDEwIEBACisgZnJvbSBzYWdl LnN0cnVjdHVyZS5lbGVtZW50IGNpbXBvcnQgTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQsIEVs ZW1lbnQsIE1vbm9pZEVsZW1lbnQsIE1hdHJpeAorIAorLWNwZGVmIGlzX01hdHJpeEdyb3VwRWxl bWVudCh4KSBub2V4Y2VwdAorK2NwZGVmIGlzX01hdHJpeEdyb3VwRWxlbWVudCh4KQorIAorIGNk ZWYgY2xhc3MgTWF0cml4R3JvdXBFbGVtZW50X2dlbmVyaWMoTXVsdGlwbGljYXRpdmVHcm91cEVs ZW1lbnQpOgorICAgICBjZGVmIHB1YmxpYyBNYXRyaXggX21hdHJpeAorIAorLSAgICBjcGRlZiBf YWN0X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQKKy0gICAgY3BkZWYg X211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKSBu b2V4Y2VwdAorKyAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkK KysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxm KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3VwX2VsZW1lbnQu cHl4IGIvc3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMvZ3JvdXBfZWxlbWVudC5weXgKK2luZGV4 IGZhOTE0YTk0OTlkLi4zOGJmMWYwMzI3OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9t YXRyaXhfZ3BzL2dyb3VwX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9ncm91cHMvbWF0cml4 X2dwcy9ncm91cF9lbGVtZW50LnB5eAorQEAgLTg5LDcgKzg5LDcgQEAgZXhjZXB0IEltcG9ydEVy cm9yOgorICAgICBNYXRyaXhHcm91cEVsZW1lbnRfZ2FwID0gKCkKKyAKKyAKKy1jcGRlZiBpc19N YXRyaXhHcm91cEVsZW1lbnQoeCkgbm9leGNlcHQ6CisrY3BkZWYgaXNfTWF0cml4R3JvdXBFbGVt ZW50KHgpOgorICAgICAiIiIKKyAgICAgVGVzdCB3aGV0aGVyIGBgeGBgIGlzIGEgbWF0cml4IGdy b3VwIGVsZW1lbnQKKyAKK0BAIC0yMjIsNyArMjIyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhHcm91 cEVsZW1lbnRfZ2VuZXJpYyhNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXRyaXguX2xhdGV4XygpCisgCistICAgIGNwZGVm IF9hY3Rfb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2FjdF9vbl8oc2VsZiwgeCwgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjQ1LDcgKzI0NSw3IEBAIGNkZWYgY2xhc3MgTWF0 cml4R3JvdXBFbGVtZW50X2dlbmVyaWMoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAg ICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgICAgIHJldHVybiBOb25l CisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAgICAgIiIi CisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjY2LDcgKzI2Niw3IEBAIGNkZWYgY2xhc3Mg TWF0cml4R3JvdXBFbGVtZW50X2dlbmVyaWMoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgor ICAgICAgICAgY2RlZiBNYXRyaXhHcm91cEVsZW1lbnRfZ2VuZXJpYyB5ID0gPE1hdHJpeEdyb3Vw RWxlbWVudF9nZW5lcmljPm90aGVyCisgICAgICAgICByZXR1cm4gcmljaGNtcCh4Ll9tYXRyaXgs IHkuX21hdHJpeCwgb3ApCisgCistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gbGlzdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG1hdHJpeC4KKyAKK0BAIC0zMjcsNyArMzI3 LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhHcm91cEVsZW1lbnRfZ2VuZXJpYyhNdWx0aXBsaWNhdGl2 ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm1hdHJp eCgpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IHByb2R1Y3Qgb2YgYGBzZWxmYGAgYW5kYGAgb3RoZXJgYCwgd2hpY2ggbXVzdAorICAgICAgICAg aGF2ZSBpZGVudGljYWwgcGFyZW50cy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncm91cHMvbWF0 cml4X2dwcy9ncm91cF9lbGVtZW50X2dhcC5weGQgYi9zcmMvc2FnZS9ncm91cHMvbWF0cml4X2dw cy9ncm91cF9lbGVtZW50X2dhcC5weGQKK2luZGV4IDI2MzNmMjE4OTJjLi5lMGVjYmVmZWE1YyAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3VwX2VsZW1lbnRfZ2Fw LnB4ZAorKysrIGIvc3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMvZ3JvdXBfZWxlbWVudF9nYXAu cHhkCitAQCAtMSw1ICsxLDUgQEAKKyBmcm9tIHNhZ2UuZ3JvdXBzLmxpYmdhcF93cmFwcGVyIGNp bXBvcnQgRWxlbWVudExpYkdBUAorIAorIGNkZWYgY2xhc3MgTWF0cml4R3JvdXBFbGVtZW50X2dh cChFbGVtZW50TGliR0FQKToKKy0gICAgY3BkZWYgX2FjdF9vbl8oc2VsZiwgeCwgYmludCBzZWxm X29uX2xlZnQpIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKSBub2V4Y2VwdAor KyAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkKKysgICAgY3Bk ZWYgbGlzdCBsaXN0KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9n cHMvZ3JvdXBfZWxlbWVudF9nYXAucHl4IGIvc3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMvZ3Jv dXBfZWxlbWVudF9nYXAucHl4CitpbmRleCA3YzU4MTM3N2Y2Zi4uYjA3YzBmMDFhNDQgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9ncm91cHMvbWF0cml4X2dwcy9ncm91cF9lbGVtZW50X2dhcC5weXgK KysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3VwX2VsZW1lbnRfZ2FwLnB5eAor QEAgLTEzNiw3ICsxMzYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeEdyb3VwRWxlbWVudF9nYXAoRWxl bWVudExpYkdBUCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm1hdHJpeCgp Ll9sYXRleF8oKQorIAorLSAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25f bGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3Rfb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9v bl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTE1Nyw3 ICsxNTcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeEdyb3VwRWxlbWVudF9nYXAoRWxlbWVudExpYkdB UCk6CisgICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yMzAsNyArMjMwLDcgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhHcm91cEVsZW1lbnRfZ2FwKEVsZW1lbnRMaWJHQVApOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5tYXRyaXgoKQorIAorLSAgICBjcGRlZiBsaXN0IGxp c3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIGxpc3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBtYXRyaXgu CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZi9kYXRh X3N0cnVjdHVyZXMucHhkIGIvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZi9kYXRh X3N0cnVjdHVyZXMucHhkCitpbmRleCA0YzcxNTJlNWQ2ZC4uZjUzMTg0YmQwODIgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmL2RhdGFfc3RydWN0dXJlcy5w eGQKKysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wYXJ0bl9yZWYvZGF0YV9zdHJ1Y3R1 cmVzLnB4ZAorQEAgLTk1LDcgKzk1LDcgQEAgY2RlZiBpbmxpbmUgT3JiaXRQYXJ0aXRpb24gKk9Q X2NvcHkoT3JiaXRQYXJ0aXRpb24gKk9QKSBub2V4Y2VwdDoKKyAgICAgT1BfY29weV9mcm9tX3Rv KE9QLCBPUDIpCisgICAgIHJldHVybiBPUDIKKyAKKy1jZGVmIE9QX3N0cmluZyhPcmJpdFBhcnRp dGlvbiAqT1ApIG5vZXhjZXB0CisrY2RlZiBPUF9zdHJpbmcoT3JiaXRQYXJ0aXRpb24gKk9QKQor IAorIGNkZWYgaW5saW5lIHZvaWQgT1BfY2xlYXIoT3JiaXRQYXJ0aXRpb24gKk9QKSBub2V4Y2Vw dDoKKyAgICAgY2RlZiBpbnQgaSwgbiA9IE9QLmRlZ3JlZQorQEAgLTI1NSw3ICsyNTUsNyBAQCBj ZGVmIFBhcnRpdGlvblN0YWNrICpQU19jb3B5KFBhcnRpdGlvblN0YWNrICpQUykgbm9leGNlcHQK KyAKKyBjZGVmIHZvaWQgUFNfZGVhbGxvYyhQYXJ0aXRpb25TdGFjayAqUFMpIG5vZXhjZXB0Cisg CistY2RlZiBQU19wcmludChQYXJ0aXRpb25TdGFjayAqUFMpIG5vZXhjZXB0CisrY2RlZiBQU19w cmludChQYXJ0aXRpb25TdGFjayAqUFMpCisgCisgY2RlZiB2b2lkIFBTX3VuaXRfcGFydGl0aW9u KFBhcnRpdGlvblN0YWNrICpQUykgbm9leGNlcHQKKyAKK0BAIC0yNjMsNyArMjYzLDcgQEAgY2Rl ZiBpbnQgUFNfZmlyc3Rfc21hbGxlc3QoUGFydGl0aW9uU3RhY2sgKlBTLCBiaXRzZXRfdCBiLCBp bnQgKnNlY29uZF9wb3M9Pykgbm8KKyAKKyBjZGVmIFBhcnRpdGlvblN0YWNrICpQU19mcm9tX2xp c3QobGlzdCBMKSBub2V4Y2VwdAorIAorLWNkZWYgbGlzdCBQU19zaW5nbGV0b25zKFBhcnRpdGlv blN0YWNrICogcGFydCkgbm9leGNlcHQKKytjZGVmIGxpc3QgUFNfc2luZ2xldG9ucyhQYXJ0aXRp b25TdGFjayAqIHBhcnQpCisgCisgY2RlZiBpbnQgUFNfYWxsX25ld19jZWxscyhQYXJ0aXRpb25T dGFjayAqUFMsIGJpdHNldF90Kiogbm9uc2luZ2xldG9uc19wdHIpIG5vZXhjZXB0CisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZi9kYXRhX3N0cnVjdHVy ZXMucHl4IGIvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZi9kYXRhX3N0cnVjdHVy ZXMucHl4CitpbmRleCBkMmRhOTc2YmM4Ny4uY2IyNWYyM2E0ZDMgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmL2RhdGFfc3RydWN0dXJlcy5weXgKKysrKyBi L3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wYXJ0bl9yZWYvZGF0YV9zdHJ1Y3R1cmVzLnB5eAor QEAgLTY2LDcgKzY2LDcgQEAgY2RlZiBpbmxpbmUgdm9pZCBPUF9kZWFsbG9jKE9yYml0UGFydGl0 aW9uICpPUCkgbm9leGNlcHQ6CisgICAgICAgICBzaWdfZnJlZShPUC5wYXJlbnQpCisgICAgICAg ICBzaWdfZnJlZShPUCkKKyAKKy1jZGVmIE9QX3N0cmluZyhPcmJpdFBhcnRpdGlvbiAqT1ApIG5v ZXhjZXB0OgorK2NkZWYgT1Bfc3RyaW5nKE9yYml0UGFydGl0aW9uICpPUCk6CisgICAgICIiIgor ICAgICBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIE9yYml0UGFydGl0aW9u LgorICAgICAiIiIKK0BAIC0yNjAsNyArMjYwLDcgQEAgY2RlZiBQYXJ0aXRpb25TdGFjayAqUFNf ZnJvbV9saXN0KGxpc3QgTCkgbm9leGNlcHQ6CisgICAgIFBTLmRlZ3JlZSA9IG4KKyAgICAgcmV0 dXJuIFBTCisgCistY2RlZiBQU19wcmludChQYXJ0aXRpb25TdGFjayAqUFMpIG5vZXhjZXB0Ogor K2NkZWYgUFNfcHJpbnQoUGFydGl0aW9uU3RhY2sgKlBTKToKKyAgICAgIiIiCisgICAgIFByaW50 IGEgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIFBTLgorICAgICAiIiIKK0BAIC0yNjgsNyArMjY4 LDcgQEAgY2RlZiBQU19wcmludChQYXJ0aXRpb25TdGFjayAqUFMpIG5vZXhjZXB0OgorICAgICBm b3IgaSBpbiByYW5nZShQUy5kZXB0aCArIDEpOgorICAgICAgICAgUFNfcHJpbnRfcGFydGl0aW9u KFBTLCBpKQorIAorLWNkZWYgUFNfcHJpbnRfcGFydGl0aW9uKFBhcnRpdGlvblN0YWNrICpQUywg aW50IGspIG5vZXhjZXB0OgorK2NkZWYgUFNfcHJpbnRfcGFydGl0aW9uKFBhcnRpdGlvblN0YWNr ICpQUywgaW50IGspOgorICAgICAiIiIKKyAgICAgUHJpbnQgdGhlIHBhcnRpdGlvbiBhdCBkZXB0 aCBrLgorICAgICAiIiIKK0BAIC0zODEsNyArMzgxLDcgQEAgY2RlZiBpbnQgUFNfZmluZF9lbGVt ZW50KFBhcnRpdGlvblN0YWNrICpQUywgYml0c2V0X3QgYiwgaW50IHgpIGV4Y2VwdCAtMToKKyAg ICAgICAgIGkgKz0gMQorICAgICByZXR1cm4gbG9jYXRpb24KKyAKKy1jZGVmIGxpc3QgUFNfc2lu Z2xldG9ucyhQYXJ0aXRpb25TdGFjayAqIHBhcnQpIG5vZXhjZXB0OgorK2NkZWYgbGlzdCBQU19z aW5nbGV0b25zKFBhcnRpdGlvblN0YWNrICogcGFydCk6CisgICAgICIiIgorICAgICBSZXR1cm4g dGhlIGxpc3Qgb2YgYWxsIHNpbmdsZXRvbnMgaW4gdGhlIFBhcnRpdGlvblN0YWNrLgorICAgICAi IiIKK0BAIC04MTgsNyArODE4LDcgQEAgY2RlZiBpbnQgU0NfY29weV9ub21hbGxvYyhTdGFiaWxp emVyQ2hhaW4gKlNDX2Rlc3QsIFN0YWJpbGl6ZXJDaGFpbiAqU0MsIGludCBsZXYKKyAgICAgICAg IG1lbWNweShTQ19kZXN0Lmdlbl9pbnZlcnNlc1tpXSwgU0MuZ2VuX2ludmVyc2VzW2ldLCBTQy5u dW1fZ2Vuc1tpXSpuICogc2l6ZW9mKGludCkgKQorICAgICByZXR1cm4gMAorIAorLWNkZWYgU0Nf cHJpbnRfbGV2ZWwoU3RhYmlsaXplckNoYWluICpTQywgaW50IGxldmVsKSBub2V4Y2VwdDoKKytj ZGVmIFNDX3ByaW50X2xldmVsKFN0YWJpbGl6ZXJDaGFpbiAqU0MsIGludCBsZXZlbCk6CisgICAg IGNkZWYgaW50IGksIGosIG4gPSBTQy5kZWdyZWUKKyAgICAgaWYgbGV2ZWwgPCBTQy5iYXNlX3Np emU6CisgICAgICAgICBwcmludCgnLyBsZXZlbCB7fScuZm9ybWF0KGxldmVsKSkKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50X2dlbmVy aWMucHhkIGIvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZjIvcmVmaW5lbWVudF9n ZW5lcmljLnB4ZAoraW5kZXggY2Y5NjRiZmQxN2MuLjliYTY2Y2FmZjcwIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZjIvcmVmaW5lbWVudF9nZW5lcmljLnB4 ZAorKysrIGIvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZjIvcmVmaW5lbWVudF9n ZW5lcmljLnB4ZAorQEAgLTIzLDcgKzIzLDcgQEAgY2RlZiBleHRlcm4gZnJvbSAqOgorIAorIGNk ZWYgdHVwbGUgUFNfcmVmaW5lbWVudChQYXJ0aXRpb25TdGFjayAqIHBhcnQsIGxvbmcgKnJlZmlu ZV92YWxzLCBsb25nICpiZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJlZ2lu LCBpbnQgZW5kLAorLSAgICAgICAgICAgICAgICAgICAgICAgICBiaW50ICogY2FuZF9pbml0aWFs aXplZCwgYmludCAqY2hhbmdlZF9wYXJ0aXRpb24pIG5vZXhjZXB0CisrICAgICAgICAgICAgICAg ICAgICAgICAgIGJpbnQgKiBjYW5kX2luaXRpYWxpemVkLCBiaW50ICpjaGFuZ2VkX3BhcnRpdGlv bikKKyAKKyBjZGVmIGNsYXNzIF9CZXN0VmFsU3RvcmU6CisgICAgIGNkZWYgaW50IGRlZmF1bHRf ZGF0YV9sZW5ndGgKK0BAIC0zOSw3ICszOSw3IEBAIGNkZWYgY2xhc3MgTGFiZWxsZWRCcmFuY2hp bmc6CisgICAgIGNkZWYgR2FwRWxlbWVudCBncm91cCwgQ2xvc3VyZUdyb3VwCisgICAgIGNkZWYg UGFyZW50IHN5bV9ncAorICAgICBjZGVmIGJpbnQgaGFzX2VtcHR5X2ludGVyc2VjdGlvbihzZWxm LCBQYXJ0aXRpb25TdGFjayAqIHBhcnQpIG5vZXhjZXB0CistICAgIGNwZGVmIGFkZF9nZW4oc2Vs ZiwgR2FwRWxlbWVudF9QZXJtdXRhdGlvbiBnZW4pIG5vZXhjZXB0CisrICAgIGNwZGVmIGFkZF9n ZW4oc2VsZiwgR2FwRWxlbWVudF9QZXJtdXRhdGlvbiBnZW4pCisgCisgY2RlZiBjbGFzcyBQYXJ0 aXRpb25SZWZpbmVtZW50X2dlbmVyaWM6CisgICAgIGNkZWYgUGFydGl0aW9uU3RhY2sgKiBfcGFy dAorQEAgLTY1LDcgKzY1LDcgQEAgY2RlZiBjbGFzcyBQYXJ0aXRpb25SZWZpbmVtZW50X2dlbmVy aWM6CisgICAgICAjIG1ldGhvZHMgd2hpY2ggaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBkZXJp dmVkIGNsYXNzZXMKKyAgICAgY2RlZiBiaW50IF9pbm5lcl9taW5fKHNlbGYsIGludCBwb3MsIGJp bnQqIGlubmVyX2dyb3VwX2NoYW5nZWQpIG5vZXhjZXB0CisgICAgIGNkZWYgYmludCBfcmVmaW5l KHNlbGYsIGJpbnQgKnBhcnRfY2hhbmdlZCwgYmludCBpbm5lcl9ncm91cF9jaGFuZ2VkLCBiaW50 IGZpcnN0X3N0ZXApIG5vZXhjZXB0CistICAgIGNkZWYgdHVwbGUgX3N0b3JlX3N0YXRlXyhzZWxm KSBub2V4Y2VwdAorKyAgICBjZGVmIHR1cGxlIF9zdG9yZV9zdGF0ZV8oc2VsZikKKyAgICAgY2Rl ZiB2b2lkIF9yZXN0b3JlX3N0YXRlXyhzZWxmLCB0dXBsZSBhY3Rfc3RhdGUpIG5vZXhjZXB0Cisg ICAgIGNkZWYgdm9pZCBfc3RvcmVfYmVzdF8oc2VsZikgbm9leGNlcHQKKyAgICAgY2RlZiBiaW50 IF9taW5pbWl6YXRpb25fYWxsb3dlZF9vbl9jb2woc2VsZiwgaW50IHBvcykgbm9leGNlcHQKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50 X2dlbmVyaWMucHl4IGIvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZjIvcmVmaW5l bWVudF9nZW5lcmljLnB5eAoraW5kZXggNGE3MjM4NzNhZTcuLjI2MWQxOTg3ODk3IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZjIvcmVmaW5lbWVudF9nZW5l cmljLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZjIvcmVmaW5l bWVudF9nZW5lcmljLnB5eAorQEAgLTE5MSw3ICsxOTEsNyBAQCBmcm9tIHNhZ2UuZGF0YV9zdHJ1 Y3R1cmVzLmJpdHNldF9iYXNlIGNpbXBvcnQgKgorIAorIGNkZWYgdHVwbGUgUFNfcmVmaW5lbWVu dChQYXJ0aXRpb25TdGFjayAqIHBhcnQsIGxvbmcgKnJlZmluZV92YWxzLCBsb25nICpiZXN0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmVnaW4sIGludCBlbmQsCistICAgICAgICAg ICAgICAgICAgICAgICAgIGJpbnQgKiBjYW5kX2luaXRpYWxpemVkLCBiaW50ICpjaGFuZ2VkX3Bh cnRpdGlvbikgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQgKiBjYW5k X2luaXRpYWxpemVkLCBiaW50ICpjaGFuZ2VkX3BhcnRpdGlvbik6CisgICAgICIiIgorICAgICBS ZWZpbmUgdGhlIHBhcnRpdGlvbiBzdGFjayBieSB0aGUgdmFsdWVzIGdpdmVuIGJ5IGBgcmVmaW5l X3ZhbHNgYC4KKyAgICAgV2UgYWxzbyBjb21wYXJlIG91ciBhY3R1YWwgcmVmaW5lbWVudCByZXN1 bHQgd2l0aCB0aGUgdmVjdG9yIGBgYmVzdGBgIGluIHRoZQorQEAgLTM1Niw3ICszNTYsNyBAQCBj ZGVmIGNsYXNzIExhYmVsbGVkQnJhbmNoaW5nOgorICAgICAgICAgc2lnX2ZyZWUoc2VsZi5mYXRo ZXIpCisgICAgICAgICBzaWdfZnJlZShzZWxmLmFjdF9wZXJtKQorIAorLSAgICBjcGRlZiBhZGRf Z2VuKHNlbGYsIEdhcEVsZW1lbnRfUGVybXV0YXRpb24gZ2VuKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgYWRkX2dlbihzZWxmLCBHYXBFbGVtZW50X1Blcm11dGF0aW9uIGdlbik6CisgICAgICAgICBy IiIiCisgICAgICAgICBBZGQgYSBmdXJ0aGVyIGdlbmVyYXRvciB0byB0aGUgZ3JvdXAgYW5kCisg ICAgICAgICB1cGRhdGUgdGhlIGNvbXBsZXRlIGxhYmVsZWQgYnJhbmNoaW5nLgorQEAgLTUyNCw3 ICs1MjQsNyBAQCBjZGVmIGNsYXNzIFBhcnRpdGlvblJlZmluZW1lbnRfZ2VuZXJpYzoKKyAgICAg ICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVm IHR1cGxlIF9zdG9yZV9zdGF0ZV8oc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgdHVwbGUgX3N0 b3JlX3N0YXRlXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFN0b3JlIHRoZSBjdXJy ZW50IHN0YXRlIG9mIHRoZSBub2RlIHRvIGEgdHVwbGUsIHN1Y2ggdGhhdCBpdCBjYW4gYmUKKyAg ICAgICAgIHJlc3RvcmVkIGJ5IDptZXRoOmBfcmVzdG9yZV9zdGF0ZV9gLgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weGQgYi9zcmMvc2Fn ZS9ncm91cHMvcGVybV9ncHMvcGVybWdyb3VwX2VsZW1lbnQucHhkCitpbmRleCAyZTNmMjIxNTBl Ny4uMjFiNTA5ZjA2ZDEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGVy bWdyb3VwX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGVybWdy b3VwX2VsZW1lbnQucHhkCitAQCAtOCwyMiArOCwyMiBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9u R3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgY2RlZiBpbnQg bgorICAgICBjZGVmIGludCBwZXJtX2J1ZlsxNV0gIyB0byBhdm9pZCBtYWxsb2MgZm9yIHNtYWxs IGVsZW1lbnRzCisgICAgIGNkZWYgR2FwRWxlbWVudCBfbGliZ2FwCistICAgIGNkZWYgUGVybXV0 YXRpb25Hcm91cEVsZW1lbnQgX25ld19jKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX2FsbG9j KHNlbGYsIGludCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX3NldF9pZGVudGl0eShzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfc2V0X2xpc3RfaW1hZ2VzKHNlbGYsIHYsIGJpbnQgY29udmVydCkg bm9leGNlcHQKKy0gICAgY3BkZWYgX3NldF9saWJnYXAoc2VsZiwgR2FwRWxlbWVudCBwKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfc2V0X2xpc3RfY3ljbGVzKHNlbGYsIGMsIGJpbnQgY29udmVydCkg bm9leGNlcHQKKy0gICAgY3BkZWYgX3NldF9zdHJpbmcoc2VsZiwgc3RyIHMpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9zZXRfcGVybXV0YXRpb25fZ3JvdXBfZWxlbWVudChzZWxmLCBQZXJtdXRhdGlv bkdyb3VwRWxlbWVudCBwLCBiaW50IGNvbnZlcnQpIG5vZXhjZXB0CisrICAgIGNkZWYgUGVybXV0 YXRpb25Hcm91cEVsZW1lbnQgX25ld19jKHNlbGYpCisrICAgIGNkZWYgX2FsbG9jKHNlbGYsIGlu dCkKKysgICAgY3BkZWYgX3NldF9pZGVudGl0eShzZWxmKQorKyAgICBjcGRlZiBfc2V0X2xpc3Rf aW1hZ2VzKHNlbGYsIHYsIGJpbnQgY29udmVydCkKKysgICAgY3BkZWYgX3NldF9saWJnYXAoc2Vs ZiwgR2FwRWxlbWVudCBwKQorKyAgICBjcGRlZiBfc2V0X2xpc3RfY3ljbGVzKHNlbGYsIGMsIGJp bnQgY29udmVydCkKKysgICAgY3BkZWYgX3NldF9zdHJpbmcoc2VsZiwgc3RyIHMpCisrICAgIGNw ZGVmIF9zZXRfcGVybXV0YXRpb25fZ3JvdXBfZWxlbWVudChzZWxmLCBQZXJtdXRhdGlvbkdyb3Vw RWxlbWVudCBwLCBiaW50IGNvbnZlcnQpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVy KSBub2V4Y2VwdAorLSAgICBjcGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfdHJhbnNwb3Nl X2xlZnQoc2VsZiwgaiwgaykgbm9leGNlcHQKKy0gICAgY3BkZWYgUGVybXV0YXRpb25Hcm91cEVs ZW1lbnQgX2dlbmVyYXRlX25ldyhzZWxmLCBsaXN0IG5ld19saXN0KSBub2V4Y2VwdAorLSAgICBj cGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2VuZXJhdGVfbmV3X0dBUChzZWxmLCBvbGQp IG5vZXhjZXB0CistICAgIGNwZGVmIF9nYXBfbGlzdChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBkb21haW4oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisr ICAgIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF90cmFuc3Bvc2VfbGVmdChzZWxmLCBq LCBrKQorKyAgICBjcGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2VuZXJhdGVfbmV3KHNl bGYsIGxpc3QgbmV3X2xpc3QpCisrICAgIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF9n ZW5lcmF0ZV9uZXdfR0FQKHNlbGYsIG9sZCkKKysgICAgY3BkZWYgX2dhcF9saXN0KHNlbGYpCisr ICAgIGNwZGVmIGRvbWFpbihzZWxmKQorICAgICBjZGVmIHB1YmxpYyBfU2FnZU9iamVjdF9fY3Vz dG9tX25hbWUKKy0gICAgY3BkZWYgbGlzdCBfYWN0X29uX2xpc3Rfb25fcG9zaXRpb24oc2VsZiwg bGlzdCB4KSBub2V4Y2VwdAorLSAgICBjcGRlZiBDbG9uYWJsZUludEFycmF5IF9hY3Rfb25fYXJy YXlfb25fcG9zaXRpb24oc2VsZiwgQ2xvbmFibGVJbnRBcnJheSB4KSBub2V4Y2VwdAorLSAgICBj cGRlZiBFVHVwbGUgX2FjdF9vbl9ldHVwbGVfb25fcG9zaXRpb24oc2VsZiwgRVR1cGxlIHgpIG5v ZXhjZXB0CisrICAgIGNwZGVmIGxpc3QgX2FjdF9vbl9saXN0X29uX3Bvc2l0aW9uKHNlbGYsIGxp c3QgeCkKKysgICAgY3BkZWYgQ2xvbmFibGVJbnRBcnJheSBfYWN0X29uX2FycmF5X29uX3Bvc2l0 aW9uKHNlbGYsIENsb25hYmxlSW50QXJyYXkgeCkKKysgICAgY3BkZWYgRVR1cGxlIF9hY3Rfb25f ZXR1cGxlX29uX3Bvc2l0aW9uKHNlbGYsIEVUdXBsZSB4KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weXggYi9zcmMvc2FnZS9ncm91cHMv cGVybV9ncHMvcGVybWdyb3VwX2VsZW1lbnQucHl4CitpbmRleCA1ODY4MDUyYTg3Ni4uMjgzMWJk MDdjZmMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGVybWdyb3VwX2Vs ZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGVybWdyb3VwX2VsZW1l bnQucHl4CitAQCAtNTEzLDcgKzUxMyw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVs ZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgICAgIGlmIHAgbm90 IGluIFA6CisgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3Blcm11dGF0aW9uICVz IG5vdCBpbiAlcycgJSAoZywgcGFyZW50KSkKKyAKKy0gICAgY3BkZWYgX3NldF9pZGVudGl0eShz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NldF9pZGVudGl0eShzZWxmKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC01MzIsNyArNTMyLDcgQEAgY2RlZiBjbGFz cyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6Cisg ICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLm4pOgorICAgICAgICAgICAgIHNlbGYucGVybVtp XSA9IGkKKyAKKy0gICAgY3BkZWYgX3NldF9saXN0X2ltYWdlcyhzZWxmLCB2LCBiaW50IGNvbnZl cnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc2V0X2xpc3RfaW1hZ2VzKHNlbGYsIHYsIGJpbnQg Y29udmVydCk6CisgICAgICAgICByIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNTY2LDcg KzU2Niw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRp dmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uodm4sIHNlbGYubik6Cisg ICAgICAgICAgICAgc2VsZi5wZXJtW2ldID0gaQorIAorLSAgICBjcGRlZiBfc2V0X2xpYmdhcChz ZWxmLCBHYXBFbGVtZW50IHApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc2V0X2xpYmdhcChzZWxm LCBHYXBFbGVtZW50IHApOgorICAgICAgICAgciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAg LTYxNSw3ICs2MTUsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRp cGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAKKyAgICAgICAgIHNlbGYuX2xpYmdhcCA9IHAKKyAK Ky0gICAgY3BkZWYgX3NldF9wZXJtdXRhdGlvbl9ncm91cF9lbGVtZW50KHNlbGYsIFBlcm11dGF0 aW9uR3JvdXBFbGVtZW50IHAsIGJpbnQgY29udmVydCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9z ZXRfcGVybXV0YXRpb25fZ3JvdXBfZWxlbWVudChzZWxmLCBQZXJtdXRhdGlvbkdyb3VwRWxlbWVu dCBwLCBiaW50IGNvbnZlcnQpOgorICAgICAgICAgciIiIgorICAgICAgICAgVEVTVFM6OgorIAor QEAgLTY2OSw3ICs2NjksNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11 bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFu Z2UocC5uLCBzZWxmLm4pOgorICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJtW2ldID0gaQor IAorLSAgICBjcGRlZiBfc2V0X2xpc3RfY3ljbGVzKHNlbGYsIGMsIGJpbnQgY29udmVydCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9zZXRfbGlzdF9jeWNsZXMoc2VsZiwgYywgYmludCBjb252ZXJ0 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC03MTYsNyArNzE2LDcg QEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3Vw RWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlk IGxpc3Qgb2YgY3ljbGVzIHRvIGluaXRpYWxpemUgYSBwZXJtdXRhdGlvbiIpCisgICAgICAgICAg ICAgICAgIHNlbGYucGVybVtqXSA9IHRbMF0gLSAxCisgCistICAgIGNwZGVmIF9zZXRfc3RyaW5n KHNlbGYsIHN0ciBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NldF9zdHJpbmcoc2VsZiwgc3Ry IHMpOgorICAgICAgICAgciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTgwNyw3ICs4MDcs NyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3Jv dXBFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIG1ha2VfcGVybWdyb3Vw X2VsZW1lbnRfdjIsIChzZWxmLl9wYXJlbnQsIHNlbGYuZG9tYWluKCksIHNlbGYuX3BhcmVudC5k b21haW4oKSkKKyAKKy0gICAgY2RlZiBfYWxsb2Moc2VsZiwgaW50IG4pIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9hbGxvYyhzZWxmLCBpbnQgbik6CisgICAgICAgICBpZiBuIDwgMTYgYW5kIHNlbGYu cGVybSA9PSBOVUxMOgorICAgICAgICAgICAgIHNlbGYucGVybSA9IHNlbGYucGVybV9idWYKKyAg ICAgICAgIGVsaWYgc2VsZi5wZXJtID09IE5VTEw6CitAQCAtODE3LDcgKzgxNyw3IEBAIGNkZWYg Y2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQp OgorIAorICAgICAgICAgc2VsZi5uID0gbgorIAorLSAgICBjZGVmIFBlcm11dGF0aW9uR3JvdXBF bGVtZW50IF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBQZXJtdXRhdGlvbkdyb3Vw RWxlbWVudCBfbmV3X2Moc2VsZik6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikK KyAgICAgICAgIGNkZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgb3RoZXIgPSB0Ll9fbmV3X18o dCkKKyAgICAgICAgIGlmIEhBU19ESUNUSU9OQVJZKHNlbGYpOgorQEAgLTk3NSw3ICs5NzUsNyBA QCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuY3ljbGVzKClbaV0K KyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICByIiIi CisgICAgICAgICBDb21wYXJlIGdyb3VwIGVsZW1lbnRzIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAu CisgCitAQCAtMTA4NCw3ICsxMDg0LDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxl bWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICAgcmV0dXJuIGZyb21fZ2FwW2ldCisgCistICAgIGNwZGVmIGxpc3QgX2Fj dF9vbl9saXN0X29uX3Bvc2l0aW9uKHNlbGYsIGxpc3QgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IGxpc3QgX2FjdF9vbl9saXN0X29uX3Bvc2l0aW9uKHNlbGYsIGxpc3QgeCk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm5zIHRoZSByaWdodCBhY3Rpb24gb2YgYGBzZWxmYGAgb24gdGhl IGxpc3QgYGB4YGAuIFRoaXMgaXMgdGhlCisgICAgICAgICBhY3Rpb24gb24gcG9zaXRpb25zLgor QEAgLTExMTIsNyArMTExMiw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQo TXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgYXNzZXJ0IGxlbih4KSA9PSBz ZWxmLm4sICclcyBhbmQgJXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyUoc2VsZiwgeCkK KyAgICAgICAgIHJldHVybiBbIHhbc2VsZi5wZXJtW2ldXSBmb3IgaSBpbiByYW5nZShzZWxmLm4p IF0KKyAKKy0gICAgY3BkZWYgQ2xvbmFibGVJbnRBcnJheSBfYWN0X29uX2FycmF5X29uX3Bvc2l0 aW9uKHNlbGYsIENsb25hYmxlSW50QXJyYXkgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIENsb25h YmxlSW50QXJyYXkgX2FjdF9vbl9hcnJheV9vbl9wb3NpdGlvbihzZWxmLCBDbG9uYWJsZUludEFy cmF5IHgpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyB0aGUgcmlnaHQgYWN0aW9u IG9mIGBgc2VsZmBgIG9uIHRoZSBDbG9uYWJsZUludEFycmF5CisgICAgICAgICBgYHhgYC4gVGhp cyBpcyB0aGUgYWN0aW9uIG9uIHBvc2l0aW9ucy4KK0BAIC0xMTM2LDcgKzExMzYsNyBAQCBjZGVm IGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50 KToKKyAgICAgICAgIHkuc2V0X2ltbXV0YWJsZSgpCisgICAgICAgICByZXR1cm4geQorIAorLSAg ICBjcGRlZiBFVHVwbGUgX2FjdF9vbl9ldHVwbGVfb25fcG9zaXRpb24oc2VsZiwgRVR1cGxlIHgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFVHVwbGUgX2FjdF9vbl9ldHVwbGVfb25fcG9zaXRpb24o c2VsZiwgRVR1cGxlIHgpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByaWdo dCBhY3Rpb24gb2YgdGhpcyBwZXJtdXRhdGlvbiBvbiB0aGUgRVR1cGxlIGBgeGBgLgorIAorQEAg LTExNzYsNyArMTE3Niw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVs dGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgcXNvcnQocmVzdWx0Ll9kYXRhLCBy ZXN1bHQuX25vbnplcm8sIDIgKiBzaXplb2YoaW50KSwgZXR1cGxlX2luZGV4X2NtcCkKKyAgICAg ICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgX2FjdF9vbl8oc2VsZiwgeCwgYmludCBz ZWxmX29uX2xlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50 IHNlbGZfb25fbGVmdCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJlc3Vs dCBvZiB0aGUgYWN0aW9uIG9mIGBgc2VsZmBgIG9uIGBgeGBgLgorIAorQEAgLTEyOTYsNyArMTI5 Niw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVH cm91cEVsZW1lbnQpOgorIAorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChs ZWZ0LCByaWdodCwgb3BlcmF0b3IubXVsKQorIAorLSAgICBjcGRlZiBQZXJtdXRhdGlvbkdyb3Vw RWxlbWVudCBfdHJhbnNwb3NlX2xlZnQoc2VsZiwgaiwgaykgbm9leGNlcHQ6CisrICAgIGNwZGVm IFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF90cmFuc3Bvc2VfbGVmdChzZWxmLCBqLCBrKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0aGUgdHJhbnNwb3Np dGlvbiBgKGosIGspYCB3aXRoIGBgc2VsZmBgLgorIAorQEAgLTEzMjksNyArMTMyOSw3IEBAIGNk ZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1l bnQpOgorICAgICAgICAgcHJvZC5wZXJtW2ogLSAxXSwgcHJvZC5wZXJtW2sgLSAxXSA9IHNlbGYu cGVybVtrIC0gMV0sIHNlbGYucGVybVtqIC0gMV0KKyAgICAgICAgIHJldHVybiBwcm9kCisgCist ICAgIGNwZGVmIF9tdWxfKGxlZnQsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxf KGxlZnQsIF9yaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitA QCAtMTM0Niw3ICsxMzQ2LDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChN dWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAgICAgcHJvZC5wZXJtW2ldID0g cmlnaHQucGVybVtsZWZ0LnBlcm1baV1dCisgICAgICAgICByZXR1cm4gcHJvZAorIAorLSAgICBj cGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2VuZXJhdGVfbmV3KHNlbGYsIGxpc3Qgdikg bm9leGNlcHQ6CisrICAgIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF9nZW5lcmF0ZV9u ZXcoc2VsZiwgbGlzdCB2KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdlbmVyYXRlIGEgbmV3 IHBlcm11dGF0aW9uIGdyb3VwIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBwYXJlbnQKKyAgICAgICAg IGFzIGBgc2VsZmBgIGZyb20gYGB2YGAuCitAQCAtMTM2NCw3ICsxMzY0LDcgQEAgY2RlZiBjbGFz cyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6Cisg ICAgICAgICBuZXcuX3NldF9saXN0X2ltYWdlcyh2LCBGYWxzZSkKKyAgICAgICAgIHJldHVybiBu ZXcKKyAKKy0gICAgY3BkZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgX2dlbmVyYXRlX25ld19H QVAoc2VsZiwgbHN0X2luKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUGVybXV0YXRpb25Hcm91cEVs ZW1lbnQgX2dlbmVyYXRlX25ld19HQVAoc2VsZiwgbHN0X2luKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIEdlbmVyYXRlIGEgbmV3IHBlcm11dGF0aW9uIGdyb3VwIGVsZW1lbnQgd2l0aCB0aGUg c2FtZSBwYXJlbnQKKyAgICAgICAgIGFzIGBgc2VsZmBgIGZyb20gdGhlIEdBUCBsaXN0IGBgbHN0 X2luYGAuCitAQCAtMTQxNSw3ICsxNDE1LDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3Vw RWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAgICAgaW52LnBl cm1bc2VsZi5wZXJtW2ldXSA9IGkKKyAgICAgICAgIHJldHVybiBpbnYKKyAKKy0gICAgY3BkZWYg X2dhcF9saXN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2FwX2xpc3Qoc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm5zIHRoaXMgcGVybXV0YXRpb24gaW4gbGlzdCBu b3RhdGlvbiBjb21wYXRpYmxlIHdpdGggdGhlCisgICAgICAgICBHQVAgbnVtYmVyaW5nLgorQEAg LTE0NjMsNyArMTQ2Myw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVs dGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgZnJvbSBzYWdlLmNvbWJpbmF0LnBl cm11dGF0aW9uIGltcG9ydCBQZXJtdXRhdGlvbgorICAgICAgICAgcmV0dXJuIFBlcm11dGF0aW9u KHNlbGYuX2dhcF9saXN0KCkpLmN5Y2xlX3N0cmluZygpCisgCistICAgIGNwZGVmIGRvbWFpbihz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZG9tYWluKHNlbGYpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBkb21haW4gb2YgYGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvZ3JvdXBzL3NlbWltb25vbWlhbF90cmFuc2Zvcm1hdGlvbnMvc2VtaW1vbm9taWFs X3RyYW5zZm9ybWF0aW9uLnB4ZCBiL3NyYy9zYWdlL2dyb3Vwcy9zZW1pbW9ub21pYWxfdHJhbnNm b3JtYXRpb25zL3NlbWltb25vbWlhbF90cmFuc2Zvcm1hdGlvbi5weGQKK2luZGV4IDE4MDgxMjlj NGI3Li5iZDRmNjJkNDk3ZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9zZW1pbW9ub21p YWxfdHJhbnNmb3JtYXRpb25zL3NlbWltb25vbWlhbF90cmFuc2Zvcm1hdGlvbi5weGQKKysrKyBi L3NyYy9zYWdlL2dyb3Vwcy9zZW1pbW9ub21pYWxfdHJhbnNmb3JtYXRpb25zL3NlbWltb25vbWlh bF90cmFuc2Zvcm1hdGlvbi5weGQKK0BAIC00LDUgKzQsNSBAQCBjZGVmIGNsYXNzIFNlbWltb25v bWlhbFRyYW5zZm9ybWF0aW9uKE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgY2Rl ZiB0dXBsZSB2CisgICAgIGNkZWYgb2JqZWN0IHBlcm0sIGFscGhhCisgCistICAgIGNkZWYgX25l d19jKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2Vw dAorKyAgICBjZGVmIF9uZXdfYyhzZWxmKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncm91cHMvc2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0aW9u cy9zZW1pbW9ub21pYWxfdHJhbnNmb3JtYXRpb24ucHl4IGIvc3JjL3NhZ2UvZ3JvdXBzL3NlbWlt b25vbWlhbF90cmFuc2Zvcm1hdGlvbnMvc2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0aW9uLnB5eAor aW5kZXggNTM2ODM0MGM5OGYuLmJhYWVmYTE5NTBlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3Jv dXBzL3NlbWltb25vbWlhbF90cmFuc2Zvcm1hdGlvbnMvc2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0 aW9uLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JvdXBzL3NlbWltb25vbWlhbF90cmFuc2Zvcm1hdGlv bnMvc2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0aW9uLnB5eAorQEAgLTEzNSw3ICsxMzUsNyBAQCBj ZGVmIGNsYXNzIFNlbWltb25vbWlhbFRyYW5zZm9ybWF0aW9uKE11bHRpcGxpY2F0aXZlR3JvdXBF bGVtZW50KToKKyAgICAgICAgIHNlbGYucGVybSA9IHBlcm0KKyAgICAgICAgIHNlbGYuYWxwaGEg PSBhbHBoYQorIAorLSAgICBjZGVmIF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf bmV3X2Moc2VsZik6CisgICAgICAgICAjIENyZWF0ZSBhIGNvcHkgb2Ygc2VsZi4KKyAgICAgICAg IGNkZWYgU2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24geAorICAgICAgICAgeCA9IFNlbWltb25v bWlhbFRyYW5zZm9ybWF0aW9uLl9fbmV3X18oU2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24pCitA QCAtMTczLDcgKzE3Myw3IEBAIGNkZWYgY2xhc3MgU2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24o TXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gaGFzaChzZWxmLnYpICsgaGFzaChzZWxmLnBlcm0pICsgaGFzaChzZWxmLmdldF9hdXRvbSgp KQorIAorLSAgICBjcGRlZiBfbXVsXyhsZWZ0LCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfbXVsXyhsZWZ0LCBfcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgTXVsdGlwbGlj YXRpb24gb2YgZWxlbWVudHMuCisgCitAQCAtMjQ3LDcgKzI0Nyw3IEBAIGNkZWYgY2xhc3MgU2Vt aW1vbm9taWFsVHJhbnNmb3JtYXRpb24oTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAg ICAgICAgcmV0dXJuICIoJXM7ICVzLCAlcykiJShzZWxmLnYsIHNlbGYucGVybS5jeWNsZV9zdHJp bmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5nZXRfYXV0b20oKSkK KyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIF9yaWdodCwgaW50IG9wKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIF9yaWdodCwgaW50IG9wKToKKyAgICAgICAgICIi IgorICAgICAgICAgQ29tcGFyZSBncm91cCBlbGVtZW50cyBgYHNlbGZgYCBhbmQgYGByaWdodGBg LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2ludGVyYWN0cy9saWJyYXJ5X2N5dGhvbi5weXgg Yi9zcmMvc2FnZS9pbnRlcmFjdHMvbGlicmFyeV9jeXRob24ucHl4CitpbmRleCBhMmIzNjQ4OTE2 NS4uMzdlNzVhMTZlN2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9pbnRlcmFjdHMvbGlicmFyeV9j eXRob24ucHl4CisrKysgYi9zcmMvc2FnZS9pbnRlcmFjdHMvbGlicmFyeV9jeXRob24ucHl4CitA QCAtMTYsNyArMTYsNyBAQCBBVVRIT1JTOgorICMqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIAorIAor LWNwZGVmIGp1bGlhKGZmX2osIHosIGludCBpdGVyYXRpb25zKSBub2V4Y2VwdDoKKytjcGRlZiBq dWxpYShmZl9qLCB6LCBpbnQgaXRlcmF0aW9ucyk6CisgICAgICIiIgorICAgICBIZWxwZXIgZnVu Y3Rpb24gZm9yIHRoZSBKdWxpYSBGcmFjdGFsIGludGVyYWN0IGV4YW1wbGUuCisgCitAQCAtNDQs NyArNDQsNyBAQCBjcGRlZiBqdWxpYShmZl9qLCB6LCBpbnQgaXRlcmF0aW9ucykgbm9leGNlcHQ6 CisgICAgIHJldHVybiB6CisgCisgCistY3BkZWYgbWFuZGVsKGZmX20sIHosIGludCBpdGVyYXRp b25zKSBub2V4Y2VwdDoKKytjcGRlZiBtYW5kZWwoZmZfbSwgeiwgaW50IGl0ZXJhdGlvbnMpOgor ICAgICAiIiIKKyAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgTWFuZGVsYnJvdCBGcmFjdGFs IGludGVyYWN0IGV4YW1wbGUuCisgCitAQCAtNzMsNyArNzMsNyBAQCBjcGRlZiBtYW5kZWwoZmZf bSwgeiwgaW50IGl0ZXJhdGlvbnMpIG5vZXhjZXB0OgorICAgICByZXR1cm4gegorIAorIAorLWNw ZGVmIGNlbGx1bGFyKHJ1bGUsIGludCBOKSBub2V4Y2VwdDoKKytjcGRlZiBjZWxsdWxhcihydWxl LCBpbnQgTik6CisgICAgICIiIgorICAgICBDeXRob25pemVkIGhlbHBlciBmdW5jdGlvbiBmb3Ig dGhlIGNlbGx1bGFyX2F1dG9tYXRhIGZyYWN0YWwuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bGZ1bmN0aW9ucy96ZXJvX3N1bXMucHl4IGIvc3JjL3NhZ2UvbGZ1bmN0aW9ucy96ZXJvX3N1bXMu cHl4CitpbmRleCA0NmY4NGQ2ZjEyZC4uYzVhNDI1YjQ0MjkgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9sZnVuY3Rpb25zL3plcm9fc3Vtcy5weXgKKysrKyBiL3NyYy9zYWdlL2xmdW5jdGlvbnMvemVy b19zdW1zLnB5eAorQEAgLTExMDksNyArMTEwOSw3IEBAIGNkZWYgY2xhc3MgTEZ1bmN0aW9uWmVy b1N1bV9FbGxpcHRpY0N1cnZlKExGdW5jdGlvblplcm9TdW1fYWJzdHJhY3QpOgorICAgICAgICAg bG9ncCA9IGNfbG9nKHApCisgICAgICAgICByZXR1cm4gLSh0IC0gbG9ncCkgKiAobG9ncCAvIHAp ICogYXAKKyAKKy0gICAgY3BkZWYgX3plcm9zdW1fc2luY3NxdWFyZWRfZmFzdChzZWxmLCBEZWx0 YT0xLCBiYWRfcHJpbWVzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfemVyb3N1bV9zaW5j c3F1YXJlZF9mYXN0KHNlbGYsIERlbHRhPTEsIGJhZF9wcmltZXM9Tm9uZSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBBIGZhc3RlciBjeXRob25pemVkIGltcGxlbWVudGF0aW9uIG9mIHNlbGYu X3plcm9zdW1fc2luY3NxdWFyZWQoKS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2Vj bC5weXggYi9zcmMvc2FnZS9saWJzL2VjbC5weXgKK2luZGV4IGYyNjY3ZDljZWNhLi4xY2MzOGEz YWIzYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvZWNsLnB5eAorKysrIGIvc3JjL3NhZ2Uv bGlicy9lY2wucHl4CitAQCAtMjg5LDcgKzI4OSw3IEBAIGRlZiBpbml0X2VjbCgpOgorICAgICBl Y2xfaGFzX2Jvb3RlZCA9IDEKKyAKKyAKKy1jZGVmIGVjbF9zdHJpbmdfdG9fcHl0aG9uKGNsX29i amVjdCBzKSBub2V4Y2VwdDoKKytjZGVmIGVjbF9zdHJpbmdfdG9fcHl0aG9uKGNsX29iamVjdCBz KToKKyAgICAgaWYgYmludF9iYXNlX3N0cmluZ19wKHMpOgorICAgICAgICAgcmV0dXJuIGNoYXJf dG9fc3RyKGVjbF9iYXNlX3N0cmluZ19wb2ludGVyX3NhZmUocykpCisgICAgIGVsc2U6CitAQCAt NDkyLDcgKzQ5Miw3IEBAIGNkZWYgY2xfb2JqZWN0IHB5dGhvbl90b19lY2wocHlvYmosIGJpbnQg cmVhZF9zdHJpbmdzKSBleGNlcHQgTlVMTDoKKyAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiVW5p bXBsZW1lbnRlZCB0eXBlIGZvciBweXRob25fdG9fZWNsIikKKyAKKyAKKy1jZGVmIGVjbF90b19w eXRob24oY2xfb2JqZWN0IG8pIG5vZXhjZXB0OgorK2NkZWYgZWNsX3RvX3B5dGhvbihjbF9vYmpl Y3Qgbyk6CisgICAgIGNkZWYgY2xfb2JqZWN0IHMKKyAgICAgY2RlZiBJbnRlZ2VyIE4KKyAgICAg IyBjb252ZXJzaW9ucyBmcm9tIGFuIGVjbCBvYmplY3QgdG8gYSBweXRob24gb2JqZWN0LgorQEAg LTEzNDgsMTMgKzEzNDgsMTMgQEAgY2RlZiBjbGFzcyBFY2xMaXN0SXRlcmF0b3I6CisgICAgICAg ICByZXR1cm4gcgorIAorICMgaW5wdXQ6IGEgY2wtb2JqZWN0LiBPdXRwdXQ6IEVjbE9iamVjdCB3 cmFwcGluZyB0aGF0LgorLWNkZWYgRWNsT2JqZWN0IGVjbF93cmFwKGNsX29iamVjdCBvKSBub2V4 Y2VwdDoKKytjZGVmIEVjbE9iamVjdCBlY2xfd3JhcChjbF9vYmplY3Qgbyk6CisgICAgIGNkZWYg RWNsT2JqZWN0IG9iaiA9IEVjbE9iamVjdC5fX25ld19fKEVjbE9iamVjdCkKKyAgICAgb2JqLnNl dF9vYmoobykKKyAgICAgcmV0dXJuIG9iagorIAorICMgY29udmVuaWVuY2Ugcm91dGluZSB0byBt b3JlIGVhc2lseSBldmFsdWF0ZSBzdHJpbmdzCistY3BkZWYgRWNsT2JqZWN0IGVjbF9ldmFsKHN0 ciBzKSBub2V4Y2VwdDoKKytjcGRlZiBFY2xPYmplY3QgZWNsX2V2YWwoc3RyIHMpOgorICAgICBy IiIiCisgICAgIFJlYWQgYW5kIGV2YWx1YXRlIHN0cmluZyBpbiBMaXNwIGFuZCByZXR1cm4gdGhl IHJlc3VsdAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZWNsaWIvbWF0LnB4ZCBiL3Ny Yy9zYWdlL2xpYnMvZWNsaWIvbWF0LnB4ZAoraW5kZXggZGU4ZDllODFhZDMuLjUwOWJkNGQwY2U4 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9lY2xpYi9tYXQucHhkCisrKysgYi9zcmMvc2Fn ZS9saWJzL2VjbGliL21hdC5weGQKK0BAIC00LDQgKzQsNCBAQCBjZGVmIGNsYXNzIE1hdHJpeDoK KyAgICAgY2RlZiBtYXQqIE0KKyAKKyBjZGVmIGNsYXNzIE1hdHJpeEZhY3Rvcnk6CistICAgIGNk ZWYgbmV3X21hdHJpeChzZWxmLCBtYXQgTSkgbm9leGNlcHQKKysgICAgY2RlZiBuZXdfbWF0cml4 KHNlbGYsIG1hdCBNKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZWNsaWIvbWF0LnB5eCBi L3NyYy9zYWdlL2xpYnMvZWNsaWIvbWF0LnB5eAoraW5kZXggYjgzY2Q3NmI1YTUuLmI0YjYwN2Vm MDgzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9lY2xpYi9tYXQucHl4CisrKysgYi9zcmMv c2FnZS9saWJzL2VjbGliL21hdC5weXgKK0BAIC0yNDAsMTEgKzI0MCwxMSBAQCBjZGVmIGNsYXNz IE1hdHJpeDoKKyAKKyAKKyBjZGVmIGNsYXNzIE1hdHJpeEZhY3Rvcnk6CistICAgIGNkZWYgbmV3 X21hdHJpeChzZWxmLCBtYXQgTSkgbm9leGNlcHQ6CisrICAgIGNkZWYgbmV3X21hdHJpeChzZWxm LCBtYXQgTSk6CisgICAgICAgICByZXR1cm4gbmV3X01hdHJpeChNKQorIAorIAorLWNkZWYgTWF0 cml4IG5ld19NYXRyaXgobWF0IE0pIG5vZXhjZXB0OgorK2NkZWYgTWF0cml4IG5ld19NYXRyaXgo bWF0IE0pOgorICAgICBjZGVmIE1hdHJpeCBBID0gTWF0cml4KCkKKyAgICAgQS5NID0gbmV3IG1h dChNKQorICAgICByZXR1cm4gQQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZWNsaWIvbXdy YW5rLnB5eCBiL3NyYy9zYWdlL2xpYnMvZWNsaWIvbXdyYW5rLnB5eAoraW5kZXggNDliMjBhMzNj MGUuLjExMjE5ZGRlZmE2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9lY2xpYi9td3Jhbmsu cHl4CisrKysgYi9zcmMvc2FnZS9saWJzL2VjbGliL213cmFuay5weXgKK0BAIC02OCw3ICs2OCw3 IEBAIGNkZWYgZXh0ZXJuIGZyb20gIndyYXAuY3BwIjoKKyAgICAgbG9uZyB0d29fZGVzY2VudF9n ZXRfc2VsbWVyX3JhbmsodHdvX2Rlc2NlbnQqIHQpCisgICAgIHZvaWQgdHdvX2Rlc2NlbnRfc2F0 dXJhdGUodHdvX2Rlc2NlbnQqIHQsIGxvbmcgc2F0X2JkLCBsb25nIHNhdF9sb3dfYmQpCisgCist Y2RlZiBvYmplY3Qgc3RyaW5nX3NpZ29mZihjaGFyKiBzKSBub2V4Y2VwdDoKKytjZGVmIG9iamVj dCBzdHJpbmdfc2lnb2ZmKGNoYXIqIHMpOgorICAgICBzaWdfb2ZmKCkKKyAgICAgIyBNYWtlcyBh IHB5dGhvbiBzdHJpbmcgYW5kIGRlbGV0ZXMgd2hhdCBpcyBwb2ludGVkIHRvIGJ5IHMuCisgICAg IHQgPSBjaGFyX3RvX3N0cihzKQorQEAgLTIzOCw3ICsyMzgsNyBAQCBjZGVmIGNsYXNzIF9iaWdp bnQ6CisgICAgICAgICByZXR1cm4gc3RyaW5nX3NpZ29mZihiaWdpbnRfdG9fc3RyKHNlbGYueCkp CisgCisgCistY2RlZiBtYWtlX2JpZ2ludChiaWdpbnQqIHgpIG5vZXhjZXB0OgorK2NkZWYgbWFr ZV9iaWdpbnQoYmlnaW50KiB4KToKKyAgICAgY2RlZiBfYmlnaW50IHkKKyAgICAgc2lnX29mZigp CisgICAgIHkgPSBfYmlnaW50Ll9fbmV3X18oX2JpZ2ludCkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9saWJzL2ZsaW50L2ZtcHFfcG9seV9zYWdlLnB4ZCBiL3NyYy9zYWdlL2xpYnMvZmxpbnQvZm1w cV9wb2x5X3NhZ2UucHhkCitpbmRleCA2NjE2MjM3NDViNC4uN2VlNWU1OGMzNTYgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9saWJzL2ZsaW50L2ZtcHFfcG9seV9zYWdlLnB4ZAorKysrIGIvc3JjL3Nh Z2UvbGlicy9mbGludC9mbXBxX3BvbHlfc2FnZS5weGQKK0BAIC0xOCw3ICsxOCw3IEBAIGZyb20g c2FnZS5saWJzLmZsaW50LmZtcHFfcG9seSBjaW1wb3J0IGZtcHFfcG9seV9udW1yZWYsIGZtcHFf cG9seV9sZW5ndGgKKyAKKyAKKyAjIHNpbmNlIHRoZSBmbXBxX3BvbHkgaGVhZGVyIHNlZW1zIHRv IGJlIGxhY2tpbmcgdGhpcyBpbmxpbmUgZnVuY3Rpb24KKy1jZGVmIGlubGluZSBzYWdlX2ZtcHFf cG9seV9tYXhfbGltYnMoY29uc3QgZm1wcV9wb2x5X3QgcG9seSkgbm9leGNlcHQ6CisrY2RlZiBp bmxpbmUgc2FnZV9mbXBxX3BvbHlfbWF4X2xpbWJzKGNvbnN0IGZtcHFfcG9seV90IHBvbHkpOgor ICAgICByZXR1cm4gX2ZtcHpfdmVjX21heF9saW1icyhmbXBxX3BvbHlfbnVtcmVmKHBvbHkpLCBm bXBxX3BvbHlfbGVuZ3RoKHBvbHkpKQorIAorICMgZnVuY3Rpb25zIHJlbW92ZWQgZnJvbSBmbGlu dCBidXQgc3RpbGwgbmVlZGVkIGluIHNhZ2UKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2Zs aW50L2ZtcHpfZmFjdG9yX3NhZ2UucHhkIGIvc3JjL3NhZ2UvbGlicy9mbGludC9mbXB6X2ZhY3Rv cl9zYWdlLnB4ZAoraW5kZXggZTkxOTMxMDA1YzcuLmYyOTE1NWI0NmU1IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbGlicy9mbGludC9mbXB6X2ZhY3Rvcl9zYWdlLnB4ZAorKysrIGIvc3JjL3NhZ2Uv bGlicy9mbGludC9mbXB6X2ZhY3Rvcl9zYWdlLnB4ZAorQEAgLTEsMyArMSwzIEBACisgZnJvbSAu dHlwZXMgY2ltcG9ydCAqCisgCistY2RlZiBmbXB6X2ZhY3Rvcl90b19wYWlybGlzdChjb25zdCBm bXB6X2ZhY3Rvcl90IGZhY3RvcnMpIG5vZXhjZXB0CisrY2RlZiBmbXB6X2ZhY3Rvcl90b19wYWly bGlzdChjb25zdCBmbXB6X2ZhY3Rvcl90IGZhY3RvcnMpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bGlicy9mbGludC9mbXB6X2ZhY3Rvcl9zYWdlLnB5eCBiL3NyYy9zYWdlL2xpYnMvZmxpbnQvZm1w el9mYWN0b3Jfc2FnZS5weXgKK2luZGV4IGFlYjljNzZmOWUzLi4zMzBiYTNkNGQ0ZSAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2xpYnMvZmxpbnQvZm1wel9mYWN0b3Jfc2FnZS5weXgKKysrKyBiL3Ny Yy9zYWdlL2xpYnMvZmxpbnQvZm1wel9mYWN0b3Jfc2FnZS5weXgKK0BAIC0yLDcgKzIsNyBAQCBm cm9tIGN5c2lnbmFscy5zaWduYWxzIGNpbXBvcnQgc2lnX2NoZWNrCisgZnJvbSBzYWdlLmxpYnMu ZmxpbnQuZm1weiBjaW1wb3J0IGZtcHpfZ2V0X21wegorIGZyb20gc2FnZS5yaW5ncy5pbnRlZ2Vy IGNpbXBvcnQgSW50ZWdlcgorIAorLWNkZWYgZm1wel9mYWN0b3JfdG9fcGFpcmxpc3QoY29uc3Qg Zm1wel9mYWN0b3JfdCBmYWN0b3JzKSBub2V4Y2VwdDoKKytjZGVmIGZtcHpfZmFjdG9yX3RvX3Bh aXJsaXN0KGNvbnN0IGZtcHpfZmFjdG9yX3QgZmFjdG9ycyk6CisgICAgIHIiIiIKKyAgICAgSGVs cGVyIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgYSBmbXB6X2ZhY3Rvcl90IGludG8gYSBsaXN0IG9m CisgICAgIChmYWN0b3IsIGV4cG9uZW50KSBwYWlycy4gVGhlIGZhY3RvcnMgYXJlIEludGVnZXJz LCBhbmQgdGhlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9mbGludC9ubW9kX3BvbHlfbGlu a2FnZS5weGkgYi9zcmMvc2FnZS9saWJzL2ZsaW50L25tb2RfcG9seV9saW5rYWdlLnB4aQoraW5k ZXggOWZiMTY0YjhkZGYuLmIwZjY3ZGZiOTQ1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9m bGludC9ubW9kX3BvbHlfbGlua2FnZS5weGkKKysrKyBiL3NyYy9zYWdlL2xpYnMvZmxpbnQvbm1v ZF9wb2x5X2xpbmthZ2UucHhpCitAQCAtNjgsNyArNjgsNyBAQCBjZGVmIGlubGluZSBpbnQgY2Vs ZW1lbnRfZ2VuKG5tb2RfcG9seV90IGUsIGxvbmcgaSwgdW5zaWduZWQgbG9uZyBuKSBleGNlcHQg LTI6CisgICAgIG5tb2RfcG9seV96ZXJvKGUpCisgICAgIG5tb2RfcG9seV9zZXRfY29lZmZfdWko ZSwgMSwgMSkKKyAKKy1jZGVmIG9iamVjdCBjZWxlbWVudF9yZXByKG5tb2RfcG9seV90IGUsIHVu c2lnbmVkIGxvbmcgbikgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgY2VsZW1lbnRfcmVwcihubW9k X3BvbHlfdCBlLCB1bnNpZ25lZCBsb25nIG4pOgorICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy cm9yCisgCisgY2RlZiBpbmxpbmUgaW50IGNlbGVtZW50X3NldChubW9kX3BvbHlfdCByZXMsIG5t b2RfcG9seV90IGEsIHVuc2lnbmVkIGxvbmcgbikgZXhjZXB0IC0yOgorQEAgLTYxOSw3ICs2MTks NyBAQCBjZGVmIGlubGluZSBpbnQgY2VsZW1lbnRfeGdjZChubW9kX3BvbHlfdCByZXMsIG5tb2Rf cG9seV90IHMsIG5tb2RfcG9seV90IHQsIG5tbworICAgICBubW9kX3BvbHlfeGdjZChyZXMsIHMs IHQsIGEsIGIpCisgCisgCistY2RlZiBmYWN0b3JfaGVscGVyKFBvbHlub21pYWxfem1vZF9mbGlu dCBwb2x5LCBiaW50IHNxdWFyZWZyZWU9RmFsc2UpIG5vZXhjZXB0OgorK2NkZWYgZmFjdG9yX2hl bHBlcihQb2x5bm9taWFsX3ptb2RfZmxpbnQgcG9seSwgYmludCBzcXVhcmVmcmVlPUZhbHNlKToK KyAgICAgIiIiCisgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJz L2dhcC9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1lbnQucHhkCitpbmRleCAz MjkwMDFlNzJmNS4uYmE0MDI4Y2Q5MWMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2dhcC9l bGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9nYXAvZWxlbWVudC5weGQKK0BAIC0xOCwx NiArMTgsMTYgQEAgY2RlZiBPYmogbWFrZV9nYXBfcmVjb3JkKHNhZ2VfZGljdCkgZXhjZXB0IE5V TEwKKyBjZGVmIE9iaiBtYWtlX2dhcF9pbnRlZ2VyKHNhZ2VfaW50KSBleGNlcHQgTlVMTAorIGNk ZWYgT2JqIG1ha2VfZ2FwX3N0cmluZyhzYWdlX3N0cmluZykgZXhjZXB0IE5VTEwKKyAKKy1jZGVm IEdhcEVsZW1lbnQgbWFrZV9hbnlfZ2FwX2VsZW1lbnQocGFyZW50LCBPYmogb2JqKSBub2V4Y2Vw dAorLWNkZWYgR2FwRWxlbWVudCBtYWtlX0dhcEVsZW1lbnQocGFyZW50LCBPYmogb2JqKSBub2V4 Y2VwdAorLWNkZWYgR2FwRWxlbWVudF9MaXN0IG1ha2VfR2FwRWxlbWVudF9MaXN0KHBhcmVudCwg T2JqIG9iaikgbm9leGNlcHQKKy1jZGVmIEdhcEVsZW1lbnRfUmVjb3JkIG1ha2VfR2FwRWxlbWVu dF9SZWNvcmQocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdAorLWNkZWYgR2FwRWxlbWVudF9JbnRl Z2VyIG1ha2VfR2FwRWxlbWVudF9JbnRlZ2VyKHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQKKy1j ZGVmIEdhcEVsZW1lbnRfUmF0aW9uYWwgbWFrZV9HYXBFbGVtZW50X1JhdGlvbmFsKHBhcmVudCwg T2JqIG9iaikgbm9leGNlcHQKKy1jZGVmIEdhcEVsZW1lbnRfU3RyaW5nIG1ha2VfR2FwRWxlbWVu dF9TdHJpbmcocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdAorLWNkZWYgR2FwRWxlbWVudF9Cb29s ZWFuIG1ha2VfR2FwRWxlbWVudF9Cb29sZWFuKHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQKKy1j ZGVmIEdhcEVsZW1lbnRfRnVuY3Rpb24gbWFrZV9HYXBFbGVtZW50X0Z1bmN0aW9uKHBhcmVudCwg T2JqIG9iaikgbm9leGNlcHQKKy1jZGVmIEdhcEVsZW1lbnRfUGVybXV0YXRpb24gbWFrZV9HYXBF bGVtZW50X1Blcm11dGF0aW9uKHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQKKytjZGVmIEdhcEVs ZW1lbnQgbWFrZV9hbnlfZ2FwX2VsZW1lbnQocGFyZW50LCBPYmogb2JqKQorK2NkZWYgR2FwRWxl bWVudCBtYWtlX0dhcEVsZW1lbnQocGFyZW50LCBPYmogb2JqKQorK2NkZWYgR2FwRWxlbWVudF9M aXN0IG1ha2VfR2FwRWxlbWVudF9MaXN0KHBhcmVudCwgT2JqIG9iaikKKytjZGVmIEdhcEVsZW1l bnRfUmVjb3JkIG1ha2VfR2FwRWxlbWVudF9SZWNvcmQocGFyZW50LCBPYmogb2JqKQorK2NkZWYg R2FwRWxlbWVudF9JbnRlZ2VyIG1ha2VfR2FwRWxlbWVudF9JbnRlZ2VyKHBhcmVudCwgT2JqIG9i aikKKytjZGVmIEdhcEVsZW1lbnRfUmF0aW9uYWwgbWFrZV9HYXBFbGVtZW50X1JhdGlvbmFsKHBh cmVudCwgT2JqIG9iaikKKytjZGVmIEdhcEVsZW1lbnRfU3RyaW5nIG1ha2VfR2FwRWxlbWVudF9T dHJpbmcocGFyZW50LCBPYmogb2JqKQorK2NkZWYgR2FwRWxlbWVudF9Cb29sZWFuIG1ha2VfR2Fw RWxlbWVudF9Cb29sZWFuKHBhcmVudCwgT2JqIG9iaikKKytjZGVmIEdhcEVsZW1lbnRfRnVuY3Rp b24gbWFrZV9HYXBFbGVtZW50X0Z1bmN0aW9uKHBhcmVudCwgT2JqIG9iaikKKytjZGVmIEdhcEVs ZW1lbnRfUGVybXV0YXRpb24gbWFrZV9HYXBFbGVtZW50X1Blcm11dGF0aW9uKHBhcmVudCwgT2Jq IG9iaikKKyAKKyBjZGVmIGNoYXIgKmNhcHR1cmVfc3Rkb3V0KE9iaiwgT2JqKSBub2V4Y2VwdAor IGNkZWYgY2hhciAqZ2FwX2VsZW1lbnRfc3RyKE9iaikgbm9leGNlcHQKK0BAIC00MywxOCArNDMs MTggQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgY2RlZiBiaW50 IF9jb21wYXJlX2J5X2lkCisgICAgIGNkZWYgYmludCBfY29tcGFyZV9lcXVhbChzZWxmLCBFbGVt ZW50IG90aGVyKSBleGNlcHQgLTIKKyAgICAgY2RlZiBiaW50IF9jb21wYXJlX2xlc3Moc2VsZiwg RWxlbWVudCBvdGhlcikgZXhjZXB0IC0yCistICAgIGNwZGVmIF9zZXRfY29tcGFyZV9ieV9pZChz ZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYXNzZXJ0X2NvbXBhcmVfYnlfaWQoc2VsZikgbm9l eGNlcHQKKysgICAgY3BkZWYgX3NldF9jb21wYXJlX2J5X2lkKHNlbGYpCisrICAgIGNwZGVmIF9h c3NlcnRfY29tcGFyZV9ieV9pZChzZWxmKQorIAorLSAgICBjZGVmIF9pbml0aWFsaXplKHNlbGYs IHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3R5cGVfbnVtYmVyKHNlbGYp IG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2Jvb2woc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVy KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAg Y3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNkZWYgX2luaXRpYWxpemUo c2VsZiwgcGFyZW50LCBPYmogb2JqKQorKyAgICBjcGRlZiBfdHlwZV9udW1iZXIoc2VsZikKKysg ICAgY3BkZWYgaXNfYm9vbChzZWxmKQorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysg ICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tb2RfKHNlbGYsIG90aGVy KQorKyAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikKKyAKKy0gICAgY3BkZWYgR2FwRWxlbWVu dCBkZWVwY29weShzZWxmLCBiaW50IG11dCkgbm9leGNlcHQKKysgICAgY3BkZWYgR2FwRWxlbWVu dCBkZWVwY29weShzZWxmLCBiaW50IG11dCkKKyAKKyBjZGVmIGNsYXNzIEdhcEVsZW1lbnRfSW50 ZWdlcihHYXBFbGVtZW50KToKKyAgICAgcGFzcworQEAgLTYzLDEwICs2MywxMCBAQCBjZGVmIGNs YXNzIEdhcEVsZW1lbnRfUmF0aW9uYWwoR2FwRWxlbWVudCk6CisgICAgIHBhc3MKKyAKKyBjZGVm IGNsYXNzIEdhcEVsZW1lbnRfSW50ZWdlck1vZChHYXBFbGVtZW50KToKKy0gICAgY3BkZWYgR2Fw RWxlbWVudF9JbnRlZ2VyIGxpZnQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgR2FwRWxlbWVu dF9JbnRlZ2VyIGxpZnQoc2VsZikKKyAKKyBjZGVmIGNsYXNzIEdhcEVsZW1lbnRfRmluaXRlRmll bGQoR2FwRWxlbWVudCk6CistICAgIGNwZGVmIEdhcEVsZW1lbnRfSW50ZWdlciBsaWZ0KHNlbGYp IG5vZXhjZXB0CisrICAgIGNwZGVmIEdhcEVsZW1lbnRfSW50ZWdlciBsaWZ0KHNlbGYpCisgCisg Y2RlZiBjbGFzcyBHYXBFbGVtZW50X0N5Y2xvdG9taWMoR2FwRWxlbWVudCk6CisgICAgIHBhc3MK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL2xp YnMvZ2FwL2VsZW1lbnQucHl4CitpbmRleCBiMmIwNjgxYzA1Mi4uZjE0ODI5OTdiODYgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbGli cy9nYXAvZWxlbWVudC5weXgKK0BAIC0yNjYsNyArMjY2LDcgQEAgY2RlZiBPYmogbWFrZV9nYXBf c3RyaW5nKHNhZ2Vfc3RyaW5nKSBleGNlcHQgTlVMTDoKKyAjIyMgZ2VuZXJpYyBjb25zdHJ1Y3Rp b24gb2YgR2FwRWxlbWVudHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgR2FwRWxlbWVudCBtYWtlX2FueV9nYXBfZWxl bWVudChwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudCBtYWtlX2Fu eV9nYXBfZWxlbWVudChwYXJlbnQsIE9iaiBvYmopOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRo ZSBHQVAgZWxlbWVudCB3cmFwcGVyIG9mIGBgb2JqYGAKKyAKK0BAIC0zNTQsNyArMzU0LDcgQEAg Y2RlZiBHYXBFbGVtZW50IG1ha2VfYW55X2dhcF9lbGVtZW50KHBhcmVudCwgT2JqIG9iaikgbm9l eGNlcHQ6CisgIyMjIEdhcEVsZW1lbnQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1j ZGVmIEdhcEVsZW1lbnQgbWFrZV9HYXBFbGVtZW50KHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQ6 CisrY2RlZiBHYXBFbGVtZW50IG1ha2VfR2FwRWxlbWVudChwYXJlbnQsIE9iaiBvYmopOgorICAg ICByIiIiCisgICAgIFR1cm4gYSBHYXAgQyBvYmplY3QgKG9mIHR5cGUgYGBPYmpgYCkgaW50byBh IEN5dGhvbiBgYEdhcEVsZW1lbnRgYC4KKyAKK0BAIC0zODcsNyArMzg3LDcgQEAgY2RlZiBHYXBF bGVtZW50IG1ha2VfR2FwRWxlbWVudChwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorICAgICBy ZXR1cm4gcgorIAorIAorLWNwZGVmIF9mcm9tX3NhZ2UoZWxlbSkgbm9leGNlcHQ6CisrY3BkZWYg X2Zyb21fc2FnZShlbGVtKToKKyAgICAgIiIiCisgICAgIEN1cnJlbnRseSBqdXN0IHVzZWQgZm9y IHVucGlja2xpbmc7IGVxdWl2YWxlbnQgdG8gY2FsbGluZyBgYGxpYmdhcChlbGVtKWBgCisgICAg IHRvIGNvbnZlcnQgYSBTYWdlIG9iamVjdCB0byBhIGBHYXBFbGVtZW50YCB3aGVyZSBwb3NzaWJs ZS4KK0BAIC00NjAsNyArNDYwLDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd0aGlzIGNsYXNzIGNh bm5vdCBiZSBpbnN0YW50aWF0ZWQgZnJvbSBQeXRob24nKQorIAorLSAgICBjZGVmIF9pbml0aWFs aXplKHNlbGYsIHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRpYWxp emUoc2VsZiwgcGFyZW50LCBPYmogb2JqKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEluaXRp YWxpemUgdGhlIEdhcEVsZW1lbnQuCisgCitAQCAtNTQ0LDcgKzU0NCw3IEBAIGNkZWYgY2xhc3Mg R2FwRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmCisgCistICAgIGNwZGVmIEdhcEVsZW1lbnQgZGVlcGNvcHkoc2VsZiwgYmludCBt dXQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBHYXBFbGVtZW50IGRlZXBjb3B5KHNlbGYsIGJpbnQg bXV0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGRlZXBjb3B5IG9mIHRoaXMg R2FwIG9iamVjdAorIAorQEAgLTY0Nyw3ICs2NDcsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnQo UmluZ0VsZW1lbnQpOgorICAgICAgICAgR0FQX0lOID0gbGliZ2FwLmV2YWwocidcaW4nKQorICAg ICAgICAgcmV0dXJuIEdBUF9JTihvdGhlciwgc2VsZikuc2FnZSgpCisgCistICAgIGNwZGVmIF90 eXBlX251bWJlcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3R5cGVfbnVtYmVyKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIEdBUCBpbnRlcm5hbCB0eXBlIG51 bWJlci4KKyAKK0BAIC03NzYsNyArNzc2LDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdF bGVtZW50KToKKyAgICAgICAgIHMgPSBjaGFyX3RvX3N0cihnYXBfZWxlbWVudF9yZXByKHNlbGYu dmFsdWUpKQorICAgICAgICAgcmV0dXJuIHMuc3RyaXAoKQorIAorLSAgICBjcGRlZiBfc2V0X2Nv bXBhcmVfYnlfaWQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zZXRfY29tcGFyZV9ieV9p ZChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IGNvbXBhcmlzb24gdG8gY29tcGFy ZSBieSBgYGlkYGAKKyAKK0BAIC04MTQsNyArODE0LDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50 KFJpbmdFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fY29tcGFyZV9ieV9p ZCA9IFRydWUKKyAKKy0gICAgY3BkZWYgX2Fzc2VydF9jb21wYXJlX2J5X2lkKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfYXNzZXJ0X2NvbXBhcmVfYnlfaWQoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIEVuc3VyZSB0aGF0IGNvbXBhcmlzb24gaXMgYnkgYGBpZGBgCisgCitAQCAt ODUxLDcgKzg1MSw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBoYXNoKHN0cihzZWxmKSkKKyAKKy0gICAgY3BkZWYg X3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmlj aGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBh cmUgYGBzZWxmYGAgd2l0aCBgYG90aGVyYGAuCisgCitAQCAtOTczLDcgKzk3Myw3IEBAIGNkZWYg Y2xhc3MgR2FwRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgR0FQX0xlYXZlKCkK KyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIi CisgICAgICAgICBBZGQgdHdvIEdhcEVsZW1lbnQgb2JqZWN0cy4KKyAKK0BAIC0xMDAyLDcgKzEw MDIsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAg IEdBUF9MZWF2ZSgpCisgICAgICAgICByZXR1cm4gbWFrZV9hbnlfZ2FwX2VsZW1lbnQoc2VsZi5w YXJlbnQoKSwgcmVzdWx0KQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFN1YnRyYWN0IHR3byBHYXBFbGVtZW50IG9iamVjdHMuCisgCitAQCAtMTAzMSw3ICsxMDMx LDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgIHJldHVy biBtYWtlX2FueV9nYXBfZWxlbWVudChzZWxmLnBhcmVudCgpLCByZXN1bHQpCisgCisgCistICAg IGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2Vs ZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgTXVsdGlwbHkgdHdvIEdhcEVsZW1l bnQgb2JqZWN0cy4KKyAKK0BAIC0xMDYwLDcgKzEwNjAsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1l bnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIEdBUF9MZWF2ZSgpCisgICAgICAgICByZXR1 cm4gbWFrZV9hbnlfZ2FwX2VsZW1lbnQoc2VsZi5wYXJlbnQoKSwgcmVzdWx0KQorIAorLSAgICBj cGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYs IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERpdmlkZSB0d28gR2FwRWxlbWVudCBv YmplY3RzLgorIAorQEAgLTEwOTQsNyArMTA5NCw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudChS aW5nRWxlbWVudCk6CisgICAgICAgICAgICAgR0FQX0xlYXZlKCkKKyAgICAgICAgIHJldHVybiBt YWtlX2FueV9nYXBfZWxlbWVudChzZWxmLnBhcmVudCgpLCByZXN1bHQpCisgCistICAgIGNwZGVm IF9tb2RfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmln aHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgTW9kdWx1cyBvZiB0d28gR2FwRWxlbWVudCBv YmplY3RzLgorIAorQEAgLTExMjEsNyArMTEyMSw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudChS aW5nRWxlbWVudCk6CisgICAgICAgICAgICAgR0FQX0xlYXZlKCkKKyAgICAgICAgIHJldHVybiBt YWtlX2FueV9nYXBfZWxlbWVudChzZWxmLnBhcmVudCgpLCByZXN1bHQpCisgCistICAgIGNwZGVm IF9wb3dfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd18oc2VsZiwgb3Ro ZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgRXhwb25lbnRpYXRpb24gb2YgdHdvIEdhcEVs ZW1lbnQgb2JqZWN0cy4KKyAKK0BAIC0xMTcwLDcgKzExNzAsNyBAQCBjZGVmIGNsYXNzIEdhcEVs ZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIEdBUF9MZWF2ZSgpCisgICAgICAgICBy ZXR1cm4gbWFrZV9hbnlfZ2FwX2VsZW1lbnQoc2VsZi5fcGFyZW50LCByZXN1bHQpCisgCistICAg IGNwZGVmIF9wb3dfaW50KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd19p bnQoc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAt MTIzMiw3ICsxMjMyLDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50KToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIEdBUF9Jc1JlY29yZChzZWxmLnZhbHVlKQorIAor LSAgICBjcGRlZiBpc19ib29sKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19ib29sKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHdoZXRoZXIgdGhlIHdyYXBwZWQg R0FQIG9iamVjdCBpcyBhIEdBUCBib29sZWFuLgorIAorQEAgLTE0MDEsNyArMTQwMSw3IEBAIGNk ZWYgY2xhc3MgR2FwRWxlbWVudChSaW5nRWxlbWVudCk6CisgIyMjIEdhcEVsZW1lbnRfSW50ZWdl ciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1lbnRfSW50ZWdlciBtYWtlX0dh cEVsZW1lbnRfSW50ZWdlcihwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxl bWVudF9JbnRlZ2VyIG1ha2VfR2FwRWxlbWVudF9JbnRlZ2VyKHBhcmVudCwgT2JqIG9iaik6Cisg ICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBpbnRlZ2VyIG9iamVjdCBpbnRvIGEgR2FwRWxlbWVu dF9JbnRlZ2VyIFNhZ2Ugb2JqZWN0CisgCitAQCAtMTU1NSw3ICsxNTU1LDcgQEAgY2RlZiBjbGFz cyBHYXBFbGVtZW50X0ludGVnZXIoR2FwRWxlbWVudCk6CisgIyMjIEdhcEVsZW1lbnRfRmxvYXQg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgR2FwRWxlbWVudF9GbG9hdCBtYWtlX0dhcEVsZW1l bnRfRmxvYXQocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdDoKKytjZGVmIEdhcEVsZW1lbnRfRmxv YXQgbWFrZV9HYXBFbGVtZW50X0Zsb2F0KHBhcmVudCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAg ICAgVHVybiBhIEdhcCBtYWNmbG9hdCBvYmplY3QgaW50byBhIEdhcEVsZW1lbnRfRmxvYXQgU2Fn ZSBvYmplY3QKKyAKK0BAIC0xNjI4LDcgKzE2MjgsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnRf RmxvYXQoR2FwRWxlbWVudCk6CisgIyMjIEdhcEVsZW1lbnRfSW50ZWdlck1vZCAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1lbnRfSW50ZWdlck1vZCBtYWtlX0dhcEVsZW1lbnRf SW50ZWdlck1vZChwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9J bnRlZ2VyTW9kIG1ha2VfR2FwRWxlbWVudF9JbnRlZ2VyTW9kKHBhcmVudCwgT2JqIG9iaik6Cisg ICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBpbnRlZ2VyIG9iamVjdCBpbnRvIGEgOmNsYXNzOmBH YXBFbGVtZW50X0ludGVnZXJNb2RgIFNhZ2Ugb2JqZWN0CisgCitAQCAtMTY1Niw3ICsxNjU2LDcg QEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50X0ludGVnZXJNb2QoR2FwRWxlbWVudCk6CisgICAgICAg ICA8Y2xhc3MgJ3NhZ2UubGlicy5nYXAuZWxlbWVudC5HYXBFbGVtZW50X0ludGVnZXJNb2QnPgor ICAgICAiIiIKKyAKKy0gICAgY3BkZWYgR2FwRWxlbWVudF9JbnRlZ2VyIGxpZnQoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIEdhcEVsZW1lbnRfSW50ZWdlciBsaWZ0KHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gaW50ZWdlciBsaWZ0LgorIAorQEAgLTE3MDksNyAr MTcwOSw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9JbnRlZ2VyTW9kKEdhcEVsZW1lbnQpOgor ICMjIyBHYXBFbGVtZW50X0Zpbml0ZUZpZWxkICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYg R2FwRWxlbWVudF9GaW5pdGVGaWVsZCBtYWtlX0dhcEVsZW1lbnRfRmluaXRlRmllbGQocGFyZW50 LCBPYmogb2JqKSBub2V4Y2VwdDoKKytjZGVmIEdhcEVsZW1lbnRfRmluaXRlRmllbGQgbWFrZV9H YXBFbGVtZW50X0Zpbml0ZUZpZWxkKHBhcmVudCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAgICAg VHVybiBhIEdBUCBmaW5pdGUgZmllbGQgb2JqZWN0IGludG8gYSA6Y2xhc3M6YEdhcEVsZW1lbnRf RmluaXRlRmllbGRgIFNhZ2Ugb2JqZWN0CisgCitAQCAtMTczNyw3ICsxNzM3LDcgQEAgY2RlZiBj bGFzcyBHYXBFbGVtZW50X0Zpbml0ZUZpZWxkKEdhcEVsZW1lbnQpOgorICAgICAgICAgPGNsYXNz ICdzYWdlLmxpYnMuZ2FwLmVsZW1lbnQuR2FwRWxlbWVudF9GaW5pdGVGaWVsZCc+CisgICAgICIi IgorIAorLSAgICBjcGRlZiBHYXBFbGVtZW50X0ludGVnZXIgbGlmdChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgR2FwRWxlbWVudF9JbnRlZ2VyIGxpZnQoc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBhbiBpbnRlZ2VyIGxpZnQuCisgCitAQCAtMTg3Niw3ICsxODc2LDcg QEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50X0Zpbml0ZUZpZWxkKEdhcEVsZW1lbnQpOgorICMjIyBH YXBFbGVtZW50X0N5Y2xvdG9taWMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiBHYXBFbGVt ZW50X0N5Y2xvdG9taWMgbWFrZV9HYXBFbGVtZW50X0N5Y2xvdG9taWMocGFyZW50LCBPYmogb2Jq KSBub2V4Y2VwdDoKKytjZGVmIEdhcEVsZW1lbnRfQ3ljbG90b21pYyBtYWtlX0dhcEVsZW1lbnRf Q3ljbG90b21pYyhwYXJlbnQsIE9iaiBvYmopOgorICAgICByIiIiCisgICAgIFR1cm4gYSBHYXAg Y3ljbG90b21pYyBvYmplY3QgaW50byBhIDpjbGFzczpgR2FwRWxlbWVudF9DeWNsb3RvbWljYCBT YWdlCisgICAgIG9iamVjdC4KK0BAIC0xOTY0LDcgKzE5NjQsNyBAQCBjZGVmIGNsYXNzIEdhcEVs ZW1lbnRfQ3ljbG90b21pYyhHYXBFbGVtZW50KToKKyAjIyMgR2FwRWxlbWVudF9SYXRpb25hbCAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgR2FwRWxlbWVudF9SYXRpb25hbCBtYWtlX0dhcEVs ZW1lbnRfUmF0aW9uYWwocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdDoKKytjZGVmIEdhcEVsZW1l bnRfUmF0aW9uYWwgbWFrZV9HYXBFbGVtZW50X1JhdGlvbmFsKHBhcmVudCwgT2JqIG9iaik6Cisg ICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBSYXRpb25hbCBudW1iZXIgKG9mIHR5cGUgYGBPYmpg YCkgaW50byBhIEN5dGhvbiBgYEdhcEVsZW1lbnRfUmF0aW9uYWxgYC4KKyAKK0BAIC0yMDM2LDcg KzIwMzYsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnRfUmF0aW9uYWwoR2FwRWxlbWVudCk6Cisg IyMjIEdhcEVsZW1lbnRfUmluZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1l bnRfUmluZyBtYWtlX0dhcEVsZW1lbnRfUmluZyhwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0Ogor K2NkZWYgR2FwRWxlbWVudF9SaW5nIG1ha2VfR2FwRWxlbWVudF9SaW5nKHBhcmVudCwgT2JqIG9i aik6CisgICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBpbnRlZ2VyIG9iamVjdCBpbnRvIGEgOmNs YXNzOmBHYXBFbGVtZW50X1JpbmdgIFNhZ2UKKyAgICAgb2JqZWN0LgorQEAgLTIyMDAsNyArMjIw MCw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9SaW5nKEdhcEVsZW1lbnQpOgorICMjIyBHYXBF bGVtZW50X0Jvb2xlYW4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiBHYXBFbGVtZW50X0Jv b2xlYW4gbWFrZV9HYXBFbGVtZW50X0Jvb2xlYW4ocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdDoK KytjZGVmIEdhcEVsZW1lbnRfQm9vbGVhbiBtYWtlX0dhcEVsZW1lbnRfQm9vbGVhbihwYXJlbnQs IE9iaiBvYmopOgorICAgICByIiIiCisgICAgIFR1cm4gYSBHYXAgQm9vbGVhbiBudW1iZXIgKG9m IHR5cGUgYGBPYmpgYCkgaW50byBhIEN5dGhvbiBgYEdhcEVsZW1lbnRfQm9vbGVhbmBgLgorIAor QEAgLTIyOTIsNyArMjI5Miw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9Cb29sZWFuKEdhcEVs ZW1lbnQpOgorICMjIyBHYXBFbGVtZW50X1N0cmluZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNk ZWYgR2FwRWxlbWVudF9TdHJpbmcgbWFrZV9HYXBFbGVtZW50X1N0cmluZyhwYXJlbnQsIE9iaiBv YmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9TdHJpbmcgbWFrZV9HYXBFbGVtZW50X1N0 cmluZyhwYXJlbnQsIE9iaiBvYmopOgorICAgICByIiIiCisgICAgIFR1cm4gYSBHYXAgU3RyaW5n IChvZiB0eXBlIGBgT2JqYGApIGludG8gYSBDeXRob24gYGBHYXBFbGVtZW50X1N0cmluZ2BgLgor IAorQEAgLTIzNTIsNyArMjM1Miw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9TdHJpbmcoR2Fw RWxlbWVudCk6CisgIyMjIEdhcEVsZW1lbnRfRnVuY3Rpb24gIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAK Ky1jZGVmIEdhcEVsZW1lbnRfRnVuY3Rpb24gbWFrZV9HYXBFbGVtZW50X0Z1bmN0aW9uKHBhcmVu dCwgT2JqIG9iaikgbm9leGNlcHQ6CisrY2RlZiBHYXBFbGVtZW50X0Z1bmN0aW9uIG1ha2VfR2Fw RWxlbWVudF9GdW5jdGlvbihwYXJlbnQsIE9iaiBvYmopOgorICAgICByIiIiCisgICAgIFR1cm4g YSBHYXAgQyBmdW5jdGlvbiBvYmplY3QgKG9mIHR5cGUgYGBPYmpgYCkgaW50byBhIEN5dGhvbiBg YEdhcEVsZW1lbnRfRnVuY3Rpb25gYC4KKyAKK0BAIC0yNTYyLDcgKzI1NjIsNyBAQCBjZGVmIGNs YXNzIEdhcEVsZW1lbnRfRnVuY3Rpb24oR2FwRWxlbWVudCk6CisgIyMjIEdhcEVsZW1lbnRfTWV0 aG9kUHJveHkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1lbnRfTWV0aG9kUHJveHkg bWFrZV9HYXBFbGVtZW50X01ldGhvZFByb3h5KHBhcmVudCwgT2JqIGZ1bmN0aW9uLCBHYXBFbGVt ZW50IGJhc2Vfb2JqZWN0KSBub2V4Y2VwdDoKKytjZGVmIEdhcEVsZW1lbnRfTWV0aG9kUHJveHkg bWFrZV9HYXBFbGVtZW50X01ldGhvZFByb3h5KHBhcmVudCwgT2JqIGZ1bmN0aW9uLCBHYXBFbGVt ZW50IGJhc2Vfb2JqZWN0KToKKyAgICAgciIiIgorICAgICBUdXJuIGEgR2FwIEMgcmVjIG9iamVj dCAob2YgdHlwZSBgYE9iamBgKSBpbnRvIGEgQ3l0aG9uIGBgR2FwRWxlbWVudF9SZWNvcmRgYC4K KyAKK0BAIC0yNjUyLDcgKzI2NTIsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnRfTWV0aG9kUHJv eHkoR2FwRWxlbWVudF9GdW5jdGlvbik6CisgIyMjIEdhcEVsZW1lbnRfTGlzdCAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1lbnRfTGlzdCBtYWtlX0dhcEVsZW1lbnRfTGlz dChwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9MaXN0IG1ha2Vf R2FwRWxlbWVudF9MaXN0KHBhcmVudCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAgICAgVHVybiBh IEdhcCBDIExpc3Qgb2JqZWN0IChvZiB0eXBlIGBgT2JqYGApIGludG8gYSBDeXRob24gYGBHYXBF bGVtZW50X0xpc3RgYC4KKyAKK0BAIC0yOTkwLDcgKzI5OTAsNyBAQCBjZGVmIGNsYXNzIEdhcEVs ZW1lbnRfTGlzdChHYXBFbGVtZW50KToKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCisgCistY2Rl ZiBHYXBFbGVtZW50X1Blcm11dGF0aW9uIG1ha2VfR2FwRWxlbWVudF9QZXJtdXRhdGlvbihwYXJl bnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9QZXJtdXRhdGlvbiBtYWtl X0dhcEVsZW1lbnRfUGVybXV0YXRpb24ocGFyZW50LCBPYmogb2JqKToKKyAgICAgciIiIgorICAg ICBUdXJuIGEgR2FwIEMgcGVybXV0YXRpb24gb2JqZWN0IChvZiB0eXBlIGBgT2JqYGApIGludG8g YSBDeXRob24gYGBHYXBFbGVtZW50X1Blcm11dGF0aW9uYGAuCisgCitAQCAtMzA1NSw3ICszMDU1 LDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50X1Blcm11dGF0aW9uKEdhcEVsZW1lbnQpOgorICMj IyBHYXBFbGVtZW50X1JlY29yZCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiBHYXBFbGVt ZW50X1JlY29yZCBtYWtlX0dhcEVsZW1lbnRfUmVjb3JkKHBhcmVudCwgT2JqIG9iaikgbm9leGNl cHQ6CisrY2RlZiBHYXBFbGVtZW50X1JlY29yZCBtYWtlX0dhcEVsZW1lbnRfUmVjb3JkKHBhcmVu dCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBDIHJlYyBvYmplY3QgKG9m IHR5cGUgYGBPYmpgYCkgaW50byBhIEN5dGhvbiBgYEdhcEVsZW1lbnRfUmVjb3JkYGAuCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9nYXAvdXRpbC5weGQgYi9zcmMvc2FnZS9saWJzL2dh cC91dGlsLnB4ZAoraW5kZXggOGI0YTdhYWRjZTcuLmJiNTU5ZjdjNmEzIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbGlicy9nYXAvdXRpbC5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvZ2FwL3V0aWwu cHhkCitAQCAtMTcsMTAgKzE3LDEwIEBAIGZyb20gc2FnZS5saWJzLmdhcC5nYXBfaW5jbHVkZXMg Y2ltcG9ydCBPYmoKKyBjZGVmIGNsYXNzIE9ialdyYXBwZXIoKToKKyAgICAgY2RlZiBPYmogdmFs dWUKKyAKKy1jZGVmIE9ialdyYXBwZXIgd3JhcF9vYmooT2JqIG9iaikgbm9leGNlcHQKKytjZGVm IE9ialdyYXBwZXIgd3JhcF9vYmooT2JqIG9iaikKKyAKKyAjIHJldHVybnMgdGhlIHJlZmNvdW50 IGRpY3Rpb25hcnkgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcworLWNwZGVmIGdldF9vd25lZF9vYmpl Y3RzKCkgbm9leGNlcHQKKytjcGRlZiBnZXRfb3duZWRfb2JqZWN0cygpCisgCisgIyBSZWZlcmVu Y2UgY291bnQgR0FQIG9iamVjdHMgdGhhdCB5b3Ugd2FudCB0byBwcmV2ZW50IGZyb20gYmVpbmcK KyAjIGdhcmJhZ2UgY29sbGVjdGVkCitAQCAtMzUsNyArMzUsNyBAQCBjZGVmIHZvaWQgZ2FzbWFu X2NhbGxiYWNrKCkgbm9leGNlcHQgd2l0aCBnaWwKKyAjIyMgSW5pdGlhbGl6YXRpb24gb2YgR0FQ ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgaW5pdGlhbGl6ZSgpIG5vZXhjZXB0CisrY2RlZiBp bml0aWFsaXplKCkKKyAKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbGlicy9nYXAvdXRpbC5weXggYi9zcmMvc2FnZS9saWJzL2dhcC91dGlsLnB5eAoraW5k ZXggODY4NWRjMDhmYTUuLmIwYWZkNTA4YjRlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9n YXAvdXRpbC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvZ2FwL3V0aWwucHl4CitAQCAtMTAzLDcg KzEwMyw3IEBAIGNkZWYgY2xhc3MgT2JqV3JhcHBlcigpOgorICAgICAgICAgcmV0dXJuIDxQeV9o YXNoX3Q+KHNlbGYudmFsdWUpCisgCisgCistY2RlZiBPYmpXcmFwcGVyIHdyYXBfb2JqKE9iaiBv YmopIG5vZXhjZXB0OgorK2NkZWYgT2JqV3JhcHBlciB3cmFwX29iaihPYmogb2JqKToKKyAgICAg IiIiCisgICAgIENvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciA6Y2xhc3M6YE9ialdyYXBwZXJgCisg ICAgICIiIgorQEAgLTEyMCw3ICsxMjAsNyBAQCBjZGVmIGRpY3Qgb3duZWRfb2JqZWN0c19yZWZj b3VudCA9IGRpY3QoKQorICMKKyAjIHVzZWQgaW4gU2FnZSdzIGxpYmdhcC5HYXAuY291bnRfR0FQ X29iamVjdHMKKyAjCistY3BkZWYgZ2V0X293bmVkX29iamVjdHMoKSBub2V4Y2VwdDoKKytjcGRl ZiBnZXRfb3duZWRfb2JqZWN0cygpOgorICAgICAiIiIKKyAgICAgSGVscGVyIHRvIGFjY2VzcyB0 aGUgcmVmY291bnQgZGljdGlvbmFyeSBmcm9tIFB5dGhvbiBjb2RlCisgICAgICIiIgorQEAgLTE4 NCw3ICsxODQsNyBAQCBNYWtlSW1tdXRhYmxlKGxpYmdhcF9lcnJvdXQpOworICIiIgorIAorIAor LWNkZWYgaW5pdGlhbGl6ZSgpIG5vZXhjZXB0OgorK2NkZWYgaW5pdGlhbGl6ZSgpOgorICAgICAi IiIKKyAgICAgSW5pdGlhbGl6ZSB0aGUgR0FQIGxpYnJhcnksIGlmIGl0IGhhc24ndCBhbHJlYWR5 IGJlZW4KKyAgICAgaW5pdGlhbGl6ZWQuICBJdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBtdWx0aXBs ZSB0aW1lcy4gT25lIGNhbiBzZXQKK0BAIC00MDUsNyArNDA1LDcgQEAgY2xhc3MgR0FQRXJyb3Io VmFsdWVFcnJvcik6ICAjIFZhbHVlRXJyb3IgZm9yIGhpc3RvcmljYWwgcmVhc29ucworICAgICAi IiIKKyAKKyAKKy1jZGVmIHN0ciBleHRyYWN0X2xpYmdhcF9lcnJvdXQoKSBub2V4Y2VwdDoKKytj ZGVmIHN0ciBleHRyYWN0X2xpYmdhcF9lcnJvdXQoKToKKyAgICAgIiIiCisgICAgIFJlYWRzIHRo ZSBnbG9iYWwgdmFyaWFibGUgbGliZ2FwX2Vycm91dCBhbmQgcmV0dXJucyBhIFB5dGhvbiBzdHJp bmcKKyAgICAgY29udGFpbmluZyB0aGUgZXJyb3IgbWVzc2FnZSAod2l0aCBzb21lIGJvaWxlcnBs YXRlIHJlbW92ZWQpLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZ21wL3B5bG9uZy5weGQg Yi9zcmMvc2FnZS9saWJzL2dtcC9weWxvbmcucHhkCitpbmRleCA4NDY0NDRkMjA4Mi4uMzI1ZDc0 N2Y1N2IgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2dtcC9weWxvbmcucHhkCisrKysgYi9z cmMvc2FnZS9saWJzL2dtcC9weWxvbmcucHhkCitAQCAtNSw3ICs1LDcgQEAgVmFyaW91cyBmdW5j dGlvbnMgdG8gZGVhbCB3aXRoIGNvbnZlcnNpb24gbXB6IDwtPiBQeXRob24gaW50L2xvbmcKKyBm cm9tIGNweXRob24ubG9uZ2ludHJlcHIgY2ltcG9ydCBweV9sb25nCisgZnJvbSBzYWdlLmxpYnMu Z21wLnR5cGVzIGNpbXBvcnQgKgorIAorLWNkZWYgbXB6X2dldF9weWxvbmcobXB6X3NyY3B0ciB6 KSBub2V4Y2VwdAorLWNkZWYgbXB6X2dldF9weWludGxvbmcobXB6X3NyY3B0ciB6KSBub2V4Y2Vw dAorK2NkZWYgbXB6X2dldF9weWxvbmcobXB6X3NyY3B0ciB6KQorK2NkZWYgbXB6X2dldF9weWlu dGxvbmcobXB6X3NyY3B0ciB6KQorIGNkZWYgaW50IG1wel9zZXRfcHlsb25nKG1wel9wdHIgeiwg cHlfbG9uZyBMKSBleGNlcHQgLTEKKyBjZGVmIFB5X2hhc2hfdCBtcHpfcHl0aG9uaGFzaChtcHpf c3JjcHRyIHopIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9nbXAvcHlsb25n LnB5eCBiL3NyYy9zYWdlL2xpYnMvZ21wL3B5bG9uZy5weXgKK2luZGV4IDIwMjAwOGY0NTg3Li44 MGY5ODQzZTA3YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvZ21wL3B5bG9uZy5weXgKKysr KyBiL3NyYy9zYWdlL2xpYnMvZ21wL3B5bG9uZy5weXgKK0BAIC01Niw3ICs1Niw3IEBAIGNkZWYg ZXh0ZXJuIGZyb20gKjoKKyBjZGVmIHNpemVfdCBQeUxvbmdfbmFpbHMgPSA4KnNpemVvZihkaWdp dCkgLSBQeUxvbmdfU0hJRlQKKyAKKyAKKy1jZGVmIG1wel9nZXRfcHlsb25nX2xhcmdlKG1wel9z cmNwdHIgeikgbm9leGNlcHQ6CisrY2RlZiBtcHpfZ2V0X3B5bG9uZ19sYXJnZShtcHpfc3JjcHRy IHopOgorICAgICAiIiIKKyAgICAgQ29udmVydCBhIG5vbi16ZXJvIGBgbXB6YGAgdG8gYSBQeXRo b24gYGBsb25nYGAuCisgICAgICIiIgorQEAgLTY4LDcgKzY4LDcgQEAgY2RlZiBtcHpfZ2V0X3B5 bG9uZ19sYXJnZShtcHpfc3JjcHRyIHopIG5vZXhjZXB0OgorICAgICByZXR1cm4gTAorIAorIAor LWNkZWYgbXB6X2dldF9weWxvbmcobXB6X3NyY3B0ciB6KSBub2V4Y2VwdDoKKytjZGVmIG1wel9n ZXRfcHlsb25nKG1wel9zcmNwdHIgeik6CisgICAgICIiIgorICAgICBDb252ZXJ0IGFuIGBgbXB6 YGAgdG8gYSBQeXRob24gYGBsb25nYGAuCisgICAgICIiIgorQEAgLTc3LDcgKzc3LDcgQEAgY2Rl ZiBtcHpfZ2V0X3B5bG9uZyhtcHpfc3JjcHRyIHopIG5vZXhjZXB0OgorICAgICByZXR1cm4gbXB6 X2dldF9weWxvbmdfbGFyZ2UoeikKKyAKKyAKKy1jZGVmIG1wel9nZXRfcHlpbnRsb25nKG1wel9z cmNwdHIgeikgbm9leGNlcHQ6CisrY2RlZiBtcHpfZ2V0X3B5aW50bG9uZyhtcHpfc3JjcHRyIHop OgorICAgICAiIiIKKyAgICAgQ29udmVydCBhbiBgYG1wemBgIHRvIGEgUHl0aG9uIGBgaW50YGAg aWYgcG9zc2libGUsIG9yIGEgYGBsb25nYGAKKyAgICAgaWYgdGhlIHZhbHVlIGlzIHRvbyBsYXJn ZS4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2xpbmJveC9jb252ZXJzaW9uLnB4ZCBiL3Ny Yy9zYWdlL2xpYnMvbGluYm94L2NvbnZlcnNpb24ucHhkCitpbmRleCBhNGNkZDA5NzExZC4uYTQ0 MzQzMWFkYmIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2xpbmJveC9jb252ZXJzaW9uLnB4 ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9saW5ib3gvY29udmVyc2lvbi5weGQKK0BAIC0xNjcsNyAr MTY3LDcgQEAgY2RlZiBpbmxpbmUgRGVuc2VWZWN0b3JfaW50ZWdlciAqIG5ld19saW5ib3hfdmVj dG9yX2ludGVnZXJfZGVuc2UoWlJpbmcgJlpaLCBWZWMKKyAKKyAgICAgcmV0dXJuIFYKKyAKKy1j ZGVmIGlubGluZSBWZWN0b3JfaW50ZWdlcl9kZW5zZSBuZXdfc2FnZV92ZWN0b3JfaW50ZWdlcl9k ZW5zZShQLCBEZW5zZVZlY3Rvcl9pbnRlZ2VyICZ2KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBW ZWN0b3JfaW50ZWdlcl9kZW5zZSBuZXdfc2FnZV92ZWN0b3JfaW50ZWdlcl9kZW5zZShQLCBEZW5z ZVZlY3Rvcl9pbnRlZ2VyICZ2KToKKyAgICAgciIiIgorICAgICBSZXR1cm4gYSBuZXcgU2FnZSB2 ZWN0b3IgZnJvbSBhIExpbkJveCBvbmUuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9s aW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9yYW0ucHhpIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdl cy9wYWRpY3MvUG9seW5vbWlhbF9yYW0ucHhpCitpbmRleCAyMDQ4YmIwYTNjMi4uZTA1ODRlY2I4 YWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFs X3JhbS5weGkKKysrKyBiL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxf cmFtLnB4aQorQEAgLTMxOCw3ICszMTgsNyBAQCBjZGVmIGlubGluZSBpbnQgY3BvdyhjZWxlbWVu dCBvdXQsIGNlbGVtZW50IGEsIG1wel90IG4sIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfCisgX2V4 cGFuc2lvbl96ZXJvID0gW10KKyAKKyAjIHRoZSBleHBhbnNpb25fbW9kZSBlbnVtIGlzIGRlZmlu ZWQgaW4gcGFkaWNfdGVtcGxhdGVfZWxlbWVudF9oZWFkZXIucHhpCistY2RlZiBpbmxpbmUgY2V4 cGFuc2lvbl9uZXh0KGNlbGVtZW50IHZhbHVlLCBleHBhbnNpb25fbW9kZSBtb2RlLCBsb25nIGN1 cnBvd2VyLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBj ZXhwYW5zaW9uX25leHQoY2VsZW1lbnQgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGxvbmcg Y3VycG93ZXIsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICBpZiBtb2RlID09IHRlaWNo bXVsbGVyX21vZGU6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICMg VGhpcyBpcyBub3QgdmVyeSBlZmZpY2llbnQsIGJ1dCB0aGVyZSdzIG5vIGNsZWFyIGJldHRlciB3 YXkuCitAQCAtMzM5LDcgKzMzOSw3IEBAIGNkZWYgaW5saW5lIGNleHBhbnNpb25fbmV4dChjZWxl bWVudCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgbG9uZyBjdXJwb3dlciwKKyAgICAgY3No aWZ0X25vdHJ1bmModmFsdWUsIHZhbHVlLCAtMSwgY3VycG93ZXIsIHByaW1lX3BvdywgRmFsc2Up CisgICAgIHJldHVybiB0ZXJtCisgCistY2RlZiBpbmxpbmUgY2V4cGFuc2lvbl9nZXRpdGVtKGNl bGVtZW50IHZhbHVlLCBsb25nIG0sIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0Ogor K2NkZWYgaW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShjZWxlbWVudCB2YWx1ZSwgbG9uZyBtLCBQ b3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgYG1gdGgg YHBgLWFkaWMgZGlnaXQgaW4gdGhlIGBgc2ltcGxlX21vZGVgYCBleHBhbnNpb24uCisgCitAQCAt MzgzLDcgKzM4Myw3IEBAIGNkZWYgaW50IGN0ZWljaG11bGxlcihjZWxlbWVudCBvdXQsIGNlbGVt ZW50IHZhbHVlLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltCisgICAgIGVsc2U6CisgICAg ICAgICBvdXQuX2NvZWZmcyA9IFt2YWx1ZVswXS5wYXJlbnQoKS50ZWljaG11bGxlcih2YWx1ZVsw XSldCisgCistY2RlZiBsaXN0IGNjb2VmZmljaWVudHMoY2VsZW1lbnQgeCwgbG9uZyB2YWxzaGlm dCwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBub2V4Y2VwdDoKKytjZGVmIGxp c3QgY2NvZWZmaWNpZW50cyhjZWxlbWVudCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHByZWMsIFBv d0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGEgbGlzdCBvZiBj b2VmZmljaWVudHMsIGFzIGVsZW1lbnRzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIHRoZSBi YXNlIHJpbmcuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3Mv UG9seW5vbWlhbF9zaGFyZWQucHhpIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvUG9s eW5vbWlhbF9zaGFyZWQucHhpCitpbmRleCBiMjEwYjUzY2UxOS4uMzY3YmJjMmYzM2QgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3NoYXJlZC5w eGkKKysrKyBiL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfc2hhcmVk LnB4aQorQEAgLTMzMiw3ICszMzIsNyBAQCBjZGVmIGlubGluZSBpbnQgY2NvcHkoY2VsZW1lbnQg b3V0LCBjZWxlbWVudCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLQorICAgICAi IiIKKyAgICAgb3V0Ll9jb2VmZnMgPSBhLl9jb2VmZnNbOl0KKyAKKy1jZGVmIGlubGluZSBjcGlj a2xlKGNlbGVtZW50IGEsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYg aW5saW5lIGNwaWNrbGUoY2VsZW1lbnQgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6CisgICAg IHIiIiIKKyAgICAgUmV0dXJuIGEgcmVwcmVzZW50YXRpb24gb2YgYGBhYGAgZm9yIHBpY2tsaW5n LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL2ZtcHpfcG9s eV91bnJhbS5weGkgYi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9mbXB6X3BvbHlfdW5y YW0ucHhpCitpbmRleCAxOGY3MTBmYWQzNi4uMjE3MWI0MjY5MTEgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9mbXB6X3BvbHlfdW5yYW0ucHhpCisrKysgYi9zcmMv c2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9mbXB6X3BvbHlfdW5yYW0ucHhpCitAQCAtNDk5LDcg KzQ5OSw3IEBAIGNkZWYgaW5saW5lIGludCBjY29weShjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEs IFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtCisgICAgICIiIgorICAgICBmbXB6X3Bv bHlfc2V0KG91dCwgYSkKKyAKKy1jZGVmIGlubGluZSBjcGlja2xlKGNlbGVtZW50IGEsIFBvd0Nv bXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGNwaWNrbGUoY2VsZW1l bnQgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6CisgICAgICIiIgorICAgICBTZXJpYWxpemF0 aW9uIGludG8gb2JqZWN0cyB0aGF0IFNhZ2Uga25vd3MgaG93IHRvIHBpY2tsZS4KKyAKK0BAIC01 NDYsNyArNTQ2LDcgQEAgY2RlZiBpbmxpbmUgbG9uZyBjaGFzaChjZWxlbWVudCBhLCBsb25nIG9y ZHAsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykKKyAgICAgZm1wel9wb2x5X2dl dF9jb2VmZl9tcHooaC52YWx1ZSwgYSwgMCkKKyAgICAgcmV0dXJuIGhhc2goaCkKKyAKKy1jZGVm IGlubGluZSBjbW9kcF9yZXAoZm1wel9wb2x5X3QgcmVwLCBmbXB6X3BvbHlfdCB2YWx1ZSwgZXhw YW5zaW9uX21vZGUgbW9kZSwgYmludCByZXR1cm5fbGlzdCwgUG93Q29tcHV0ZXJfIHByaW1lX3Bv dykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY21vZHBfcmVwKGZtcHpfcG9seV90IHJlcCwgZm1w el9wb2x5X3QgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGJpbnQgcmV0dXJuX2xpc3QsIFBv d0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAiIiIKKyAgICAgQ29tcHV0ZSBhIHBvbHlub21p YWwgdGhhdCBpcyByZWR1Y2VkIG1vZHVsbyBwIGFuZCBlcXVpdmFsZW50IHRvIHRoZSBnaXZlbiB2 YWx1ZS4KKyAKK0BAIC01NzksNyArNTc5LDcgQEAgY2RlZiBpbmxpbmUgY21vZHBfcmVwKGZtcHpf cG9seV90IHJlcCwgZm1wel9wb2x5X3QgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGIKKyAg ICAgICAgICAgICByZXR1cm4gTAorIAorICMgdGhlIGV4cGFuc2lvbl9tb2RlIGVudW0gaXMgZGVm aW5lZCBpbiBwYWRpY190ZW1wbGF0ZV9lbGVtZW50X2hlYWRlci5weGkKKy1jZGVmIGlubGluZSBj ZXhwYW5zaW9uX25leHQoZm1wel9wb2x5X3QgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGxv bmcgY3VycG93ZXIsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYgaW5s aW5lIGNleHBhbnNpb25fbmV4dChmbXB6X3BvbHlfdCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9k ZSwgbG9uZyBjdXJwb3dlciwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6CisgICAgICIiIgorICAg ICBSZXR1cm4gdGhlIG5leHQgZGlnaXQgaW4gYSBgcGAtYWRpYyBleHBhbnNpb24gb2YgYGB2YWx1 ZWBgLgorIAorQEAgLTYwOSw3ICs2MDksNyBAQCBjZGVmIGlubGluZSBjZXhwYW5zaW9uX25leHQo Zm1wel9wb2x5X3QgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGxvbmcgY3VycG93ZQorICAg ICBfZm1wel9wb2x5X25vcm1hbGlzZSh2YWx1ZSkKKyAgICAgcmV0dXJuIHRyaW1femVyb3MoYW5z KSAjIGRlZmluZWQgaW4gc2FnZS5yaW5ncy5wYWRpY3MubWlzYyBhbmQgaW1wb3J0ZWQgaW4gcGFk aWNfdGVtcGxhdGVfZWxlbWVudAorIAorLWNkZWYgaW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShm bXB6X3BvbHlfdCB2YWx1ZSwgbG9uZyBtLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBub2V4Y2Vw dDoKKytjZGVmIGlubGluZSBjZXhwYW5zaW9uX2dldGl0ZW0oZm1wel9wb2x5X3QgdmFsdWUsIGxv bmcgbSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhl IGBtYHRoIGBwYC1hZGljIGRpZ2l0IGluIHRoZSBgYHNpbXBsZV9tb2RlYGAgZXhwYW5zaW9uLgor IAorQEAgLTYzOSw3ICs2MzksNyBAQCBjZGVmIGlubGluZSBjZXhwYW5zaW9uX2dldGl0ZW0oZm1w el9wb2x5X3QgdmFsdWUsIGxvbmcgbSwgUG93Q29tcHV0ZXJfIHByaW1lX3BvdworICMgVGhlIGVs ZW1lbnQgaXMgZmlsbGVkIGluIGZvciB6ZXJvIGluIHRoZSBwLWFkaWMgZXhwYW5zaW9uIGlmIG5l Y2Vzc2FyeS4KKyBfZXhwYW5zaW9uX3plcm8gPSBbXQorIAorLWNkZWYgbGlzdCBjY29lZmZpY2ll bnRzKGNlbGVtZW50IHgsIGxvbmcgdmFsc2hpZnQsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHBy aW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBsaXN0IGNjb2VmZmljaWVudHMoY2VsZW1lbnQgeCwg bG9uZyB2YWxzaGlmdCwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAg IiIiCisgICAgIFJldHVybiBhIGxpc3Qgb2YgY29lZmZpY2llbnRzLCBhcyBlbGVtZW50cyB0aGF0 IGNhbiBiZSBjb252ZXJ0ZWQgaW50byB0aGUgYmFzZSByaW5nLgorIAorQEAgLTg0OSw3ICs4NDks NyBAQCBjZGVmIGlubGluZSBpbnQgY2NvbnZfbXB6X3Rfb3V0KG1wel90IG91dCwgY2VsZW1lbnQg eCwgbG9uZyB2YWxzaGlmdCwgbG9uZyBwcmVjLAorIAorICMjIEV4dHJhIGZ1bmN0aW9ucyAjIwor IAorLWNkZWYgY21hdHJpeF9tb2RfcG4oY2VsZW1lbnQgYSwgbG9uZyBhcHJlYywgbG9uZyB2YWxz aGlmdCwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBjbWF0cml4X21v ZF9wbihjZWxlbWVudCBhLCBsb25nIGFwcmVjLCBsb25nIHZhbHNoaWZ0LCBQb3dDb21wdXRlcl8g cHJpbWVfcG93KToKKyAgICAgciIiIgorICAgICBSZXR1cm5zIHRoZSBtYXRyaXggb2YgcmlnaHQg bXVsdGlwbGljYXRpb24gYnkgdGhlIGVsZW1lbnQgb24KKyAgICAgdGhlIHBvd2VyIGJhc2lzIGAx LCB4LCB4XjIsIFxsZG90cywgeF57ZC0xfWAgZm9yIHRoaXMKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9saWJzL2xpbmthZ2VzL3BhZGljcy9tcHoucHhpIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9w YWRpY3MvbXB6LnB4aQoraW5kZXggYmE4YzE0M2YzYjcuLjNhNTU1ZTQ0MWRjIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvbXB6LnB4aQorKysrIGIvc3JjL3NhZ2Uv bGlicy9saW5rYWdlcy9wYWRpY3MvbXB6LnB4aQorQEAgLTQzNSw3ICs0MzUsNyBAQCBjZGVmIGlu bGluZSBpbnQgY2NvcHkobXB6X3Qgb3V0LCBtcHpfdCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93 KSBleGNlcHQgLTE6CisgICAgICIiIgorICAgICBtcHpfc2V0KG91dCwgYSkKKyAKKy1jZGVmIGlu bGluZSBjcGlja2xlKG1wel90IGEsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0Ogor K2NkZWYgaW5saW5lIGNwaWNrbGUobXB6X3QgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6Cisg ICAgICIiIgorICAgICBTZXJpYWxpemF0aW9uIGludG8gb2JqZWN0cyB0aGF0IFNhZ2Uga25vd3Mg aG93IHRvIHBpY2tsZS4KKyAKK0BAIC00OTMsNyArNDkzLDcgQEAgY2RlZiBpbmxpbmUgbG9uZyBj aGFzaChtcHpfdCBhLCBsb25nIG9yZHAsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3Bv dykgZXgKKyAgICAgICAgIHJldHVybiBuCisgCisgIyB0aGUgZXhwYW5zaW9uX21vZGUgZW51bSBp cyBkZWZpbmVkIGluIHBhZGljX3RlbXBsYXRlX2VsZW1lbnRfaGVhZGVyLnB4aQorLWNkZWYgaW5s aW5lIGNleHBhbnNpb25fbmV4dChtcHpfdCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgbG9u ZyBjdXJwb3dlciwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBpbmxp bmUgY2V4cGFuc2lvbl9uZXh0KG1wel90IHZhbHVlLCBleHBhbnNpb25fbW9kZSBtb2RlLCBsb25n IGN1cnBvd2VyLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgIiIiCisgICAgIFJldHVy biB0aGUgbmV4dCBkaWdpdCBpbiBhIGBwYC1hZGljIGV4cGFuc2lvbiBvZiBgYHZhbHVlYGAuCisg CitAQCAtNTIzLDcgKzUyMyw3IEBAIGNkZWYgaW5saW5lIGNleHBhbnNpb25fbmV4dChtcHpfdCB2 YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgbG9uZyBjdXJwb3dlciwgUG93CisgICAgICAgICBt cHpfc3ViKHZhbHVlLCB2YWx1ZSwgcHJpbWVfcG93LnBvd19tcHpfdF90bXAoY3VycG93ZXIpKQor ICAgICByZXR1cm4gYW5zCisgCistY2RlZiBpbmxpbmUgY2V4cGFuc2lvbl9nZXRpdGVtKG1wel90 IHZhbHVlLCBsb25nIG0sIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYg aW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShtcHpfdCB2YWx1ZSwgbG9uZyBtLCBQb3dDb21wdXRl cl8gcHJpbWVfcG93KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgYG1gdGggYHBgLWFkaWMg ZGlnaXQgaW4gdGhlIGBgc2ltcGxlX21vZGVgYCBleHBhbnNpb24uCisgCitAQCAtNTQ1LDcgKzU0 NSw3IEBAIGNkZWYgaW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShtcHpfdCB2YWx1ZSwgbG9uZyBt LCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBub2V4CisgIyBJdCBjb3VsZCBiZSBbXSBmb3Igc29t ZSBvdGhlciBsaW5rYWdlcy4KKyBfZXhwYW5zaW9uX3plcm8gPSBJbnRlZ2VyKDApCisgCistY2Rl ZiBsaXN0IGNjb2VmZmljaWVudHMobXB6X3QgeCwgbG9uZyB2YWxzaGlmdCwgbG9uZyBwcmVjLCBQ b3dDb21wdXRlcl8gcHJpbWVfcG93KSBub2V4Y2VwdDoKKytjZGVmIGxpc3QgY2NvZWZmaWNpZW50 cyhtcHpfdCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9w b3cpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGEgbGlzdCBvZiBjb2VmZmljaWVudHMsIGFzIGVs ZW1lbnRzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIHRoZSBiYXNlIHJpbmcuCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvcmVsYXhlZC9mbGludC5weGkg Yi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9yZWxheGVkL2ZsaW50LnB4aQoraW5kZXgg YTFjYmRlZWRmODEuLjcwODVmZDc2YWM4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9saW5r YWdlcy9wYWRpY3MvcmVsYXhlZC9mbGludC5weGkKKysrKyBiL3NyYy9zYWdlL2xpYnMvbGlua2Fn ZXMvcGFkaWNzL3JlbGF4ZWQvZmxpbnQucHhpCitAQCAtNjcsNyArNjcsNyBAQCBjZGVmIGlubGlu ZSB2b2lkIGRpZ2l0X2NsZWFyKGZtcHpfdCBhKSBub2V4Y2VwdDoKKyAKKyAjIGdldCBhbmQgc2V0 CisgCistY2RlZiBpbmxpbmUgSW50ZWdlciBkaWdpdF9nZXRfc2FnZShmbXB6X3QgYSkgbm9leGNl cHQ6CisrY2RlZiBpbmxpbmUgSW50ZWdlciBkaWdpdF9nZXRfc2FnZShmbXB6X3QgYSk6CisgICAg IHIiIiIKKyAgICAgQ29udmVydCBhIGRpZ2l0IHRvIGEgU2FnZSBlbGVtZW50LgorIAorQEAgLTMy OSw3ICszMjksNyBAQCBjZGVmIGlubGluZSB2b2lkIGVsZW1lbnRfY2xlYXIoZm1wel9wb2x5X3Qg eCkgbm9leGNlcHQ6CisgCisgIyBnZXQgYW5kIHNldAorIAorLWNkZWYgaW5saW5lIEludGVnZXIg ZWxlbWVudF9nZXRfc2FnZShmbXB6X3BvbHlfdCB4LCBQb3dDb21wdXRlcl9mbGludCBwcmltZV9w b3cpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIEludGVnZXIgZWxlbWVudF9nZXRfc2FnZShmbXB6 X3BvbHlfdCB4LCBQb3dDb21wdXRlcl9mbGludCBwcmltZV9wb3cpOgorICAgICByIiIiCisgICAg IENvbnZlcnQgYSBkaWdpdCB0byBhIFNhZ2UgZWxlbWVudC4KKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9saWJzL21wbWF0aC9leHRfaW1wbC5weGQgYi9zcmMvc2FnZS9saWJzL21wbWF0aC9leHRf aW1wbC5weGQKK2luZGV4IGYyNTQwZDMyNmRkLi41ODZkMTBkMTdmMiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2xpYnMvbXBtYXRoL2V4dF9pbXBsLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9tcG1h dGgvZXh0X2ltcGwucHhkCitAQCAtNCwxMSArNCwxMSBAQCBjdHlwZWRlZiBzdHJ1Y3QgTVBvcHRz OgorICAgICBsb25nIHByZWMKKyAgICAgaW50IHJvdW5kaW5nCisgCistY2RlZiBtcHpfc2V0X2lu dGVnZXIobXB6X3QgdiwgeCkgbm9leGNlcHQKKy1jZGVmIG1wemkobXB6X3Qgbikgbm9leGNlcHQK Ky1jZGVmIG1wemwobXB6X3Qgbikgbm9leGNlcHQKKy1jZGVmIHN0ciBybmRtb2RlX3RvX3B5dGhv bihpbnQgcm5kKSBub2V4Y2VwdAorLWNkZWYgcm5kbW9kZV9mcm9tX3B5dGhvbihzdHIgcm5kKSBu b2V4Y2VwdAorK2NkZWYgbXB6X3NldF9pbnRlZ2VyKG1wel90IHYsIHgpCisrY2RlZiBtcHppKG1w el90IG4pCisrY2RlZiBtcHpsKG1wel90IG4pCisrY2RlZiBzdHIgcm5kbW9kZV90b19weXRob24o aW50IHJuZCkKKytjZGVmIHJuZG1vZGVfZnJvbV9weXRob24oc3RyIHJuZCkKKyAKKyBjdHlwZWRl ZiBzdHJ1Y3QgTVBGOgorICAgICBtcHpfdCBtYW4KK0BAIC0yMywyMSArMjMsMjEgQEAgY2RlZiB2 b2lkIE1QRl9zZXRfb25lKE1QRiAqeCkgbm9leGNlcHQKKyBjZGVmIHZvaWQgTVBGX3NldF9uYW4o TVBGICp4KSBub2V4Y2VwdAorIGNkZWYgdm9pZCBNUEZfc2V0X2luZihNUEYgKngpIG5vZXhjZXB0 CisgY2RlZiB2b2lkIE1QRl9zZXRfbmluZihNUEYgKngpIG5vZXhjZXB0CistY2RlZiBNUEZfc2V0 X3NpKE1QRiAqeCwgbG9uZyBuKSBub2V4Y2VwdAorLWNkZWYgTVBGX3NldF9pbnQoTVBGICp4LCBu KSBub2V4Y2VwdAorLWNkZWYgTVBGX3NldF9tYW5fZXhwKE1QRiAqeCwgbWFuLCBleHApIG5vZXhj ZXB0CistY2RlZiBNUEZfc2V0X3R1cGxlKE1QRiAqeCwgdHVwbGUgdmFsdWUpIG5vZXhjZXB0Cist Y2RlZiBNUEZfdG9fdHVwbGUoTVBGICp4KSBub2V4Y2VwdAorLWNkZWYgTVBGX3NldF9kb3VibGUo TVBGICpyLCBkb3VibGUgeCkgbm9leGNlcHQKKytjZGVmIE1QRl9zZXRfc2koTVBGICp4LCBsb25n IG4pCisrY2RlZiBNUEZfc2V0X2ludChNUEYgKngsIG4pCisrY2RlZiBNUEZfc2V0X21hbl9leHAo TVBGICp4LCBtYW4sIGV4cCkKKytjZGVmIE1QRl9zZXRfdHVwbGUoTVBGICp4LCB0dXBsZSB2YWx1 ZSkKKytjZGVmIE1QRl90b190dXBsZShNUEYgKngpCisrY2RlZiBNUEZfc2V0X2RvdWJsZShNUEYg KnIsIGRvdWJsZSB4KQorIGNkZWYgZG91YmxlIE1QRl90b19kb3VibGUoTVBGICp4LCBiaW50IHN0 cmljdCkgbm9leGNlcHQKKy1jZGVmIE1QRl90b19maXhlZChtcHpfdCByLCBNUEYgKngsIGxvbmcg cHJlYywgYmludCB0cnVuY2F0ZSkgbm9leGNlcHQKKytjZGVmIE1QRl90b19maXhlZChtcHpfdCBy LCBNUEYgKngsIGxvbmcgcHJlYywgYmludCB0cnVuY2F0ZSkKKyBjZGVmIGludCBNUEZfc2duKE1Q RiAqeCkgbm9leGNlcHQKKyBjZGVmIHZvaWQgTVBGX25lZyhNUEYgKnIsIE1QRiAqcykgbm9leGNl cHQKKyBjZGVmIHZvaWQgTVBGX2FicyhNUEYgKnIsIE1QRiAqcykgbm9leGNlcHQKKy1jZGVmIE1Q Rl9ub3JtYWxpemUoTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQKKytjZGVmIE1QRl9ub3Jt YWxpemUoTVBGICp4LCBNUG9wdHMgb3B0cykKKyBjZGVmIHZvaWQgTVBGX3BvcyhNUEYgKngsIE1Q RiAqeSwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0CistY2RlZiBNUEZfYWRkKE1QRiAqciwgTVBGICpz LCBNUEYgKnQsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAorLWNkZWYgTVBGX3N1YihNUEYgKnIsIE1Q RiAqcywgTVBGICp0LCBNUG9wdHMgb3B0cykgbm9leGNlcHQKKytjZGVmIE1QRl9hZGQoTVBGICpy LCBNUEYgKnMsIE1QRiAqdCwgTVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfc3ViKE1QRiAqciwgTVBG ICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRzKQorIGNkZWYgYmludCBNUEZfZXEoTVBGICpzLCBNUEYg KnQpIG5vZXhjZXB0CisgY2RlZiBiaW50IE1QRl9uZShNUEYgKnMsIE1QRiAqdCkgbm9leGNlcHQK KyBjZGVmIGludCBNUEZfY21wKE1QRiAqcywgTVBGICp0KSBub2V4Y2VwdAorQEAgLTQ1LDIyICs0 NSwyMiBAQCBjZGVmIGJpbnQgTVBGX2x0KE1QRiAqcywgTVBGICp0KSBub2V4Y2VwdAorIGNkZWYg YmludCBNUEZfbGUoTVBGICpzLCBNUEYgKnQpIG5vZXhjZXB0CisgY2RlZiBiaW50IE1QRl9ndChN UEYgKnMsIE1QRiAqdCkgbm9leGNlcHQKKyBjZGVmIGJpbnQgTVBGX2dlKE1QRiAqcywgTVBGICp0 KSBub2V4Y2VwdAorLWNkZWYgTVBGX211bChNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBNUG9wdHMg b3B0cykgbm9leGNlcHQKKy1jZGVmIE1QRl9kaXYoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCwgTVBv cHRzIG9wdHMpIG5vZXhjZXB0CisrY2RlZiBNUEZfbXVsKE1QRiAqciwgTVBGICpzLCBNUEYgKnQs IE1Qb3B0cyBvcHRzKQorK2NkZWYgTVBGX2RpdihNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBNUG9w dHMgb3B0cykKKyBjZGVmIGludCBNUEZfc3FydChNUEYgKnIsIE1QRiAqcywgTVBvcHRzIG9wdHMp IG5vZXhjZXB0CistY2RlZiBNUEZfaHlwb3QoTVBGICpyLCBNUEYgKmEsIE1QRiAqYiwgTVBvcHRz IG9wdHMpIG5vZXhjZXB0CistY2RlZiBNUEZfcG93X2ludChNUEYgKnIsIE1QRiAqeCwgbXB6X3Qg biwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0CistY2RlZiBNUEZfc2V0X2RvdWJsZShNUEYgKnIsIGRv dWJsZSB4KSBub2V4Y2VwdAorLWNkZWYgTVBGX2V4cChNUEYgKnksIE1QRiAqeCwgTVBvcHRzIG9w dHMpIG5vZXhjZXB0CistY2RlZiBNUEZfY29tcGxleF9zcXJ0KE1QRiAqYywgTVBGICpkLCBNUEYg KmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0CistY2RlZiBNUEZfY29tcGxleF9leHAo TVBGICpyZSwgTVBGICppbSwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAor K2NkZWYgTVBGX2h5cG90KE1QRiAqciwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKQorK2Nk ZWYgTVBGX3Bvd19pbnQoTVBGICpyLCBNUEYgKngsIG1wel90IG4sIE1Qb3B0cyBvcHRzKQorK2Nk ZWYgTVBGX3NldF9kb3VibGUoTVBGICpyLCBkb3VibGUgeCkKKytjZGVmIE1QRl9leHAoTVBGICp5 LCBNUEYgKngsIE1Qb3B0cyBvcHRzKQorK2NkZWYgTVBGX2NvbXBsZXhfc3FydChNUEYgKmMsIE1Q RiAqZCwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKQorK2NkZWYgTVBGX2NvbXBsZXhfZXhw KE1QRiAqcmUsIE1QRiAqaW0sIE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0cykKKyBjZGVmIGlu dCBNUEZfbG9nKE1QRiAqeSwgTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQKKy1jZGVmIE1Q Rl9zZXRfcGkoTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQKKy1jZGVmIE1QRl9zZXRfbG4y KE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0CistY2RlZiBNUEZfY29zKE1QRiAqYywgTVBG ICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQKKy1jZGVmIE1QRl9zaW4oTVBGICpjLCBNUEYgKngs IE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAorLWNkZWYgTVBGX2Nvc19zaW4oTVBGICpjLCBNUEYgKnMs IE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0CisrY2RlZiBNUEZfc2V0X3BpKE1QRiAqeCwg TVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfc2V0X2xuMihNUEYgKngsIE1Qb3B0cyBvcHRzKQorK2Nk ZWYgTVBGX2NvcyhNUEYgKmMsIE1QRiAqeCwgTVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfc2luKE1Q RiAqYywgTVBGICp4LCBNUG9wdHMgb3B0cykKKytjZGVmIE1QRl9jb3Nfc2luKE1QRiAqYywgTVBG ICpzLCBNUEYgKngsIE1Qb3B0cyBvcHRzKQorIGNkZWYgaW50IE1QRl9wb3coTVBGICp6LCBNUEYg KngsIE1QRiAqeSwgTVBvcHRzIG9wdHMpIGV4Y2VwdCAtMQorLWNkZWYgTVBGX2NvbXBsZXhfcG93 KE1QRiAqenJlLCBNUEYgKnppbSwgTVBGICp4cmUsIE1QRiAqeGltLCBNUEYgKnlyZSwgTVBGICp5 aW0sIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAorK2NkZWYgTVBGX2NvbXBsZXhfcG93KE1QRiAqenJl LCBNUEYgKnppbSwgTVBGICp4cmUsIE1QRiAqeGltLCBNUEYgKnlyZSwgTVBGICp5aW0sIE1Qb3B0 cyBvcHRzKQorIGNkZWYgTVBGX2h5cHN1bShNUEYgKmEsIE1QRiAqYiwgaW50IHAsIGludCBxLCBw YXJhbV90eXBlcywgc3RyIHp0eXBlLCBjb2VmZnMsIFwKKy0gICAgeiwgbG9uZyBwcmVjLCBsb25n IHdwLCBsb25nIGVwc3NoaWZ0LCBkaWN0IG1hZ25pdHVkZV9jaGVjaywga3dhcmdzKSBub2V4Y2Vw dAorKyAgICB6LCBsb25nIHByZWMsIGxvbmcgd3AsIGxvbmcgZXBzc2hpZnQsIGRpY3QgbWFnbml0 dWRlX2NoZWNrLCBrd2FyZ3MpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9tcG1hdGgvZXh0 X2ltcGwucHl4IGIvc3JjL3NhZ2UvbGlicy9tcG1hdGgvZXh0X2ltcGwucHl4CitpbmRleCAxODI3 Yjg1Yjk0OC4uYzU4NDkzNzRmZGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL21wbWF0aC9l eHRfaW1wbC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbXBtYXRoL2V4dF9pbXBsLnB5eAorQEAg LTQyLDcgKzQyLDcgQEAgZnJvbSBzYWdlLnJpbmdzLmludGVnZXIgY2ltcG9ydCBJbnRlZ2VyCisg CisgZnJvbSBzYWdlLmxpYnMuZ21wLnB5bG9uZyBjaW1wb3J0ICoKKyAKKy1jZGVmIG1wel9zZXRf aW50ZWdlcihtcHpfdCB2LCB4KSBub2V4Y2VwdDoKKytjZGVmIG1wel9zZXRfaW50ZWdlcihtcHpf dCB2LCB4KToKKyAgICAgaWYgaXNpbnN0YW5jZSh4LCBpbnQpOgorICAgICAgICAgbXB6X3NldF9w eWxvbmcodiwgeCkKKyAgICAgZWxpZiBpc2luc3RhbmNlKHgsIEludGVnZXIpOgorQEAgLTU3LDEw ICs1NywxMCBAQCBjZGVmIGlubGluZSB2b2lkIG1wel9hZGRfc2kobXB6X3QgYSwgbXB6X3QgYiwg bG9uZyB4KSBub2V4Y2VwdDoKKyAgICAgICAgICMgY2FyZWZ1bDogb3ZlcmZsb3cgd2hlbiBuZWdh dGluZyBJTlRfTUlOCisgICAgICAgICBtcHpfc3ViX3VpKGEsIGIsIDx1bnNpZ25lZCBsb25nPigt eCkpCisgCistY2RlZiBpbmxpbmUgbXB6aShtcHpfdCBuKSBub2V4Y2VwdDoKKytjZGVmIGlubGlu ZSBtcHppKG1wel90IG4pOgorICAgICByZXR1cm4gbXB6X2dldF9weWludGxvbmcobikKKyAKKy1j ZGVmIGlubGluZSBtcHpsKG1wel90IG4pIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIG1wemwobXB6 X3Qgbik6CisgICAgIHJldHVybiBtcHpfZ2V0X3B5bG9uZyhuKQorIAorICMgVGhpcyBzaG91bGQg YmUgZG9uZSBiZXR0ZXIKK0BAIC0xMjAsMTQgKzEyMCwxNCBAQCBERUYgU19JTkYgPSAzCisgREVG IFNfTklORiA9IDQKKyBERUYgU19OQU4gPSA1CisgCistY2RlZiBpbmxpbmUgc3RyIHJuZG1vZGVf dG9fcHl0aG9uKGludCBybmQpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIHN0ciBybmRtb2RlX3Rv X3B5dGhvbihpbnQgcm5kKToKKyAgICAgaWYgcm5kID09IFJPVU5EX046IHJldHVybiAnbicKKyAg ICAgaWYgcm5kID09IFJPVU5EX0Y6IHJldHVybiAnZicKKyAgICAgaWYgcm5kID09IFJPVU5EX0M6 IHJldHVybiAnYycKKyAgICAgaWYgcm5kID09IFJPVU5EX0Q6IHJldHVybiAnZCcKKyAgICAgaWYg cm5kID09IFJPVU5EX1U6IHJldHVybiAndScKKyAKKy1jZGVmIGlubGluZSBybmRtb2RlX2Zyb21f cHl0aG9uKHN0ciBybmQpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIHJuZG1vZGVfZnJvbV9weXRo b24oc3RyIHJuZCk6CisgICAgIGlmIHJuZCA9PSAnbic6IHJldHVybiBST1VORF9OCisgICAgIGlm IHJuZCA9PSAnZic6IHJldHVybiBST1VORF9GCisgICAgIGlmIHJuZCA9PSAnYyc6IHJldHVybiBS T1VORF9DCitAQCAtMjA1LDcgKzIwNSw3IEBAIGNkZWYgaW5saW5lIHZvaWQgTVBGX3NldF9uaW5m KE1QRiAqeCkgbm9leGNlcHQ6CisgICAgICIiIlNldCB2YWx1ZSB0byAtaW5maW5pdHkuIiIiCisg ICAgIHguc3BlY2lhbCA9IFNfTklORgorIAorLWNkZWYgTVBGX3NldF9zaShNUEYgKngsIGxvbmcg bikgbm9leGNlcHQ6CisrY2RlZiBNUEZfc2V0X3NpKE1QRiAqeCwgbG9uZyBuKToKKyAgICAgIiIi U2V0IHZhbHVlIHRvIHRoYXQgb2YgYSBnaXZlbiBDIChsb25nKSBpbnRlZ2VyLiIiIgorICAgICBp ZiBuOgorICAgICAgICAgeC5zcGVjaWFsID0gU19OT1JNQUwKK0BAIC0yMTUsNyArMjE1LDcgQEAg Y2RlZiBNUEZfc2V0X3NpKE1QRiAqeCwgbG9uZyBuKSBub2V4Y2VwdDoKKyAgICAgZWxzZToKKyAg ICAgICAgIE1QRl9zZXRfemVybyh4KQorIAorLWNkZWYgTVBGX3NldF9pbnQoTVBGICp4LCBuKSBu b2V4Y2VwdDoKKytjZGVmIE1QRl9zZXRfaW50KE1QRiAqeCwgbik6CisgICAgICIiIlNldCB2YWx1 ZSB0byB0aGF0IG9mIGEgZ2l2ZW4gUHl0aG9uIGludGVnZXIuIiIiCisgICAgIHguc3BlY2lhbCA9 IFNfTk9STUFMCisgICAgIG1wel9zZXRfaW50ZWdlcih4Lm1hbiwgbikKK0BAIC0yMjUsNyArMjI1 LDcgQEAgY2RlZiBNUEZfc2V0X2ludChNUEYgKngsIG4pIG5vZXhjZXB0OgorICAgICBlbHNlOgor ICAgICAgICAgTVBGX3NldF96ZXJvKHgpCisgCistY2RlZiBNUEZfc2V0X21hbl9leHAoTVBGICp4 LCBtYW4sIGV4cCkgbm9leGNlcHQ6CisrY2RlZiBNUEZfc2V0X21hbl9leHAoTVBGICp4LCBtYW4s IGV4cCk6CisgICAgICIiIgorICAgICBTZXQgdmFsdWUgdG8gbWFuKjJeZXhwIHdoZXJlIG1hbiwg ZXhwIG1heSBiZSBvZiBhbnkgYXBwcm9wcmlhdGUKKyAgICAgUHl0aG9uIGludGVnZXIgdHlwZXMu CitAQCAtMjYwLDcgKzI2MCw3IEBAIGNkZWYgdHVwbGUgX21wZl9mbmFuID0gKDAsIE1QWl9aRVJP LCAtMTIzLCAtMSkKKyBjZGVmIHR1cGxlIF9tcGZfZmluZiA9ICgwLCBNUFpfWkVSTywgLTQ1Niwg LTIpCisgY2RlZiB0dXBsZSBfbXBmX2ZuaW5mID0gKDEsIE1QWl9aRVJPLCAtNzg5LCAtMykKKyAK Ky1jZGVmIE1QRl9zZXRfdHVwbGUoTVBGICp4LCB0dXBsZSB2YWx1ZSkgbm9leGNlcHQ6CisrY2Rl ZiBNUEZfc2V0X3R1cGxlKE1QRiAqeCwgdHVwbGUgdmFsdWUpOgorICAgICAiIiIKKyAgICAgU2V0 IHZhbHVlIG9mIGFuIE1QRiB0byB0aGF0IG9mIGEgbm9ybWFsaXplZCAoc2lnbiwgbWFuLCBleHAs IGJjKSB0dXBsZQorICAgICBpbiB0aGUgZm9ybWF0IHVzZWQgYnkgbXBtYXRoLmxpYm1wLgorQEAg LTI4OSw3ICsyODksNyBAQCBjZGVmIE1QRl9zZXRfdHVwbGUoTVBGICp4LCB0dXBsZSB2YWx1ZSkg bm9leGNlcHQ6CisgICAgIGVsc2U6CisgICAgICAgICBNUEZfc2V0X25hbih4KQorIAorLWNkZWYg TVBGX3RvX3R1cGxlKE1QRiAqeCkgbm9leGNlcHQ6CisrY2RlZiBNUEZfdG9fdHVwbGUoTVBGICp4 KToKKyAgICAgIiIiQ29udmVydCBNUEYgdmFsdWUgdG8gKHNpZ24sIG1hbiwgZXhwLCBiYykgdHVw bGUuIiIiCisgICAgIGNkZWYgSW50ZWdlciBtYW4KKyAgICAgaWYgeC5zcGVjaWFsOgorQEAgLTMw OSw3ICszMDksNyBAQCBjZGVmIE1QRl90b190dXBsZShNUEYgKngpIG5vZXhjZXB0OgorICAgICBi YyA9IG1wel9zaXplaW5iYXNlKHgubWFuLCAyKQorICAgICByZXR1cm4gKHNpZ24sIG1hbiwgZXhw LCBiYykKKyAKKy1jZGVmIE1QRl9zZXRfZG91YmxlKE1QRiAqciwgZG91YmxlIHgpIG5vZXhjZXB0 OgorK2NkZWYgTVBGX3NldF9kb3VibGUoTVBGICpyLCBkb3VibGUgeCk6CisgICAgICIiIgorICAg ICBTZXQgciB0byB0aGUgdmFsdWUgb2YgYSBDIGRvdWJsZSB4LgorICAgICAiIiIKK0BAIC0zNjYs NyArMzY2LDcgQEAgY2RlZiBkb3VibGUgTVBGX3RvX2RvdWJsZShNUEYgKngsIGJpbnQgc3RyaWN0 KSBub2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiBfZG91YmxlX25pbmYKKyAgICAgcmV0dXJuIF9k b3VibGVfbmFuCisgCistY2RlZiBNUEZfdG9fZml4ZWQobXB6X3QgciwgTVBGICp4LCBsb25nIHBy ZWMsIGJpbnQgdHJ1bmNhdGUpIG5vZXhjZXB0OgorK2NkZWYgTVBGX3RvX2ZpeGVkKG1wel90IHIs IE1QRiAqeCwgbG9uZyBwcmVjLCBiaW50IHRydW5jYXRlKToKKyAgICAgIiIiCisgICAgIFNldCBy ID0geCwgciBiZWluZyBpbiB0aGUgZm9ybWF0IG9mIGEgZml4ZWQtcG9pbnQgbnVtYmVyIHdpdGgg cHJlYyBiaXRzLgorICAgICBGbG9vciBkaXZpc2lvbiBpcyB1c2VkIHVubGVzcyB0cnVuY2F0ZT1U cnVlIGluIHdoaWNoIGNhc2UKK0BAIC00NDMsNyArNDQzLDcgQEAgY2RlZiB2b2lkIE1QRl9hYnMo TVBGICpyLCBNUEYgKnMpIG5vZXhjZXB0OgorICAgICBpZiByIGlzIG5vdCBzOgorICAgICAgICAg bXB6X3NldChyLmV4cCwgcy5leHApCisgCistY2RlZiBNUEZfbm9ybWFsaXplKE1QRiAqeCwgTVBv cHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX25vcm1hbGl6ZShNUEYgKngsIE1Qb3B0cyBv cHRzKToKKyAgICAgIiIiCisgICAgIE5vcm1hbGl6ZS4KKyAKK0BAIC02MTYsNyArNjE2LDcgQEAg Y2RlZiB2b2lkIF9tdWxfc3BlY2lhbChNUEYgKnIsIE1QRiAqcywgTVBGICp0KSBub2V4Y2VwdDoK KyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgTVBGX3NldF9uaW5mKHIpCisgCistY2RlZiBf ZGl2X3NwZWNpYWwoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCkgbm9leGNlcHQ6CisrY2RlZiBfZGl2 X3NwZWNpYWwoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCk6CisgICAgICMgVE9ETzogaGFuZGxlIHNp Z25lZCB6ZXJvcyBjb3JyZWN0bHkKKyAgICAgaWYgcy5zcGVjaWFsID09IFNfTkFOIG9yIHQuc3Bl Y2lhbCA9PSBTX05BTjoKKyAgICAgICAgIE1QRl9zZXRfbmFuKHIpCitAQCAtNjM3LDcgKzYzNyw3 IEBAIGNkZWYgX2Rpdl9zcGVjaWFsKE1QRiAqciwgTVBGICpzLCBNUEYgKnQpIG5vZXhjZXB0Ogor ICAgICBlbGlmIHQuc3BlY2lhbCA9PSBTX0lORiBvciB0LnNwZWNpYWwgPT0gU19OSU5GOgorICAg ICAgICAgTVBGX3NldF96ZXJvKHIpCisgCistY2RlZiBfYWRkX3BlcnR1cmJhdGlvbihNUEYgKnIs IE1QRiAqcywgaW50IHNpZ24sIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIF9hZGRfcGVy dHVyYmF0aW9uKE1QRiAqciwgTVBGICpzLCBpbnQgc2lnbiwgTVBvcHRzIG9wdHMpOgorICAgICBj ZGVmIGxvbmcgc2hpZnQKKyAgICAgaWYgb3B0cy5yb3VuZGluZyA9PSBST1VORF9OOgorICAgICAg ICAgTVBGX3NldChyLCBzKQorQEAgLTY1MCw3ICs2NTAsNyBAQCBjZGVmIF9hZGRfcGVydHVyYmF0 aW9uKE1QRiAqciwgTVBGICpzLCBpbnQgc2lnbiwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorICAg ICAgICAgbXB6X3N1Yl91aShyLmV4cCwgcy5leHAsIHNoaWZ0KQorICAgICAgICAgTVBGX25vcm1h bGl6ZShyLCBvcHRzKQorIAorLWNkZWYgTVBGX2FkZChNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBN UG9wdHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBNUEZfYWRkKE1QRiAqciwgTVBGICpzLCBNUEYg KnQsIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisgICAgIFNldCByID0gcyArIHQsIHdpdGggZXhh Y3Qgcm91bmRpbmcuCisgCitAQCAtNzA0LDcgKzcwNCw3IEBAIGNkZWYgTVBGX2FkZChNUEYgKnIs IE1QRiAqcywgTVBGICp0LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIF9hZGRfcGVydHVyYmF0aW9uKHIsIHQsIG1wel9zZ24ocy5tYW4pLCBvcHRz KQorIAorLWNkZWYgTVBGX3N1YihNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBNUG9wdHMgb3B0cykg bm9leGNlcHQ6CisrY2RlZiBNUEZfc3ViKE1QRiAqciwgTVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBv cHRzKToKKyAgICAgIiIiCisgICAgIFNldCByID0gcyAtIHQsIHdpdGggZXhhY3Qgcm91bmRpbmcu CisgCitAQCAtODUwLDcgKzg1MCw3IEBAIGNkZWYgYmludCBNUEZfZ2UoTVBGICpzLCBNUEYgKnQp IG5vZXhjZXB0OgorICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgIHJldHVybiBNUEZfY21wKHMs IHQpID49IDAKKyAKKy1jZGVmIE1QRl9tdWwoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCwgTVBvcHRz IG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX211bChNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBN UG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQgciA9IHMgKiB0LCB3aXRoIGNvcnJlY3Qg cm91bmRpbmcuCisgCitAQCAtODY2LDcgKzg2Niw3IEBAIGNkZWYgTVBGX211bChNUEYgKnIsIE1Q RiAqcywgTVBGICp0LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisgICAgICAgICBpZiBvcHRzLnBy ZWM6CisgICAgICAgICAgICAgTVBGX25vcm1hbGl6ZShyLCBvcHRzKQorIAorLWNkZWYgTVBGX2Rp dihNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBN UEZfZGl2KE1QRiAqciwgTVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisg ICAgIFNldCByID0gcyAvIHQsIHdpdGggY29ycmVjdCByb3VuZGluZy4KKyAgICAgIiIiCitAQCAt OTYxLDcgKzk2MSw3IEBAIGNkZWYgaW50IE1QRl9zcXJ0KE1QRiAqciwgTVBGICpzLCBNUG9wdHMg b3B0cykgbm9leGNlcHQ6CisgICAgIE1QRl9ub3JtYWxpemUociwgb3B0cykKKyAgICAgcmV0dXJu IDAKKyAKKy1jZGVmIE1QRl9oeXBvdChNUEYgKnIsIE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0 cykgbm9leGNlcHQ6CisrY2RlZiBNUEZfaHlwb3QoTVBGICpyLCBNUEYgKmEsIE1QRiAqYiwgTVBv cHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0IHIgPSBzcXJ0KGFeMiArIGJeMikKKyAgICAg IiIiCitAQCAtOTgxLDcgKzk4MSw3IEBAIGNkZWYgTVBGX2h5cG90KE1QRiAqciwgTVBGICphLCBN UEYgKmIsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAgICAgTVBGX2FkZChyLCAmdG1wMSwgJnRt cDIsIHRtcF9vcHRzKQorICAgICBNUEZfc3FydChyLCByLCBvcHRzKQorIAorLWNkZWYgTVBGX3Bv d19pbnQoTVBGICpyLCBNUEYgKngsIG1wel90IG4sIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytj ZGVmIE1QRl9wb3dfaW50KE1QRiAqciwgTVBGICp4LCBtcHpfdCBuLCBNUG9wdHMgb3B0cyk6Cisg ICAgICIiIgorICAgICBTZXQgciA9IHggKiogbi4gQ3VycmVudGx5IGZhbGxzIGJhY2sgdG8gbXBt YXRoLmxpYm1wCisgICAgIHVubGVzcyBuIGlzIHRpbnkuCitAQCAtMTA3NCw3ICsxMDc0LDcgQEAg Y2RlZiBpbnQgX3BpX3ByZWMgPSAtMQorIGNkZWYgbXB6X3QgX2xuMl92YWx1ZQorIGNkZWYgaW50 IF9sbjJfcHJlYyA9IC0xCisgCistY2RlZiBtcHpfc2V0X3BpKG1wel90IHgsIGludCBwcmVjKSBu b2V4Y2VwdDoKKytjZGVmIG1wel9zZXRfcGkobXB6X3QgeCwgaW50IHByZWMpOgorICAgICAiIiIK KyAgICAgU2V0IHggPSBwaSBhcyBhIGZpeGVkLXBvaW50IG51bWJlci4KKyAgICAgIiIiCitAQCAt MTA5MCw3ICsxMDkwLDcgQEAgY2RlZiBtcHpfc2V0X3BpKG1wel90IHgsIGludCBwcmVjKSBub2V4 Y2VwdDoKKyAgICAgICAgIG1wel9zZXQoeCwgX3BpX3ZhbHVlKQorICAgICAgICAgX3BpX3ByZWMg PSBwcmVjCisgCistY2RlZiBtcHpfc2V0X2xuMihtcHpfdCB4LCBpbnQgcHJlYykgbm9leGNlcHQ6 CisrY2RlZiBtcHpfc2V0X2xuMihtcHpfdCB4LCBpbnQgcHJlYyk6CisgICAgICIiIgorICAgICBT ZXQgeCA9IGxuKDIpIGFzIGEgZml4ZWQtcG9pbnQgbnVtYmVyLgorICAgICAiIiIKK0BAIC0xMTIy LDcgKzExMjIsNyBAQCBjZGVmIHZvaWQgX2N5X2V4cF9tcGZyKG1wel90IHksIG1wel90IHgsIGlu dCBwcmVjKSBub2V4Y2VwdDoKKyAgICAgbXBmcl9jbGVhcih5ZikKKyAgICAgbXBmcl9jbGVhcih4 ZikKKyAKKy1jZGVmIGN5X2V4cF9iYXNlY2FzZShtcHpfdCB5LCBtcHpfdCB4LCBpbnQgcHJlYykg bm9leGNlcHQ6CisrY2RlZiBjeV9leHBfYmFzZWNhc2UobXB6X3QgeSwgbXB6X3QgeCwgaW50IHBy ZWMpOgorICAgICAiIiIKKyAgICAgQ29tcHV0ZXMgeSA9IGV4cCh4KSBmb3IgZml4ZWQtcG9pbnQg bnVtYmVycyB5IGFuZCB4LCBhc3N1bWluZworICAgICB0aGF0IHggaXMgc21hbGwgKHx4fCB+PCAx KS4gQXQgc21hbGwgcHJlY2lzaW9ucywgdGhpcyBmdW5jdGlvbgorQEAgLTExNzQsNyArMTE3NCw3 IEBAIGNkZWYgY3lfZXhwX2Jhc2VjYXNlKG1wel90IHksIG1wel90IHgsIGludCBwcmVjKSBub2V4 Y2VwdDoKKyAgICAgbXB6X2NsZWFyKGEpCisgCisgCistY2RlZiBNUEZfZXhwKE1QRiAqeSwgTVBG ICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBNUEZfZXhwKE1QRiAqeSwgTVBGICp4 LCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQgeSA9IGV4cCh4KS4KKyAgICAgIiIi CitAQCAtMTIyOSw3ICsxMjI5LDcgQEAgY2RlZiBNUEZfZXhwKE1QRiAqeSwgTVBGICp4LCBNUG9w dHMgb3B0cykgbm9leGNlcHQ6CisgICAgIE1QRl9ub3JtYWxpemUoeSwgb3B0cykKKyAKKyAKKy1j ZGVmIE1QRl9jb21wbGV4X3NxcnQoTVBGICpjLCBNUEYgKmQsIE1QRiAqYSwgTVBGICpiLCBNUG9w dHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBNUEZfY29tcGxleF9zcXJ0KE1QRiAqYywgTVBGICpk LCBNUEYgKmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0IGMrZGkg PSBzcXJ0KGErYmkpLgorIAorQEAgLTEzMjEsNyArMTMyMSw3IEBAIGNkZWYgaW50IE1QRl9nZXRf bXBmcl9vdmVyZmxvdyhtcGZyX3QgeSwgTVBGICp4KSBub2V4Y2VwdDoKKyAgICAgZWxzZToKKyAg ICAgICAgIHJldHVybiAxCisgCistY2RlZiBNUEZfc2V0X21wZnIoTVBGICp5LCBtcGZyX3QgeCwg TVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX3NldF9tcGZyKE1QRiAqeSwgbXBmcl90 IHgsIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisgICAgIENvbnZlcnQgdGhlIE1QRlIgbnVtYmVy IHggdG8gYSBub3JtYWxpemVkIE1QRiB5LgorICAgICBpbmYvbmFuIGFuZCB6ZXJvIGFyZSBoYW5k bGVkLgorQEAgLTE0MDAsNyArMTQwMCw3IEBAIGNkZWYgaW50IE1QRl9sb2coTVBGICp5LCBNUEYg KngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAgICAgbXBmcl9jbGVhcih5eSkKKyAgICAgcmV0 dXJuIG5lZ2F0aXZlCisgCistY2RlZiBNUEZfc2V0X3BpKE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5v ZXhjZXB0OgorK2NkZWYgTVBGX3NldF9waShNUEYgKngsIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIi CisgICAgIFNldCB4ID0gcGkuCisgICAgICIiIgorQEAgLTE0MDksNyArMTQwOSw3IEBAIGNkZWYg TVBGX3NldF9waShNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAgICAgbXB6X3NldF9z aSh4LmV4cCwgLShvcHRzLnByZWMrMjApKQorICAgICBNUEZfbm9ybWFsaXplKHgsIG9wdHMpCisg CistY2RlZiBNUEZfc2V0X2xuMihNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVm IE1QRl9zZXRfbG4yKE1QRiAqeCwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0IHgg PSBsbigyKS4KKyAgICAgIiIiCitAQCAtMTQ5Myw3ICsxNDkzLDcgQEAgY2RlZiBtcHpfdCBsb2df aW50X2NhY2hlW01BWF9MT0dfSU5UX0NBQ0hFKzFdCisgY2RlZiBsb25nIGxvZ19pbnRfY2FjaGVf cHJlY1tNQVhfTE9HX0lOVF9DQUNIRSsxXQorIGNkZWYgYmludCBsb2dfaW50X2NhY2hlX2luaXRp YWxpemVkID0gMAorIAorLWNkZWYgbXB6X2xvZ19pbnQobXB6X3QgdiwgbXB6X3QgbiwgaW50IHBy ZWMpIG5vZXhjZXB0OgorK2NkZWYgbXB6X2xvZ19pbnQobXB6X3QgdiwgbXB6X3QgbiwgaW50IHBy ZWMpOgorICAgICAiIiIKKyAgICAgU2V0IHYgPSBsb2cobikgd2hlcmUgbiBpcyBhbiBpbnRlZ2Vy IGFuZCB2IGlzIGEgZml4ZWQtcG9pbnQgbnVtYmVyCisgICAgIHdpdGggdGhlIHNwZWNpZmllZCBw cmVjaXNpb24uCitAQCAtMTU0Myw3ICsxNTQzLDcgQEAgZGVmIGxvZ19pbnRfZml4ZWQobiwgbG9u ZyBwcmVjLCBsbjI9Tm9uZSk6CisgICAgIHJldHVybiB0CisgCisgCistY2RlZiBfTVBGX2Nvc19w eXRob24oTVBGICpjLCBNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIF9NUEZf Y29zX3B5dGhvbihNUEYgKmMsIE1QRiAqeCwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAg Q29tcHV0ZXMgYyA9IGNvcyh4KSBieSBjYWxsaW5nIHRoZSBtcG1hdGgubGlibXAgUHl0aG9uIGlt cGxlbWVudGF0aW9uLgorICAgICAiIiIKK0BAIC0xNTUyLDcgKzE1NTIsNyBAQCBjZGVmIF9NUEZf Y29zX3B5dGhvbihNUEYgKmMsIE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorICAgICAg ICAgICAgIHJuZG1vZGVfdG9fcHl0aG9uKG9wdHMucm91bmRpbmcpLCAxLCBGYWxzZSkKKyAgICAg TVBGX3NldF90dXBsZShjLCBjdCkKKyAKKy1jZGVmIF9NUEZfc2luX3B5dGhvbihNUEYgKnMsIE1Q RiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgX01QRl9zaW5fcHl0aG9uKE1QRiAq cywgTVBGICp4LCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBDb21wdXRlcyBzID0gc2lu KHgpIGJ5IGNhbGxpbmcgdGhlIG1wbWF0aC5saWJtcCBQeXRob24gaW1wbGVtZW50YXRpb24uCisg ICAgICIiIgorQEAgLTE1NjIsNyArMTU2Miw3IEBAIGNkZWYgX01QRl9zaW5fcHl0aG9uKE1QRiAq cywgTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisgICAgIE1QRl9zZXRfdHVwbGUocywg c3QpCisgCisgCistY2RlZiBNUEZfY29zKE1QRiAqYywgTVBGICp4LCBNUG9wdHMgb3B0cykgbm9l eGNlcHQ6CisrY2RlZiBNUEZfY29zKE1QRiAqYywgTVBGICp4LCBNUG9wdHMgb3B0cyk6CisgICAg ICIiIgorICAgICBTZXQgYyA9IGNvcyh4KQorICAgICAiIiIKK0BAIC0xNTg1LDcgKzE1ODUsNyBA QCBjZGVmIE1QRl9jb3MoTVBGICpjLCBNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAg ICAgbXBmcl9jbGVhcih4ZikKKyAgICAgbXBmcl9jbGVhcihjZikKKyAKKy1jZGVmIE1QRl9zaW4o TVBGICpzLCBNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9zaW4oTVBG ICpzLCBNUEYgKngsIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisgICAgIFNldCBzID0gc2luKHgp CisgICAgICIiIgorQEAgLTE2MDgsNyArMTYwOCw3IEBAIGNkZWYgTVBGX3NpbihNUEYgKnMsIE1Q RiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorICAgICBtcGZyX2NsZWFyKHhmKQorICAgICBt cGZyX2NsZWFyKHNmKQorIAorLWNkZWYgTVBGX2Nvc19zaW4oTVBGICpjLCBNUEYgKnMsIE1QRiAq eCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX2Nvc19zaW4oTVBGICpjLCBNUEYg KnMsIE1QRiAqeCwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0IGMgPSBjb3MoeCks IHMgPSBzaW4oeCkKKyAgICAgIiIiCitAQCAtMTYzOCw3ICsxNjM4LDcgQEAgY2RlZiBNUEZfY29z X3NpbihNUEYgKmMsIE1QRiAqcywgTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisgICAg IG1wZnJfY2xlYXIoc2YpCisgCisgCistY2RlZiBNUEZfY29tcGxleF9leHAoTVBGICpyZSwgTVBG ICppbSwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9j b21wbGV4X2V4cChNUEYgKnJlLCBNUEYgKmltLCBNUEYgKmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMp OgorICAgICAiIiIKKyAgICAgU2V0IHJlK2ltKmkgPSBleHAoYStiaSkKKyAgICAgIiIiCitAQCAt MTc1Miw3ICsxNzUyLDcgQEAgY2RlZiBpbnQgTVBGX3BvdyhNUEYgKnosIE1QRiAqeCwgTVBGICp5 LCBNUG9wdHMgb3B0cykgZXhjZXB0IC0xOgorICAgICBNUEZfY2xlYXIoJncpCisgICAgIHJldHVy biAwCisgCistY2RlZiBNUEZfY29tcGxleF9zcXVhcmUoTVBGICpyZSwgTVBGICppbSwgTVBGICph LCBNUEYgKmIsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9jb21wbGV4X3NxdWFy ZShNUEYgKnJlLCBNUEYgKmltLCBNUEYgKmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpOgorICAgICAi IiIKKyAgICAgU2V0IHJlK2ltKmkgPSAoYStiaSleMiA9IGFeMi1iXjIsIDJhYippLgorICAgICAi IiIKK0BAIC0xNzY5LDcgKzE3NjksNyBAQCBjZGVmIE1QRl9jb21wbGV4X3NxdWFyZShNUEYgKnJl LCBNUEYgKmltLCBNUEYgKmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorICAgICBN UEZfY2xlYXIoJnUpCisgCisgCistY2RlZiBNUEZfY29tcGxleF9yZWNpcHJvY2FsKE1QRiAqcmUs IE1QRiAqaW0sIE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBN UEZfY29tcGxleF9yZWNpcHJvY2FsKE1QRiAqcmUsIE1QRiAqaW0sIE1QRiAqYSwgTVBGICpiLCBN UG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQgcmUraW0qaSA9IDEvKGErYmkpLCBpLmUu IGNvbXB1dGUgdGhlIHJlY2lwcm9jYWwgb2YKKyAgICAgYSBjb21wbGV4IG51bWJlci4KK0BAIC0x NzkzLDcgKzE3OTMsNyBAQCBjZGVmIE1QRl9jb21wbGV4X3JlY2lwcm9jYWwoTVBGICpyZSwgTVBG ICppbSwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKSBub2V4YworICAgICBNUEZfY2xlYXIo Jm0pCisgCisgCistY2RlZiBNUEZfY29tcGxleF9wb3dfaW50KE1QRiAqenJlLCBNUEYgKnppbSwg TVBGICp4cmUsIE1QRiAqeGltLCBtcHpfdCBuLCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisrY2Rl ZiBNUEZfY29tcGxleF9wb3dfaW50KE1QRiAqenJlLCBNUEYgKnppbSwgTVBGICp4cmUsIE1QRiAq eGltLCBtcHpfdCBuLCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQgenJlK3ppbSpp ID0gKHhyZSt4aW0pIF4gbiwgaS5lLiByYWlzZSBhIGNvbXBsZXggbnVtYmVyIHRvIGFuIGludGVn ZXIgcG93ZXIuCisgICAgICIiIgorQEAgLTE4NTksNyArMTg1OSw3IEBAIGNkZWYgTVBGX2NvbXBs ZXhfcG93X2ludChNUEYgKnpyZSwgTVBGICp6aW0sIE1QRiAqeHJlLCBNUEYgKnhpbSwgbXB6X3Qg biwgTVBvcHRzCisgICAgIE1QRl9zZXRfdHVwbGUoemltLCB2aSkKKyAKKyAKKy1jZGVmIE1QRl9j b21wbGV4X3Bvd19yZShNUEYgKnpyZSwgTVBGICp6aW0sIE1QRiAqeHJlLCBNUEYgKnhpbSwgTVBG ICp5LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBNUEZfY29tcGxleF9wb3dfcmUoTVBG ICp6cmUsIE1QRiAqemltLCBNUEYgKnhyZSwgTVBGICp4aW0sIE1QRiAqeSwgTVBvcHRzIG9wdHMp OgorICAgICAiIiIKKyAgICAgU2V0ICh6cmUremltKmkpID0gKHhyZSt4aW0qaSkgXiB5LCBpLmUu IHJhaXNlIGEgY29tcGxleCBudW1iZXIKKyAgICAgdG8gYSByZWFsIHBvd2VyLgorQEAgLTE5MDQs NyArMTkwNCw3IEBAIGNkZWYgTVBGX2NvbXBsZXhfcG93X3JlKE1QRiAqenJlLCBNUEYgKnppbSwg TVBGICp4cmUsIE1QRiAqeGltLCBNUEYgKnksIE1Qb3B0cyBvCisgICAgIE1QRl9zZXRfdHVwbGUo emltLCB2aSkKKyAKKyAKKy1jZGVmIE1QRl9jb21wbGV4X3BvdyhNUEYgKnpyZSwgTVBGICp6aW0s IE1QRiAqeHJlLCBNUEYgKnhpbSwgTVBGICp5cmUsIE1QRiAqeWltLCBNUG9wdHMgb3B0cykgbm9l eGNlcHQ6CisrY2RlZiBNUEZfY29tcGxleF9wb3coTVBGICp6cmUsIE1QRiAqemltLCBNUEYgKnhy ZSwgTVBGICp4aW0sIE1QRiAqeXJlLCBNUEYgKnlpbSwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIK KyAgICAgU2V0ICh6cmUgKyB6aW0qaSkgPSAoeHJlK3hpbSppKSBeICh5cmUreWltKmkpLgorICAg ICAiIiIKK0BAIC0xOTIyLDcgKzE5MjIsNyBAQCBjZGVmIE1QRl9jb21wbGV4X3BvdyhNUEYgKnpy ZSwgTVBGICp6aW0sIE1QRiAqeHJlLCBNUEYgKnhpbSwgTVBGICp5cmUsIE1QRiAqeWltLAorICAg ICBNUEZfc2V0X3R1cGxlKHppbSwgdmkpCisgCisgCistY2RlZiBtcHpfc2V0X3R1cGxlX2ZpeGVk KG1wel90IHgsIHR1cGxlIHQsIGxvbmcgcHJlYykgbm9leGNlcHQ6CisrY2RlZiBtcHpfc2V0X3R1 cGxlX2ZpeGVkKG1wel90IHgsIHR1cGxlIHQsIGxvbmcgcHJlYyk6CisgICAgICIiIgorICAgICBT ZXQgdGhlIGludGVnZXIgeCB0byBhIGZpeGVkLXBvaW50IG51bWJlciB3aXRoIHNwZWNpZmllZCBw cmVjaXNpb24KKyAgICAgYW5kIHRoZSB2YWx1ZSBvZiB0ID0gKHNpZ24sbWFuLGV4cCxiYykuIFRy dW5jYXRpbmcgZGl2aXNpb24gaXMgdXNlZAorQEAgLTE5MzksNyArMTkzOSw3IEBAIGNkZWYgbXB6 X3NldF90dXBsZV9maXhlZChtcHpfdCB4LCB0dXBsZSB0LCBsb25nIHByZWMpIG5vZXhjZXB0Ogor ICAgICBlbHNlOgorICAgICAgICAgbXB6X3RkaXZfcV8yZXhwKHgsIHgsIC1vZmZzZXQpCisgCist Y2RlZiBtcHpfc2V0X2NvbXBsZXhfdHVwbGVfZml4ZWQobXB6X3QgeCwgbXB6X3QgeSwgdHVwbGUg dCwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKytjZGVmIG1wel9zZXRfY29tcGxleF90dXBsZV9maXhl ZChtcHpfdCB4LCBtcHpfdCB5LCB0dXBsZSB0LCBsb25nIHByZWMpOgorICAgICAiIiIKKyAgICAg U2V0IHRoZSBpbnRlZ2VycyAoeCx5KSB0byBmaXhlZC1wb2ludCBudW1iZXJzIHdpdGggdGhlIHZh bHVlcyBvZgorICAgICB0aGUgbXBmIHBhaXIgdCA9ICgoeHNpZ24seG1hbix4ZXhwLHhiYyksICh5 c2lnbix5bWFuLHlleHAseWJjKSkuCitAQCAtMTk0Nyw3ICsxOTQ3LDcgQEAgY2RlZiBtcHpfc2V0 X2NvbXBsZXhfdHVwbGVfZml4ZWQobXB6X3QgeCwgbXB6X3QgeSwgdHVwbGUgdCwgbG9uZyBwcmVj KSBub2V4Y2VwdDoKKyAgICAgbXB6X3NldF90dXBsZV9maXhlZCh4LCB0WzBdLCBwcmVjKQorICAg ICBtcHpfc2V0X3R1cGxlX2ZpeGVkKHksIHRbMV0sIHByZWMpCisgCistY2RlZiBNUEZfc2V0X2Zp eGVkKE1QRiAqeCwgbXB6X3QgbWFuLCBsb25nIHdwLCBsb25nIHByZWMsIGludCBybmQpIG5vZXhj ZXB0OgorK2NkZWYgTVBGX3NldF9maXhlZChNUEYgKngsIG1wel90IG1hbiwgbG9uZyB3cCwgbG9u ZyBwcmVjLCBpbnQgcm5kKToKKyAgICAgIiIiCisgICAgIFNldCB2YWx1ZSBvZiBhbiBNUEYgZ2l2 ZW4gYSBmaXhlZC1wb2ludCBtYW50aXNzYSBvZiBwcmVjaXNpb24gd3AsCisgICAgIHJvdW5kaW5n IHRvIHRoZSBnaXZlbiBwcmVjaXNpb24gYW5kIHJvdW5kaW5nIG1vZGUuCitAQCAtMTk3OCw3ICsx OTc4LDcgQEAgY2RlZiBtcHpfdCBCQ0lNW01BWF9QQVJBTVNdCisgCisgCisgY2RlZiBNUEZfaHlw c3VtKE1QRiAqYSwgTVBGICpiLCBpbnQgcCwgaW50IHEsIHBhcmFtX3R5cGVzLCBzdHIgenR5cGUs IGNvZWZmcywgeiwKKy0gICAgbG9uZyBwcmVjLCBsb25nIHdwLCBsb25nIGVwc3NoaWZ0LCBkaWN0 IG1hZ25pdHVkZV9jaGVjaywga3dhcmdzKSBub2V4Y2VwdDoKKysgICAgbG9uZyBwcmVjLCBsb25n IHdwLCBsb25nIGVwc3NoaWZ0LCBkaWN0IG1hZ25pdHVkZV9jaGVjaywga3dhcmdzKToKKyAgICAg IiIiCisgICAgIEV2YWx1YXRlcyBhK2JpID0gcEZxKC4uLiwgeikgYnkgc3VtbWluZyB0aGUgaHlw ZXJnZW9tZXRyaWMKKyAgICAgc2VyaWVzIGluIGZpeGVkLXBvaW50IGFyaXRobWV0aWMuCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9tcG1hdGgvZXh0X21haW4ucHl4IGIvc3JjL3NhZ2UvbGli cy9tcG1hdGgvZXh0X21haW4ucHl4CitpbmRleCAzNDc3MTJlNmNhYi4uMzZhMDM1Zjc1NzAgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL21wbWF0aC9leHRfbWFpbi5weXgKKysrKyBiL3NyYy9z YWdlL2xpYnMvbXBtYXRoL2V4dF9tYWluLnB5eAorQEAgLTEwOSw3ICsxMDksNyBAQCBjZGVmIGNs YXNzIGNvbnN0YW50CisgY2RlZiBjbGFzcyB3cmFwcGVkX2xpYm1wX2Z1bmN0aW9uCisgY2RlZiBj bGFzcyB3cmFwcGVkX3NwZWNmdW4KKyAKKy1jZGVmIF9faXNpbnQoTVBGICp2KSBub2V4Y2VwdDoK KytjZGVmIF9faXNpbnQoTVBGICp2KToKKyAgICAgcmV0dXJuIHYuc3BlY2lhbCA9PSBTX1pFUk8g b3IgKHYuc3BlY2lhbCA9PSBTX05PUk1BTCBhbmQgbXB6X3Nnbih2LmV4cCkgPj0gMCkKKyAKKyBj ZGVmIGludCBNUEZfc2V0X2FueShNUEYgKnJlLCBNUEYgKmltLCB4LCBNUG9wdHMgb3B0cywgYmlu dCBzdHJfdHVwbGVfb2spIGV4Y2VwdCAtMToKK0BAIC0xODUsNyArMTg1LDcgQEAgY2RlZiBpbnQg TVBGX3NldF9hbnkoTVBGICpyZSwgTVBGICppbSwgeCwgTVBvcHRzIG9wdHMsIGJpbnQgc3RyX3R1 cGxlX29rKSBleGNlcHQKKyAgICAgICAgICAgICByZXR1cm4gMQorICAgICByZXR1cm4gMAorIAor LWNkZWYgYmlub3AoaW50IG9wLCB4LCB5LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBi aW5vcChpbnQgb3AsIHgsIHksIE1Qb3B0cyBvcHRzKToKKyAgICAgY2RlZiBpbnQgdHlweAorICAg ICBjZGVmIGludCB0eXB5CisgICAgIGNkZWYgTVBGIHhyZSwgeGltLCB5cmUsIHlpbQorQEAgLTQ5 OCw3ICs0OTgsNyBAQCBjZGVmIGNsYXNzIENvbnRleHQ6CisgCisgICAgIF9wcmVjX3JvdW5kaW5n ID0gcHJvcGVydHkoX2dldF9wcmVjX3JvdW5kaW5nKQorIAorLSAgICBjcGRlZiBtcGYgbWFrZV9t cGYoY3R4LCB0dXBsZSB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbXBmIG1ha2VfbXBmKGN0eCwg dHVwbGUgdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZXMgYW4gbXBmIGZyb20gdHVw bGUgZGF0YSA6OgorIAorQEAgLTUxMSw3ICs1MTEsNyBAQCBjZGVmIGNsYXNzIENvbnRleHQ6Cisg ICAgICAgICBNUEZfc2V0X3R1cGxlKCZ4LnZhbHVlLCB2KQorICAgICAgICAgcmV0dXJuIHgKKyAK Ky0gICAgY3BkZWYgbXBjIG1ha2VfbXBjKGN0eCwgdHVwbGUgdikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIG1wYyBtYWtlX21wYyhjdHgsIHR1cGxlIHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBD cmVhdGVzIGFuIG1wYyBmcm9tIHR1cGxlIGRhdGEgOjoKKyAKK0BAIC05NzMsNyArOTczLDcgQEAg Y2RlZiBjbGFzcyBDb250ZXh0OgorIAorICAgICAjIERvaW5nIGErYiBkaXJlY3RseSBkb2Vzbid0 IHdvcmsgd2l0aCBtcGksIHByZXN1bWFibHkgZHVlIHRvCisgICAgICMgQ3l0aG9uIHRyeWluZyB0 byBiZSBjbGV2ZXIgd2l0aCB0aGUgb3BlcmF0aW9uIHJlc29sdXRpb24KKy0gICAgY2RlZiBfc3R1 cGlkX2FkZChjdHgsIGEsIGIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9zdHVwaWRfYWRkKGN0eCwg YSwgYik6CisgICAgICAgICByZXR1cm4gYSArIGIKKyAKKyAgICAgZGVmIF9jb252ZXJ0X3BhcmFt KGN0eCwgeCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9tcG1hdGgvdXRpbHMucHhkIGIv c3JjL3NhZ2UvbGlicy9tcG1hdGgvdXRpbHMucHhkCitpbmRleCA2NDZhZmE2MTg5OS4uNjg2YjEw OGRhOWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL21wbWF0aC91dGlscy5weGQKKysrKyBi L3NyYy9zYWdlL2xpYnMvbXBtYXRoL3V0aWxzLnB4ZAorQEAgLTEsMyArMSwzIEBACisgZnJvbSBz YWdlLmxpYnMubXBmci50eXBlcyBjaW1wb3J0IG1wZnJfdAorIAorLWNkZWYgbXBmcl90b19tcGZ2 YWwobXBmcl90KSBub2V4Y2VwdAorK2NkZWYgbXBmcl90b19tcGZ2YWwobXBmcl90KQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2xpYnMvbXBtYXRoL3V0aWxzLnB5eCBiL3NyYy9zYWdlL2xpYnMvbXBt YXRoL3V0aWxzLnB5eAoraW5kZXggMTUyODZmYTgzMGIuLjlmYmQ2YjRlZjVjIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbGlicy9tcG1hdGgvdXRpbHMucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL21w bWF0aC91dGlscy5weXgKK0BAIC00Niw3ICs0Niw3IEBAIGNwZGVmIGludCBiaXRjb3VudChuKSBu b2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiAwCisgICAgIHJldHVybiBtcHpfc2l6ZWluYmFzZSht LnZhbHVlLCAyKQorIAorLWNwZGVmIGlzcXJ0KG4pIG5vZXhjZXB0OgorK2NwZGVmIGlzcXJ0KG4p OgorICAgICAiIiIKKyAgICAgU3F1YXJlIHJvb3QgKHJvdW5kZWQgdG8gZmxvb3IpIG9mIGEgU2Fn ZSBJbnRlZ2VyIG9yIFB5dGhvbiBpbnQvbG9uZy4KKyAgICAgVGhlIHJlc3VsdCBpcyBhIFNhZ2Ug SW50ZWdlci4KK0BAIC03Nyw3ICs3Nyw3IEBAIGNwZGVmIGlzcXJ0KG4pIG5vZXhjZXB0OgorICAg ICBtcHpfc3FydCh5LnZhbHVlLCBtLnZhbHVlKQorICAgICByZXR1cm4geQorIAorLWNwZGVmIGZy b21fbWFuX2V4cChtYW4sIGV4cCwgbG9uZyBwcmVjID0gMCwgc3RyIHJuZCA9ICdkJykgbm9leGNl cHQ6CisrY3BkZWYgZnJvbV9tYW5fZXhwKG1hbiwgZXhwLCBsb25nIHByZWMgPSAwLCBzdHIgcm5k ID0gJ2QnKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBub3JtYWxpemVkIG1wZiB2YWx1ZSB0dXBs ZSBmcm9tIG1hbnRpc3NhIGFuZCBleHBvbmVudC4KKyAKK0BAIC0xMDYsNyArMTA2LDcgQEAgY3Bk ZWYgZnJvbV9tYW5fZXhwKG1hbiwgZXhwLCBsb25nIHByZWMgPSAwLCBzdHIgcm5kID0gJ2QnKSBu b2V4Y2VwdDoKKyAgICAgZWxzZToKKyAgICAgICAgIHJldHVybiBub3JtYWxpemUoMCwgcmVzLCBl eHAsIGJjLCBwcmVjLCBybmQpCisgCistY3BkZWYgbm9ybWFsaXplKGxvbmcgc2lnbiwgSW50ZWdl ciBtYW4sIGV4cCwgbG9uZyBiYywgbG9uZyBwcmVjLCBzdHIgcm5kKSBub2V4Y2VwdDoKKytjcGRl ZiBub3JtYWxpemUobG9uZyBzaWduLCBJbnRlZ2VyIG1hbiwgZXhwLCBsb25nIGJjLCBsb25nIHBy ZWMsIHN0ciBybmQpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIG5vcm1hbGl6ZWQgbXBmIHZhbHVl IHR1cGxlIGZyb20gZnVsbCBsaXN0IG9mIGNvbXBvbmVudHMuCisgCitAQCAtMTU0LDcgKzE1NCw3 IEBAIGNwZGVmIG5vcm1hbGl6ZShsb25nIHNpZ24sIEludGVnZXIgbWFuLCBleHAsIGxvbmcgYmMs IGxvbmcgcHJlYywgc3RyIHJuZCkgbm9leGNlCisgICAgIGJjID0gbXB6X3NpemVpbmJhc2UocmVz LnZhbHVlLCAyKQorICAgICByZXR1cm4gKHNpZ24sIHJlcywgaW50KGV4cCksIGJjKQorIAorLWNk ZWYgbXBmcl9mcm9tX21wZnZhbChtcGZyX3QgcmVzLCB0dXBsZSB4KSBub2V4Y2VwdDoKKytjZGVm IG1wZnJfZnJvbV9tcGZ2YWwobXBmcl90IHJlcywgdHVwbGUgeCk6CisgICAgICIiIgorICAgICBT ZXQgdmFsdWUgb2YgYW4gTVBGUiBudW1iZXIgKGluIHBsYWNlKSB0byB0aGF0IG9mIGEgZ2l2ZW4g bXBtYXRoIG1wZgorICAgICBkYXRhIHR1cGxlLgorQEAgLTE4MCw3ICsxODAsNyBAQCBjZGVmIG1w ZnJfZnJvbV9tcGZ2YWwobXBmcl90IHJlcywgdHVwbGUgeCkgbm9leGNlcHQ6CisgICAgIGVsc2U6 CisgICAgICAgICBtcGZyX3NldF9uYW4ocmVzKQorIAorLWNkZWYgbXBmcl90b19tcGZ2YWwobXBm cl90IHZhbHVlKSBub2V4Y2VwdDoKKytjZGVmIG1wZnJfdG9fbXBmdmFsKG1wZnJfdCB2YWx1ZSk6 CisgICAgICIiIgorICAgICBHaXZlbiBhbiBNUEZSIHZhbHVlLCByZXR1cm4gYW4gbXBtYXRoIG1w ZiBkYXRhIHR1cGxlIHJlcHJlc2VudGluZworICAgICB0aGUgc2FtZSBudW1iZXIuCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbWlzYy5weGkgYi9zcmMvc2FnZS9saWJzL250bC9taXNj LnB4aQoraW5kZXggZTBkMjRiMDFhNjAuLmU5ZGNkOTgwN2IwIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbGlicy9udGwvbWlzYy5weGkKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL21pc2MucHhpCitA QCAtOCw3ICs4LDcgQEAgZnJvbSBjeXNpZ25hbHMuc2lnbmFscyBjaW1wb3J0IHNpZ19vZmYKKyBj ZGVmIGV4dGVybiBmcm9tICo6CisgICAgIHZvaWQgZGVsX2NoYXJzdGFyICJkZWxldGVbXSIoY2hh ciopCisgCistY2RlZiBvYmplY3Qgc3RyaW5nKGNoYXIqIHMpIG5vZXhjZXB0OgorK2NkZWYgb2Jq ZWN0IHN0cmluZyhjaGFyKiBzKToKKyAgICAgIiIiCisgICAgIFRha2VzIGEgY2hhciogYWxsb2Nh dGVkIHVzaW5nIG1hbGxvYywgYW5kIGNvbnZlcnRzIGl0IHRvIGEgUHl0aG9uCisgICAgIHN0cmlu ZywgdGhlbiBkZWxldGVzIHRoZSBhbGxvY2F0ZWQgbWVtb3J5LiAgQWxzbyB1bnNldHMgdGhlIHNp Z25hbAorQEAgLTIwLDcgKzIwLDcgQEAgY2RlZiBvYmplY3Qgc3RyaW5nKGNoYXIqIHMpIG5vZXhj ZXB0OgorICAgICBzaWdfZnJlZShzKQorICAgICByZXR1cm4gdAorIAorLWNkZWYgb2JqZWN0IHN0 cmluZ19kZWxldGUoY2hhciogcykgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qgc3RyaW5nX2RlbGV0 ZShjaGFyKiBzKToKKyAgICAgIiIiCisgICAgIFRha2VzIGEgY2hhciogYWxsb2NhdGVkIHVzaW5n IEMrKyBuZXcsIGFuZCBjb252ZXJ0cyBpdCB0byBhIFB5dGhvbgorICAgICBzdHJpbmcsIHRoZW4g ZGVsZXRlcyB0aGUgYWxsb2NhdGVkIG1lbW9yeS4gIEFsc28gdW5zZXRzIHRoZSBzaWduYWwKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRS5weGQgYi9zcmMvc2FnZS9saWJz L250bC9udGxfR0YyRS5weGQKK2luZGV4IDkzNTM5Y2Y4YWJmLi5jMzYyOTJjODc0OCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJFLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGli cy9udGwvbnRsX0dGMkUucHhkCitAQCAtNCw1ICs0LDUgQEAgZnJvbSBzYWdlLmxpYnMubnRsLm50 bF9HRjJFQ29udGV4dCBjaW1wb3J0IG50bF9HRjJFQ29udGV4dF9jbGFzcworIGNkZWYgY2xhc3Mg bnRsX0dGMkUoKToKKyAgICAgY2RlZiBHRjJFX2MgeAorICAgICBjZGVmIG50bF9HRjJFQ29udGV4 dF9jbGFzcyBjCistICAgIGNkZWYgbnRsX0dGMkUgX25ldyhzZWxmKSBub2V4Y2VwdAorKyAgICBj ZGVmIG50bF9HRjJFIF9uZXcoc2VsZikKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250 bC9udGxfR0YyRS5weXggYi9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRS5weXgKK2luZGV4IGZh OTQxODA0MjkzLi5lMTYyZjIxZGRjOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250 bF9HRjJFLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMkUucHl4CitAQCAtMTU1 LDcgKzE1NSw3IEBAIGNkZWYgY2xhc3MgbnRsX0dGMkUoKToKKyAgICAgICAgICAgICBzZWxmLmMg PSA8bnRsX0dGMkVDb250ZXh0X2NsYXNzPm50bF9HRjJFQ29udGV4dChtb2R1bHVzKQorICAgICAg ICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQorIAorLSAgICBjZGVmIG50bF9HRjJFIF9uZXcoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX0dGMkUgX25ldyhzZWxmKToKKyAgICAgICAgIGNk ZWYgbnRsX0dGMkUgcgorICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgICAgICAgICByID0g bnRsX0dGMkUuX19uZXdfXyhudGxfR0YyRSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250 bC9udGxfR0YyRVgucHhkIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMkVYLnB4ZAoraW5kZXgg MzhjOTZhN2ZlNTIuLmJlY2Q4OWE5YzU3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwv bnRsX0dGMkVYLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMkVYLnB4ZAorQEAg LTUsNSArNSw1IEBAIGZyb20gc2FnZS5saWJzLm50bC5udGxfR0YyRSBjaW1wb3J0IG50bF9HRjJF CisgY2RlZiBjbGFzcyBudGxfR0YyRVgoKToKKyAgICAgY2RlZiBHRjJFWF9jIHgKKyAgICAgY2Rl ZiBudGxfR0YyRUNvbnRleHRfY2xhc3MgYworLSAgICBjZGVmIG50bF9HRjJFIF9uZXdfZWxlbWVu dChzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIG50bF9HRjJFWCBfbmV3KHNlbGYpIG5vZXhjZXB0 CisrICAgIGNkZWYgbnRsX0dGMkUgX25ld19lbGVtZW50KHNlbGYpCisrICAgIGNkZWYgbnRsX0dG MkVYIF9uZXcoc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRVgu cHl4IGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMkVYLnB5eAoraW5kZXggNGUxYzQzMjQ5MTUu LjE1N2U1OWVmYWVlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMkVYLnB5 eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMkVYLnB5eAorQEAgLTg1LDE0ICs4NSwx NCBAQCBjZGVmIGNsYXNzIG50bF9HRjJFWCgpOgorICAgICAgICAgICAgIHNlbGYuYyA9IDxudGxf R0YyRUNvbnRleHRfY2xhc3M+bnRsX0dGMkVDb250ZXh0KG1vZHVsdXMpCisgICAgICAgICAgICAg c2VsZi5jLnJlc3RvcmVfYygpCisgCistICAgIGNkZWYgbnRsX0dGMkUgX25ld19lbGVtZW50KHNl bGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9HRjJFIF9uZXdfZWxlbWVudChzZWxmKToKKyAg ICAgICAgIGNkZWYgbnRsX0dGMkUgcgorICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgICAg ICAgICByID0gbnRsX0dGMkUuX19uZXdfXyhudGxfR0YyRSkKKyAgICAgICAgIHIuYyA9IHNlbGYu YworICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY2RlZiBudGxfR0YyRVggX25ldyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBudGxfR0YyRVggX25ldyhzZWxmKToKKyAgICAgICAgIGNkZWYg bnRsX0dGMkVYIHIKKyAgICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQorICAgICAgICAgciA9IG50 bF9HRjJFWC5fX25ld19fKG50bF9HRjJFWCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250 bC9udGxfR0YyWF9saW5rYWdlLnB4aSBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJYX2xpbmth Z2UucHhpCitpbmRleCBjZjQ4MGEzNDY1My4uOGY1ZWRjZTE0YzEgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9saWJzL250bC9udGxfR0YyWF9saW5rYWdlLnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9u dGwvbnRsX0dGMlhfbGlua2FnZS5weGkKK0BAIC02Nyw3ICs2Nyw3IEBAIGNkZWYgaW50IGNlbGVt ZW50X2dlbihHRjJYX2MgKmUsIGxvbmcgaSwgbG9uZyBwYXJlbnQpIGV4Y2VwdCAtMjoKKyAgICAg Y2RlZiB1bnNpZ25lZCBjaGFyIGcgPSAyCisgICAgIEdGMlhGcm9tQnl0ZXMoZVswXSwgPHVuc2ln bmVkIGNoYXIgKj4oJmcpLCAxKQorIAorLWNkZWYgb2JqZWN0IGNlbGVtZW50X3JlcHIoR0YyWF9j ICplLCBsb25nIHBhcmVudCkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgY2VsZW1lbnRfcmVwcihH RjJYX2MgKmUsIGxvbmcgcGFyZW50KToKKyAgICAgIiIiCisgICAgIFdlIGlnbm9yZSBOVEwncyBw cmludGluZy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWloucHl4IGIv c3JjL3NhZ2UvbGlicy9udGwvbnRsX1paLnB5eAoraW5kZXggMzdhY2ZlZjc5YTguLmU0YTIyMTc0 MDEyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paLnB5eAorKysrIGIvc3Jj L3NhZ2UvbGlicy9udGwvbnRsX1paLnB5eAorQEAgLTMyLDcgKzMyLDcgQEAgZnJvbSBzYWdlLm1p c2MucmFuZHN0YXRlIGNpbXBvcnQgY3VycmVudF9yYW5kc3RhdGUKKyBmcm9tIGNweXRob24ub2Jq ZWN0IGNpbXBvcnQgUHlfTFQsIFB5X0xFLCBQeV9FUSwgUHlfTkUsIFB5X0dULCBQeV9HRQorIAor IAorLWNkZWYgbWFrZV9aWihaWl9jKiB4KSBub2V4Y2VwdDoKKytjZGVmIG1ha2VfWlooWlpfYyog eCk6CisgICAgIGNkZWYgbnRsX1paIHkKKyAgICAgeSA9IG50bF9aWigpCisgICAgIHkueCA9IHhb MF0KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpYLnB5eCBiL3NyYy9zYWdl L2xpYnMvbnRsL250bF9aWlgucHl4CitpbmRleCAzNDNlNTg4MzE5MS4uM2UyM2JjZDEyNTAgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpYLnB5eAorKysrIGIvc3JjL3NhZ2Uv bGlicy9udGwvbnRsX1paWC5weXgKK0BAIC0zNyw3ICszNyw3IEBAIGZyb20gc2FnZS5hcml0aC5w b3dlciBjaW1wb3J0IGdlbmVyaWNfcG93ZXJfcG9zCisgCisgWlogPSBJbnRlZ2VyUmluZygpCisg CistY2RlZiBpbmxpbmUgbnRsX1paIG1ha2VfWlooWlpfYyogeCkgbm9leGNlcHQ6CisrY2RlZiBp bmxpbmUgbnRsX1paIG1ha2VfWlooWlpfYyogeCk6CisgICAgICIiIiBUaGVzZSBtYWtlX1hYWFgg ZnVuY3Rpb25zIGFyZSBkZXByZWNhdGVkIGFuZCBzaG91bGQgYmUgcGhhc2VkIG91dC4iIiIKKyAg ICAgY2RlZiBudGxfWlogeQorICAgICB5ID0gbnRsX1paKCkKK0BAIC00NiwxMiArNDYsMTIgQEAg Y2RlZiBpbmxpbmUgbnRsX1paIG1ha2VfWlooWlpfYyogeCkgbm9leGNlcHQ6CisgICAgIHJldHVy biB5CisgCisgIyBZb3UgbXVzdCBkbyBzaWdfb24oKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0 aW9uCistY2RlZiBpbmxpbmUgbnRsX1paIG1ha2VfWlpfc2lnX29mZihaWl9jKiB4KSBub2V4Y2Vw dDoKKytjZGVmIGlubGluZSBudGxfWlogbWFrZV9aWl9zaWdfb2ZmKFpaX2MqIHgpOgorICAgICBj ZGVmIG50bF9aWiB5ID0gbWFrZV9aWih4KQorICAgICBzaWdfb2ZmKCkKKyAgICAgcmV0dXJuIHkK KyAKKy1jZGVmIGlubGluZSBudGxfWlpYIG1ha2VfWlpYKFpaWF9jKiB4KSBub2V4Y2VwdDoKKytj ZGVmIGlubGluZSBudGxfWlpYIG1ha2VfWlpYKFpaWF9jKiB4KToKKyAgICAgIiIiIFRoZXNlIG1h a2VfWFhYWCBmdW5jdGlvbnMgYXJlIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBiZSBwaGFzZWQgb3V0 LiIiIgorICAgICBjZGVmIG50bF9aWlggeQorICAgICB5ID0gbnRsX1paWCgpCitAQCAtNjAsMTMg KzYwLDEzIEBAIGNkZWYgaW5saW5lIG50bF9aWlggbWFrZV9aWlgoWlpYX2MqIHgpIG5vZXhjZXB0 OgorICAgICByZXR1cm4geQorIAorICMgWW91IG11c3QgZG8gc2lnX29uKCkgYmVmb3JlIGNhbGxp bmcgdGhpcyBmdW5jdGlvbgorLWNkZWYgaW5saW5lIG50bF9aWlggbWFrZV9aWlhfc2lnX29mZiha WlhfYyogeCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgbnRsX1paWCBtYWtlX1paWF9zaWdfb2Zm KFpaWF9jKiB4KToKKyAgICAgY2RlZiBudGxfWlpYIHkgPSBtYWtlX1paWCh4KQorICAgICBzaWdf b2ZmKCkKKyAgICAgcmV0dXJuIHkKKyAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLnByb29mLnByb29m IGltcG9ydCBnZXRfZmxhZworLWNkZWYgcHJvb2ZfZmxhZyh0KSBub2V4Y2VwdDoKKytjZGVmIHBy b29mX2ZsYWcodCk6CisgICAgIHJldHVybiBnZXRfZmxhZyh0LCAicG9seW5vbWlhbCIpCisgCisg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRs X1paX3AucHhkIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3AucHhkCitpbmRleCBhOTJjOTc2 NjExMi4uOGJhYzZlMDEyZTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpf cC5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wLnB4ZAorQEAgLTYsNCArNiw0 IEBAIGNkZWYgY2xhc3MgbnRsX1paX3AoKToKKyAgICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xh c3MgYworICAgICBjZGVmIGludCBnZXRfYXNfaW50KG50bF9aWl9wIHNlbGYpIG5vZXhjZXB0Cisg ICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9pbnQobnRsX1paX3Agc2VsZiwgaW50IHZhbHVlKSBub2V4 Y2VwdAorLSAgICBjZGVmIG50bF9aWl9wIF9uZXcoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBu dGxfWlpfcCBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1pa X3AucHl4IGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3AucHl4CitpbmRleCBjY2E3NjczMDNm Ny4uNGRjMmI3OTViN2UgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcC5w eXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wLnB5eAorQEAgLTE1NCw3ICsxNTQs NyBAQCBjZGVmIGNsYXNzIG50bF9aWl9wKCk6CisgICAgICAgICAgICAgc2VsZi5jID0gPG50bF9a Wl9wQ29udGV4dF9jbGFzcz5udGxfWlpfcENvbnRleHQobW9kdWx1cykKKyAgICAgICAgICAgICBz ZWxmLmMucmVzdG9yZV9jKCkKKyAKKy0gICAgY2RlZiBudGxfWlpfcCBfbmV3KHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIG50bF9aWl9wIF9uZXcoc2VsZik6CisgICAgICAgICBjZGVmIG50bF9a Wl9wIHIKKyAgICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQorICAgICAgICAgciA9IG50bF9aWl9w Ll9fbmV3X18obnRsX1paX3ApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1pa X3BDb250ZXh0LnB4ZCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wQ29udGV4dC5weGQKK2lu ZGV4IGQ2MGNhYjkxZDU1Li4xY2FiN2I3N2UzNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMv bnRsL250bF9aWl9wQ29udGV4dC5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9w Q29udGV4dC5weGQKK0BAIC0xNCw3ICsxNCw3IEBAIGNkZWYgY2xhc3MgbnRsX1paX3BDb250ZXh0 X2NsYXNzKCk6CisgCisgY2RlZiBjbGFzcyBudGxfWlpfcENvbnRleHRfZmFjdG9yeSgpOgorICAg ICBjZGVmIG9iamVjdCBjb250ZXh0X2RpY3QKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xh c3MgbWFrZV9jKHNlbGYsIG50bF9aWiB2KSBub2V4Y2VwdAorKyAgICBjZGVmIG50bF9aWl9wQ29u dGV4dF9jbGFzcyBtYWtlX2Moc2VsZiwgbnRsX1paIHYpCisgCisgCisgY2RlZiBleHRlcm4gZnJv bSAibnRsd3JhcC5oIjoKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcENv bnRleHQucHl4IGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BDb250ZXh0LnB5eAoraW5kZXgg NTJjMDRlMjc3Y2QuLjM4ZjIxMWE1ZWExIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwv bnRsX1paX3BDb250ZXh0LnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BDb250 ZXh0LnB5eAorQEAgLTE2Miw3ICsxNjIsNyBAQCBjZGVmIGNsYXNzIG50bF9aWl9wQ29udGV4dF9m YWN0b3J5KCk6CisgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIHNlbGYuY29udGV4 dF9kaWN0ID0ge30KKyAKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgbWFrZV9jKHNl bGYsIG50bF9aWiB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3Mg bWFrZV9jKHNlbGYsIG50bF9aWiB2KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlcyBh IG5ldyBaWl9wQ29udGV4dC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxf WlpfcEUucHhkIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BFLnB4ZAoraW5kZXggYjJhMWFh NzAyOTMuLmM2MGVhYmE0YWQ1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1pa X3BFLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BFLnB4ZAorQEAgLTUsNiAr NSw2IEBAIGZyb20gc2FnZS5saWJzLm50bC5udGxfWlpfcFggY2ltcG9ydCBudGxfWlpfcFgKKyBj ZGVmIGNsYXNzIG50bF9aWl9wRSgpOgorICAgICBjZGVmIFpaX3BFX2MgeAorICAgICBjZGVmIG50 bF9aWl9wRUNvbnRleHRfY2xhc3MgYworLSAgICBjZGVmIG50bF9aWl9wWCBnZXRfYXNfWlpfcFgo bnRsX1paX3BFIHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgbnRsX1paX3BYIGdldF9hc19aWl9w WChudGxfWlpfcEUgc2VsZikKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX1paX3BYKG50bF9aWl9w RSBzZWxmLCBudGxfWlpfcFggdmFsdWUpIG5vZXhjZXB0CistICAgIGNkZWYgbnRsX1paX3BFIF9u ZXcoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBudGxfWlpfcEUgX25ldyhzZWxmKQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRS5weXggYi9zcmMvc2FnZS9saWJzL250 bC9udGxfWlpfcEUucHl4CitpbmRleCBiMDg4MjIxN2U4Ni4uZDA2OWI4OWZjZWYgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEUucHl4CisrKysgYi9zcmMvc2FnZS9saWJz L250bC9udGxfWlpfcEUucHl4CitAQCAtMTQ5LDcgKzE0OSw3IEBAIGNkZWYgY2xhc3MgbnRsX1pa X3BFKCk6CisgICAgICAgICAgICAgc2VsZi5jID0gPG50bF9aWl9wRUNvbnRleHRfY2xhc3M+bnRs X1paX3BFQ29udGV4dChtb2R1bHVzKQorICAgICAgICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQor IAorLSAgICBjZGVmIG50bF9aWl9wRSBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50 bF9aWl9wRSBfbmV3KHNlbGYpOgorICAgICAgICAgY2RlZiBudGxfWlpfcEUgcgorICAgICAgICAg c2VsZi5jLnJlc3RvcmVfYygpCisgICAgICAgICByID0gbnRsX1paX3BFLl9fbmV3X18obnRsX1pa X3BFKQorQEAgLTI2OCw3ICsyNjgsNyBAQCBjZGVmIGNsYXNzIG50bF9aWl9wRSgpOgorICAgICAg ICAgcmV0dXJuIHIKKyAKKyAKKy0gICAgY2RlZiBudGxfWlpfcFggZ2V0X2FzX1paX3BYKG50bF9a Wl9wRSBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfWlpfcFggZ2V0X2FzX1paX3BYKG50 bF9aWl9wRSBzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgdmFsdWUgYXMg bnRsX1paX3BYLgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwv bnRsX1paX3BFWC5weGQgYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEVYLnB4ZAoraW5kZXgg MjZlZjJiYWYzMDIuLmI1NmI4NTUxOWEzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwv bnRsX1paX3BFWC5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRVgucHhkCitA QCAtNiw0ICs2LDQgQEAgY2RlZiBjbGFzcyBudGxfWlpfcEVYKCk6CisgICAgIGNkZWYgbnRsX1pa X3BFQ29udGV4dF9jbGFzcyBjCisgICAgICNjZGVmIHZvaWQgc2V0aXRlbV9mcm9tX2ludChudGxf WlpfcFggc2VsZiwgbG9uZyBpLCBpbnQgdmFsdWUpCisgICAgICNjZGVmIGludCBnZXRpdGVtX2Fz X2ludChudGxfWlpfcFggc2VsZiwgbG9uZyBpKQorLSAgICBjZGVmIG50bF9aWl9wRVggX25ldyhz ZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIG50bF9aWl9wRVggX25ldyhzZWxmKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRVgucHl4IGIvc3JjL3NhZ2UvbGlicy9udGwv bnRsX1paX3BFWC5weXgKK2luZGV4IDZlYmRlOTU1YWEzLi5jMTJkZjc3YzJmMCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRVgucHl4CisrKysgYi9zcmMvc2FnZS9saWJz L250bC9udGxfWlpfcEVYLnB5eAorQEAgLTEzMyw3ICsxMzMsNyBAQCBjZGVmIGNsYXNzIG50bF9a Wl9wRVgoKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtb2R1bHVzIG11c3Qgbm90 IGJlIE5vbmUiKQorICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgCistICAgIGNkZWYgbnRs X1paX3BFWCBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wRVggX25ldyhz ZWxmKToKKyAgICAgICAgIGNkZWYgbnRsX1paX3BFWCByCisgICAgICAgICBzZWxmLmMucmVzdG9y ZV9jKCkKKyAgICAgICAgIHIgPSBudGxfWlpfcEVYLl9fbmV3X18obnRsX1paX3BFWCkKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEVYX2xpbmthZ2UucHhpIGIvc3JjL3Nh Z2UvbGlicy9udGwvbnRsX1paX3BFWF9saW5rYWdlLnB4aQoraW5kZXggYjA0OTdlYjM2MzAuLjNh MGI4ZjA2NDNhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BFWF9saW5r YWdlLnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BFWF9saW5rYWdlLnB4aQor QEAgLTgwLDcgKzgwLDcgQEAgY2RlZiBpbnQgY2VsZW1lbnRfZ2VuKFpaX3BFWF9jICplLCBsb25n IGksIGNwYXJlbnQgcGFyZW50KSBleGNlcHQgLTI6CisgICAgICAgICBwYXJlbnRbMF0uenpwZWNb MF0ucmVzdG9yZSgpCisgICAgIFpaX3BFWF9TZXRYKGVbMF0pCisgCistY2RlZiBvYmplY3QgY2Vs ZW1lbnRfcmVwcihaWl9wRVhfYyAqZSwgY3BhcmVudCBwYXJlbnQpIG5vZXhjZXB0OgorK2NkZWYg b2JqZWN0IGNlbGVtZW50X3JlcHIoWlpfcEVYX2MgKmUsIGNwYXJlbnQgcGFyZW50KToKKyAgICAg IiIiCisgICAgIFdlIGlnbm9yZSBOVEwncyBwcmludGluZy4KKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9saWJzL250bC9udGxfWlpfcFgucHhkIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BY LnB4ZAoraW5kZXggMzg3OTJiY2EyZDEuLmQwMjU5NmI1MTI4IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbGlicy9udGwvbnRsX1paX3BYLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1pa X3BYLnB4ZAorQEAgLTYsNyArNiw3IEBAIGNkZWYgY2xhc3MgbnRsX1paX3BYKCk6CisgICAgIGNk ZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGMKKyAgICAgY2RlZiB2b2lkIHNldGl0ZW1fZnJvbV9p bnQobnRsX1paX3BYIHNlbGYsIGxvbmcgaSwgaW50IHZhbHVlKSBub2V4Y2VwdAorICAgICBjZGVm IGludCBnZXRpdGVtX2FzX2ludChudGxfWlpfcFggc2VsZiwgbG9uZyBpKSBub2V4Y2VwdAorLSAg ICBjZGVmIG50bF9aWl9wWCBfbmV3KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgbnRsX1paX3BY IF9uZXcoc2VsZikKKyAKKyBjZGVmIGNsYXNzIG50bF9aWl9wWF9Nb2R1bHVzKCk6CisgICAgIGNk ZWYgWlpfcFhfTW9kdWx1c19jIHgKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxf WlpfcFgucHl4IGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BYLnB5eAoraW5kZXggMzQyMjIz OWFhYWMuLjc1YjczOGMxNjI1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1pa X3BYLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BYLnB5eAorQEAgLTM4LDcg KzM4LDcgQEAgZnJvbSBzYWdlLm1pc2MucmFuZHN0YXRlIGNpbXBvcnQgY3VycmVudF9yYW5kc3Rh dGUKKyBmcm9tIHNhZ2UubGlicy5nbXAubXB6IGNpbXBvcnQgKgorIAorIAorLWNkZWYgaW5saW5l IG1ha2VfWlpfcChaWl9wX2MqIHgsIG50bF9aWl9wQ29udGV4dF9jbGFzcyBjdHgpIG5vZXhjZXB0 OgorK2NkZWYgaW5saW5lIG1ha2VfWlpfcChaWl9wX2MqIHgsIG50bF9aWl9wQ29udGV4dF9jbGFz cyBjdHgpOgorICAgICBjZGVmIG50bF9aWl9wIHkKKyAgICAgc2lnX29mZigpCisgICAgIHkgPSBu dGxfWlpfcChtb2R1bHVzID0gY3R4KQorQEAgLTQ3LDcgKzQ3LDcgQEAgY2RlZiBpbmxpbmUgbWFr ZV9aWl9wKFpaX3BfYyogeCwgbnRsX1paX3BDb250ZXh0X2NsYXNzIGN0eCkgbm9leGNlcHQ6Cisg ICAgIHJldHVybiB5CisgCisgCistY2RlZiBtYWtlX1paX3BYKFpaX3BYX2MqIHgsIG50bF9aWl9w Q29udGV4dF9jbGFzcyBjdHgpIG5vZXhjZXB0OgorK2NkZWYgbWFrZV9aWl9wWChaWl9wWF9jKiB4 LCBudGxfWlpfcENvbnRleHRfY2xhc3MgY3R4KToKKyAgICAgY2RlZiBudGxfWlpfcFggeQorICAg ICB5ID0gPG50bF9aWl9wWD5udGxfWlpfcFguX19uZXdfXyhudGxfWlpfcFgpCisgICAgIHkuYyA9 IGN0eAorQEAgLTEzOCw3ICsxMzgsNyBAQCBjZGVmIGNsYXNzIG50bF9aWl9wWCgpOgorICAgICAg ICAgICAgIHNlbGYuYyA9IDxudGxfWlpfcENvbnRleHRfY2xhc3M+bnRsX1paX3BDb250ZXh0KG50 bF9aWihtb2R1bHVzKSkKKyAgICAgICAgICAgICBzZWxmLmMucmVzdG9yZV9jKCkKKyAKKy0gICAg Y2RlZiBudGxfWlpfcFggX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfWlpfcFgg X25ldyhzZWxmKToKKyAgICAgICAgIGNkZWYgbnRsX1paX3BYIHIKKyAgICAgICAgIHNlbGYuYy5y ZXN0b3JlX2MoKQorICAgICAgICAgciA9IG50bF9aWl9wWC5fX25ld19fKG50bF9aWl9wWCkKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3AucHhkIGIvc3JjL3NhZ2UvbGli cy9udGwvbnRsX2x6el9wLnB4ZAoraW5kZXggNmI0YTZiOGQzZjAuLjZlOGM0M2Q4OTk3IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wLnB4ZAorKysrIGIvc3JjL3NhZ2Uv bGlicy9udGwvbnRsX2x6el9wLnB4ZAorQEAgLTQsNCArNCw0IEBAIGZyb20gc2FnZS5saWJzLm50 bC5udGxfbHp6X3BDb250ZXh0IGNpbXBvcnQgbnRsX3p6X3BDb250ZXh0X2NsYXNzCisgY2RlZiBj bGFzcyBudGxfenpfcCgpOgorICAgICBjZGVmIHp6X3BfYyB4CisgICAgIGNkZWYgbnRsX3p6X3BD b250ZXh0X2NsYXNzIGMKKy0gICAgY2RlZiBudGxfenpfcCBfbmV3KG50bF96el9wIHNlbGYpIG5v ZXhjZXB0CisrICAgIGNkZWYgbnRsX3p6X3AgX25ldyhudGxfenpfcCBzZWxmKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weXggYi9zcmMvc2FnZS9saWJzL250bC9u dGxfbHp6X3AucHl4CitpbmRleCAwZjdmZDhmZDVlMy4uYWY4NmI5YmNmNjkgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3AucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL250 bC9udGxfbHp6X3AucHl4CitAQCAtMTUwLDcgKzE1MCw3IEBAIGNkZWYgY2xhc3MgbnRsX3p6X3Ao KToKKyAgICAgICAgICMjIG5vdyB0aGF0IHdlJ3ZlIGRldGVybWluZWQgdGhlIG1vZHVsdXMsIHNl dCB0aGF0IG1vZHVsdXMuCisgICAgICAgICBzZWxmLmMucmVzdG9yZV9jKCkKKyAKKy0gICAgY2Rl ZiBudGxfenpfcCBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF96el9wIF9uZXco c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFF1aWNrIGFuZCBkaXJ0eSB6el9wIG9iamVj dCBjcmVhdGlvbi4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BY LnB4ZCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcFgucHhkCitpbmRleCAyY2MwOTQxOWZl NS4uM2FiNzkwODQyOTkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BY LnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wWC5weGQKK0BAIC02LDQgKzYs NCBAQCBmcm9tIHNhZ2UubGlicy5udGwubnRsX2x6el9wQ29udGV4dCBjaW1wb3J0IG50bF96el9w Q29udGV4dF9jbGFzcworIGNkZWYgY2xhc3MgbnRsX3p6X3BYKCk6CisgICAgIGNkZWYgenpfcFhf YyB4CisgICAgIGNkZWYgbnRsX3p6X3BDb250ZXh0X2NsYXNzIGMKKy0gICAgY2RlZiBudGxfenpf cFggX25ldyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIG50bF96el9wWCBfbmV3KHNlbGYpCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wWC5weXggYi9zcmMvc2FnZS9s aWJzL250bC9udGxfbHp6X3BYLnB5eAoraW5kZXggYmJjZDlmMTRkZWMuLjdkMTljYzU1ZTM3IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wWC5weXgKKysrKyBiL3NyYy9z YWdlL2xpYnMvbnRsL250bF9senpfcFgucHl4CitAQCAtMjMyLDcgKzIzMiw3IEBAIGNkZWYgY2xh c3MgbnRsX3p6X3BYKCk6CisgICAgICAgICB6el9wWF9TZXRDb2VmZl9sb25nKHNlbGYueCwgaSwg dmFsKQorICAgICAgICAgcmV0dXJuCisgCistICAgIGNkZWYgbnRsX3p6X3BYIF9uZXcoc2VsZikg bm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX3p6X3BYIF9uZXcoc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFF1aWNrIGFuZCBkaXJ0eSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgbmV3IG9iamVj dCB3aXRoIHRoZQorICAgICAgICAgc2FtZSB6el9wQ29udGV4dCBhcyBzZWxmLgorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfR0YyLnB4ZCBiL3NyYy9zYWdlL2xpYnMvbnRs L250bF9tYXRfR0YyLnB4ZAoraW5kZXggNDA0MWY5ZjhmMTQuLjU2MTdlZjk4OTE1IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjIucHhkCisrKysgYi9zcmMvc2FnZS9s aWJzL250bC9udGxfbWF0X0dGMi5weGQKK0BAIC0zLDUgKzMsNSBAQCBmcm9tIHNhZ2UubGlicy5u dGwubnRsX0dGMiBjaW1wb3J0IG50bF9HRjIKKyAKKyBjZGVmIGNsYXNzIG50bF9tYXRfR0YyKCk6 CisgICAgIGNkZWYgbWF0X0dGMl9jIHgKKy0gICAgY2RlZiBudGxfR0YyIF9uZXdfZWxlbWVudChz ZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIG50bF9tYXRfR0YyIF9uZXcoc2VsZikgbm9leGNlcHQK KysgICAgY2RlZiBudGxfR0YyIF9uZXdfZWxlbWVudChzZWxmKQorKyAgICBjZGVmIG50bF9tYXRf R0YyIF9uZXcoc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbWF0X0dG Mi5weXggYi9zcmMvc2FnZS9saWJzL250bC9udGxfbWF0X0dGMi5weXgKK2luZGV4IDcxZDRmOGI3 NDkxLi4zMTg3NDdlOWFkZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRf R0YyLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjIucHl4CitAQCAtMTE4 LDEyICsxMTgsMTIgQEAgY2RlZiBjbGFzcyBudGxfbWF0X0dGMigpOgorICAgICAgICAgICAgICAg ICAgICAgbWF0X0dGMl9zZXRpdGVtKCZzZWxmLngsIGksIGosICYoPG50bF9HRjI+ZWxlbSkueCkK KyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgY2RlZiBudGxfR0YyIF9uZXdfZWxlbWVu dChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfR0YyIF9uZXdfZWxlbWVudChzZWxmKToK KyAgICAgICAgIGNkZWYgbnRsX0dGMiByCisgICAgICAgICByID0gbnRsX0dGMi5fX25ld19fKG50 bF9HRjIpCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjZGVmIG50bF9tYXRfR0YyIF9uZXco c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX21hdF9HRjIgX25ldyhzZWxmKToKKyAgICAg ICAgIGNkZWYgbnRsX21hdF9HRjIgcgorICAgICAgICAgciA9IG50bF9tYXRfR0YyLl9fbmV3X18o bnRsX21hdF9HRjIpCisgICAgICAgICByLnguU2V0RGltcyhzZWxmLnguTnVtUm93cygpLHNlbGYu eC5OdW1Db2xzKCkpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjJF LnB4ZCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfR0YyRS5weGQKK2luZGV4IDE1NDE1OTY1 YzY2Li5mYmI1ODM4MjM2OCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRf R0YyRS5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfR0YyRS5weGQKK0BAIC01 LDUgKzUsNSBAQCBmcm9tIHNhZ2UubGlicy5udGwubnRsX0dGMkUgY2ltcG9ydCBudGxfR0YyRQor IGNkZWYgY2xhc3MgbnRsX21hdF9HRjJFKCk6CisgICAgIGNkZWYgbWF0X0dGMkVfYyB4CisgICAg IGNkZWYgbnRsX0dGMkVDb250ZXh0X2NsYXNzIGMKKy0gICAgY2RlZiBudGxfR0YyRSBfbmV3X2Vs ZW1lbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBudGxfbWF0X0dGMkUgX25ldyhzZWxmKSBu b2V4Y2VwdAorKyAgICBjZGVmIG50bF9HRjJFIF9uZXdfZWxlbWVudChzZWxmKQorKyAgICBjZGVm IG50bF9tYXRfR0YyRSBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwv bnRsX21hdF9HRjJFLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfR0YyRS5weXgKK2lu ZGV4IDA1ODhlYWFhN2EzLi43YWI5YjkyYzAyMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMv bnRsL250bF9tYXRfR0YyRS5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfR0Yy RS5weXgKK0BAIC0xMzYsMTQgKzEzNiwxNCBAQCBjZGVmIGNsYXNzIG50bF9tYXRfR0YyRSgpOgor ICAgICAgICAgICAgIHNlbGYuYyA9IDxudGxfR0YyRUNvbnRleHRfY2xhc3M+bnRsX0dGMkVDb250 ZXh0KG1vZHVsdXMpCisgICAgICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgCistICAgIGNk ZWYgbnRsX0dGMkUgX25ld19lbGVtZW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9H RjJFIF9uZXdfZWxlbWVudChzZWxmKToKKyAgICAgICAgIGNkZWYgbnRsX0dGMkUgcgorICAgICAg ICAgc2VsZi5jLnJlc3RvcmVfYygpCisgICAgICAgICByID0gbnRsX0dGMkUuX19uZXdfXyhudGxf R0YyRSkKKyAgICAgICAgIHIuYyA9IHNlbGYuYworICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAg Y2RlZiBudGxfbWF0X0dGMkUgX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfbWF0 X0dGMkUgX25ldyhzZWxmKToKKyAgICAgICAgIGNkZWYgbnRsX21hdF9HRjJFIHIKKyAgICAgICAg IHNlbGYuYy5yZXN0b3JlX2MoKQorICAgICAgICAgciA9IG50bF9tYXRfR0YyRS5fX25ld19fKG50 bF9tYXRfR0YyRSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbWF0X1paLnB5 eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfWloucHl4CitpbmRleCAzNDkwNTVkYzE4Mi4u ZWQ0ZTAxMmJiMzMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfbWF0X1paLnB5 eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9aWi5weXgKK0BAIC0zMiw3ICszMiw3 IEBAIGZyb20gY3B5dGhvbi5vYmplY3QgY2ltcG9ydCBQeU9iamVjdF9SaWNoQ29tcGFyZQorIAor IGZyb20gc2FnZS5saWJzLm50bC5udGxfWlogaW1wb3J0IHVucGlja2xlX2NsYXNzX2FyZ3MKKyAK Ky1jZGVmIGlubGluZSBudGxfWlogbWFrZV9aWihaWl9jKiB4KSBub2V4Y2VwdDoKKytjZGVmIGlu bGluZSBudGxfWlogbWFrZV9aWihaWl9jKiB4KToKKyAgICAgY2RlZiBudGxfWlogeQorICAgICB5 ID0gbnRsX1paKCkKKyAgICAgeS54ID0geFswXQorQEAgLTQwLDEyICs0MCwxMiBAQCBjZGVmIGlu bGluZSBudGxfWlogbWFrZV9aWihaWl9jKiB4KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHkKKyAK KyAjIFlvdSBtdXN0IGRvIHNpZ19vbigpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24KKy1j ZGVmIGlubGluZSBudGxfWlogbWFrZV9aWl9zaWdfb2ZmKFpaX2MqIHgpIG5vZXhjZXB0OgorK2Nk ZWYgaW5saW5lIG50bF9aWiBtYWtlX1paX3NpZ19vZmYoWlpfYyogeCk6CisgICAgIGNkZWYgbnRs X1paIHkgPSBtYWtlX1paKHgpCisgICAgIHNpZ19vZmYoKQorICAgICByZXR1cm4geQorIAorLWNk ZWYgaW5saW5lIG50bF9tYXRfWlogbWFrZV9tYXRfWloobWF0X1paX2MqIHgpIG5vZXhjZXB0Ogor K2NkZWYgaW5saW5lIG50bF9tYXRfWlogbWFrZV9tYXRfWloobWF0X1paX2MqIHgpOgorICAgICBj ZGVmIG50bF9tYXRfWlogeQorICAgICB5ID0gbnRsX21hdF9aWi5fX25ld19fKG50bF9tYXRfWlop CisgICAgIHkueCA9IHhbMF0KK0BAIC01NSw3ICs1NSw3IEBAIGNkZWYgaW5saW5lIG50bF9tYXRf WlogbWFrZV9tYXRfWloobWF0X1paX2MqIHgpIG5vZXhjZXB0OgorICAgICByZXR1cm4geQorIAor ICMgWW91IG11c3QgZG8gc2lnX29uKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgorLWNk ZWYgaW5saW5lIG50bF9tYXRfWlogbWFrZV9tYXRfWlpfc2lnX29mZihtYXRfWlpfYyogeCkgbm9l eGNlcHQ6CisrY2RlZiBpbmxpbmUgbnRsX21hdF9aWiBtYWtlX21hdF9aWl9zaWdfb2ZmKG1hdF9a Wl9jKiB4KToKKyAgICAgY2RlZiBudGxfbWF0X1paIHkgPSBtYWtlX21hdF9aWih4KQorICAgICBz aWdfb2ZmKCkKKyAgICAgcmV0dXJuIHkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3Bhcmkv Y29udmVydF9mbGludC5weGQgYi9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9mbGludC5weGQK K2luZGV4IDNkNjAwM2Y1NmJkLi5jMTM5NzAzYjlhNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xp YnMvcGFyaS9jb252ZXJ0X2ZsaW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZl cnRfZmxpbnQucHhkCitAQCAtNSw5ICs1LDkgQEAgZnJvbSBzYWdlLmxpYnMuZmxpbnQudHlwZXMg Y2ltcG9ydCBmbXB6X3QsIGZtcHpfbWF0X3QsIGZtcHFfdCwgZm1wcV9tYXRfdAorIGNkZWYgR0VO IF9uZXdfR0VOX2Zyb21fZm1wel90KGZtcHpfdCB2YWx1ZSkgbm9leGNlcHQKKyBjZGVmIEdFTiBf bmV3X0dFTl9mcm9tX2ZtcHpfbWF0X3QoZm1wel9tYXRfdCBCKSBub2V4Y2VwdAorIGNkZWYgR0VO IF9uZXdfR0VOX2Zyb21fZm1wel9tYXRfdF9yb3RhdGU5MChmbXB6X21hdF90IEIpIG5vZXhjZXB0 CistY2RlZiBHZW4gaW50ZWdlcl9tYXRyaXgoZm1wel9tYXRfdCBCLCBiaW50IHJvdGF0ZSkgbm9l eGNlcHQKKytjZGVmIEdlbiBpbnRlZ2VyX21hdHJpeChmbXB6X21hdF90IEIsIGJpbnQgcm90YXRl KQorIAorIGNkZWYgR0VOIF9uZXdfR0VOX2Zyb21fZm1wcV90KGZtcHFfdCB2YWx1ZSkgbm9leGNl cHQKKyBjZGVmIEdFTiBfbmV3X0dFTl9mcm9tX2ZtcHFfbWF0X3QoZm1wcV9tYXRfdCBCKSBub2V4 Y2VwdAorIGNkZWYgR0VOIF9uZXdfR0VOX2Zyb21fZm1wcV9tYXRfdF9yb3RhdGU5MChmbXBxX21h dF90IEIpIG5vZXhjZXB0CistY2RlZiBHZW4gcmF0aW9uYWxfbWF0cml4KGZtcHFfbWF0X3QgQiwg YmludCByb3RhdGUpIG5vZXhjZXB0CisrY2RlZiBHZW4gcmF0aW9uYWxfbWF0cml4KGZtcHFfbWF0 X3QgQiwgYmludCByb3RhdGUpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZl cnRfZmxpbnQucHl4IGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfZmxpbnQucHl4CitpbmRl eCBlYWYwNjNhMGY2MS4uZmUwZTRmNzY0OGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3Bh cmkvY29udmVydF9mbGludC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X2Zs aW50LnB5eAorQEAgLTEyNiw3ICsxMjYsNyBAQCBjZGVmIEdFTiBfbmV3X0dFTl9mcm9tX2ZtcHFf bWF0X3Rfcm90YXRlOTAoZm1wcV9tYXRfdCBCKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIEEKKyAK KyAKKy1jZGVmIEdlbiBpbnRlZ2VyX21hdHJpeChmbXB6X21hdF90IEIsIGJpbnQgcm90YXRlKSBu b2V4Y2VwdDoKKytjZGVmIEdlbiBpbnRlZ2VyX21hdHJpeChmbXB6X21hdF90IEIsIGJpbnQgcm90 YXRlKToKKyAgICAgIiIiCisgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xNDIsNyArMTQyLDcgQEAg Y2RlZiBHZW4gaW50ZWdlcl9tYXRyaXgoZm1wel9tYXRfdCBCLCBiaW50IHJvdGF0ZSkgbm9leGNl cHQ6CisgICAgIHJldHVybiBuZXdfZ2VuKGcpCisgCisgCistY2RlZiBHZW4gcmF0aW9uYWxfbWF0 cml4KGZtcHFfbWF0X3QgQiwgYmludCByb3RhdGUpIG5vZXhjZXB0OgorK2NkZWYgR2VuIHJhdGlv bmFsX21hdHJpeChmbXBxX21hdF90IEIsIGJpbnQgcm90YXRlKToKKyAgICAgIiIiCisgICAgIEVY QU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9nbXAu cHhkIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfZ21wLnB4ZAoraW5kZXggYjc0NWE4MjNh YjUuLjhlOTg0ZWVkY2U4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRf Z21wLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfZ21wLnB4ZAorQEAgLTIs MTIgKzIsMTIgQEAgZnJvbSBjeXBhcmkyLnR5cGVzIGNpbXBvcnQgR0VOCisgZnJvbSBjeXBhcmky LmdlbiBjaW1wb3J0IEdlbgorIGZyb20gc2FnZS5saWJzLmdtcC50eXBlcyBjaW1wb3J0IG1wel90 LCBtcHFfdCwgbXB6X3B0ciwgbXBxX3B0cgorIAorLWNkZWYgR2VuIG5ld19nZW5fZnJvbV9tcHpf dChtcHpfdCB2YWx1ZSkgbm9leGNlcHQKKytjZGVmIEdlbiBuZXdfZ2VuX2Zyb21fbXB6X3QobXB6 X3QgdmFsdWUpCisgY2RlZiBHRU4gX25ld19HRU5fZnJvbV9tcHpfdChtcHpfdCB2YWx1ZSkgbm9l eGNlcHQKKy1jZGVmIEdlbiBuZXdfZ2VuX2Zyb21fbXBxX3QobXBxX3QgdmFsdWUpIG5vZXhjZXB0 CisrY2RlZiBHZW4gbmV3X2dlbl9mcm9tX21wcV90KG1wcV90IHZhbHVlKQorIGNkZWYgR0VOIF9u ZXdfR0VOX2Zyb21fbXBxX3QobXBxX3QgdmFsdWUpIG5vZXhjZXB0CistY2RlZiBHZW4gbmV3X2dl bl9mcm9tX3BhZGljKGxvbmcgb3JkcCwgbG9uZyByZWxwcmVjLCBtcHpfdCBwcmltZSwgbXB6X3Qg cF9wb3csIG1wel90IHVuaXQpIG5vZXhjZXB0CisrY2RlZiBHZW4gbmV3X2dlbl9mcm9tX3BhZGlj KGxvbmcgb3JkcCwgbG9uZyByZWxwcmVjLCBtcHpfdCBwcmltZSwgbXB6X3QgcF9wb3csIG1wel90 IHVuaXQpCisgY2RlZiBHRU4gX25ld19HRU5fZnJvbV9tcHFfdF9tYXRyaXgobXBxX3QqKiBCLCBs b25nIG5yLCBsb25nIG5jKSBub2V4Y2VwdAorLWNkZWYgR2VuIHJhdGlvbmFsX21hdHJpeChtcHFf dCoqIEIsIGxvbmcgbnIsIGxvbmcgbmMpIG5vZXhjZXB0CisrY2RlZiBHZW4gcmF0aW9uYWxfbWF0 cml4KG1wcV90KiogQiwgbG9uZyBuciwgbG9uZyBuYykKKyBjZGVmIHZvaWQgSU5UX3RvX21weiht cHpfcHRyIHZhbHVlLCBHRU4gZykgbm9leGNlcHQKKyBjZGVmIHZvaWQgSU5URlJBQ190b19tcHEo bXBxX3B0ciB2YWx1ZSwgR0VOIGcpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGli cy9wYXJpL2NvbnZlcnRfZ21wLnB5eCBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X2dtcC5w eXgKK2luZGV4IDcyODcyOWI4OWQxLi45MTYyZjdkOWEyNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2xpYnMvcGFyaS9jb252ZXJ0X2dtcC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252 ZXJ0X2dtcC5weXgKK0BAIC0yNyw3ICsyNyw3IEBAIGZyb20gc2FnZS5saWJzLmdtcC5hbGwgY2lt cG9ydCAqCisgZnJvbSBjeXBhcmkyLnBhcmlkZWNsIGNpbXBvcnQgKgorIGZyb20gY3lwYXJpMi5z dGFjayBjaW1wb3J0IG5ld19nZW4KKyAKKy1jZGVmIEdlbiBuZXdfZ2VuX2Zyb21fbXB6X3QobXB6 X3QgdmFsdWUpIG5vZXhjZXB0OgorK2NkZWYgR2VuIG5ld19nZW5fZnJvbV9tcHpfdChtcHpfdCB2 YWx1ZSk6CisgICAgICIiIgorICAgICBDcmVhdGUgYSBuZXcgUEFSSSBHZW4gb2YgdHlwZSBgYHRf SU5UYGAgZnJvbSBhIGdpdmVuCisgICAgIEdNUCBpbnRlZ2VyIGBgdmFsdWVgYC4KK0BAIC03Myw3 ICs3Myw3IEBAIGNkZWYgaW5saW5lIEdFTiBfbmV3X0dFTl9mcm9tX21wel90KG1wel90IHZhbHVl KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHoKKyAKKyAKKy1jZGVmIEdlbiBuZXdfZ2VuX2Zyb21f bXBxX3QobXBxX3QgdmFsdWUpIG5vZXhjZXB0OgorK2NkZWYgR2VuIG5ld19nZW5fZnJvbV9tcHFf dChtcHFfdCB2YWx1ZSk6CisgICAgICIiIgorICAgICBDcmVhdGUgYSBuZXcgUEFSSSBHZW4gb2Yg dHlwZSBgYHRfSU5UYGAgb3IgYGB0X0ZSQUNgYCBmcm9tIGEgZ2l2ZW4KKyAgICAgR01QIHJhdGlv bmFsIGBgdmFsdWVgYC4KK0BAIC0xMjEsNyArMTIxLDcgQEAgY2RlZiBpbmxpbmUgR0VOIF9uZXdf R0VOX2Zyb21fbXBxX3QobXBxX3QgdmFsdWUpIG5vZXhjZXB0OgorIAorIAorIGNkZWYgR2VuIG5l d19nZW5fZnJvbV9wYWRpYyhsb25nIG9yZHAsIGxvbmcgcmVscHJlYywKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbXB6X3QgcHJpbWUsIG1wel90IHBfcG93LCBtcHpfdCB1bml0KSBub2V4 Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXB6X3QgcHJpbWUsIG1wel90IHBf cG93LCBtcHpfdCB1bml0KToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIG5ldyBQQVJJIEdlbiBv ZiB0eXBlIGBgdF9QQURJQ2BgIGZyb20gdGhlIGdpdmVuIGlucHV0IGRhdGEKKyAgICAgYXMgR01Q IGludGVnZXJzLgorQEAgLTE1NSw3ICsxNTUsNyBAQCBjZGVmIEdFTiBfbmV3X0dFTl9mcm9tX21w cV90X21hdHJpeChtcHFfdCoqIEIsIGxvbmcgbnIsIGxvbmcgbmMpIG5vZXhjZXB0OgorICAgICBy ZXR1cm4gQQorIAorIAorLWNkZWYgR2VuIHJhdGlvbmFsX21hdHJpeChtcHFfdCoqIEIsIGxvbmcg bnIsIGxvbmcgbmMpIG5vZXhjZXB0OgorK2NkZWYgR2VuIHJhdGlvbmFsX21hdHJpeChtcHFfdCoq IEIsIGxvbmcgbnIsIGxvbmcgbmMpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGEgbmV3IFBBUkkg bWF0cml4IG9mIHR5cGUgYGB0X01BVGBgIGZyb20gYSBnaXZlbgorICAgICBhcnJheSBvZiBHTVAg cmF0aW9uYWxzIGBgbXBxX3RgYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29u dmVydF9zYWdlLnB4ZCBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2UucHhkCitpbmRl eCBmZmE5YzBlZjZjMC4uZWY4MGZmNDAzMGYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3Bh cmkvY29udmVydF9zYWdlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2Fn ZS5weGQKK0BAIC0yLDE0ICsyLDE0IEBAIGZyb20gY3lwYXJpMi5nZW4gY2ltcG9ydCBHZW4KKyBm cm9tIHNhZ2UucmluZ3MuaW50ZWdlciBjaW1wb3J0IEludGVnZXIKKyBmcm9tIHNhZ2UucmluZ3Mu cmF0aW9uYWwgY2ltcG9ydCBSYXRpb25hbAorIAorLWNwZGVmIGdlbl90b19zYWdlKEdlbiB6LCBs b2NhbHM9Kikgbm9leGNlcHQKKytjcGRlZiBnZW5fdG9fc2FnZShHZW4geiwgbG9jYWxzPSopCisg CistY3BkZWYgc2V0X2ludGVnZXJfZnJvbV9nZW4oSW50ZWdlciBzZWxmLCBHZW4geCkgbm9leGNl cHQKKy1jcGRlZiBHZW4gbmV3X2dlbl9mcm9tX2ludGVnZXIoSW50ZWdlciBzZWxmKSBub2V4Y2Vw dAorLWNwZGVmIHNldF9yYXRpb25hbF9mcm9tX2dlbihSYXRpb25hbCBzZWxmLCBHZW4geCkgbm9l eGNlcHQKKy1jcGRlZiBHZW4gbmV3X2dlbl9mcm9tX3JhdGlvbmFsKFJhdGlvbmFsIHNlbGYpIG5v ZXhjZXB0CisrY3BkZWYgc2V0X2ludGVnZXJfZnJvbV9nZW4oSW50ZWdlciBzZWxmLCBHZW4geCkK KytjcGRlZiBHZW4gbmV3X2dlbl9mcm9tX2ludGVnZXIoSW50ZWdlciBzZWxmKQorK2NwZGVmIHNl dF9yYXRpb25hbF9mcm9tX2dlbihSYXRpb25hbCBzZWxmLCBHZW4geCkKKytjcGRlZiBHZW4gbmV3 X2dlbl9mcm9tX3JhdGlvbmFsKFJhdGlvbmFsIHNlbGYpCisgCistY3BkZWYgcGFyaV9pc19wcmlt ZShJbnRlZ2VyIHApIG5vZXhjZXB0CistY3BkZWYgcGFyaV9pc19wcmltZV9wb3dlcihJbnRlZ2Vy IHEsIGJpbnQgZ2V0X2RhdGEpIG5vZXhjZXB0CisrY3BkZWYgcGFyaV9pc19wcmltZShJbnRlZ2Vy IHApCisrY3BkZWYgcGFyaV9pc19wcmltZV9wb3dlcihJbnRlZ2VyIHEsIGJpbnQgZ2V0X2RhdGEp CisgY3BkZWYgdW5zaWduZWQgbG9uZyBwYXJpX21heHByaW1lKCkgbm9leGNlcHQKKy1jcGRlZiBs aXN0IHBhcmlfcHJpbWVfcmFuZ2UobG9uZyBjX3N0YXJ0LCBsb25nIGNfc3RvcCwgYmludCBweV9p bnRzPSopIG5vZXhjZXB0CisrY3BkZWYgbGlzdCBwYXJpX3ByaW1lX3JhbmdlKGxvbmcgY19zdGFy dCwgbG9uZyBjX3N0b3AsIGJpbnQgcHlfaW50cz0qKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xp YnMvcGFyaS9jb252ZXJ0X3NhZ2UucHl4IGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2Fn ZS5weXgKK2luZGV4IDNmMjFhZTQ2YWI0Li5hMTYzZGJmMmIzMyAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2UucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL3Bhcmkv Y29udmVydF9zYWdlLnB5eAorQEAgLTUyLDcgKzUyLDcgQEAgZXhjZXB0IEltcG9ydEVycm9yOgor IHBhcmlfdHlwX3RvX2VudHJpZXNfdHlwZSA9IExhenlJbXBvcnQoJ3NhZ2UubGlicy5wYXJpLmNv bnZlcnRfc2FnZV9tYXRyaXgnLCAncGFyaV90eXBfdG9fZW50cmllc190eXBlJykKKyAKKyAKKy1j cGRlZiBnZW5fdG9fc2FnZShHZW4geiwgbG9jYWxzPU5vbmUpIG5vZXhjZXB0OgorK2NwZGVmIGdl bl90b19zYWdlKEdlbiB6LCBsb2NhbHM9Tm9uZSk6CisgICAgICIiIgorICAgICBDb252ZXJ0IGEg UEFSSSBnZW4gdG8gYSBTYWdlL1B5dGhvbiBvYmplY3QuCisgCitAQCAtMzM5LDcgKzMzOSw3IEBA IGNwZGVmIGdlbl90b19zYWdlKEdlbiB6LCBsb2NhbHM9Tm9uZSkgbm9leGNlcHQ6CisgICAgIHJl dHVybiBzYWdlX2V2YWwoc3RyKHopLCBsb2NhbHM9bG9jYWxzKQorIAorIAorLWNwZGVmIHNldF9p bnRlZ2VyX2Zyb21fZ2VuKEludGVnZXIgc2VsZiwgR2VuIHgpIG5vZXhjZXB0OgorK2NwZGVmIHNl dF9pbnRlZ2VyX2Zyb21fZ2VuKEludGVnZXIgc2VsZiwgR2VuIHgpOgorICAgICByIiIiCisgICAg IEVYQU1QTEVTOjoKKyAKK0BAIC0zODcsNyArMzg3LDcgQEAgY3BkZWYgc2V0X2ludGVnZXJfZnJv bV9nZW4oSW50ZWdlciBzZWxmLCBHZW4geCkgbm9leGNlcHQ6CisgICAgIElOVF90b19tcHooc2Vs Zi52YWx1ZSwgKDxHZW4+eCkuZykKKyAKKyAKKy1jcGRlZiBHZW4gbmV3X2dlbl9mcm9tX2ludGVn ZXIoSW50ZWdlciBzZWxmKSBub2V4Y2VwdDoKKytjcGRlZiBHZW4gbmV3X2dlbl9mcm9tX2ludGVn ZXIoSW50ZWdlciBzZWxmKToKKyAgICAgIiIiCisgICAgIFRFU1RTOjoKKyAKK0BAIC0zOTksNyAr Mzk5LDcgQEAgY3BkZWYgR2VuIG5ld19nZW5fZnJvbV9pbnRlZ2VyKEludGVnZXIgc2VsZikgbm9l eGNlcHQ6CisgICAgIHJldHVybiBuZXdfZ2VuX2Zyb21fbXB6X3Qoc2VsZi52YWx1ZSkKKyAKKyAK Ky1jcGRlZiBzZXRfcmF0aW9uYWxfZnJvbV9nZW4oUmF0aW9uYWwgc2VsZiwgR2VuIHgpIG5vZXhj ZXB0OgorK2NwZGVmIHNldF9yYXRpb25hbF9mcm9tX2dlbihSYXRpb25hbCBzZWxmLCBHZW4geCk6 CisgICAgIHIiIiIKKyAgICAgRVhBTVBMRVM6OgorIAorQEAgLTQxOSw3ICs0MTksNyBAQCBjcGRl ZiBzZXRfcmF0aW9uYWxfZnJvbV9nZW4oUmF0aW9uYWwgc2VsZiwgR2VuIHgpIG5vZXhjZXB0Ogor ICAgICAgICAgbXB6X3NldF9zaShtcHFfZGVucmVmKHNlbGYudmFsdWUpLCAxKQorIAorIAorLWNw ZGVmIEdlbiBuZXdfZ2VuX2Zyb21fcmF0aW9uYWwoUmF0aW9uYWwgc2VsZikgbm9leGNlcHQ6Cisr Y3BkZWYgR2VuIG5ld19nZW5fZnJvbV9yYXRpb25hbChSYXRpb25hbCBzZWxmKToKKyAgICAgIiIi CisgICAgIFRFU1RTOjoKKyAKK0BAIC00MzEsNyArNDMxLDcgQEAgY3BkZWYgR2VuIG5ld19nZW5f ZnJvbV9yYXRpb25hbChSYXRpb25hbCBzZWxmKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIG5ld19n ZW5fZnJvbV9tcHFfdChzZWxmLnZhbHVlKQorIAorIAorLWNwZGVmIGxpc3QgcGFyaV9kaXZpc29y c19zbWFsbChJbnRlZ2VyIHNlbGYpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3QgcGFyaV9kaXZpc29y c19zbWFsbChJbnRlZ2VyIHNlbGYpOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgbGlzdCBv ZiBkaXZpc29ycyBvZiB0aGlzIG51bWJlciB1c2luZyBQQVJJIGBgZGl2aXNvcnN1YGAuCisgCitA QCAtNDc3LDcgKzQ3Nyw3IEBAIGNwZGVmIGxpc3QgcGFyaV9kaXZpc29yc19zbWFsbChJbnRlZ2Vy IHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgYXZtYSA9IGx0b3AKKyAKKyAKKy1jcGRlZiBwYXJp X2lzX3ByaW1lKEludGVnZXIgcCkgbm9leGNlcHQ6CisrY3BkZWYgcGFyaV9pc19wcmltZShJbnRl Z2VyIHApOgorICAgICByIiIiCisgICAgIFJldHVybiB3aGV0aGVyIGBgcGBgIGlzIGEgcHJpbWUu CisgCitAQCAtNTA0LDcgKzUwNCw3IEBAIGNwZGVmIHBhcmlfaXNfcHJpbWUoSW50ZWdlciBwKSBu b2V4Y2VwdDoKKyAgICAgcmV0dXJuIGJvb2wodWlzcHJpbWUobXB6X2dldF91aShwLnZhbHVlKSkp CisgCisgCistY3BkZWYgcGFyaV9pc19wcmltZV9wb3dlcihJbnRlZ2VyIHEsIGJpbnQgZ2V0X2Rh dGEpIG5vZXhjZXB0OgorK2NwZGVmIHBhcmlfaXNfcHJpbWVfcG93ZXIoSW50ZWdlciBxLCBiaW50 IGdldF9kYXRhKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gd2hldGhlciBgYHFgYCBpcyBhIHBy aW1lIHBvd2VyLgorIAorQEAgLTU2MSw3ICs1NjEsNyBAQCBjcGRlZiB1bnNpZ25lZCBsb25nIHBh cmlfbWF4cHJpbWUoKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIG1heHByaW1lKCkKKyAKKyAKKy1j cGRlZiBsaXN0IHBhcmlfcHJpbWVfcmFuZ2UobG9uZyBjX3N0YXJ0LCBsb25nIGNfc3RvcCwgYmlu dCBweV9pbnRzPUZhbHNlKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IHBhcmlfcHJpbWVfcmFuZ2Uo bG9uZyBjX3N0YXJ0LCBsb25nIGNfc3RvcCwgYmludCBweV9pbnRzPUZhbHNlKToKKyAgICAgIiIi CisgICAgIFJldHVybiBhIGxpc3Qgb2YgYWxsIHByaW1lcyBiZXR3ZWVuIGBgc3RhcnRgYCBhbmQg YGBzdG9wIC0gMWBgLCBpbmNsdXNpdmUuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9w YXJpL2NvbnZlcnRfc2FnZV9jb21wbGV4X2RvdWJsZS5weGQgYi9zcmMvc2FnZS9saWJzL3Bhcmkv Y29udmVydF9zYWdlX2NvbXBsZXhfZG91YmxlLnB4ZAoraW5kZXggODAzODkyYjI3NGEuLjUxMjk5 ZDc3NzU5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9jb21w bGV4X2RvdWJsZS5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2VfY29t cGxleF9kb3VibGUucHhkCitAQCAtMSwxMyArMSwxMyBAQAorIGZyb20gY3lwYXJpMi5nZW4gY2lt cG9ydCBHZW4KKyBmcm9tIHNhZ2UucmluZ3MuY29tcGxleF9kb3VibGUgY2ltcG9ydCBDb21wbGV4 RG91YmxlRWxlbWVudAorIAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IHBhcmlfdG9fY2Rm KEdlbiBnKSBub2V4Y2VwdAorK2NwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IHBhcmlfdG9fY2Rm KEdlbiBnKQorIAorLWNwZGVmIEdlbiBuZXdfZ2VuX2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVu dChDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmKSBub2V4Y2VwdAorK2NwZGVmIEdlbiBuZXdfZ2Vu X2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVudChDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmKQor IAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZXRh KENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYsIGludCBmbGFnKSBub2V4Y2VwdAorLWNwZGVmIENv bXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfYWdtKENvbXBsZXhEb3Vi bGVFbGVtZW50IHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVt ZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZGlsb2coQ29tcGxleERvdWJsZUVsZW1lbnQgc2Vs Zikgbm9leGNlcHQKKy1jcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9l bGVtZW50X2dhbW1hKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0CistY3BkZWYg Q29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9nYW1tYV9pbmMoQ29t cGxleERvdWJsZUVsZW1lbnQgc2VsZiwgdCkgbm9leGNlcHQKKy1jcGRlZiBDb21wbGV4RG91Ymxl RWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X3pldGEoQ29tcGxleERvdWJsZUVsZW1lbnQg c2VsZikgbm9leGNlcHQKKytjcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJs ZV9lbGVtZW50X2V0YShDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmLCBpbnQgZmxhZykKKytjcGRl ZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X2FnbShDb21wbGV4 RG91YmxlRWxlbWVudCBzZWxmLCByaWdodCkKKytjcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBj b21wbGV4X2RvdWJsZV9lbGVtZW50X2RpbG9nKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYpCisr Y3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9nYW1tYShD b21wbGV4RG91YmxlRWxlbWVudCBzZWxmKQorK2NwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNv bXBsZXhfZG91YmxlX2VsZW1lbnRfZ2FtbWFfaW5jKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYs IHQpCisrY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF96 ZXRhKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGli cy9wYXJpL2NvbnZlcnRfc2FnZV9jb21wbGV4X2RvdWJsZS5weXggYi9zcmMvc2FnZS9saWJzL3Bh cmkvY29udmVydF9zYWdlX2NvbXBsZXhfZG91YmxlLnB5eAoraW5kZXggMWMxNjJjMTJlNTUuLmQ3 ZDdjNTMzM2ExIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9j b21wbGV4X2RvdWJsZS5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2Vf Y29tcGxleF9kb3VibGUucHl4CitAQCAtOCw3ICs4LDcgQEAgZnJvbSBjeXBhcmkyLnBhcmlkZWNs IGNpbXBvcnQgKgorIGZyb20gY3lwYXJpMi5jb252ZXJ0IGNpbXBvcnQgbmV3X2dlbl9mcm9tX2Rv dWJsZSwgbmV3X3RfQ09NUExFWF9mcm9tX2RvdWJsZQorIAorIAorLWNwZGVmIENvbXBsZXhEb3Vi bGVFbGVtZW50IHBhcmlfdG9fY2RmKEdlbiBnKSBub2V4Y2VwdDoKKytjcGRlZiBDb21wbGV4RG91 YmxlRWxlbWVudCBwYXJpX3RvX2NkZihHZW4gZyk6CisgICAgICIiIgorICAgICBDcmVhdGUgYSBD REYgZWxlbWVudCBmcm9tIGEgUEFSSSBgYGdlbmBgLgorIAorQEAgLTQyLDcgKzQyLDcgQEAgY3Bk ZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgcGFyaV90b19jZGYoR2VuIGcpIG5vZXhjZXB0OgorICAg ICByZXR1cm4gegorIAorIAorLWNwZGVmIEdlbiBuZXdfZ2VuX2Zyb21fY29tcGxleF9kb3VibGVf ZWxlbWVudChDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmKSBub2V4Y2VwdDoKKytjcGRlZiBHZW4g bmV3X2dlbl9mcm9tX2NvbXBsZXhfZG91YmxlX2VsZW1lbnQoQ29tcGxleERvdWJsZUVsZW1lbnQg c2VsZik6CisgICAgICIiIgorICAgICBSZXR1cm4gUEFSSSB2ZXJzaW9uIG9mIGBgc2VsZmBgLCBh cyBgYHRfQ09NUExFWGBgIG9yIGBgdF9SRUFMYGAuCisgCitAQCAtNjIsNyArNjIsNyBAQCBjcGRl ZiBHZW4gbmV3X2dlbl9mcm9tX2NvbXBsZXhfZG91YmxlX2VsZW1lbnQoQ29tcGxleERvdWJsZUVs ZW1lbnQgc2VsZikgbm9leGNlcAorICAgICAgICAgcmV0dXJuIG5ld190X0NPTVBMRVhfZnJvbV9k b3VibGUoR1NMX1JFQUwoc2VsZi5fY29tcGxleCksIEdTTF9JTUFHKHNlbGYuX2NvbXBsZXgpKQor IAorIAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRf ZXRhKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYsIGludCBmbGFnKSBub2V4Y2VwdDoKKytjcGRl ZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X2V0YShDb21wbGV4 RG91YmxlRWxlbWVudCBzZWxmLCBpbnQgZmxhZyk6CisgICAgICIiIgorICAgICBURVNUUzo6Cisg CitAQCAtNzYsNyArNzYsNyBAQCBjcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2Rv dWJsZV9lbGVtZW50X2V0YShDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmLAorICAgICByZXR1cm4g cGFyaV90b19jZGYobmV3X2dlbl9mcm9tX2NvbXBsZXhfZG91YmxlX2VsZW1lbnQoc2VsZikuZXRh KGZsYWcpKQorIAorIAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91Ymxl X2VsZW1lbnRfYWdtKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KytjcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X2FnbShD b21wbGV4RG91YmxlRWxlbWVudCBzZWxmLCByaWdodCk6CisgICAgICIiIgorICAgICBURVNUUzo6 CisgCitAQCAtODcsNyArODcsNyBAQCBjcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4 X2RvdWJsZV9lbGVtZW50X2FnbShDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmLAorICAgICByZXR1 cm4gcGFyaV90b19jZGYobmV3X2dlbl9mcm9tX2NvbXBsZXhfZG91YmxlX2VsZW1lbnQoc2VsZiku YWdtKHJpZ2h0KSkKKyAKKyAKKy1jcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2Rv dWJsZV9lbGVtZW50X2RpbG9nKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0Ogor K2NwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZGlsb2co Q29tcGxleERvdWJsZUVsZW1lbnQgc2VsZik6CisgICAgICIiIgorICAgICBURVNUUzo6CisgCitA QCAtOTgsNyArOTgsNyBAQCBjcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJs ZV9lbGVtZW50X2RpbG9nKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbAorICAgICByZXR1cm4gcGFy aV90b19jZGYobmV3X2dlbl9mcm9tX2NvbXBsZXhfZG91YmxlX2VsZW1lbnQoc2VsZikuZGlsb2co KSkKKyAKKyAKKy1jcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVt ZW50X2dhbW1hKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0OgorK2NwZGVmIENv bXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZ2FtbWEoQ29tcGxleERv dWJsZUVsZW1lbnQgc2VsZik6CisgICAgICIiIgorICAgICBURVNUUzo6CisgCitAQCAtMTA5LDcg KzEwOSw3IEBAIGNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1l bnRfZ2FtbWEoQ29tcGxleERvdWJsZUVsZW1lbnQgc2VsCisgICAgIHJldHVybiBwYXJpX3RvX2Nk ZihuZXdfZ2VuX2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVudChzZWxmKS5nYW1tYSgpKQorIAor IAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZ2Ft bWFfaW5jKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYsIHQpIG5vZXhjZXB0OgorK2NwZGVmIENv bXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZ2FtbWFfaW5jKENvbXBs ZXhEb3VibGVFbGVtZW50IHNlbGYsIHQpOgorICAgICAiIiIKKyAgICAgVEVTVFM6OgorIAorQEAg LTEyMCw3ICsxMjAsNyBAQCBjcGRlZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJs ZV9lbGVtZW50X2dhbW1hX2luYyhDb21wbGV4RG91YmxlRWxlbWVudAorICAgICByZXR1cm4gcGFy aV90b19jZGYobmV3X2dlbl9mcm9tX2NvbXBsZXhfZG91YmxlX2VsZW1lbnQoc2VsZikuaW5jZ2Ft KHQpKQorIAorIAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2Vs ZW1lbnRfemV0YShDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmKSBub2V4Y2VwdDoKKytjcGRlZiBD b21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X3pldGEoQ29tcGxleERv dWJsZUVsZW1lbnQgc2VsZik6CisgICAgICIiIgorICAgICBURVNUUzo6CisgCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9yZWFsX2RvdWJsZS5weGQgYi9zcmMv c2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3JlYWxfZG91YmxlLnB4ZAoraW5kZXggZGYyMTE5 ZDAzNzAuLjEyZmE3NDE4ZTY5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZl cnRfc2FnZV9yZWFsX2RvdWJsZS5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0 X3NhZ2VfcmVhbF9kb3VibGUucHhkCitAQCAtMSw0ICsxLDQgQEAKKyBmcm9tIGN5cGFyaTIuZ2Vu IGNpbXBvcnQgR2VuCisgZnJvbSBzYWdlLnJpbmdzLnJlYWxfZG91YmxlIGNpbXBvcnQgUmVhbERv dWJsZUVsZW1lbnQKKyAKKy1jcGRlZiBHZW4gbmV3X2dlbl9mcm9tX3JlYWxfZG91YmxlX2VsZW1l bnQoUmVhbERvdWJsZUVsZW1lbnQgc2VsZikgbm9leGNlcHQKKytjcGRlZiBHZW4gbmV3X2dlbl9m cm9tX3JlYWxfZG91YmxlX2VsZW1lbnQoUmVhbERvdWJsZUVsZW1lbnQgc2VsZikKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3JlYWxfZG91YmxlLnB5eCBiL3Ny Yy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2VfcmVhbF9kb3VibGUucHl4CitpbmRleCBlZTdl YmEzZjRhOC4uNmQ3ZmZlNzAzOGUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3BhcmkvY29u dmVydF9zYWdlX3JlYWxfZG91YmxlLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZl cnRfc2FnZV9yZWFsX2RvdWJsZS5weXgKK0BAIC0xLDYgKzEsNiBAQAorIGZyb20gY3lwYXJpMi5j b252ZXJ0IGNpbXBvcnQgbmV3X2dlbl9mcm9tX2RvdWJsZQorIAorLWNwZGVmIEdlbiBuZXdfZ2Vu X2Zyb21fcmVhbF9kb3VibGVfZWxlbWVudChSZWFsRG91YmxlRWxlbWVudCBzZWxmKSBub2V4Y2Vw dDoKKytjcGRlZiBHZW4gbmV3X2dlbl9mcm9tX3JlYWxfZG91YmxlX2VsZW1lbnQoUmVhbERvdWJs ZUVsZW1lbnQgc2VsZik6CisgICAgICIiIgorICAgICBSZXR1cm4gYSBQQVJJIHJlcHJlc2VudGF0 aW9uIG9mIGBgc2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252 ZXJ0X3NhZ2VfcmVhbF9tcGZyLnB4ZCBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2Vf cmVhbF9tcGZyLnB4ZAoraW5kZXggYTc2NzQzMDkyNTUuLjM0ZmJkMmJiZTQ1IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9yZWFsX21wZnIucHhkCisrKysgYi9z cmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3JlYWxfbXBmci5weGQKK0BAIC0zLDQgKzMs NCBAQCBmcm9tIGN5cGFyaTIuZ2VuIGNpbXBvcnQgR2VuCisgZnJvbSBzYWdlLnJpbmdzLnJlYWxf bXBmciBjaW1wb3J0IFJlYWxOdW1iZXIKKyAKKyBjcGRlZiBHZW4gbmV3X2dlbl9mcm9tX3JlYWxf bXBmcl9lbGVtZW50KFJlYWxOdW1iZXIgc2VsZikKKy1jcGRlZiBiaW50IHNldF9yZWFsX21wZnJf ZWxlbWVudF9mcm9tX2dlbihSZWFsTnVtYmVyIHNlbGYsIEdlbiB4KQorK2NwZGVmIGJpbnQgc2V0 X3JlYWxfbXBmcl9lbGVtZW50X2Zyb21fZ2VuKFJlYWxOdW1iZXIgc2VsZiwgR2VuIHgpIG5vZXhj ZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9yZWFsX21w ZnIucHl4IGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9yZWFsX21wZnIucHl4Citp bmRleCAxMTk5NDRhNTIwOS4uNDU0NmMzZGVmMjQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJz L3BhcmkvY29udmVydF9zYWdlX3JlYWxfbXBmci5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFy aS9jb252ZXJ0X3NhZ2VfcmVhbF9tcGZyLnB5eAorQEAgLTU2LDcgKzU2LDcgQEAgY3BkZWYgR2Vu IG5ld19nZW5fZnJvbV9yZWFsX21wZnJfZWxlbWVudChSZWFsTnVtYmVyIHNlbGYpOgorICAgICBy ZXR1cm4gbmV3X2dlbihwYXJpX2Zsb2F0KQorIAorIAorLWNwZGVmIGJpbnQgc2V0X3JlYWxfbXBm cl9lbGVtZW50X2Zyb21fZ2VuKFJlYWxOdW1iZXIgc2VsZiwgR2VuIHgpOgorK2NwZGVmIGJpbnQg c2V0X3JlYWxfbXBmcl9lbGVtZW50X2Zyb21fZ2VuKFJlYWxOdW1iZXIgc2VsZiwgR2VuIHgpIG5v ZXhjZXB0OgorICAgICByIiIiCisgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9saWJzL3BhcmkvbWlzYy5weGQgYi9zcmMvc2FnZS9saWJzL3BhcmkvbWlzYy5weGQKK2lu ZGV4IGRhMTYyNzQyZjFkLi5hZTg5YWZmMGI4NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMv cGFyaS9taXNjLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL21pc2MucHhkCitAQCAtMSwz ICsxLDMgQEAKKyBmcm9tIGN5cGFyaTIuZ2VuIGNpbXBvcnQgR2VuCisgCistY2RlZiBHZW4gbmV3 X3RfUE9MX2Zyb21faW50X3N0YXIoaW50KiB2YWxzLCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgbG9u ZyB2YXJudW0pIG5vZXhjZXB0CisrY2RlZiBHZW4gbmV3X3RfUE9MX2Zyb21faW50X3N0YXIoaW50 KiB2YWxzLCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgbG9uZyB2YXJudW0pCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvbGlicy9wYXJpL21pc2MucHl4IGIvc3JjL3NhZ2UvbGlicy9wYXJpL21pc2MucHl4 CitpbmRleCAwMmZkODQwM2I4ZS4uMWVkNzc0ZDQxN2MgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9s aWJzL3BhcmkvbWlzYy5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFyaS9taXNjLnB5eAorQEAg LTMsNyArMyw3IEBAIGZyb20gY3lwYXJpMi5wYXJpZGVjbCBjaW1wb3J0ICoKKyBmcm9tIGN5cGFy aTIuc3RhY2sgY2ltcG9ydCBuZXdfZ2VuCisgCisgCistY2RlZiBHZW4gbmV3X3RfUE9MX2Zyb21f aW50X3N0YXIoaW50KiB2YWxzLCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgbG9uZyB2YXJudW0pIG5v ZXhjZXB0OgorK2NkZWYgR2VuIG5ld190X1BPTF9mcm9tX2ludF9zdGFyKGludCogdmFscywgdW5z aWduZWQgbG9uZyBsZW5ndGgsIGxvbmcgdmFybnVtKToKKyAgICAgIiIiCisgICAgIENvbnZlcnQg YW4gYXJyYXkgb2YgaW50cyB0byBhIFBBUkkgcG9seW5vbWlhbC4KKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9saWJzL3Npbmd1bGFyL2Z1bmN0aW9uLnB4ZCBiL3NyYy9zYWdlL2xpYnMvc2luZ3Vs YXIvZnVuY3Rpb24ucHhkCitpbmRleCAyOTc0OGMwMzljNi4uZmFjZGNhZTY3NGEgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL2Z1bmN0aW9uLnB4ZAorKysrIGIvc3JjL3NhZ2Uv bGlicy9zaW5ndWxhci9mdW5jdGlvbi5weGQKK0BAIC0xOSw3ICsxOSw3IEBAIGZyb20gc2FnZS5s aWJzLnNpbmd1bGFyLmRlY2wgY2ltcG9ydCBsZWZ0diwgaWRoZGwsIHN5U3RyYXRlZ3ksIG1hdHJp eCwgcG9seSwgaWRlCisgZnJvbSBzYWdlLmxpYnMuc2luZ3VsYXIuZGVjbCBjaW1wb3J0IHJpbmcg YXMgc2luZ3VsYXJfcmluZworIGZyb20gc2FnZS5yaW5ncy5wb2x5bm9taWFsLm11bHRpX3BvbHlu b21pYWxfbGlic2luZ3VsYXIgY2ltcG9ydCBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIsIE1Q b2x5bm9taWFsX2xpYnNpbmd1bGFyCisgCistY2RlZiBuZXdfc2FnZV9wb2x5bm9taWFsKHJpbmcs ICBwb2x5ICpwKSBub2V4Y2VwdAorK2NkZWYgbmV3X3NhZ2VfcG9seW5vbWlhbChyaW5nLCAgcG9s eSAqcCkKKyBjZGVmIHBvbHkqIGFjY2Vzc19zaW5ndWxhcl9wb2x5KHApIGV4Y2VwdCA8cG9seSo+ IC0xCisgY2RlZiBzaW5ndWxhcl9yaW5nKiBhY2Nlc3Nfc2luZ3VsYXJfcmluZyhyKSBleGNlcHQg PHNpbmd1bGFyX3JpbmcqPiAtMQorIAorQEAgLTUwLDExICs1MCwxMSBAQCBjZGVmIGNsYXNzIENv bnZlcnRlcihTYWdlT2JqZWN0KToKKyAgICAgY2RlZiBsZWZ0diAqIGFwcGVuZF9tYXRyaXgoc2Vs ZiwgYSkgZXhjZXB0IE5VTEwKKyAgICAgY2RlZiBsZWZ0diAqIGFwcGVuZF9yaW5nKHNlbGYsIHIp IGV4Y2VwdCBOVUxMCisgICAgIGNkZWYgbGVmdHYgKiBhcHBlbmRfbW9kdWxlKHNlbGYsIG0pIGV4 Y2VwdCBOVUxMCistICAgIGNkZWYgdG9fc2FnZV9pbnRlZ2VyX21hdHJpeChzZWxmLCBpbnR2ZWMg Km1hdCkgbm9leGNlcHQKKy0gICAgY2RlZiBvYmplY3QgdG9fc2FnZV9tb2R1bGVfZWxlbWVudF9z ZXF1ZW5jZV9kZXN0cnVjdGl2ZShzZWxmLCBpZGVhbCAqaSkgbm9leGNlcHQKKy0gICAgY2RlZiB0 b19zYWdlX3ZlY3Rvcl9kZXN0cnVjdGl2ZShzZWxmLCBwb2x5ICpwLCBmcmVlX21vZHVsZSA9ID8p IG5vZXhjZXB0CistICAgIGNkZWYgdG9fc2FnZV9tYXRyaXgoc2VsZiwgbWF0cml4KiBtYXQpIG5v ZXhjZXB0CistICAgIGNkZWYgdG9fcHl0aG9uKHNlbGYsIGxlZnR2KiB0b19jb252ZXJ0KSBub2V4 Y2VwdAorKyAgICBjZGVmIHRvX3NhZ2VfaW50ZWdlcl9tYXRyaXgoc2VsZiwgaW50dmVjICptYXQp CisrICAgIGNkZWYgb2JqZWN0IHRvX3NhZ2VfbW9kdWxlX2VsZW1lbnRfc2VxdWVuY2VfZGVzdHJ1 Y3RpdmUoc2VsZiwgaWRlYWwgKmkpCisrICAgIGNkZWYgdG9fc2FnZV92ZWN0b3JfZGVzdHJ1Y3Rp dmUoc2VsZiwgcG9seSAqcCwgZnJlZV9tb2R1bGUgPSA/KQorKyAgICBjZGVmIHRvX3NhZ2VfbWF0 cml4KHNlbGYsIG1hdHJpeCogbWF0KQorKyAgICBjZGVmIHRvX3B5dGhvbihzZWxmLCBsZWZ0diog dG9fY29udmVydCkKKyAKKyBjZGVmIGNsYXNzIEJhc2VDYWxsSGFuZGxlcjoKKyAgICAgY2RlZiBs ZWZ0diogaGFuZGxlX2NhbGwoc2VsZiwgQ29udmVydGVyIGFyZ3VtZW50X2xpc3QsIHNpbmd1bGFy X3JpbmcgKl9yaW5nPT8pIG5vZXhjZXB0CitAQCAtNzIsOSArNzIsOSBAQCBjZGVmIGNsYXNzIFNp bmd1bGFyRnVuY3Rpb24oU2FnZU9iamVjdCk6CisgICAgIGNkZWYgTVBvbHlub21pYWxSaW5nX2xp YnNpbmd1bGFyIF9yaW5nCisgICAgIGNkZWYgQmFzZUNhbGxIYW5kbGVyIGNhbGxfaGFuZGxlcgor IAorLSAgICBjZGVmIEJhc2VDYWxsSGFuZGxlciBnZXRfY2FsbF9oYW5kbGVyKHNlbGYpIG5vZXhj ZXB0CisrICAgIGNkZWYgQmFzZUNhbGxIYW5kbGVyIGdldF9jYWxsX2hhbmRsZXIoc2VsZikKKyAg ICAgY2RlZiBiaW50IGZ1bmN0aW9uX2V4aXN0cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIGNv bW1vbl9yaW5nKHNlbGYsIHR1cGxlIGFyZ3MsIHJpbmc9Pykgbm9leGNlcHQKKysgICAgY2RlZiBj b21tb25fcmluZyhzZWxmLCB0dXBsZSBhcmdzLCByaW5nPT8pCisgCisgY2RlZiBjbGFzcyBTaW5n dWxhckxpYnJhcnlGdW5jdGlvbihTaW5ndWxhckZ1bmN0aW9uKToKKyAgICAgcGFzcworQEAgLTgz LDQgKzgzLDQgQEAgY2RlZiBjbGFzcyBTaW5ndWxhcktlcm5lbEZ1bmN0aW9uKFNpbmd1bGFyRnVu Y3Rpb24pOgorICAgICBwYXNzCisgCisgIyB0aGUgbW9zdCBkaXJlY3QgZnVuY3Rpb24gY2FsbCBp bnRlcmZhY2UKKy1jZGVmIGNhbGxfZnVuY3Rpb24oU2luZ3VsYXJGdW5jdGlvbiBzZWxmLCB0dXBs ZSBhcmdzLCBvYmplY3QgUiwgYmludCBzaWduYWxfaGFuZGxlcj0/LCBvYmplY3QgYXR0cmlidXRl cz0/KSBub2V4Y2VwdAorK2NkZWYgY2FsbF9mdW5jdGlvbihTaW5ndWxhckZ1bmN0aW9uIHNlbGYs IHR1cGxlIGFyZ3MsIG9iamVjdCBSLCBiaW50IHNpZ25hbF9oYW5kbGVyPT8sIG9iamVjdCBhdHRy aWJ1dGVzPT8pCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9mdW5jdGlvbi5w eXggYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL2Z1bmN0aW9uLnB5eAoraW5kZXggODM0ZmZkMTYz ZDguLjAxMjFmYTc2YjQ3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9mdW5j dGlvbi5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvZnVuY3Rpb24ucHl4CitAQCAt MzUzLDcgKzM1Myw3IEBAIGNkZWYgbGVmdHYqIG5ld19sZWZ0dih2b2lkICpkYXRhLCByZXNfdHlw ZSkgbm9leGNlcHQ6CisgICAgIHJlcy5ydHlwID0gcmVzX3R5cGUKKyAgICAgcmV0dXJuIHJlcwor IAorLWNkZWYgZnJlZV9sZWZ0dihsZWZ0diAqYXJncywgcmluZyAqciA9IE5VTEwpIG5vZXhjZXB0 OgorK2NkZWYgZnJlZV9sZWZ0dihsZWZ0diAqYXJncywgcmluZyAqciA9IE5VTEwpOgorICAgICAi IiIKKyAgICAgS2lsbHMgdGhpcyBgYGxlZnR2YGAgYW5kIGFsbCBgYGxlZnR2YGBzIGluIHRoZSB0 YWlsLgorIAorQEAgLTM5Myw3ICszOTMsNyBAQCBkZWYgaXNfc2FnZV93cmFwcGVyX2Zvcl9zaW5n dWxhcl9yaW5nKHJpbmcpOgorICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgcmV0dXJuIEZhbHNl CisgCistY2RlZiBuZXdfc2FnZV9wb2x5bm9taWFsKHJpbmcsICBwb2x5ICpwKSBub2V4Y2VwdDoK KytjZGVmIG5ld19zYWdlX3BvbHlub21pYWwocmluZywgIHBvbHkgKnApOgorICAgICBpZiBpc2lu c3RhbmNlKHJpbmcsIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhcik6CisgICAgICAgICByZXR1 cm4gbmV3X01QKHJpbmcsIHApCisgICAgIGVsc2U6CitAQCAtNjc4LDcgKzY3OCw3IEBAIGNkZWYg Y2xhc3MgQ29udmVydGVyKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5fYXBwZW5kX2xlZnR2KCBuZXdfbGVmdHYoZGF0YSwgcmVzX3R5cGUpICkKKyAKKy0g ICAgY2RlZiB0b19zYWdlX21hdHJpeChzZWxmLCBtYXRyaXgqIG1hdCkgbm9leGNlcHQ6CisrICAg IGNkZWYgdG9fc2FnZV9tYXRyaXgoc2VsZiwgbWF0cml4KiBtYXQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBDb252ZXJ0IHNpbmd1bGFyIG1hdHJpeCB0byBtYXRyaXggb3ZlciB0aGUgcG9seW5v bWlhbCByaW5nLgorICAgICAgICAgIiIiCitAQCAtNjkzLDcgKzY5Myw3IEBAIGNkZWYgY2xhc3Mg Q29udmVydGVyKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICByZXN1bHRbaSxqXSA9IHAK KyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY2RlZiB0b19zYWdlX3ZlY3Rvcl9kZXN0 cnVjdGl2ZShzZWxmLCBwb2x5ICpwLCBmcmVlX21vZHVsZSA9IE5vbmUpIG5vZXhjZXB0OgorKyAg ICBjZGVmIHRvX3NhZ2VfdmVjdG9yX2Rlc3RydWN0aXZlKHNlbGYsIHBvbHkgKnAsIGZyZWVfbW9k dWxlID0gTm9uZSk6CisgICAgICAgICBjZGVmIGludCByYW5rCisgICAgICAgICBpZiBmcmVlX21v ZHVsZToKKyAgICAgICAgICAgICByYW5rID0gZnJlZV9tb2R1bGUucmFuaygpCitAQCAtNzMzLDcg KzczMyw3IEBAIGNkZWYgY2xhc3MgQ29udmVydGVyKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg IHJlc3VsdC5hcHBlbmQobmV3X3NhZ2VfcG9seW5vbWlhbChzZWxmLl9zYWdlX3JpbmcsIGZpcnN0 KSkKKyAgICAgICAgIHJldHVybiBmcmVlX21vZHVsZShyZXN1bHQpCisgCistICAgIGNkZWYgb2Jq ZWN0IHRvX3NhZ2VfbW9kdWxlX2VsZW1lbnRfc2VxdWVuY2VfZGVzdHJ1Y3RpdmUoIHNlbGYsIGlk ZWFsICppKSBub2V4Y2VwdDoKKysgICAgY2RlZiBvYmplY3QgdG9fc2FnZV9tb2R1bGVfZWxlbWVu dF9zZXF1ZW5jZV9kZXN0cnVjdGl2ZSggc2VsZiwgaWRlYWwgKmkpOgorICAgICAgICAgIiIiCisg ICAgICAgICBDb252ZXJ0IGEgU0lOR1VMQVIgbW9kdWxlIHRvIGEgU2FnZSBTZXF1ZW5jZSAodGhl IGZvcm1hdCBTYWdlCisgICAgICAgICBzdG9yZXMgYSBHcm9lYm5lciBiYXNpcyBpbikuCitAQCAt NzU2LDcgKzc1Niw3IEBAIGNkZWYgY2xhc3MgQ29udmVydGVyKFNhZ2VPYmplY3QpOgorIAorICAg ICAgICAgcmV0dXJuIFNlcXVlbmNlKGwsIGNoZWNrPUZhbHNlLCBpbW11dGFibGU9VHJ1ZSkKKyAK Ky0gICAgY2RlZiB0b19zYWdlX2ludGVnZXJfbWF0cml4KHNlbGYsIGludHZlYyogbWF0KSBub2V4 Y2VwdDoKKysgICAgY2RlZiB0b19zYWdlX2ludGVnZXJfbWF0cml4KHNlbGYsIGludHZlYyogbWF0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBTaW5ndWxhciBtYXRyaXggdG8gbWF0 cml4IG92ZXIgdGhlIHBvbHlub21pYWwgcmluZy4KKyAgICAgICAgICIiIgorQEAgLTkwOCw3ICs5 MDgsNyBAQCBjZGVmIGNsYXNzIENvbnZlcnRlcihTYWdlT2JqZWN0KToKKyAgICAgICAgIGIgPSBz dHJfdG9fYnl0ZXMobikKKyAgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmQob21TdHJEdXAoYiks IFNUUklOR19DTUQpCisgCistICAgIGNkZWYgdG9fcHl0aG9uKHNlbGYsIGxlZnR2KiB0b19jb252 ZXJ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiB0b19weXRob24oc2VsZiwgbGVmdHYqIHRvX2NvbnZl cnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IHRoZSBgYGxlZnR2YGAgdG8gYSBQ eXRob24gb2JqZWN0LgorIAorQEAgLTExNjgsNyArMTE2OCw3IEBAIGNkZWYgY2xhc3MgU2luZ3Vs YXJGdW5jdGlvbihTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgY3VyclJpbmdIZGwuZGF0 YS51cmluZyA9IDxyaW5nICo+b21BbGxvYzBCaW4oc2lwX3NyaW5nX2JpbikKKyAgICAgICAgICAg ICBjdXJyUmluZ0hkbC5kYXRhLnVyaW5nLnJlZiArPSAxCisgCistICAgIGNkZWYgQmFzZUNhbGxI YW5kbGVyIGdldF9jYWxsX2hhbmRsZXIoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgQmFzZUNh bGxIYW5kbGVyIGdldF9jYWxsX2hhbmRsZXIoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBhIGNhbGwgaGFuZGxlciB3aGljaCBkb2VzIHRoZSBhY3R1YWwgd29yay4KKyAgICAg ICAgICIiIgorQEAgLTEzNTgsNyArMTM1OCw3IEBAIFRoZSBTaW5ndWxhciBkb2N1bWVudGF0aW9u IGZvciAnJXMnIGlzIGdpdmVuIGJlbG93LgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gcHJlZml4ICsgIlxuOjpcblxuIisiICAgIFNpbmd1bGFyIGRvY3VtZW50YXRpb24gbm90 IGZvdW5kIgorIAorLSAgICBjZGVmIGNvbW1vbl9yaW5nKHNlbGYsIHR1cGxlIGFyZ3MsIHJpbmc9 Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgY29tbW9uX3Jpbmcoc2VsZiwgdHVwbGUgYXJncywg cmluZz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb21tb24gcmlu ZyBmb3IgdGhlIGFyZ3VtZW50IGxpc3QgYGBhcmdzYGAuCisgCitAQCAtMTQ0Miw3ICsxNDQyLDcg QEAgVGhlIFNpbmd1bGFyIGRvY3VtZW50YXRpb24gZm9yICclcycgaXMgZ2l2ZW4gYmVsb3cuCisg ICAgICAgICByZXR1cm4gcmljaGNtcChseC5fbmFtZSwgcnguX25hbWUsIG9wKQorIAorIAorLWNk ZWYgaW5saW5lIGNhbGxfZnVuY3Rpb24oU2luZ3VsYXJGdW5jdGlvbiBzZWxmLCB0dXBsZSBhcmdz LCBvYmplY3QgUiwgYmludCBzaWduYWxfaGFuZGxlcj1UcnVlLCBhdHRyaWJ1dGVzPU5vbmUpIG5v ZXhjZXB0OgorK2NkZWYgaW5saW5lIGNhbGxfZnVuY3Rpb24oU2luZ3VsYXJGdW5jdGlvbiBzZWxm LCB0dXBsZSBhcmdzLCBvYmplY3QgUiwgYmludCBzaWduYWxfaGFuZGxlcj1UcnVlLCBhdHRyaWJ1 dGVzPU5vbmUpOgorICAgICBnbG9iYWwgY3VyclJpbmdIZGwKKyAgICAgZ2xvYmFsIGVycm9ycmVw b3J0ZWQKKyAgICAgZ2xvYmFsIGN1cnJlbnRWb2ljZQorQEAgLTE1MzAsNyArMTUzMCw3IEBAIGNk ZWYgY2xhc3MgU2luZ3VsYXJMaWJyYXJ5RnVuY3Rpb24oU2luZ3VsYXJGdW5jdGlvbik6CisgICAg ICAgICBzdXBlcigpLl9faW5pdF9fKG5hbWUpCisgICAgICAgICBzZWxmLmNhbGxfaGFuZGxlciA9 IHNlbGYuZ2V0X2NhbGxfaGFuZGxlcigpCisgCistICAgIGNkZWYgQmFzZUNhbGxIYW5kbGVyIGdl dF9jYWxsX2hhbmRsZXIoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgQmFzZUNhbGxIYW5kbGVy IGdldF9jYWxsX2hhbmRsZXIoc2VsZik6CisgICAgICAgICBjZGVmIGlkaGRsKiBzaW5ndWxhcl9p ZGhkbCA9IGdnZXRpZChzdHJfdG9fYnl0ZXMoc2VsZi5fbmFtZSkpCisgICAgICAgICBpZiBzaW5n dWxhcl9pZGhkbD09TlVMTDoKKyAgICAgICAgICAgICByYWlzZSBOYW1lRXJyb3IoIlNpbmd1bGFy IGxpYnJhcnkgZnVuY3Rpb24geyFyfSBpcyBub3QgZGVmaW5lZCIuZm9ybWF0KHNlbGYuX25hbWUp KQorQEAgLTE1NzcsNyArMTU3Nyw3IEBAIGNkZWYgY2xhc3MgU2luZ3VsYXJLZXJuZWxGdW5jdGlv bihTaW5ndWxhckZ1bmN0aW9uKToKKyAgICAgICAgIHN1cGVyKCkuX19pbml0X18obmFtZSkKKyAg ICAgICAgIHNlbGYuY2FsbF9oYW5kbGVyID0gc2VsZi5nZXRfY2FsbF9oYW5kbGVyKCkKKyAKKy0g ICAgY2RlZiBCYXNlQ2FsbEhhbmRsZXIgZ2V0X2NhbGxfaGFuZGxlcihzZWxmKSBub2V4Y2VwdDoK KysgICAgY2RlZiBCYXNlQ2FsbEhhbmRsZXIgZ2V0X2NhbGxfaGFuZGxlcihzZWxmKToKKyAgICAg ICAgIGNkZWYgaW50IGNtZF9uID0gMAorICAgICAgICAgYXJpdHkgPSBJc0NtZChzdHJfdG9fYnl0 ZXMoc2VsZi5fbmFtZSksIGNtZF9uKSAjIGNhbGwgYnkgcmV2ZXJlbmNlIGZvciBDTURfbgorICAg ICAgICAgaWYgbm90IGNtZF9uOgorQEAgLTE4NDIsNyArMTg0Miw3IEBAIGRlZiBsaXN0X29mX2Z1 bmN0aW9ucyhwYWNrYWdlcz1GYWxzZSk6CisgICAgICAgICBoID0gSURORVhUKGgpCisgICAgIHJl dHVybiBsCisgCistY2RlZiBpbmxpbmUgUmluZ1dyYXAgbmV3X1JpbmdXcmFwKHJpbmcqIHIpIG5v ZXhjZXB0OgorK2NkZWYgaW5saW5lIFJpbmdXcmFwIG5ld19SaW5nV3JhcChyaW5nKiByKToKKyAg ICAgY2RlZiBSaW5nV3JhcCByaW5nX3dyYXBfcmVzdWx0ID0gUmluZ1dyYXAuX19uZXdfXyhSaW5n V3JhcCkKKyAgICAgcmluZ193cmFwX3Jlc3VsdC5fcmluZyA9IHIKKyAgICAgcmluZ193cmFwX3Jl c3VsdC5fcmluZy5yZWYgKz0gMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIv Z3JvZWJuZXJfc3RyYXRlZ3kucHhkIGIvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9ncm9lYm5lcl9z dHJhdGVneS5weGQKK2luZGV4IDM5MWYxMWFlZTk3Li42MDVlMjY3OTIyOCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvZ3JvZWJuZXJfc3RyYXRlZ3kucHhkCisrKysgYi9zcmMv c2FnZS9saWJzL3Npbmd1bGFyL2dyb2VibmVyX3N0cmF0ZWd5LnB4ZAorQEAgLTExLDExICsxMSwx MSBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3koU2FnZU9iamVjdCk6CisgICAgIGNkZWYg TVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIF9wYXJlbnQKKyAgICAgY2RlZiBvYmplY3QgX2lk ZWFsCisgCistICAgIGNwZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIG5vcm1hbF9mb3JtKHNl bGYsIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIHApIG5vZXhjZXB0CisrICAgIGNwZGVmIE1Qb2x5 bm9taWFsX2xpYnNpbmd1bGFyIG5vcm1hbF9mb3JtKHNlbGYsIE1Qb2x5bm9taWFsX2xpYnNpbmd1 bGFyIHApCisgCisgY2RlZiBjbGFzcyBOQ0dyb2VibmVyU3RyYXRlZ3koU2FnZU9iamVjdCk6Cisg ICAgIGNkZWYgc2tTdHJhdGVneSAqX3N0cmF0CisgICAgIGNkZWYgTkNQb2x5bm9taWFsUmluZ19w bHVyYWwgX3BhcmVudAorICAgICBjZGVmIG9iamVjdCBfaWRlYWwKKyAKKy0gICAgY3BkZWYgTkNQ b2x5bm9taWFsX3BsdXJhbCBub3JtYWxfZm9ybShzZWxmLCBOQ1BvbHlub21pYWxfcGx1cmFsIHAp IG5vZXhjZXB0CisrICAgIGNwZGVmIE5DUG9seW5vbWlhbF9wbHVyYWwgbm9ybWFsX2Zvcm0oc2Vs ZiwgTkNQb2x5bm9taWFsX3BsdXJhbCBwKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvc2lu Z3VsYXIvZ3JvZWJuZXJfc3RyYXRlZ3kucHl4IGIvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9ncm9l Ym5lcl9zdHJhdGVneS5weXgKK2luZGV4IGNlZGE4OGM2MzYyLi5mNGY3ZWVjMzkwMiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvZ3JvZWJuZXJfc3RyYXRlZ3kucHl4CisrKysg Yi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL2dyb2VibmVyX3N0cmF0ZWd5LnB5eAorQEAgLTI2MCw3 ICsyNjAsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3koU2FnZU9iamVjdCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiB1bnBpY2tsZV9Hcm9lYm5lclN0cmF0ZWd5MCwgKHNl bGYuX2lkZWFsLCkKKyAKKy0gICAgY3BkZWYgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgbm9ybWFs X2Zvcm0oc2VsZiwgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgcCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIG5vcm1hbF9mb3JtKHNlbGYsIE1Qb2x5bm9taWFs X2xpYnNpbmd1bGFyIHApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBub3Jt YWwgZm9ybSBvZiBgYHBgYCB3aXRoIHJlc3BlY3QgdG8gdGhlCisgICAgICAgICBnZW5lcmF0b3Jz IG9mIHRoaXMgb2JqZWN0LgorQEAgLTUxMSw3ICs1MTEsNyBAQCBjZGVmIGNsYXNzIE5DR3JvZWJu ZXJTdHJhdGVneShTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHVu cGlja2xlX05DR3JvZWJuZXJTdHJhdGVneTAsIChzZWxmLl9pZGVhbCwpCisgCistICAgIGNwZGVm IE5DUG9seW5vbWlhbF9wbHVyYWwgbm9ybWFsX2Zvcm0oc2VsZiwgTkNQb2x5bm9taWFsX3BsdXJh bCBwKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTkNQb2x5bm9taWFsX3BsdXJhbCBub3JtYWxfZm9y bShzZWxmLCBOQ1BvbHlub21pYWxfcGx1cmFsIHApOgorICAgICAgICAgIiIiCisgICAgICAgICBD b21wdXRlIHRoZSBub3JtYWwgZm9ybSBvZiBgYHBgYCB3aXRoIHJlc3BlY3QgdG8gdGhlCisgICAg ICAgICBnZW5lcmF0b3JzIG9mIHRoaXMgb2JqZWN0LgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xp YnMvc2luZ3VsYXIvcG9seW5vbWlhbC5weGQgYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3BvbHlu b21pYWwucHhkCitpbmRleCBkZjI3MTc5ZGE1NC4uNTJiMTlmYmJhNzUgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9saWJzL3Npbmd1bGFyL3BvbHlub21pYWwucHhkCisrKysgYi9zcmMvc2FnZS9saWJz L3Npbmd1bGFyL3BvbHlub21pYWwucHhkCitAQCAtMTgsNyArMTgsOCBAQCBmcm9tIHNhZ2UubGli cy5zaW5ndWxhci5kZWNsIGNpbXBvcnQgcG9seSwgcmluZworIAorIGNkZWYgaW50IHNpbmd1bGFy X3BvbHlub21pYWxfY2hlY2socG9seSAqcCwgcmluZyAqcikgZXhjZXB0IC0xCisgY2RlZiBpbnQg c2luZ3VsYXJfcG9seW5vbWlhbF9hZGQgKHBvbHkgKipyZXQsIHBvbHkgKnAsIHBvbHkgKnEsIHJp bmcgKnIpIG5vZXhjZXB0CistY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9jYWxsIChwb2x5 ICoqcmV0LCBwb2x5ICpwLCByaW5nICpyLCBsaXN0IGFyZ3MsIHBvbHkgKigqZ2V0X2VsZW1lbnQp KG9iamVjdCkpIG5vZXhjZXB0CisrY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9jYWxsIChw b2x5ICoqcmV0LCBwb2x5ICpwLCByaW5nICpyLCBsaXN0IGFyZ3MsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwb2x5ICooKmdldF9lbGVtZW50KShvYmplY3QpIG5vZXhjZXB0 KSBub2V4Y2VwdAorIGNkZWYgaW50IHNpbmd1bGFyX3BvbHlub21pYWxfY21wIChwb2x5ICpwLCBw b2x5ICpxLCByaW5nICpyKSBub2V4Y2VwdAorIGNkZWYgaW50IHNpbmd1bGFyX3BvbHlub21pYWxf cm11bCAocG9seSAqKnJldCwgcG9seSAqcCwgUmluZ0VsZW1lbnQgcSwgcmluZyAqcikgbm9leGNl cHQKKyBjZGVmIGludCBzaW5ndWxhcl9wb2x5bm9taWFsX211bCAocG9seSAqKnJldCwgcG9seSAq cCwgcG9seSAqcSwgcmluZyAqcikgZXhjZXB0IC0xCitAQCAtMjcsOSArMjgsOSBAQCBjZGVmIGlu dCBzaW5ndWxhcl9wb2x5bm9taWFsX2Rpdl9jb2VmZiAocG9seSAqKnJldCwgcG9seSAqcCwgcG9s eSAqcSwgcmluZyAqcikgZQorIGNkZWYgaW50IHNpbmd1bGFyX3BvbHlub21pYWxfcG93IChwb2x5 ICoqcmV0LCBwb2x5ICpwLCB1bnNpZ25lZCBsb25nIGV4cCwgcmluZyAqcikgZXhjZXB0IC0xCisg Y2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9uZWcocG9seSAqKnJldCwgcG9seSAqcCwgcmlu ZyAqcikgbm9leGNlcHQKKyAKKy1jZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFsX2xhdGV4 KHBvbHkgKnAsIHJpbmcgKnIsIG9iamVjdCBiYXNlLCBvYmplY3QgbGF0ZXhfZ2Vucykgbm9leGNl cHQKKy1jZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFsX3N0cihwb2x5ICpwLCByaW5nICpy KSBub2V4Y2VwdAorLWNkZWYgb2JqZWN0IHNpbmd1bGFyX3BvbHlub21pYWxfc3RyX3dpdGhfY2hh bmdlZF92YXJuYW1lcyhwb2x5ICpwLCByaW5nICpyLCBvYmplY3QgdmFybmFtZXMpIG5vZXhjZXB0 CisrY2RlZiBvYmplY3Qgc2luZ3VsYXJfcG9seW5vbWlhbF9sYXRleChwb2x5ICpwLCByaW5nICpy LCBvYmplY3QgYmFzZSwgb2JqZWN0IGxhdGV4X2dlbnMpCisrY2RlZiBvYmplY3Qgc2luZ3VsYXJf cG9seW5vbWlhbF9zdHIocG9seSAqcCwgcmluZyAqcikKKytjZGVmIG9iamVjdCBzaW5ndWxhcl9w b2x5bm9taWFsX3N0cl93aXRoX2NoYW5nZWRfdmFybmFtZXMocG9seSAqcCwgcmluZyAqciwgb2Jq ZWN0IHZhcm5hbWVzKQorIGNkZWYgbG9uZyBzaW5ndWxhcl9wb2x5bm9taWFsX2RlZyhwb2x5ICpw LCBwb2x5ICp4LCByaW5nICpyKSBub2V4Y2VwdAorIAorIGNkZWYgaW50IHNpbmd1bGFyX3BvbHlu b21pYWxfbGVuZ3RoX2JvdW5kZWQocG9seSAqcCwgaW50IGJvdW5kKSBub2V4Y2VwdAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcG9seW5vbWlhbC5weXggYi9zcmMvc2FnZS9s aWJzL3Npbmd1bGFyL3BvbHlub21pYWwucHl4CitpbmRleCA0M2E1YjdiMWJlMC4uZTNhNTg4MTM4 M2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3BvbHlub21pYWwucHl4Cisr KysgYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3BvbHlub21pYWwucHl4CitAQCAtMTMyLDcgKzEz Miw4IEBAIGNkZWYgaW50IHNpbmd1bGFyX3BvbHlub21pYWxfcm11bChwb2x5ICoqcmV0LCBwb2x5 ICpwLCBSaW5nRWxlbWVudCBuLCByaW5nICpyKSBuCisgICAgIG5fRGVsZXRlKCZfbiwgci5jZikK KyAgICAgcmV0dXJuIDAKKyAKKy1jZGVmIGludCBzaW5ndWxhcl9wb2x5bm9taWFsX2NhbGwocG9s eSAqKnJldCwgcG9seSAqcCwgcmluZyAqciwgbGlzdCBhcmdzLCBwb2x5ICooKmdldF9lbGVtZW50 KShvYmplY3QpKSBub2V4Y2VwdDoKKytjZGVmIGludCBzaW5ndWxhcl9wb2x5bm9taWFsX2NhbGwo cG9seSAqKnJldCwgcG9seSAqcCwgcmluZyAqciwgbGlzdCBhcmdzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwb2x5ICooKmdldF9lbGVtZW50KShvYmplY3QpIG5vZXhjZXB0 KSBub2V4Y2VwdDoKKyAgICAgIiIiCisgICAgIGBgcmV0WzBdID0gcCgqYXJncylgYCB3aGVyZSBl YWNoIGVudHJ5IGluIGFyZyAgaXMgYSBwb2x5bm9taWFsIGFuZCBgYHBgYCBpbiBgYHJgYC4KKyAK K0BAIC00MjUsNyArNDI2LDcgQEAgY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9uZWcocG9s eSAqKnJldCwgcG9seSAqcCwgcmluZyAqcikgbm9leGNlcHQ6CisgICAgIHJldFswXSA9IHBfTmVn KHBfQ29weShwLHIpLHIpCisgICAgIHJldHVybiAwCisgCistY2RlZiBvYmplY3Qgc2luZ3VsYXJf cG9seW5vbWlhbF9zdHIocG9seSAqcCwgcmluZyAqcikgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qg c2luZ3VsYXJfcG9seW5vbWlhbF9zdHIocG9seSAqcCwgcmluZyAqcik6CisgICAgICIiIgorICAg ICBSZXR1cm4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBgYHBgYC4KKyAKK0BAIC00NTAs NyArNDUxLDcgQEAgY2RlZiBvYmplY3Qgc2luZ3VsYXJfcG9seW5vbWlhbF9zdHIocG9seSAqcCwg cmluZyAqcikgbm9leGNlcHQ6CisgICAgIHMgPSBwYXJlbnRodmFyX3BhdHRlcm4uc3ViKCJcXDEi LCBzKQorICAgICByZXR1cm4gcworIAorLWNkZWYgb2JqZWN0IHNpbmd1bGFyX3BvbHlub21pYWxf bGF0ZXgocG9seSAqcCwgcmluZyAqciwgb2JqZWN0IGJhc2UsIG9iamVjdCBsYXRleF9nZW5zKSBu b2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFsX2xhdGV4KHBvbHkgKnAs IHJpbmcgKnIsIG9iamVjdCBiYXNlLCBvYmplY3QgbGF0ZXhfZ2Vucyk6CisgICAgIHIiIiIKKyAg ICAgUmV0dXJuIHRoZSBMYVRlWCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYGBwYGAuCisgCitA QCAtNTMyLDcgKzUzMyw3IEBAIGNkZWYgb2JqZWN0IHNpbmd1bGFyX3BvbHlub21pYWxfbGF0ZXgo cG9seSAqcCwgcmluZyAqciwgb2JqZWN0IGJhc2UsIG9iamVjdCBsYXRlCisgICAgICAgICByZXR1 cm4gIjAiCisgICAgIHJldHVybiBwb2x5CisgCistY2RlZiBvYmplY3Qgc2luZ3VsYXJfcG9seW5v bWlhbF9zdHJfd2l0aF9jaGFuZ2VkX3Zhcm5hbWVzKHBvbHkgKnAsIHJpbmcgKnIsIG9iamVjdCB2 YXJuYW1lcykgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qgc2luZ3VsYXJfcG9seW5vbWlhbF9zdHJf d2l0aF9jaGFuZ2VkX3Zhcm5hbWVzKHBvbHkgKnAsIHJpbmcgKnIsIG9iamVjdCB2YXJuYW1lcyk6 CisgICAgIGNkZWYgY2hhciAqKl9uYW1lcworICAgICBjZGVmIGNoYXIgKipfb3JpZ19uYW1lcwor ICAgICBjZGVmIGludCBpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9yaW5n LnB4ZCBiL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcmluZy5weGQKK2luZGV4IDcwZmY3ODhmMjFj Li41NTQwMzUyMTg4NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcmluZy5w eGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcmluZy5weGQKK0BAIC01NSw0ICs1NSw0 IEBAIGNkZWYgcmluZyAqc2luZ3VsYXJfcmluZ19yZWZlcmVuY2UocmluZyAqZXhpc3Rpbmdfcmlu ZykgZXhjZXB0IE5VTEwKKyBjZGVmIHZvaWQgc2luZ3VsYXJfcmluZ19kZWxldGUocmluZyAqZG9v bWVkKSBub2V4Y2VwdAorIAorICMgVXNlZCBpbnRlcm5hbGx5IGZvciByZWZlcmVuY2UgY291bnRp bmcKKy1jZGVmIHdyYXBfcmluZyhyaW5nKiBSKSBub2V4Y2VwdAorK2NkZWYgd3JhcF9yaW5nKHJp bmcqIFIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9yaW5nLnB5eCBiL3Ny Yy9zYWdlL2xpYnMvc2luZ3VsYXIvcmluZy5weXgKK2luZGV4IGNhZDRkMjdjNDlmLi4wZWZmZjQ1 OTA0ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcmluZy5weXgKKysrKyBi L3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcmluZy5weXgKK0BAIC02MTgsNyArNjE4LDcgQEAgY2Rl ZiBjbGFzcyByaW5nX3dyYXBwZXJfUHkoKToKKyAgICAgICAgIHJldHVybiAoc2VsZi5fcmluZyA9 PSByLl9yaW5nKSA9PSAob3AgPT0gUHlfRVEpCisgCisgCistY2RlZiB3cmFwX3JpbmcocmluZyog Uikgbm9leGNlcHQ6CisrY2RlZiB3cmFwX3JpbmcocmluZyogUik6CisgICAgICIiIgorICAgICBX cmFwIGEgQyByaW5nIHBvaW50ZXIgaW50byBhIFB5dGhvbiBvYmplY3QuCisgCitAQCAtNzQ1LDcg Kzc0NSw3IEBAIGNkZWYgdm9pZCBzaW5ndWxhcl9yaW5nX2RlbGV0ZShyaW5nICpkb29tZWQpIG5v ZXhjZXB0OgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyBoZWxwZXJzIGZvciBkZWJ1Z2dpbmcK KyAKKy1jcGRlZiBwb2lzb25fY3VyclJpbmcoZnJhbWUsIGV2ZW50LCBhcmcpIG5vZXhjZXB0Ogor K2NwZGVmIHBvaXNvbl9jdXJyUmluZyhmcmFtZSwgZXZlbnQsIGFyZyk6CisgICAgICIiIgorICAg ICBQb2lzb24gdGhlIGBgY3VyclJpbmdgYCBwb2ludGVyLgorIAorQEAgLTc3OCw3ICs3NzgsNyBA QCBjcGRlZiBwb2lzb25fY3VyclJpbmcoZnJhbWUsIGV2ZW50LCBhcmcpIG5vZXhjZXB0OgorICAg ICByZXR1cm4gcG9pc29uX2N1cnJSaW5nCisgCisgCistY3BkZWYgcHJpbnRfY3VyclJpbmcoKSBu b2V4Y2VwdDoKKytjcGRlZiBwcmludF9jdXJyUmluZygpOgorICAgICAiIiIKKyAgICAgUHJpbnQg dGhlIGBgY3VyclJpbmdgYCBwb2ludGVyLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMv c2luZ3VsYXIvc2luZ3VsYXIucHhkIGIvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9zaW5ndWxhci5w eGQKK2luZGV4IGQ5NDNhMTAxOGEyLi4wNWYzMmI2ODA3OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2xpYnMvc2luZ3VsYXIvc2luZ3VsYXIucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFy L3Npbmd1bGFyLnB4ZAorQEAgLTE4LDI0ICsxOCwyNCBAQCBmcm9tIHNhZ2UucmluZ3MubnVtYmVy X2ZpZWxkLm51bWJlcl9maWVsZF9iYXNlIGNpbXBvcnQgTnVtYmVyRmllbGQKKyAjIENvbnZlcnNp b24gZnJvbSBTaW5ndWxhciB0byBTYWdlIHR5cGVzCisgIyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorIAorLWNkZWYgUmF0aW9uYWwgc2kyc2FfUVEobnVtYmVyICgqKSwg bnVtYmVyICoqLCByaW5nICgqKSkgbm9leGNlcHQKKy1jZGVmIEludGVnZXIgIHNpMnNhX1paKG51 bWJlciAoKikscmluZyAoKikpIG5vZXhjZXB0CisrY2RlZiBSYXRpb25hbCBzaTJzYV9RUShudW1i ZXIgKCopLCBudW1iZXIgKiosIHJpbmcgKCopKQorK2NkZWYgSW50ZWdlciAgc2kyc2FfWloobnVt YmVyICgqKSxyaW5nICgqKSkKKyAKKy1jZGVmIEZGZ2l2RSAgIHNpMnNhX0dGcUdpdmFybyhudW1i ZXIgKm4sIHJpbmcgKl9yaW5nLCBDYWNoZV9naXZhcm8gY2FjaGUpIG5vZXhjZXB0CistY2RlZiBG RmdmMmVFICBzaTJzYV9HRnFOVExHRjJFKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIENhY2hlX250 bF9nZjJlIGNhY2hlKSBub2V4Y2VwdAorLWNkZWYgb2JqZWN0ICAgc2kyc2FfR0ZxX2dlbmVyaWMo bnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0CistY2RlZiBvYmpl Y3QgICBzaTJzYV9aWm1vZChudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9l eGNlcHQKKytjZGVmIEZGZ2l2RSAgIHNpMnNhX0dGcUdpdmFybyhudW1iZXIgKm4sIHJpbmcgKl9y aW5nLCBDYWNoZV9naXZhcm8gY2FjaGUpCisrY2RlZiBGRmdmMmVFICBzaTJzYV9HRnFOVExHRjJF KG51bWJlciAqbiwgcmluZyAqX3JpbmcsIENhY2hlX250bF9nZjJlIGNhY2hlKQorK2NkZWYgb2Jq ZWN0ICAgc2kyc2FfR0ZxX2dlbmVyaWMobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJh c2UpCisrY2RlZiBvYmplY3QgICBzaTJzYV9aWm1vZChudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBv YmplY3QgYmFzZSkKKyAKKy1jZGVmIG9iamVjdCAgIHNpMnNhX05GKG51bWJlciAqbiwgcmluZyAq X3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdAorK2NkZWYgb2JqZWN0ICAgc2kyc2FfTkYobnVt YmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpCisgCistY2RlZiBvYmplY3Qgc2kyc2Ff aW50dmVjKGludHZlYyAqdikgbm9leGNlcHQKKytjZGVmIG9iamVjdCBzaTJzYV9pbnR2ZWMoaW50 dmVjICp2KQorIAorICMgZGlzcGF0Y2hlcyB0byBhbGwgdGhlIGFib3ZlLgorLWNkZWYgb2JqZWN0 IHNpMnNhKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdAorK2Nk ZWYgb2JqZWN0IHNpMnNhKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKQorIAor LWNkZWYgbGlzdCBzaW5ndWxhcl9tb25vbWlhbF9leHBvbmVudHMocG9seSAqcCwgcmluZyAqcikg bm9leGNlcHQKKy1jcGRlZiBsaXN0IHNpMnNhX3Jlc29sdXRpb24oUmVzb2x1dGlvbiByZXMpIG5v ZXhjZXB0CistY3BkZWYgdHVwbGUgc2kyc2FfcmVzb2x1dGlvbl9ncmFkZWQoUmVzb2x1dGlvbiBy ZXMsIHR1cGxlIGRlZ3JlZXMpIG5vZXhjZXB0CisrY2RlZiBsaXN0IHNpbmd1bGFyX21vbm9taWFs X2V4cG9uZW50cyhwb2x5ICpwLCByaW5nICpyKQorK2NwZGVmIGxpc3Qgc2kyc2FfcmVzb2x1dGlv bihSZXNvbHV0aW9uIHJlcykKKytjcGRlZiB0dXBsZSBzaTJzYV9yZXNvbHV0aW9uX2dyYWRlZChS ZXNvbHV0aW9uIHJlcywgdHVwbGUgZGVncmVlcykKKyAKKyAjID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisgIyBDb252ZXJzaW9uIGZyb20gU2FnZSB0byBTaW5ndWxhciB0 eXBlcworQEAgLTYwLDQgKzYwLDQgQEAgY2RlZiBudW1iZXIgKnNhMnNpKEVsZW1lbnQgZWxlbSwg cmluZyAqIF9yaW5nKSBub2V4Y2VwdAorIAorIGNkZWYgaW50IG92ZXJmbG93X2NoZWNrKHVuc2ln bmVkIGxvbmcgZSwgcmluZyAqX3JpbmcpIGV4Y2VwdCAtMQorIAorLWNkZWYgaW5pdF9saWJzaW5n dWxhcigpIG5vZXhjZXB0CisrY2RlZiBpbml0X2xpYnNpbmd1bGFyKCkKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9saWJzL3Npbmd1bGFyL3Npbmd1bGFyLnB5eCBiL3NyYy9zYWdlL2xpYnMvc2luZ3Vs YXIvc2luZ3VsYXIucHl4CitpbmRleCAwNTFlMWRlYTAxYy4uMzcxMjkzYjVmOTggMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3Npbmd1bGFyLnB5eAorKysrIGIvc3JjL3NhZ2Uv bGlicy9zaW5ndWxhci9zaW5ndWxhci5weXgKK0BAIC01Niw3ICs1Niw3IEBAIGN0eXBlZGVmIHN0 cnVjdCBmcmFjdGlvbiAiZnJhY3Rpb25PYmplY3QiOgorIAorIF9zYXZlZF9vcHRpb25zID0gKGlu dCgwKSwwLDApCisgCistY2RlZiBSYXRpb25hbCBzaTJzYV9RUShudW1iZXIgKm4sIG51bWJlciAq Km5uLCByaW5nICpfcmluZykgbm9leGNlcHQ6CisrY2RlZiBSYXRpb25hbCBzaTJzYV9RUShudW1i ZXIgKm4sIG51bWJlciAqKm5uLCByaW5nICpfcmluZyk6CisgICAgICIiIgorICAgICBDcmVhdGUg YSBzYWdlIHJhdGlvbmFsIG51bWJlciBmcm9tIGEgc2luZ3VsYXIgb25lLgorIAorQEAgLTEyOCw3 ICsxMjgsNyBAQCBjZGVmIFJhdGlvbmFsIHNpMnNhX1FRKG51bWJlciAqbiwgbnVtYmVyICoqbm4s IHJpbmcgKl9yaW5nKSBub2V4Y2VwdDoKKyAgICAgbXBxX2NsZWFyKF96KQorICAgICByZXR1cm4g egorIAorLWNkZWYgSW50ZWdlciBzaTJzYV9aWihudW1iZXIgKm4sIHJpbmcgKl9yaW5nKSBub2V4 Y2VwdDoKKytjZGVmIEludGVnZXIgc2kyc2FfWloobnVtYmVyICpuLCByaW5nICpfcmluZyk6Cisg ICAgICIiIgorICAgICBDcmVhdGUgYSBzYWdlIGludGVnZXIgbnVtYmVyIGZyb20gYSBzaW5ndWxh ciBvbmUuCisgCitAQCAtMTYzLDcgKzE2Myw3IEBAIGNkZWYgSW50ZWdlciBzaTJzYV9aWihudW1i ZXIgKm4sIHJpbmcgKl9yaW5nKSBub2V4Y2VwdDoKKyAgICAgei5zZXRfZnJvbV9tcHooPG1wel9w dHI+bikKKyAgICAgcmV0dXJuIHoKKyAKKy1jZGVmIEZGZ2l2RSBzaTJzYV9HRnFHaXZhcm8obnVt YmVyICpuLCByaW5nICpfcmluZywgQ2FjaGVfZ2l2YXJvIGNhY2hlKSBub2V4Y2VwdDoKKytjZGVm IEZGZ2l2RSBzaTJzYV9HRnFHaXZhcm8obnVtYmVyICpuLCByaW5nICpfcmluZywgQ2FjaGVfZ2l2 YXJvIGNhY2hlKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIHNhZ2UgZWxlbWVudCBvZiBhIHNt YWxsIGZpbml0ZSBmaWVsZCBmcm9tIGEgc2luZ3VsYXIgb25lLgorIAorQEAgLTIxOCw3ICsyMTgs NyBAQCBjZGVmIEZGZ2l2RSBzaTJzYV9HRnFHaXZhcm8obnVtYmVyICpuLCByaW5nICpfcmluZywg Q2FjaGVfZ2l2YXJvIGNhY2hlKSBub2V4Y2VwdAorICAgICAgICAgeiA9IDxwb2x5Kj5wTmV4dCg8 cG9seSo+eikKKyAgICAgcmV0dXJuICg8RkZnaXZFPmNhY2hlLl96ZXJvX2VsZW1lbnQpLl9uZXdf YyhyZXQpCisgCistY2RlZiBGRmdmMmVFIHNpMnNhX0dGcU5UTEdGMkUobnVtYmVyICpuLCByaW5n ICpfcmluZywgQ2FjaGVfbnRsX2dmMmUgY2FjaGUpIG5vZXhjZXB0OgorK2NkZWYgRkZnZjJlRSBz aTJzYV9HRnFOVExHRjJFKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIENhY2hlX250bF9nZjJlIGNh Y2hlKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIHNhZ2UgZWxlbWVudCBvZiBhIGZpbml0ZSBm aWVsZCBvZiBjaGFyYWN0ZXJpc3RpYyAyIGZyb20gYQorICAgICBzaW5ndWxhciBvbmUuCitAQCAt MjcwLDcgKzI3MCw3IEBAIGNkZWYgRkZnZjJlRSBzaTJzYV9HRnFOVExHRjJFKG51bWJlciAqbiwg cmluZyAqX3JpbmcsIENhY2hlX250bF9nZjJlIGNhY2hlKSBub2V4CisgICAgICAgICB6ID0gPHBv bHkqPnBOZXh0KDxwb2x5Kj56KQorICAgICByZXR1cm4gcmV0CisgCistY2RlZiBvYmplY3Qgc2ky c2FfR0ZxX2dlbmVyaWMobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhj ZXB0OgorK2NkZWYgb2JqZWN0IHNpMnNhX0dGcV9nZW5lcmljKG51bWJlciAqbiwgcmluZyAqX3Jp bmcsIG9iamVjdCBiYXNlKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIHNhZ2UgZWxlbWVudCBv ZiBhIGdlbmVyaWMgZmluaXRlIGZpZWxkIGZyb20gYSBzaW5ndWxhciBvbmUuCisgCitAQCAtMzMy LDcgKzMzMiw3IEBAIGNkZWYgb2JqZWN0IHNpMnNhX0dGcV9nZW5lcmljKG51bWJlciAqbiwgcmlu ZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdDoKKyAgICAgICAgIHogPSA8cG9seSo+cE5l eHQoPHBvbHkqPnopCisgICAgIHJldHVybiByZXQKKyAKKy1jZGVmIG9iamVjdCBzaTJzYV90cmFu c2V4dF9RUShudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQ6Cisr Y2RlZiBvYmplY3Qgc2kyc2FfdHJhbnNleHRfUVEobnVtYmVyICpuLCByaW5nICpfcmluZywgb2Jq ZWN0IGJhc2UpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGEgc2FnZSBlbGVtZW50IG9mIGEgdHJh bnNjZW5kZW50YWwgZXh0ZW5zaW9uIG9mIGBgUVFgYCBmcm9tIGEKKyAgICAgc2luZ3VsYXIgb25l LgorQEAgLTQyMSw3ICs0MjEsNyBAQCBjZGVmIG9iamVjdCBzaTJzYV90cmFuc2V4dF9RUShudW1i ZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQ6CisgCisgICAgIHJldHVy biBzbnVtZXIvc2Rlbm9tCisgCistY2RlZiBvYmplY3Qgc2kyc2FfdHJhbnNleHRfRkYobnVtYmVy ICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IHNp MnNhX3RyYW5zZXh0X0ZGKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKToKKyAg ICAgIiIiCisgICAgIENyZWF0ZSBhIHNhZ2UgZWxlbWVudCBvZiBhIHRyYW5zY2VuZGVudGFsIGV4 dGVuc2lvbiBvZiBhIHByaW1lIGZpZWxkIGZyb20gYQorICAgICBzaW5ndWxhciBvbmUuCitAQCAt NTA0LDcgKzUwNCw3IEBAIGNkZWYgb2JqZWN0IHNpMnNhX3RyYW5zZXh0X0ZGKG51bWJlciAqbiwg cmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdDoKKyAKKyAgICAgcmV0dXJuIHNudW1l ci9zZGVub20KKyAKKy1jZGVmIG9iamVjdCBzaTJzYV9ORihudW1iZXIgKm4sIHJpbmcgKl9yaW5n LCBvYmplY3QgYmFzZSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qgc2kyc2FfTkYobnVtYmVyICpu LCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGEgc2Fn ZSBlbGVtZW50IG9mIGEgbnVtYmVyIGZpZWxkIGZyb20gYSBzaW5ndWxhciBvbmUuCisgCitAQCAt NTcwLDcgKzU3MCw3IEBAIGNkZWYgb2JqZWN0IHNpMnNhX05GKG51bWJlciAqbiwgcmluZyAqX3Jp bmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdDoKKyAgICAgICAgIHogPSA8cG9seSo+cE5leHQoPHBv bHkqPnopCisgICAgIHJldHVybiBiYXNlKHJldCkKKyAKKy1jZGVmIGlubGluZSBvYmplY3Qgc2ky c2FfWlptb2QobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0Ogor K2NkZWYgaW5saW5lIG9iamVjdCBzaTJzYV9aWm1vZChudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBv YmplY3QgYmFzZSk6CisgICAgICIiIgorICAgICBDcmVhdGUgYSBzYWdlIGVsZW1lbnQgb2YgYSBy aW5nIG9mIGludGVnZXJzIG1vZHVsbyBuIGZyb20gYSBzaW5ndWxhciBvbmUuCisgCitAQCAtNjMy LDcgKzYzMiw3IEBAIGNkZWYgaW5saW5lIG9iamVjdCBzaTJzYV9aWm1vZChudW1iZXIgKm4sIHJp bmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQ6CisgICAgIHJldHVybiBiYXNlKF9yaW5n LmNmLmNmSW50KG4sX3JpbmcuY2YpKQorIAorIAorLWNkZWYgbGlzdCBzaW5ndWxhcl9tb25vbWlh bF9leHBvbmVudHMocG9seSAqcCwgcmluZyAqcikgbm9leGNlcHQ6CisrY2RlZiBsaXN0IHNpbmd1 bGFyX21vbm9taWFsX2V4cG9uZW50cyhwb2x5ICpwLCByaW5nICpyKToKKyAgICAgciIiIgorICAg ICBSZXR1cm4gdGhlIGxpc3Qgb2YgZXhwb25lbnRzIG9mIG1vbm9taWFsIGBgcGBgLgorICAgICAi IiIKK0BAIC02NDMsNyArNjQzLDcgQEAgY2RlZiBsaXN0IHNpbmd1bGFyX21vbm9taWFsX2V4cG9u ZW50cyhwb2x5ICpwLCByaW5nICpyKSBub2V4Y2VwdDoKKyAgICAgICAgIG1sW3YtMV0gPSBwX0dl dEV4cChwLCB2LCByKQorICAgICByZXR1cm4gbWwKKyAKKy1jcGRlZiBsaXN0IHNpMnNhX3Jlc29s dXRpb24oUmVzb2x1dGlvbiByZXMpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3Qgc2kyc2FfcmVzb2x1 dGlvbihSZXNvbHV0aW9uIHJlcyk6CisgICAgIHIiIiIKKyAgICAgUHVsbCB0aGUgZGF0YSBmcm9t IFNpbmd1bGFyIHJlc29sdXRpb24gYGByZXNgYCB0byBjb25zdHJ1Y3QgYSBTYWdlCisgICAgIHJl c29sdXRpb24uCitAQCAtNzYwLDcgKzc2MCw3IEBAIGNwZGVmIGxpc3Qgc2kyc2FfcmVzb2x1dGlv bihSZXNvbHV0aW9uIHJlcykgbm9leGNlcHQ6CisgCisgICAgIHJldHVybiByZXNfbWF0cworIAor LWNwZGVmIHR1cGxlIHNpMnNhX3Jlc29sdXRpb25fZ3JhZGVkKFJlc29sdXRpb24gcmVzLCB0dXBs ZSBkZWdyZWVzKSBub2V4Y2VwdDoKKytjcGRlZiB0dXBsZSBzaTJzYV9yZXNvbHV0aW9uX2dyYWRl ZChSZXNvbHV0aW9uIHJlcywgdHVwbGUgZGVncmVlcyk6CisgICAgICIiIgorICAgICBQdWxsIHRo ZSBkYXRhIGZyb20gU2luZ3VsYXIgcmVzb2x1dGlvbiBgYHJlc2BgIHRvIGNvbnN0cnVjdCBhIFNh Z2UKKyAgICAgcmVzb2x1dGlvbi4KK0BAIC0xNTgyLDcgKzE1ODIsNyBAQCBjZGVmIGlubGluZSBu dW1iZXIgKnNhMnNpX1pabW9kKEludGVnZXJNb2RfYWJzdHJhY3QgZCwgcmluZyAqX3JpbmcpIG5v ZXhjZXB0OgorICAgICBlbHNlOgorICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorIAorLWNkZWYg b2JqZWN0IHNpMnNhKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2Vw dDoKKytjZGVmIG9iamVjdCBzaTJzYShudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFz ZSk6CisgICAgIHIiIiIKKyAgICAgQ3JlYXRlIGEgc2FnZSBudW1iZXIgZnJvbSBhIHNpbmd1bGFy IG9uZQorIAorQEAgLTE2ODEsNyArMTY4MSw3IEBAIGNkZWYgbnVtYmVyICpzYTJzaShFbGVtZW50 IGVsZW0sIHJpbmcgKiBfcmluZykgbm9leGNlcHQ6CisgCisgICAgIHJhaXNlIFZhbHVlRXJyb3Io ImNhbm5vdCBjb252ZXJ0IHRvIFNJTkdVTEFSIG51bWJlciIpCisgCistY2RlZiBvYmplY3Qgc2ky c2FfaW50dmVjKGludHZlYyAqdikgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qgc2kyc2FfaW50dmVj KGludHZlYyAqdik6CisgICAgIHIiIiIKKyAgICAgY3JlYXRlIGEgc2FnZSB0dXBsZSBmcm9tIGEg c2luZ3VsYXIgdmVjdG9yIG9mIGludGVnZXJzCisgCitAQCAtMTc0NCw3ICsxNzQ0LDcgQEAgY2Rl ZiBpbnQgb3ZlcmZsb3dfY2hlY2sodW5zaWduZWQgbG9uZyBlLCByaW5nICpfcmluZykgZXhjZXB0 IC0xOgorICAgICBpZiB1bmxpa2VseShlID4gX3JpbmcuYml0bWFzayk6CisgICAgICAgICByYWlz ZSBPdmVyZmxvd0Vycm9yKCJleHBvbmVudCBvdmVyZmxvdyAoJWQpIiUoZSkpCisgCistY2RlZiBp bml0X2xpYnNpbmd1bGFyKCkgbm9leGNlcHQ6CisrY2RlZiBpbml0X2xpYnNpbmd1bGFyKCk6Cisg ICAgICIiIgorICAgICBUaGlzIGluaXRpYWxpemVzIHRoZSBTSU5HVUxBUiBsaWJyYXJ5LiBUaGlz IGlzIGEgaGFjayB0byBzb21lCisgICAgIGV4dGVudC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9s aWJzL3N5bW1ldHJpY2Evc2IucHhpIGIvc3JjL3NhZ2UvbGlicy9zeW1tZXRyaWNhL3NiLnB4aQor aW5kZXggMzFmYWY3ZTNkOTYuLmI4ODRkMzNkYWZkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGli cy9zeW1tZXRyaWNhL3NiLnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9zeW1tZXRyaWNhL3NiLnB4 aQorQEAgLTEyLDcgKzEyLDcgQEAgY2RlZiBleHRlcm4gZnJvbSAnc3ltbWV0cmljYS9kZWYuaCc6 CisgICAgIElOVCBtdWx0X3NjaHViZXJ0X3BvbHlub20oT1AgYSxPUCBiLE9QIGMpCisgCisgCist Y2RlZiBvYmplY3QgX2NoZWNrX3NjaHViZXJ0KG9iamVjdCBhLCBPUCBjYSkgbm9leGNlcHQ6Cisr Y2RlZiBvYmplY3QgX2NoZWNrX3NjaHViZXJ0KG9iamVjdCBhLCBPUCBjYSk6CisgICAgIGlmIGEg aW4gUGVybXV0YXRpb25zKCk6CisgICAgICAgICBpZiBpc2luc3RhbmNlKGEsIGJ1aWx0aW5saXN0 KToKKyAgICAgICAgICAgICBhID0gUGVybXV0YXRpb24oYSkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9saWJzL3N5bW1ldHJpY2Evc3ltbWV0cmljYS5weGkgYi9zcmMvc2FnZS9saWJzL3N5bW1ldHJp Y2Evc3ltbWV0cmljYS5weGkKK2luZGV4IDYwYzNlYzIzMDcwLi4yYmRiNTFmMWE4ZSAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2xpYnMvc3ltbWV0cmljYS9zeW1tZXRyaWNhLnB4aQorKysrIGIvc3Jj L3NhZ2UvbGlicy9zeW1tZXRyaWNhL3N5bW1ldHJpY2EucHhpCitAQCAtNDY3LDcgKzQ2Nyw3IEBA IGNkZWYgdm9pZCBsYXRlX2ltcG9ydCgpIG5vZXhjZXB0OgorICAgICBzYWdlX21heGludCA9IElu dGVnZXIobWF4aW50KQorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworLWNkZWYgb2JqZWN0IF9weShPUCBhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHko T1AgYSk6CisgICAgIGNkZWYgT0JKRUNUS0lORCBvYmprCisgICAgIG9iamsgPSBzX29fayhhKQor ICAgICBpZiBvYmprID09IElOVEVHRVI6CitAQCAtNTY5LDcgKzU2OSw3IEBAIGNkZWYgaW50IF9v cF9pbnQob2JqZWN0IHgsIE9QIGEpIGV4Y2VwdCAtMToKKyAgICAgTV9JX0koeCwgYSkKKyAgICAg cmV0dXJuIDAKKyAKKy1jZGVmIG9iamVjdCBfcHlfaW50KE9QIGEpIG5vZXhjZXB0OgorK2NkZWYg b2JqZWN0IF9weV9pbnQoT1AgYSk6CisgICAgIGxhdGVfaW1wb3J0KCkKKyAgICAgcmV0dXJuIElu dGVnZXIoU19JX0koYSkpCisgCitAQCAtNTk3LDcgKzU5Nyw3IEBAIGNkZWYgaW50IF9vcF9sb25n aW50KG9iamVjdCB4LCBPUCBhKSBleGNlcHQgLTE6CisgICAgIGZyZWVhbGwob3BfbWF4aW50X2xv bmcpCisgICAgIHJldHVybiAwCisgCistY2RlZiBvYmplY3QgX3B5X2xvbmdpbnQoT1AgYSkgbm9l eGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X2xvbmdpbnQoT1AgYSk6CisgICAgIGxhdGVfaW1wb3J0 KCkKKyAgICAgY2RlZiBsb25naW50ICp4ID0gU19PX1MoYSkub2JfbG9uZ2ludAorICAgICBjZGVm IGxvYyAqbCA9IHguZmxvYworQEAgLTYyMCw3ICs2MjAsNyBAQCBjZGVmIG9iamVjdCBfcHlfbG9u Z2ludChPUCBhKSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMjIworICNGcmFjdGlvbnMjCisgIyMjIyMj IyMjIyMKKy1jZGVmIG9iamVjdCBfcHlfZnJhY3Rpb24oT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBv YmplY3QgX3B5X2ZyYWN0aW9uKE9QIGEpOgorICAgICByZXR1cm4gX3B5KFNfQl9PKGEpKS9fcHko U19CX1UoYSkpCisgCisgY2RlZiBpbnQgX29wX2ZyYWN0aW9uKG9iamVjdCBmLCBPUCBhKSBleGNl cHQgLTE6CitAQCAtNjMyLDcgKzYzMiw3IEBAIGNkZWYgaW50IF9vcF9mcmFjdGlvbihvYmplY3Qg ZiwgT1AgYSkgZXhjZXB0IC0xOgorICMjIyMjIyMjIworICNWZWN0b3JzIworICMjIyMjIyMjIwor LWNkZWYgb2JqZWN0IF9weV92ZWN0b3IoT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5 X3ZlY3RvcihPUCBhKToKKyAgICAgY2RlZiBJTlQgaQorICAgICByZXMgPSBbXQorICAgICBmb3Ig aSBmcm9tIDAgPD0gaSA8IHNfdl9saShhKToKK0BAIC02NTAsNyArNjUwLDcgQEAgY2RlZiB2b2lk KiBfb3BfaWxfdmVjdG9yKG9iamVjdCBsLCBPUCBhKSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMKKyAj TnVtYmVycyMKKyAjIyMjIyMjIyMKKy1jZGVmIG9iamVjdCBfcHlfc3FfcmFkaWNhbChPUCBhKSBu b2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfc3FfcmFkaWNhbChPUCBhKToKKyAgICAgbGF0ZV9p bXBvcnQoKQorIAorICAgICBjZGVmIE9QIHB0cgorQEAgLTY4OSw3ICs2ODksNyBAQCBjZGVmIHZv aWQqIF9vcF9wYXJ0aXRpb24ob2JqZWN0IHAsIE9QIGEpIG5vZXhjZXB0OgorICAgICAgICAgX29w X2ludGVnZXIocFtpXSwgU19QQV9JKGEsaikpCisgICAgICAgICBqID0gaiArIDEKKyAKKy1jZGVm IG9iamVjdCBfcHlfcGFydGl0aW9uKE9QIGEpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IF9weV9w YXJ0aXRpb24oT1AgYSk6CisgICAgIGNkZWYgSU5UIG4sIGkKKyAgICAgbGF0ZV9pbXBvcnQoKQor ICAgICByZXMgPSBbXQorQEAgLTcwOSw3ICs3MDksNyBAQCBjZGVmIHZvaWQqIF9vcF9za2V3X3Bh cnRpdGlvbihvYmplY3QgcCwgT1AgYSkgbm9leGNlcHQ6CisgICAgIF9vcF9wYXJ0aXRpb24ocFsx XSwga2xlaW4pCisgICAgIGJfZ2tfc3BhKGdyb3NzLCBrbGVpbiwgYSkKKyAKKy1jZGVmIG9iamVj dCBfcHlfc2tld19wYXJ0aXRpb24oT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X3Nr ZXdfcGFydGl0aW9uKE9QIGEpOgorICAgICBsYXRlX2ltcG9ydCgpCisgICAgIHJldHVybiBTa2V3 UGFydGl0aW9uKCBbIF9weV9wYXJ0aXRpb24oc19zcGFfZyhhKSksIF9weV9wYXJ0aXRpb24oc19z cGFfayhhKSkgXSApCisgCitAQCAtNzI3LDcgKzcyNyw3IEBAIGNkZWYgdm9pZCogX29wX3Blcm11 dGF0aW9uKG9iamVjdCBwLCBPUCBhKSBub2V4Y2VwdDoKKyAgICAgZm9yIGkgZnJvbSAwIDw9IGkg PCBuOgorICAgICAgICAgX29wX2ludGVnZXIocFtpXSwgc19wX2koYSxpKSkKKyAKKy1jZGVmIG9i amVjdCBfcHlfcGVybXV0YXRpb24oT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X3Bl cm11dGF0aW9uKE9QIGEpOgorICAgICBsYXRlX2ltcG9ydCgpCisgICAgIGNkZWYgSU5UIG4sIGkK KyAgICAgcmVzID0gW10KK0BAIC03NDMsNyArNzQzLDcgQEAgY2RlZiBvYmplY3QgX3B5X3Blcm11 dGF0aW9uKE9QIGEpIG5vZXhjZXB0OgorICMjIyMjIyMKKyAjTGlzdHMjCisgIyMjIyMjIworLWNk ZWYgb2JqZWN0IF9weV9saXN0KE9QIGEpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IF9weV9saXN0 KE9QIGEpOgorICAgICBjZGVmIE9QIHgKKyAgICAgeCA9IGEKKyAgICAgcmVzID0gW10KK0BAIC03 NjEsNyArNzYxLDcgQEAgY2RlZiBvYmplY3QgX3B5X2xpc3QoT1AgYSkgbm9leGNlcHQ6CisgIyMj IyMjIyMjIyMjIworICNQb2x5bm9taWFscyMKKyAjIyMjIyMjIyMjIyMjCistY2RlZiBvYmplY3Qg X3B5X3BvbHlub20oT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X3BvbHlub20oT1Ag YSk6CisgICAgIGxhdGVfaW1wb3J0KCkKKyAgICAgY2RlZiBpbnQgbWF4bmVlZGVkID0gMCwgaSA9 IDAKKyAgICAgY2RlZiBPUCBwb2ludGVyID0gYQorQEAgLTc5Miw3ICs3OTIsNyBAQCBjZGVmIG9i amVjdCBfcHlfcG9seW5vbShPUCBhKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIFAoZCkKKyAKKyAK Ky1jZGVmIG9iamVjdCBfcHlfcG9seW5vbV9hbHBoYWJldChPUCBhLCBvYmplY3QgYWxwaGFiZXQs IG9iamVjdCBsZW5ndGgpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IF9weV9wb2x5bm9tX2FscGhh YmV0KE9QIGEsIG9iamVjdCBhbHBoYWJldCwgb2JqZWN0IGxlbmd0aCk6CisgICAgICIiIgorICAg ICBDb252ZXJ0cyBhIHN5bW1ldHJpY2EgbXVsdGl2YXJpYXRlIHBvbHlub21pYWwgYSB0byBhIFNh Z2UgbXVsdGl2YXJpYXRlCisgICAgIHBvbHlub21pYWxzLiAgQWxwaGFiZXQgc3BlY2lmaWVzIHRo ZSBuYW1lcyBvZiB0aGUgdmFyaWFibGVzIHdoaWNoIGFyZQorQEAgLTgyOCw3ICs4MjgsNyBAQCBj ZGVmIG9iamVjdCBfcHlfcG9seW5vbV9hbHBoYWJldChPUCBhLCBvYmplY3QgYWxwaGFiZXQsIG9i amVjdCBsZW5ndGgpIG5vZXhjZXB0OgorICAgICAgICAgcG9pbnRlciA9IHNfcG9fbihwb2ludGVy KQorICAgICByZXR1cm4gcmVzCisgCistY2RlZiBvYmplY3QgX29wX3BvbHlub20ob2JqZWN0IGQs IE9QIHJlcykgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX29wX3BvbHlub20ob2JqZWN0IGQsIE9Q IHJlcyk6CisgICAgIGxhdGVfaW1wb3J0KCkKKyAKKyAgICAgcG9seV9yaW5nID0gZC5wYXJlbnQo KQorQEAgLTg2NSw3ICs4NjUsNyBAQCBjZGVmIG9iamVjdCBfb3BfcG9seW5vbShvYmplY3QgZCwg T1AgcmVzKSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyAjU2NodXIgc3ltbWV0cmljIGZ1bmN0aW9ucyBhbmQgZnJpZW5kcyMKKyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy1jZGVmIG9iamVjdCBfcHlfc2NodXIoT1Ag YSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X3NjaHVyKE9QIGEpOgorICAgICBsYXRlX2lt cG9ydCgpCisgICAgIHpfZWx0ID0gX3B5X3NjaHVyX2dlbmVyYWwoYSkKKyAgICAgaWYgbGVuKHpf ZWx0KSA9PSAwOgorQEAgLTg4Miw3ICs4ODIsNyBAQCBjZGVmIG9iamVjdCBfcHlfc2NodXIoT1Ag YSkgbm9leGNlcHQ6CisgY2RlZiB2b2lkKiBfb3Bfc2NodXIob2JqZWN0IGQsIE9QIHJlcykgbm9l eGNlcHQ6CisgICAgIF9vcF9zY2h1cl9nZW5lcmFsKGQsIHJlcykKKyAKKy1jZGVmIG9iamVjdCBf cHlfbW9ub21pYWwoT1AgYSkgbm9leGNlcHQ6ICNNb25vbWlhbCBzeW1tZXRyaWMgZnVuY3Rpb25z CisrY2RlZiBvYmplY3QgX3B5X21vbm9taWFsKE9QIGEpOiAjTW9ub21pYWwgc3ltbWV0cmljIGZ1 bmN0aW9ucworICAgICBsYXRlX2ltcG9ydCgpCisgICAgIHpfZWx0ID0gX3B5X3NjaHVyX2dlbmVy YWwoYSkKKyAgICAgaWYgbGVuKHpfZWx0KSA9PSAwOgorQEAgLTkwMiw3ICs5MDIsNyBAQCBjZGVm IHZvaWQqIF9vcF9tb25vbWlhbChvYmplY3QgZCwgT1AgcmVzKSBub2V4Y2VwdDogI01vbm9taWFs IHN5bW1ldHJpYyBmdW5jdGlvbgorICAgICAgICAgY19vX2socG9pbnRlciwgTU9OT01JQUwpCisg ICAgICAgICBwb2ludGVyID0gc19zX24ocG9pbnRlcikKKyAKKy1jZGVmIG9iamVjdCBfcHlfcG93 c3ltKE9QIGEpIG5vZXhjZXB0OiAgI1Bvd2VyLXN1bSBzeW1tZXRyaWMgZnVuY3Rpb25zCisrY2Rl ZiBvYmplY3QgX3B5X3Bvd3N5bShPUCBhKTogICNQb3dlci1zdW0gc3ltbWV0cmljIGZ1bmN0aW9u cworICAgICBsYXRlX2ltcG9ydCgpCisgICAgIHpfZWx0ID0gX3B5X3NjaHVyX2dlbmVyYWwoYSkK KyAgICAgaWYgbGVuKHpfZWx0KSA9PSAwOgorQEAgLTkyMyw3ICs5MjMsNyBAQCBjZGVmIHZvaWQq IF9vcF9wb3dzeW0ob2JqZWN0IGQsIE9QIHJlcykgbm9leGNlcHQ6ICNQb3dlci1zdW0gc3ltbWV0 cmljIGZ1bmN0aW9ucworICAgICAgICAgcG9pbnRlciA9IHNfc19uKHBvaW50ZXIpCisgCisgCist Y2RlZiBvYmplY3QgX3B5X2VsbXN5bShPUCBhKSBub2V4Y2VwdDogI0VsZW1lbnRhcnkgc3ltbWV0 cmljIGZ1bmN0aW9ucworK2NkZWYgb2JqZWN0IF9weV9lbG1zeW0oT1AgYSk6ICNFbGVtZW50YXJ5 IHN5bW1ldHJpYyBmdW5jdGlvbnMKKyAgICAgbGF0ZV9pbXBvcnQoKQorICAgICB6X2VsdCA9IF9w eV9zY2h1cl9nZW5lcmFsKGEpCisgICAgIGlmIGxlbih6X2VsdCkgPT0gMDoKK0BAIC05NDQsNyAr OTQ0LDcgQEAgY2RlZiB2b2lkKiBfb3BfZWxtc3ltKG9iamVjdCBkLCBPUCByZXMpIG5vZXhjZXB0 OiAjRWxlbWVudGFyeSBzeW1tZXRyaWMgZnVuY3Rpb24KKyAgICAgICAgIHBvaW50ZXIgPSBzX3Nf bihwb2ludGVyKQorIAorIAorLWNkZWYgb2JqZWN0IF9weV9ob21zeW0oT1AgYSkgbm9leGNlcHQ6 ICNIb21vZ2Vub3VzIHN5bW1ldHJpYyBmdW5jdGlvbnMKKytjZGVmIG9iamVjdCBfcHlfaG9tc3lt KE9QIGEpOiAjSG9tb2dlbm91cyBzeW1tZXRyaWMgZnVuY3Rpb25zCisgICAgIGxhdGVfaW1wb3J0 KCkKKyAgICAgel9lbHQgPSBfcHlfc2NodXJfZ2VuZXJhbChhKQorICAgICBpZiBsZW4oel9lbHQp ID09IDA6CitAQCAtOTY1LDcgKzk2NSw3IEBAIGNkZWYgdm9pZCogX29wX2hvbXN5bShvYmplY3Qg ZCwgT1AgcmVzKSBub2V4Y2VwdDogI0hvbW9nZW5vdXMgc3ltbWV0cmljIGZ1bmN0aW9uCisgICAg ICAgICBwb2ludGVyID0gc19zX24ocG9pbnRlcikKKyAKKyAKKy1jZGVmIG9iamVjdCBfcHlfc2No dXJfZ2VuZXJhbChPUCBhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfc2NodXJfZ2VuZXJh bChPUCBhKToKKyAgICAgY2RlZiBPUCBwb2ludGVyID0gYQorICAgICBkID0ge30KKyAgICAgaWYg YSA9PSBOVUxMOgorQEAgLTEwNjksNyArMTA2OSw3IEBAIGNkZWYgdm9pZCogX29wX3NjaHViZXJ0 X2RpY3Qob2JqZWN0IGQsIE9QIHJlcykgbm9leGNlcHQ6CisgCisgICAgICAgICBpbnNlcnQobmV4 dCwgcmVzLCBOVUxMLCBOVUxMKQorIAorLWNkZWYgb2JqZWN0IF9weV9zY2h1YmVydChPUCBhKSBu b2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfc2NodWJlcnQoT1AgYSk6CisgICAgIGxhdGVfaW1w b3J0KCkKKyAgICAgY2RlZiBPUCBwb2ludGVyID0gYQorICAgICBjZGVmIGRpY3Qgel9lbHQgPSB7 fQorQEAgLTEwOTYsNyArMTA5Niw3IEBAIGNkZWYgb2JqZWN0IF9weV9zY2h1YmVydChPUCBhKSBu b2V4Y2VwdDoKKyAjIyMjIyMjIyMjCisgI01hdHJpY2VzIworICMjIyMjIyMjIyMKKy1jZGVmIG9i amVjdCBfcHlfbWF0cml4KE9QIGEpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IF9weV9tYXRyaXgo T1AgYSk6CisgCisgICAgIGxhdGVfaW1wb3J0KCkKKyAKK0BAIC0xMTM2LDcgKzExMzYsNyBAQCBj ZGVmIHZvaWQqIF9vcF9tYXRyaXgob2JqZWN0IGEsIE9QIHJlcykgbm9leGNlcHQ6CisgIyMjIyMj IyMjIworICNUYWJsZWF1eCMKKyAjIyMjIyMjIyMjCistY2RlZiBvYmplY3QgX3B5X3RhYmxlYXUo T1AgdCkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X3RhYmxlYXUoT1AgdCk6CisgCisgICAg IGxhdGVfaW1wb3J0KCkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvYWN0aW9uLnB5 eCBiL3NyYy9zYWdlL21hdHJpeC9hY3Rpb24ucHl4CitpbmRleCA0YmIxZjRiYmUyYS4uZTE2YmZl Yzg1NmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvYWN0aW9uLnB5eAorKysrIGIvc3Jj L3NhZ2UvbWF0cml4L2FjdGlvbi5weXgKK0BAIC0yMDIsNyArMjAyLDcgQEAgY2RlZiBjbGFzcyBN YXRyaXhNYXRyaXhBY3Rpb24oTWF0cml4TXVsQWN0aW9uKToKKyAgICAgICAgIHJldHVybiBNYXRy aXhTcGFjZShiYXNlLCBzZWxmLkcubnJvd3MoKSwgc2VsZi51bmRlcmx5aW5nX3NldCgpLm5jb2xz KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhcnNlID0gc2VsZi5HLmlzX3NwYXJz ZSgpIGFuZCBzZWxmLnVuZGVybHlpbmdfc2V0KCkuaXNfc3BhcnNlKCkpCisgCistICAgIGNwZGVm IF9hY3RfKHNlbGYsIGcsIHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCBz KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6CisgCitAQCAtMzEyLDcgKzMxMiw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4VmVjdG9yQWN0aW9uKE1hdHJpeE11bEFjdGlvbik6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnVuZGVybHlpbmdfc2V0KCkuZGVncmVlKCkpKQorICAgICAgICAgcmV0dXJuIEZy ZWVNb2R1bGUoYmFzZSwgc2VsZi5HLm5yb3dzKCksIHNwYXJzZSA9IHNlbGYuRy5pc19zcGFyc2Uo KSkKKyAKKy0gICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgcykgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9hY3RfKHNlbGYsIGcsIHMpOgorICAgICAgICAgY2RlZiBNYXRyaXggQSA9IDxNYXRyaXg+Zwor ICAgICAgICAgY2RlZiBWZWN0b3IgdiA9IDxWZWN0b3I+cworICAgICAgICAgaWYgQS5fcGFyZW50 Ll9iYXNlIGlzIG5vdCBzZWxmLl9jb2RvbWFpbi5fYmFzZToKK0BAIC0zNjMsNyArMzYzLDcgQEAg Y2RlZiBjbGFzcyBWZWN0b3JNYXRyaXhBY3Rpb24oTWF0cml4TXVsQWN0aW9uKToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYudW5kZXJseWluZ19zZXQoKS5kZWdyZWUoKSkpCisgICAgICAgICByZXR1cm4gRnJlZU1v ZHVsZShiYXNlLCBzZWxmLkcubmNvbHMoKSwgc3BhcnNlID0gc2VsZi5HLmlzX3NwYXJzZSgpKQor IAorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Fj dF8oc2VsZiwgZywgcyk6CisgICAgICAgICBjZGVmIE1hdHJpeCBBID0gPE1hdHJpeD5nCisgICAg ICAgICBjZGVmIFZlY3RvciB2ID0gPFZlY3Rvcj5zCisgICAgICAgICBpZiBBLl9wYXJlbnQuX2Jh c2UgaXMgbm90IHNlbGYuX2NvZG9tYWluLl9iYXNlOgorQEAgLTQyMiw3ICs0MjIsNyBAQCBjZGVm IGNsYXNzIE1hdHJpeFBvbHltYXBBY3Rpb24oTWF0cml4TXVsQWN0aW9uKToKKyAgICAgICAgICAg ICByZXR1cm4gRW5kKHNlbGYudW5kZXJseWluZ19zZXQoKS5kb21haW4oKS5jaGFuZ2VfcmluZyhi YXNlKSkKKyAgICAgICAgIHJldHVybiBIb20oc2VsZi51bmRlcmx5aW5nX3NldCgpLmRvbWFpbigp LmNoYW5nZV9yaW5nKGJhc2UpLCBzZWxmLnVuZGVybHlpbmdfc2V0KCkuY29kb21haW4oKS5jaGFu Z2VfcmluZyhiYXNlKSkKKyAKKy0gICAgY3BkZWYgX2FjdF8oc2VsZiwgbWF0LCBmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgbWF0LCBmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ2FsbCB0aGUgYWN0aW9uCisgCitAQCAtNDk1LDcgKzQ5NSw3IEBAIGNkZWYgY2xhc3MgUG9s eW1hcE1hdHJpeEFjdGlvbihNYXRyaXhNdWxBY3Rpb24pOgorICAgICAgICAgICAgIHJldHVybiBF bmQoc2VsZi51bmRlcmx5aW5nX3NldCgpLmRvbWFpbigpLmNoYW5nZV9yaW5nKGJhc2UpKQorICAg ICAgICAgcmV0dXJuIEhvbShzZWxmLnVuZGVybHlpbmdfc2V0KCkuZG9tYWluKCkuY2hhbmdlX3Jp bmcoYmFzZSksIHNlbGYudW5kZXJseWluZ19zZXQoKS5jb2RvbWFpbigpLmNoYW5nZV9yaW5nKGJh c2UpKQorIAorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBtYXQsIGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWN0XyhzZWxmLCBtYXQsIGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDYWxsIHRo ZSBhY3Rpb24uCisgCitAQCAtNTYzLDcgKzU2Myw3IEBAIGNkZWYgY2xhc3MgTWF0cml4U2NoZW1l UG9pbnRBY3Rpb24oTWF0cml4TXVsQWN0aW9uKToKKyAgICAgICAgIGFtYiA9IHNlbGYudW5kZXJs eWluZ19zZXQoKS5jb2RvbWFpbigpCisgICAgICAgICByZXR1cm4gYW1iLmNoYW5nZV9yaW5nKGJh c2UpKGJhc2UpCisgCistICAgIGNwZGVmIF9hY3RfKHNlbGYsIG1hdCwgUCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hY3RfKHNlbGYsIG1hdCwgUCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFj dGlvbiBvZiBtYXRyaWNlcyBvbiBzY2hlbWUgcG9pbnRzLgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21hdHJpeC9hcmdzLnB4ZCBiL3NyYy9zYWdlL21hdHJpeC9hcmdzLnB4ZAoraW5kZXggZmMy NmJjMzU5MTQuLjlhYjAwNGUxODg3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L2FyZ3Mu cHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvYXJncy5weGQKK0BAIC0zMyw3ICszMyw3IEBAIGNk ZWYgY2xhc3MgU3BhcnNlRW50cnk6CisgICAgIGNkZWYgcHVibGljIG9iamVjdCBlbnRyeQorIAor IAorLWNkZWYgaW5saW5lIFNwYXJzZUVudHJ5IG1ha2VfU3BhcnNlRW50cnkobG9uZyBpLCBsb25n IGosIGVudHJ5KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBTcGFyc2VFbnRyeSBtYWtlX1NwYXJz ZUVudHJ5KGxvbmcgaSwgbG9uZyBqLCBlbnRyeSk6CisgICAgIGUgPSA8U3BhcnNlRW50cnk+U3Bh cnNlRW50cnkuX19uZXdfXyhTcGFyc2VFbnRyeSkKKyAgICAgZS5pID0gaQorICAgICBlLmogPSBq CitAQCAtNTMsOSArNTMsOSBAQCBjZGVmIGNsYXNzIE1hdHJpeEFyZ3M6CisgICAgIGNkZWYgcHVi bGljIGRpY3Qga3dkcyAgICAgIyAqKmt3ZHMgZm9yIE1hdHJpeFNwYWNlKCkKKyAgICAgY2RlZiBi aW50IGlzX2ZpbmFsaXplZAorIAorLSAgICBjcGRlZiBNYXRyaXggbWF0cml4KHNlbGYsIGJpbnQg Y29udmVydD0/KSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb252 ZXJ0PT8pIG5vZXhjZXB0CistICAgIGNwZGVmIGRpY3QgZGljdChzZWxmLCBiaW50IGNvbnZlcnQ9 Pykgbm9leGNlcHQKKysgICAgY3BkZWYgTWF0cml4IG1hdHJpeChzZWxmLCBiaW50IGNvbnZlcnQ9 PykKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29udmVydD0/KQorKyAgICBjcGRl ZiBkaWN0IGRpY3Qoc2VsZiwgYmludCBjb252ZXJ0PT8pCisgCisgICAgIGNkZWYgaW5saW5lIGJp bnQgcmVmX3NhZmUoc2VsZikgbm9leGNlcHQ6CisgICAgICAgICAiIiIKK0BAIC0xMTksNCArMTE5 LDQgQEAgY2RlZiBjbGFzcyBNYXRyaXhBcmdzOgorICAgICBjZGVmIGludCBzZXRfc2VxX2ZsYXQo c2VsZiwgZW50cmllcykgZXhjZXB0IC0xCisgCisgCistY3BkZWYgTWF0cml4QXJncyBNYXRyaXhB cmdzX2luaXQoc3BhY2UsIGVudHJpZXMpIG5vZXhjZXB0CisrY3BkZWYgTWF0cml4QXJncyBNYXRy aXhBcmdzX2luaXQoc3BhY2UsIGVudHJpZXMpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4 L2FyZ3MucHl4IGIvc3JjL3NhZ2UvbWF0cml4L2FyZ3MucHl4CitpbmRleCA2YjI0NzU5NTA1OS4u YTlhODdlOTE4ZWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvYXJncy5weXgKKysrKyBi L3NyYy9zYWdlL21hdHJpeC9hcmdzLnB5eAorQEAgLTYwNiw3ICs2MDYsNyBAQCBjZGVmIGNsYXNz IE1hdHJpeEFyZ3M6CisgICAgICAgICBzZWxmLmZpbmFsaXplKCkKKyAgICAgICAgIHJldHVybiBz ZWxmLm5yb3dzICogc2VsZi5uY29scworIAorLSAgICBjcGRlZiBNYXRyaXggbWF0cml4KHNlbGYs IGJpbnQgY29udmVydD1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTWF0cml4IG1hdHJpeChz ZWxmLCBiaW50IGNvbnZlcnQ9VHJ1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgZW50cmllcyBvZiB0aGUgbWF0cml4IGFzIGEgU2FnZSBNYXRyaXguCisgCitAQCAtNjk0LDcg KzY5NCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4QXJnczoKKyAgICAgICAgIHNlbGYudHlwID0gTUFf RU5UUklFU19NQVRSSVgKKyAgICAgICAgIHJldHVybiBNCisgCistICAgIGNwZGVmIGxpc3QgbGlz dChzZWxmLCBiaW50IGNvbnZlcnQ9VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgbGlz dChzZWxmLCBiaW50IGNvbnZlcnQ9VHJ1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgZW50cmllcyBvZiB0aGUgbWF0cml4IGFzIGEgZmxhdCBsaXN0IG9mIHNjYWxhcnMuCisg CitAQCAtNzYxLDcgKzc2MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4QXJnczoKKyAgICAgICAgIHNl bGYudHlwID0gTUFfRU5UUklFU19TRVFfRkxBVAorICAgICAgICAgcmV0dXJuIEwKKyAKKy0gICAg Y3BkZWYgZGljdCBkaWN0KHNlbGYsIGJpbnQgY29udmVydD1UcnVlKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgZGljdCBkaWN0KHNlbGYsIGJpbnQgY29udmVydD1UcnVlKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBlbnRyaWVzIG9mIHRoZSBtYXRyaXggYXMgYSBkaWN0LiBUaGUg a2V5cyBvZiB0aGlzCisgICAgICAgICBkaWN0IGFyZSB0aGUgbm9uLXplcm8gcG9zaXRpb25zIGBg KGksailgYC4gVGhlIGNvcnJlc3BvbmRpbmcKK0BAIC0xMzYxLDcgKzEzNjEsNyBAQCBjZGVmIGNs YXNzIE1hdHJpeEFyZ3M6CisgICAgICAgICAgICAgcmV0dXJuIE1BX0VOVFJJRVNfU0VRX1NFUQor IAorIAorLWNwZGVmIE1hdHJpeEFyZ3MgTWF0cml4QXJnc19pbml0KHNwYWNlLCBlbnRyaWVzKSBu b2V4Y2VwdDoKKytjcGRlZiBNYXRyaXhBcmdzIE1hdHJpeEFyZ3NfaW5pdChzcGFjZSwgZW50cmll cyk6CisgICAgICIiIgorICAgICBDb25zdHJ1Y3QgYSA6Y2xhc3M6YE1hdHJpeEFyZ3NgIG9iamVj dCBmcm9tIGEgbWF0cml4IHNwYWNlIGFuZAorICAgICBlbnRyaWVzLiBUaGlzIGlzIHRoZSB0eXBp Y2FsIHVzZSBpbiBhIG1hdHJpeCBjb25zdHJ1Y3Rvci4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t YXRyaXgvbWF0cml4MC5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4MC5weGQKK2luZGV4IGQy Mjc2ZWY0ODZkLi5jMThjN2NkYzRhMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRy aXgwLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDAucHhkCitAQCAtMjEsOCArMjEs OCBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6Cisg ICAgIGNkZWYgcHVibGljIG9iamVjdCBfYmFzZV9yaW5nCisgICAgIGNkZWYgYmludCBfaXNfaW1t dXRhYmxlCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBj cGRlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwg b3RoZXIpCisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKQorIAorICAgICBjZGVmIGJpbnQg X3dpbGxfdXNlX3N0cmFzc2VuKHNlbGYsIE1hdHJpeCByaWdodCkgZXhjZXB0IC0yCisgICAgIGNk ZWYgYmludCBfd2lsbF91c2Vfc3RyYXNzZW5fZWNoZWxvbihzZWxmKSBleGNlcHQgLTIKK0BAIC0z NywzMSArMzcsMzEgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5N YXRyaXgpOgorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgX2NhY2hlCisgICAgIGNkZWYgbG9uZyBo YXNoICAjIGNhY2hlZCBoYXNoIHZhbHVlCisgICAgIGNkZWYgdm9pZCBjbGVhcl9jYWNoZShzZWxm KSBub2V4Y2VwdAorLSAgICBjZGVmIGZldGNoKHNlbGYsIGtleSkgbm9leGNlcHQKKy0gICAgY2Rl ZiBjYWNoZShzZWxmLCBrZXksIHgpIG5vZXhjZXB0CisrICAgIGNkZWYgZmV0Y2goc2VsZiwga2V5 KQorKyAgICBjZGVmIGNhY2hlKHNlbGYsIGtleSwgeCkKKyAKKyAgICAgIyBNdXRhYmlsaXR5IGFu ZCBib3VuZHMgY2hlY2tpbmcKKy0gICAgY2RlZiBjaGVja19ib3VuZHMoc2VsZiwgUHlfc3NpemVf dCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0CistICAgIGNkZWYgY2hlY2tfbXV0YWJpbGl0eShz ZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIGNoZWNrX2JvdW5kc19hbmRfbXV0YWJpbGl0eShzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQKKysgICAgY2RlZiBjaGVja19i b3VuZHMoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopCisrICAgIGNkZWYgY2hlY2tf bXV0YWJpbGl0eShzZWxmKQorKyAgICBjZGVmIGNoZWNrX2JvdW5kc19hbmRfbXV0YWJpbGl0eShz ZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaikKKyAKKyAgICAgIyBVbnNhZmUgZW50cnkg YWNjZXNzCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXpl X3Qgaiwgb2JqZWN0IHgpIG5vZXhjZXB0CistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9z c2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQKKy0gICAgY2RlZiBfY29lcmNlX2VsZW1l bnQoc2VsZiwgeCkgbm9leGNlcHQKKysgICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqLCBvYmplY3QgeCkKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYs IFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKQorKyAgICBjZGVmIF9jb2VyY2VfZWxlbWVudChz ZWxmLCB4KQorICAgICBjZGVmIGJpbnQgZ2V0X2lzX3plcm9fdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqKSBleGNlcHQgLTEKKyAKKyAgICAgIyBSb3cgYW5kIGNvbHVtbiBv cGVyYXRpb25zCistICAgIGNkZWYgY2hlY2tfcm93X2JvdW5kcyhzZWxmLCBQeV9zc2l6ZV90IHIx LCBQeV9zc2l6ZV90IHIyKSBub2V4Y2VwdAorLSAgICBjZGVmIGNoZWNrX2NvbHVtbl9ib3VuZHMo c2VsZiwgUHlfc3NpemVfdCBjMSwgUHlfc3NpemVfdCBjMikgbm9leGNlcHQKKy0gICAgY2RlZiBj aGVja19yb3dfYm91bmRzX2FuZF9tdXRhYmlsaXR5KHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3Nz aXplX3QgcjIpIG5vZXhjZXB0CistICAgIGNkZWYgY2hlY2tfY29sdW1uX2JvdW5kc19hbmRfbXV0 YWJpbGl0eShzZWxmLCBQeV9zc2l6ZV90IGMxLCBQeV9zc2l6ZV90IGMyKSBub2V4Y2VwdAorLSAg ICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3NzaXplX3QgcjIpIG5v ZXhjZXB0CistICAgIGNkZWYgc3dhcF9jb2x1bW5zX2Moc2VsZiwgUHlfc3NpemVfdCBjMSwgUHlf c3NpemVfdCBjMikgbm9leGNlcHQKKy0gICAgY2RlZiBhZGRfbXVsdGlwbGVfb2Zfcm93X2Moc2Vs ZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosICAgIHMsIFB5X3NzaXplX3QgY29sX3N0YXJ0 KSBub2V4Y2VwdAorLSAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9jb2x1bW5fYyhzZWxmLCBQeV9z c2l6ZV90IGksIFB5X3NzaXplX3QgaiwgcywgUHlfc3NpemVfdCByb3dfc3RhcnQpIG5vZXhjZXB0 CistICAgIGNkZWYgcmVzY2FsZV9yb3dfYyhzZWxmLCBQeV9zc2l6ZV90IGksIHMsIFB5X3NzaXpl X3Qgc3RhcnRfY29sKSBub2V4Y2VwdAorLSAgICBjZGVmIHJlc2NhbGVfY29sX2Moc2VsZiwgUHlf c3NpemVfdCBpLCBzLCBQeV9zc2l6ZV90IHN0YXJ0X3Jvdykgbm9leGNlcHQKKysgICAgY2RlZiBj aGVja19yb3dfYm91bmRzKHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3NzaXplX3QgcjIpCisrICAg IGNkZWYgY2hlY2tfY29sdW1uX2JvdW5kcyhzZWxmLCBQeV9zc2l6ZV90IGMxLCBQeV9zc2l6ZV90 IGMyKQorKyAgICBjZGVmIGNoZWNrX3Jvd19ib3VuZHNfYW5kX211dGFiaWxpdHkoc2VsZiwgUHlf c3NpemVfdCByMSwgUHlfc3NpemVfdCByMikKKysgICAgY2RlZiBjaGVja19jb2x1bW5fYm91bmRz X2FuZF9tdXRhYmlsaXR5KHNlbGYsIFB5X3NzaXplX3QgYzEsIFB5X3NzaXplX3QgYzIpCisrICAg IGNkZWYgc3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCByMikKKysg ICAgY2RlZiBzd2FwX2NvbHVtbnNfYyhzZWxmLCBQeV9zc2l6ZV90IGMxLCBQeV9zc2l6ZV90IGMy KQorKyAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9yb3dfYyhzZWxmLCBQeV9zc2l6ZV90IGksIFB5 X3NzaXplX3QgaiwgICAgcywgUHlfc3NpemVfdCBjb2xfc3RhcnQpCisrICAgIGNkZWYgYWRkX211 bHRpcGxlX29mX2NvbHVtbl9jKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBzLCBQ eV9zc2l6ZV90IHJvd19zdGFydCkKKysgICAgY2RlZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5X3Nz aXplX3QgaSwgcywgUHlfc3NpemVfdCBzdGFydF9jb2wpCisrICAgIGNkZWYgcmVzY2FsZV9jb2xf YyhzZWxmLCBQeV9zc2l6ZV90IGksIHMsIFB5X3NzaXplX3Qgc3RhcnRfcm93KQorIAorICAgICAj IEhlbHBlciBmdW5jdGlvbiBmb3IgaW52ZXJzZSBvZiBzcGFyc2UgbWF0cmljZXMKKy0gICAgY2Rl ZiBidWlsZF9pbnZlcnNlX2Zyb21fYXVnbWVudGVkX3NwYXJzZShzZWxmLCBBKSBub2V4Y2VwdAor KyAgICBjZGVmIGJ1aWxkX2ludmVyc2VfZnJvbV9hdWdtZW50ZWRfc3BhcnNlKHNlbGYsIEEpCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDAucHl4IGIvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeDAucHl4CitpbmRleCA5ZWIzZjlmNDIxMy4uYjZlMjM4YjNkYmEgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4MC5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRy aXgwLnB5eAorQEAgLTM0MSw3ICszNDEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVj dHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICBzZWxmLl9jYWNoZSA9IE5vbmUKKyAgICAg ICAgIHNlbGYuaGFzaCA9IC0xCisgCistICAgIGNkZWYgZmV0Y2goc2VsZiwga2V5KSBub2V4Y2Vw dDoKKysgICAgY2RlZiBmZXRjaChzZWxmLCBrZXkpOgorICAgICAgICAgIiIiCisgICAgICAgICBU cnkgdG8gZ2V0IGFuIGVsZW1lbnQgZnJvbSB0aGUgY2FjaGU7IGlmIHRoZXJlIGlzbid0IGFueXRo aW5nCisgICAgICAgICB0aGVyZSwgcmV0dXJuIE5vbmUuCitAQCAtMzUzLDcgKzM1Myw3IEBAIGNk ZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAg IGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjZGVm IGNhY2hlKHNlbGYsIGtleSwgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgY2FjaGUoc2VsZiwga2V5 LCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVjb3JkIHggaW4gdGhlIGNhY2hlIHdpdGgg Z2l2ZW4ga2V5LgorICAgICAgICAgIiIiCitAQCAtMzgwLDcgKzM4MCw3IEBAIGNkZWYgY2xhc3Mg TWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgIyBNdXRhYmlsaXR5 IGFuZCBib3VuZHMgY2hlY2tpbmcKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy0gICAgY2RlZiBjaGVja19ib3VuZHMo c2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0OgorKyAgICBjZGVmIGNo ZWNrX2JvdW5kcyhzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbiB5b3UncmUgYWJvdXQg dG8gYWNjZXNzIHRoZSBpLGogZW50cnkKKyAgICAgICAgIG9mIHRoaXMgbWF0cml4LiBJZiBpLCBq IGFyZSBvdXQgb2YgcmFuZ2UsIGFuIDpjbGFzczpgSW5kZXhFcnJvcmAgaXMKK0BAIC0zODksNyAr Mzg5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgp OgorICAgICAgICAgaWYgaSA8IDAgb3IgaSA+PSBzZWxmLl9ucm93cyBvciBqIDwgMCBvciBqID49 IHNlbGYuX25jb2xzOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoIm1hdHJpeCBpbmRl eCBvdXQgb2YgcmFuZ2UiKQorIAorLSAgICBjZGVmIGNoZWNrX211dGFiaWxpdHkoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNkZWYgY2hlY2tfbXV0YWJpbGl0eShzZWxmKToKKyAgICAgICAgICIiIgor ICAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuIHlvdSdyZSBhYm91dCB0byBj aGFuZ2UgdGhpcyBtYXRyaXguCisgCitAQCAtNDAzLDcgKzQwMyw3IEBAIGNkZWYgY2xhc3MgTWF0 cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgc2VsZi5fY2FjaGUgPSBOb25lCisgCistICAgIGNkZWYgY2hlY2tfYm91bmRzX2Fu ZF9tdXRhYmlsaXR5KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoK KysgICAgY2RlZiBjaGVja19ib3VuZHNfYW5kX211dGFiaWxpdHkoc2VsZiwgUHlfc3NpemVfdCBp LCBQeV9zc2l6ZV90IGopOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGdl dHMgY2FsbGVkIHdoZW4geW91J3JlIGFib3V0IHRvIHNldCB0aGUgaSxqIGVudHJ5IG9mCisgICAg ICAgICB0aGlzIG1hdHJpeC4gSWYgaSBvciBqIGlzIG91dCBvZiByYW5nZSwgYW4gOmNsYXNzOmBJ bmRleEVycm9yYAorQEAgLTUxNiw3ICs1MTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0 cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICMgRW50cnkgYWNjZXNzCisgICAgICMgICAg VGhlIGZpcnN0IHR3byBtdXN0IGJlIG92ZXJsb2FkZWQgaW4gdGhlIGRlcml2ZWQgY2xhc3MKKyAg ICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKy0gICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVf dCBqLCBvYmplY3QgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9z c2l6ZV90IGksIFB5X3NzaXplX3Qgaiwgb2JqZWN0IHgpOgorICAgICAgICAgIiIiCisgICAgICAg ICBTZXQgZW50cnkgcXVpY2tseSB3aXRob3V0IGRvaW5nIGFueSBib3VuZHMgY2hlY2tpbmcuIENh bGxpbmcgdGhpcworICAgICAgICAgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyBpcyBhbGxvd2VkIHRv IHByb2R1Y2UgYSBzZWdtZW50YXRpb24gZmF1bHQuCitAQCAtNTI2LDcgKzUyNiw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigidGhpcyBtdXN0IGJlIGRlZmlu ZWQgaW4gdGhlIGRlcml2ZWQgY2xhc3MgKHR5cGU9JXMpIiAlIHR5cGUoc2VsZikpCisgCistICAg IGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNl cHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qg aik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVudHJ5IGFjY2VzcywgYnV0IGZhc3Qgc2luY2Ug aXQgbWlnaHQgYmUgd2l0aG91dCBib3VuZHMgY2hlY2tpbmcuCisgCitAQCAtMTU2Miw3ICsxNTYy LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgor IAorIAorIAorLSAgICBjZGVmIF9jb2VyY2VfZWxlbWVudChzZWxmLCB4KSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfY29lcmNlX2VsZW1lbnQoc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBjb2VyY2lvbiBvZiB4IGludG8gdGhlIGJhc2UgcmluZyBvZiBzZWxmLgorICAgICAg ICAgIiIiCitAQCAtMjQzMSwxMSArMjQzMSwxMSBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0 cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICMgaW52b2x2ZSBtdWx0aXBsaWNhdGlvbiBv dXRzaWRlIGJhc2UgcmluZywgaW5jbHVkaW5nCisgICAgICMgd2l0aF8gdmVyc2lvbnMgb2YgdGhl c2UgbWV0aG9kcyBmb3IgdGhpcyBzaXR1YXRpb24KKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistICAgIGNkZWYgY2hlY2tfcm93X2JvdW5k cyhzZWxmLCBQeV9zc2l6ZV90IHIxLCBQeV9zc2l6ZV90IHIyKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBjaGVja19yb3dfYm91bmRzKHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3NzaXplX3QgcjIpOgor ICAgICAgICAgaWYgcjEgPCAwIG9yIHIxID49IHNlbGYuX25yb3dzIG9yIHIyIDwgMCBvciByMiA+ PSBzZWxmLl9ucm93czoKKyAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJtYXRyaXggcm93 IGluZGV4IG91dCBvZiByYW5nZSIpCisgCistICAgIGNkZWYgY2hlY2tfcm93X2JvdW5kc19hbmRf bXV0YWJpbGl0eShzZWxmLCBQeV9zc2l6ZV90IHIxLCBQeV9zc2l6ZV90IHIyKSBub2V4Y2VwdDoK KysgICAgY2RlZiBjaGVja19yb3dfYm91bmRzX2FuZF9tdXRhYmlsaXR5KHNlbGYsIFB5X3NzaXpl X3QgcjEsIFB5X3NzaXplX3QgcjIpOgorICAgICAgICAgaWYgc2VsZi5faXNfaW1tdXRhYmxlOgor ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk1hdHJpeCBpcyBpbW11dGFibGU7IHBsZWFz ZSBjaGFuZ2UgYSBjb3B5IGluc3RlYWQgKGkuZS4sIHVzZSBjb3B5KE0pIHRvIGNoYW5nZSBhIGNv cHkgb2YgTSkuIikKKyAgICAgICAgIGVsc2U6CitAQCAtMjQ0MywxMSArMjQ0MywxMSBAQCBjZGVm IGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICBp ZiByMSA8IDAgb3IgcjEgPj0gc2VsZi5fbnJvd3Mgb3IgcjIgPCAwIG9yIHIyID49IHNlbGYuX25y b3dzOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoIm1hdHJpeCByb3cgaW5kZXggb3V0 IG9mIHJhbmdlIikKKyAKKy0gICAgY2RlZiBjaGVja19jb2x1bW5fYm91bmRzKHNlbGYsIFB5X3Nz aXplX3QgYzEsIFB5X3NzaXplX3QgYzIpIG5vZXhjZXB0OgorKyAgICBjZGVmIGNoZWNrX2NvbHVt bl9ib3VuZHMoc2VsZiwgUHlfc3NpemVfdCBjMSwgUHlfc3NpemVfdCBjMik6CisgICAgICAgICBp ZiBjMSA8IDAgb3IgYzEgPj0gc2VsZi5fbmNvbHMgb3IgYzIgPCAwIG9yIGMyID49IHNlbGYuX25j b2xzOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoIm1hdHJpeCBjb2x1bW4gaW5kZXgg b3V0IG9mIHJhbmdlIikKKyAKKy0gICAgY2RlZiBjaGVja19jb2x1bW5fYm91bmRzX2FuZF9tdXRh YmlsaXR5KHNlbGYsIFB5X3NzaXplX3QgYzEsIFB5X3NzaXplX3QgYzIpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGNoZWNrX2NvbHVtbl9ib3VuZHNfYW5kX211dGFiaWxpdHkoc2VsZiwgUHlfc3NpemVf dCBjMSwgUHlfc3NpemVfdCBjMik6CisgICAgICAgICBpZiBzZWxmLl9pc19pbW11dGFibGU6Cisg ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWF0cml4IGlzIGltbXV0YWJsZTsgcGxlYXNl IGNoYW5nZSBhIGNvcHkgaW5zdGVhZCAoaS5lLiwgdXNlIGNvcHkoTSkgdG8gY2hhbmdlIGEgY29w eSBvZiBNKS4iKQorICAgICAgICAgZWxzZToKK0BAIC0yNjMzLDcgKzI2MzMsNyBAQCBjZGVmIGNs YXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAgICAg ICAgICAgICB0ZW1wLnN3YXBfY29sdW1uc19jKGN5Y2xlWzBdLCBlbHQpCisgICAgICAgICByZXR1 cm4gdGVtcAorIAorLSAgICBjZGVmIHN3YXBfY29sdW1uc19jKHNlbGYsIFB5X3NzaXplX3QgYzEs IFB5X3NzaXplX3QgYzIpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN3YXBfY29sdW1uc19jKHNlbGYs IFB5X3NzaXplX3QgYzEsIFB5X3NzaXplX3QgYzIpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90 IHIKKyAgICAgICAgIGZvciByIGZyb20gMCA8PSByIDwgc2VsZi5fbnJvd3M6CisgICAgICAgICAg ICAgYSA9IHNlbGYuZ2V0X3Vuc2FmZShyLCBjMikKK0BAIC0yODE1LDcgKzI4MTUsNyBAQCBjZGVm IGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAg ICAgICAgICAgICB0ZW1wLnN3YXBfcm93c19jKGN5Y2xlWzBdLCBlbHQpCisgICAgICAgICByZXR1 cm4gdGVtcAorIAorLSAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5 X3NzaXplX3QgcjIpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3Nz aXplX3QgcjEsIFB5X3NzaXplX3QgcjIpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGMKKyAg ICAgICAgIGZvciBjIGZyb20gMCA8PSBjIDwgc2VsZi5fbmNvbHM6CisgICAgICAgICAgICAgYSA9 IHNlbGYuZ2V0X3Vuc2FmZShyMiwgYykKK0BAIC0yOTUwLDcgKzI5NTAsNyBAQCBjZGVmIGNsYXNz IE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICBleGNlcHQg VHlwZUVycm9yOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignTXVsdGlwbHlpbmcgcm93 IGJ5ICVzIGVsZW1lbnQgY2Fubm90IGJlIGRvbmUgb3ZlciAlcywgdXNlIGNoYW5nZV9yaW5nIG9y IHdpdGhfYWRkZWRfbXVsdGlwbGVfb2Zfcm93IGluc3RlYWQuJyAlIChzLnBhcmVudCgpLCBzZWxm LmJhc2VfcmluZygpKSkKKyAKKy0gICAgY2RlZiBhZGRfbXVsdGlwbGVfb2Zfcm93X2Moc2VsZiwg UHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHMsIFB5X3NzaXplX3Qgc3RhcnRfY29sKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBhZGRfbXVsdGlwbGVfb2Zfcm93X2Moc2VsZiwgUHlfc3NpemVfdCBp LCBQeV9zc2l6ZV90IGosIHMsIFB5X3NzaXplX3Qgc3RhcnRfY29sKToKKyAgICAgICAgIGNkZWYg UHlfc3NpemVfdCBjCisgICAgICAgICBmb3IgYyBmcm9tIHN0YXJ0X2NvbCA8PSBjIDwgc2VsZi5f bmNvbHM6CisgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGksIGMsIHNlbGYuZ2V0X3Vuc2Fm ZShpLCBjKSArIHMqc2VsZi5nZXRfdW5zYWZlKGosIGMpKQorQEAgLTMwMzUsNyArMzAzNSw3IEBA IGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAg ICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdNdWx0 aXBseWluZyBjb2x1bW4gYnkgJXMgZWxlbWVudCBjYW5ub3QgYmUgZG9uZSBvdmVyICVzLCB1c2Ug Y2hhbmdlX3Jpbmcgb3Igd2l0aF9hZGRlZF9tdWx0aXBsZV9vZl9jb2x1bW4gaW5zdGVhZC4nICUg KHMucGFyZW50KCksIHNlbGYuYmFzZV9yaW5nKCkpKQorIAorLSAgICBjZGVmIGFkZF9tdWx0aXBs ZV9vZl9jb2x1bW5fYyhzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgcywgUHlfc3Np emVfdCBzdGFydF9yb3cpIG5vZXhjZXB0OgorKyAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9jb2x1 bW5fYyhzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgcywgUHlfc3NpemVfdCBzdGFy dF9yb3cpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IHIKKyAgICAgICAgIGZvciByIGZyb20g c3RhcnRfcm93IDw9IHIgPCBzZWxmLl9ucm93czoKKyAgICAgICAgICAgICBzZWxmLnNldF91bnNh ZmUociwgaSwgc2VsZi5nZXRfdW5zYWZlKHIsIGkpICsgcypzZWxmLmdldF91bnNhZmUociwgaikp CitAQCAtMzE1MCw3ICszMTUwLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAg ICByYWlzZSBUeXBlRXJyb3IoJ1Jlc2NhbGluZyByb3cgYnkgJXMgZWxlbWVudCBjYW5ub3QgYmUg ZG9uZSBvdmVyICVzLCB1c2UgY2hhbmdlX3Jpbmcgb3Igd2l0aF9yZXNjYWxlZF9yb3cgaW5zdGVh ZC4nICUgKHMucGFyZW50KCksIHNlbGYuYmFzZV9yaW5nKCkpKQorIAorLSAgICBjZGVmIHJlc2Nh bGVfcm93X2Moc2VsZiwgUHlfc3NpemVfdCBpLCBzLCBQeV9zc2l6ZV90IHN0YXJ0X2NvbCkgbm9l eGNlcHQ6CisrICAgIGNkZWYgcmVzY2FsZV9yb3dfYyhzZWxmLCBQeV9zc2l6ZV90IGksIHMsIFB5 X3NzaXplX3Qgc3RhcnRfY29sKToKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBqCisgICAgICAg ICBmb3IgaiBmcm9tIHN0YXJ0X2NvbCA8PSBqIDwgc2VsZi5fbmNvbHM6CisgICAgICAgICAgICAg c2VsZi5zZXRfdW5zYWZlKGksIGosIHNlbGYuZ2V0X3Vuc2FmZShpLCBqKSpzKQorQEAgLTMyNjUs NyArMzI2NSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0 cml4KToKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgcmFpc2UgVHlw ZUVycm9yKCdSZXNjYWxpbmcgY29sdW1uIGJ5ICVzIGVsZW1lbnQgY2Fubm90IGJlIGRvbmUgb3Zl ciAlcywgdXNlIGNoYW5nZV9yaW5nIG9yIHdpdGhfcmVzY2FsZWRfY29sIGluc3RlYWQuJyAlIChz LnBhcmVudCgpLCBzZWxmLmJhc2VfcmluZygpKSkKKyAKKy0gICAgY2RlZiByZXNjYWxlX2NvbF9j KHNlbGYsIFB5X3NzaXplX3QgaSwgcywgUHlfc3NpemVfdCBzdGFydF9yb3cpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHJlc2NhbGVfY29sX2Moc2VsZiwgUHlfc3NpemVfdCBpLCBzLCBQeV9zc2l6ZV90 IHN0YXJ0X3Jvdyk6CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgagorICAgICAgICAgZm9yIGog ZnJvbSBzdGFydF9yb3cgPD0gaiA8IHNlbGYuX25yb3dzOgorICAgICAgICAgICAgIHNlbGYuc2V0 X3Vuc2FmZShqLCBpLCBzZWxmLmdldF91bnNhZmUoaiwgaSkqcykKK0BAIC01MDM4LDcgKzUwMzgs NyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6Cisg ICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor ICAgICAjIEFyaXRobWV0aWMKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCistICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNlbGYs IFZlY3RvciB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8oc2Vs ZiwgVmVjdG9yIHYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2ZWN0b3Ig dGltZXMgbWF0cml4IHByb2R1Y3QuCisgCitAQCAtNTA5NSw3ICs1MDk1LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgcmV0dXJu IHN1bShbdltpXSAqIHNlbGYucm93KGksIGZyb21fbGlzdD1UcnVlKQorICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbnJvd3MpXSwgTSgwKSkKKyAKKy0gICAgY2RlZiBf bWF0cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZiwgVmVjdG9yIHYpIG5vZXhjZXB0OgorKyAgICBjZGVm IF9tYXRyaXhfdGltZXNfdmVjdG9yXyhzZWxmLCBWZWN0b3Igdik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC01MjA2LDcgKzUyMDYsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAgICAgTVMgPSBz ZWxmLm1hdHJpeF9zcGFjZShuLCBtKQorICAgICAgICAgICAgIHJldHVybiBNUyhYKS50cmFuc3Bv c2UoKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWRkXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgdHdv IG1hdHJpY2VzIHdpdGggdGhlIHNhbWUgcGFyZW50LgorIAorQEAgLTUyMzAsNyArNTIzMCw3IEBA IGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAg ICAgICAgICAgICAgQS5zZXRfdW5zYWZlKGksIGosIHNlbGYuZ2V0X3Vuc2FmZShpLGopLl9hZGRf KHJpZ2h0LmdldF91bnNhZmUoaSxqKSkpCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjcGRl ZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBf cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCB0d28gbWF0cmljZXMgd2l0 aCB0aGUgc2FtZSBwYXJlbnQuCisgCitAQCAtNTI5Niw3ICs1Mjk2LDcgQEAgY2RlZiBjbGFzcyBN YXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5jaGFuZ2VfcmluZyhzZWxmLl9iYXNlX3JpbmcucXVvdGllbnRfcmlu ZyhwKSkKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNTMzNCw3ICs1MzM0LDcgQEAgY2RlZiBjbGFzcyBN YXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBh bnMuc2V0X3Vuc2FmZShyLCBjLCB4ICogc2VsZi5nZXRfdW5zYWZlKHIsIGMpKQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgRVhBTVBMRVM6CisgCitAQCAtNTM3OCw3ICs1Mzc4LDcgQEAgY2RlZiBj bGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgICAg ICAgICBhbnMuc2V0X3Vuc2FmZShyLCBjLCBzZWxmLmdldF91bnNhZmUociwgYykgKiB4KQorICAg ICAgICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0 cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1h dHJpeCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5N YXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu TWF0cml4IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVj dCBvZiB0d28gbWF0cmljZXMuCisgCitAQCAtNTc3MSw3ICs1NzcxLDcgQEAgY2RlZiBjbGFzcyBN YXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgICAgICAgICAg ICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoImlucHV0IG1hdHJpeCBtdXN0IGJlIG5vbnNpbmd1 bGFyIikKKyAgICAgICAgICAgICByZXR1cm4gQS5tYXRyaXhfZnJvbV9jb2x1bW5zKGxpc3QocmFu Z2Uoc2VsZi5fbmNvbHMsIDIgKiBzZWxmLl9uY29scykpKQorIAorLSAgICBjZGVmIGJ1aWxkX2lu dmVyc2VfZnJvbV9hdWdtZW50ZWRfc3BhcnNlKHNlbGYsIEEpIG5vZXhjZXB0OgorKyAgICBjZGVm IGJ1aWxkX2ludmVyc2VfZnJvbV9hdWdtZW50ZWRfc3BhcnNlKHNlbGYsIEEpOgorICAgICAgICAg IyBXZSBjYW4gZGlyZWN0bHkgdXNlIHRoZSBkaWN0IGVudHJpZXMgb2YgQQorICAgICAgICAgY2Rl ZiBQeV9zc2l6ZV90IGksIG5yb3dzCisgICAgICAgICBjZGVmIGRpY3QgZGF0YSA9IDxkaWN0PiBB Ll9kaWN0KCkKK0BAIC02MDc0LDcgKzYwNzQsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0 cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAjIENbMF0gPSAoMSAtIG0gKiAobSAt IDEpLzIpICogQ1syXSAtIChtIC0gMSkgKiBDWzFdCisgICAgICAgICBDWzBdID0gKDEgLSBtbSkg KiBDWzJdIC0gKG0gLSAxKSAqIENbMV0KKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJp Z2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQs IGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgdHdvIG1hdHJpY2VzLgor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgxLnB4ZCBiL3NyYy9zYWdlL21h dHJpeC9tYXRyaXgxLnB4ZAoraW5kZXggZTM1ODVmOWNhYWIuLmQyNDQ2OGI4MGUxIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDEucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4MS5weGQKK0BAIC0xLDcgKzEsNyBAQAorIGZyb20gc2FnZS5tYXRyaXgubWF0cml4MCBj aW1wb3J0IE1hdHJpeCBhcyBNYXRyaXgwCisgCisgY2RlZiBjbGFzcyBNYXRyaXgoTWF0cml4MCk6 CistICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKSBub2V4Y2VwdAorKyAgICBjZGVm IF9zdGFja19pbXBsKHNlbGYsIGJvdHRvbSkKKyAKKy0gICAgY3BkZWYgcm93X2FtYmllbnRfbW9k dWxlKHNlbGYsIGJhc2VfcmluZz0qLCBzcGFyc2U9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgY29s dW1uX2FtYmllbnRfbW9kdWxlKHNlbGYsIGJhc2VfcmluZz0qLCBzcGFyc2U9Kikgbm9leGNlcHQK KysgICAgY3BkZWYgcm93X2FtYmllbnRfbW9kdWxlKHNlbGYsIGJhc2VfcmluZz0qLCBzcGFyc2U9 KikKKysgICAgY3BkZWYgY29sdW1uX2FtYmllbnRfbW9kdWxlKHNlbGYsIGJhc2VfcmluZz0qLCBz cGFyc2U9KikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4MS5weXggYi9zcmMv c2FnZS9tYXRyaXgvbWF0cml4MS5weXgKK2luZGV4IGVmOGFhMzVjZTAzLi4xZDI4YTIzZWM5MCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgxLnB5eAorKysrIGIvc3JjL3NhZ2Uv bWF0cml4L21hdHJpeDEucHl4CitAQCAtODU0LDcgKzg1NCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 KE1hdHJpeDApOgorICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAg ICAgIyByb3dzLCBjb2x1bW5zLCBzcGFyc2Vfcm93cywgc3BhcnNlX2NvbHVtbnMsIGRlbnNlX3Jv d3MsIGRlbnNlX2NvbHVtbnMsIHJvdywgY29sdW1uCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworLSAgICBjcGRlZiByb3dfYW1iaWVudF9tb2R1bGUoc2VsZiwgYmFz ZV9yaW5nPU5vbmUsIHNwYXJzZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcm93X2FtYmll bnRfbW9kdWxlKHNlbGYsIGJhc2VfcmluZz1Ob25lLCBzcGFyc2U9Tm9uZSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGZyZWUgbW9kdWxlIHRoYXQgY29udGFpbnMgdGhlIHJv d3Mgb2YgdGhlIG1hdHJpeC4KKyAKK0BAIC05MTEsNyArOTExLDcgQEAgY2RlZiBjbGFzcyBNYXRy aXgoTWF0cml4MCk6CisgICAgICAgICBkZXByZWNhdGlvbigzMjk4NCwgJ3RoZSBtZXRob2QgX3Jv d19hbWJpZW50X21vZHVsZSBpcyBkZXByZWNhdGVkIHVzZSByb3dfYW1iaWVudF9tb2R1bGUgKHdp dGhvdXQgdW5kZXJzY29yZSkgaW5zdGVhZCcpCisgICAgICAgICByZXR1cm4gc2VsZi5yb3dfYW1i aWVudF9tb2R1bGUoYmFzZV9yaW5nKQorIAorLSAgICBjcGRlZiBjb2x1bW5fYW1iaWVudF9tb2R1 bGUoc2VsZiwgYmFzZV9yaW5nPU5vbmUsIHNwYXJzZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgY29sdW1uX2FtYmllbnRfbW9kdWxlKHNlbGYsIGJhc2VfcmluZz1Ob25lLCBzcGFyc2U9Tm9u ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGZyZWUgbW9kdWxlIHRoYXQg Y29udGFpbnMgdGhlIGNvbHVtbnMgb2YgdGhlIG1hdHJpeC4KKyAKK0BAIC0xNzQ3LDcgKzE3NDcs NyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgwKToKKyAgICAgICAgICAgICBaLl9zdWJkaXZp ZGVfb25fc3RhY2soc2VsZiwgb3RoZXIpCisgICAgICAgICByZXR1cm4gWgorIAorLSAgICBjZGVm IF9zdGFja19pbXBsKHNlbGYsIGJvdHRvbSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3N0YWNrX2lt cGwoc2VsZiwgYm90dG9tKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW1wbGVtZW50YXRpb24g b2YgOm1ldGg6YHN0YWNrYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4 Mi5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4Mi5weGQKK2luZGV4IDFmZDg1YzVmMDgyLi5h MmUwMjk3MjI4YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgyLnB4ZAorKysr IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDIucHhkCitAQCAtMTUsMTAgKzE1LDEwIEBAIEdlbmVy aWMgbWF0cmljZXMKKyBmcm9tIHNhZ2UubWF0cml4Lm1hdHJpeDEgY2ltcG9ydCBNYXRyaXggYXMg TWF0cml4MQorIAorIGNkZWYgY2xhc3MgTWF0cml4KE1hdHJpeDEpOgorLSAgICBjZGVmIF9kZXRf YnlfbWlub3JzKHNlbGYsIFB5X3NzaXplX3QgbGV2ZWwpIG5vZXhjZXB0CistICAgIGNkZWYgX3Bm X2JmbChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIF9kZXRfYnlfbWlub3JzKHNlbGYsIFB5X3Nz aXplX3QgbGV2ZWwpCisrICAgIGNkZWYgX3BmX2JmbChzZWxmKQorICAgICBjZGVmIGJpbnQgX2lz X3Bvc2l0aXZlX2RlZmluaXRlX29yX3NlbWlkZWZpbml0ZShzZWxmLCBiaW50IHNlbWkpIGV4Y2Vw dCAtMQorLSAgICBjZGVmIHR1cGxlIF9ibG9ja19sZGx0KHNlbGYsIGJpbnQgY2xhc3NpY2FsKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfZWNoZWxvbihzZWxmLCBzdHIgYWxnb3JpdGhtKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfZWNoZWxvbl9pbl9wbGFjZShzZWxmLCBzdHIgYWxnb3JpdGhtKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBtYXRyaXhfd2luZG93KHNlbGYsIFB5X3NzaXplX3Qgcm93PSosIFB5 X3NzaXplX3QgY29sPSosIFB5X3NzaXplX3QgbnJvd3M9KiwgUHlfc3NpemVfdCBuY29scz0qLCBi aW50IGNoZWNrPSopIG5vZXhjZXB0CisrICAgIGNkZWYgdHVwbGUgX2Jsb2NrX2xkbHQoc2VsZiwg YmludCBjbGFzc2ljYWwpCisrICAgIGNwZGVmIF9lY2hlbG9uKHNlbGYsIHN0ciBhbGdvcml0aG0p CisrICAgIGNwZGVmIF9lY2hlbG9uX2luX3BsYWNlKHNlbGYsIHN0ciBhbGdvcml0aG0pCisrICAg IGNwZGVmIG1hdHJpeF93aW5kb3coc2VsZiwgUHlfc3NpemVfdCByb3c9KiwgUHlfc3NpemVfdCBj b2w9KiwgUHlfc3NpemVfdCBucm93cz0qLCBQeV9zc2l6ZV90IG5jb2xzPSosIGJpbnQgY2hlY2s9 KikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4Mi5weXggYi9zcmMvc2FnZS9t YXRyaXgvbWF0cml4Mi5weXgKK2luZGV4IDQ3YTgzNmEwOTUyLi43NmVmYWU5NTViNSAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgyLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeDIucHl4CitAQCAtMjE5OSw3ICsyMTk5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoTWF0 cml4MSk6CisgICAgICAgICBzZWxmLmNhY2hlKCdkZXQnLCBkKQorICAgICAgICAgcmV0dXJuIGQK KyAKKy0gICAgY2RlZiBfZGV0X2J5X21pbm9ycyhzZWxmLCBQeV9zc2l6ZV90IGxldmVsKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfZGV0X2J5X21pbm9ycyhzZWxmLCBQeV9zc2l6ZV90IGxldmVsKToK KyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgZGV0ZXJtaW5hbnQgb2YgdGhlIHVw cGVyLWxlZnQgbGV2ZWwgeCBsZXZlbCBzdWJtYXRyaXgKKyAgICAgICAgIG9mIHNlbGYuIERvZXMg bm90IGhhbmRsZSBkZWdlbmVyYXRlIGNhc2VzLCBsZXZlbCBNVVNUIGJlID49IDIKK0BAIC0yNTY5 LDcgKzI1NjksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgxKToKKyAKKyAgICAgICAgIHJl dHVybiByZXMKKyAKKy0gICAgY2RlZiBfcGZfYmZsKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVm IF9wZl9iZmwoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlcyB0aGUgUGZh ZmZpYW4gb2YgYGBzZWxmYGAgdXNpbmcgdGhlIEJhZXItRmFkZGVldi1MZVZlcnJpZXIKKyAgICAg ICAgIGFsZ29yaXRobS4KK0BAIC03OTY3LDcgKzc5NjcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChN YXRyaXgxKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIEUKKyAKKy0gICAg Y3BkZWYgX2VjaGVsb24oc2VsZiwgc3RyIGFsZ29yaXRobSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9lY2hlbG9uKHNlbGYsIHN0ciBhbGdvcml0aG0pOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGVjaGVsb24gZm9ybSBvZiBgYHNlbGZgYCB1c2luZyBgYGFsZ29yaXRobWBgLgor IAorQEAgLTgwNDcsNyArODA0Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KE1hdHJpeDEpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZWNoZWxvbignY2xhc3NpY2FsJykKKyAK Ky0gICAgY3BkZWYgX2VjaGVsb25faW5fcGxhY2Uoc2VsZiwgc3RyIGFsZ29yaXRobSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9lY2hlbG9uX2luX3BsYWNlKHNlbGYsIHN0ciBhbGdvcml0aG0pOgor ICAgICAgICAgIiIiCisgICAgICAgICBUcmFuc2Zvcm0gYGBzZWxmYGAgaW50byBlY2hlbG9uIGZv cm0gYW5kIHJldHVybiB0aGUgcGl2b3RzIG9mIGBgc2VsZmBgLgorIAorQEAgLTg4NzgsNyArODg3 OCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KE1hdHJpeDEpOgorIAorICAgICBjcGRlZiBtYXRyaXhf d2luZG93KHNlbGYsIFB5X3NzaXplX3Qgcm93PTAsIFB5X3NzaXplX3QgY29sPTAsCisgICAgICAg ICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBucm93cz0tMSwgUHlfc3NpemVfdCBuY29scz0t MSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBiaW50IGNoZWNrPTEpIG5vZXhjZXB0OgorKyAg ICAgICAgICAgICAgICAgICAgICAgIGJpbnQgY2hlY2s9MSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgcmVxdWVzdGVkIG1hdHJpeCB3aW5kb3cuCisgCitAQCAtMTQwNzMsNyAr MTQwNzMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgxKToKKyAgICAgICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKG1zZy5mb3JtYXQoZCkpCisgICAgICAgICByZXR1cm4gTCwgdmVjdG9yKEwu YmFzZV9yaW5nKCksIGQpCisgCistICAgIGNkZWYgdHVwbGUgX2Jsb2NrX2xkbHQoc2VsZiwgYmlu dCBjbGFzc2ljYWwpIG5vZXhjZXB0OgorKyAgICBjZGVmIHR1cGxlIF9ibG9ja19sZGx0KHNlbGYs IGJpbnQgY2xhc3NpY2FsKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFBlcmZvcm0gYSB1c2Vy LXVuZnJpZW5kbHkgYmxvY2stYExETF57VH1gIGZhY3Rvcml6YXRpb24gb2YgdGhlCisgICAgICAg ICBIZXJtaXRpYW4gbWF0cml4IGBBYAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRy aXhfY2R2LnB4ZCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY2R2LnB4ZAoraW5kZXggMmRlYjcy ZjI1YTIuLmY3Njg0ZGE0OWYyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9j ZHYucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2Nkdi5weGQKK0BAIC0xLDMgKzEs MyBAQAorIGZyb20gc2FnZS5tYXRyaXgubWF0cml4X2dlbmVyaWNfZGVuc2UgY2ltcG9ydCBNYXRy aXhfZ2VuZXJpY19kZW5zZQorIAorLWNwZGVmIGhlc3NlbmJlcmdpemVfY2R2ZihNYXRyaXhfZ2Vu ZXJpY19kZW5zZSkgbm9leGNlcHQKKytjcGRlZiBoZXNzZW5iZXJnaXplX2NkdmYoTWF0cml4X2dl bmVyaWNfZGVuc2UpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jZHYucHl4 IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jZHYucHl4CitpbmRleCBhNTNhZTc3N2YyMC4uN2E2 YjE4ODc1MTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2Nkdi5weXgKKysr KyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY2R2LnB5eAorQEAgLTIwLDcgKzIwLDcgQEAgZnJv bSBzYWdlLnJpbmdzLmluZmluaXR5IGltcG9ydCBJbmZpbml0eQorIAorIAorICMgV2UgYXNzdW1l IHRoYXQgSCBpcyBzcXVhcmUKKy1jcGRlZiBoZXNzZW5iZXJnaXplX2NkdmYoTWF0cml4X2dlbmVy aWNfZGVuc2UgSCkgbm9leGNlcHQ6CisrY3BkZWYgaGVzc2VuYmVyZ2l6ZV9jZHZmKE1hdHJpeF9n ZW5lcmljX2RlbnNlIEgpOgorICAgICByIiIiCisgICAgIFJlcGxhY2UgYEhgIHdpdGggYSBIZXNz ZW5iZXJnIGZvcm0gb2YgaXQuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9jb21wbGV4X2JhbGxfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21wbGV4 X2JhbGxfZGVuc2UucHhkCitpbmRleCA5YTE3MDg5YTFjNy4uZjYzNTQ0NjlmYTkgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZS5weGQKKysrKyBi L3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlLnB4ZAorQEAgLTUsOSAr NSw5IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQgUGFyZW50CisgCisgY2Rl ZiB2b2lkIG1hdHJpeF90b19hY2JfbWF0KGFjYl9tYXRfdCB0YXJnZXQsIHNvdXJjZSkgbm9leGNl cHQKKyBjZGVmIE1hdHJpeF9nZW5lcmljX2RlbnNlIGFjYl9tYXRfdG9fbWF0cml4KAorLSAgICBh Y2JfbWF0X3Qgc291cmNlLCBQYXJlbnQgQ0lGKSBub2V4Y2VwdAorKyAgICBhY2JfbWF0X3Qgc291 cmNlLCBQYXJlbnQgQ0lGKQorIAorIGNkZWYgY2xhc3MgTWF0cml4X2NvbXBsZXhfYmFsbF9kZW5z ZShNYXRyaXhfZGVuc2UpOgorICAgICBjZGVmIGFjYl9tYXRfdCB2YWx1ZQorLSAgICBjZGVmIE1h dHJpeF9jb21wbGV4X2JhbGxfZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9z c2l6ZV90IG5jb2xzKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKSBub2V4 Y2VwdAorKyAgICBjZGVmIE1hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UgX25ldyhzZWxmLCBQeV9z c2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKQorKyAgICBjcGRlZiBfcG93X2ludChzZWxm LCBuKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxsX2Rl bnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlLnB5eAor aW5kZXggMmYwMTMxZjQwNjQuLmMwNjdkNmE5MDE3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0 cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZS5weXgKK0BAIC04MCwxNCArODAsMTQgQEAgY2RlZiB2 b2lkIG1hdHJpeF90b19hY2JfbWF0KGFjYl9tYXRfdCB0YXJnZXQsIHNvdXJjZSkgbm9leGNlcHQ6 CisgICAgICAgICAgICAgQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50X3RvX2FjYihhY2JfbWF0 X2VudHJ5KHRhcmdldCwgciwgYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb3VyY2Vbcl1bY10pCisgCistY2RlZiBDb21wbGV4SW50ZXJ2YWxGaWVs ZEVsZW1lbnQgX3RvX0NJRihhY2JfdCBzb3VyY2UsIENvbXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVu dCB0ZW1wbGF0ZSkgbm9leGNlcHQ6CisrY2RlZiBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQg X3RvX0NJRihhY2JfdCBzb3VyY2UsIENvbXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudCB0ZW1wbGF0 ZSk6CisgICAgIGNkZWYgQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50IHJlc3VsdAorICAgICBy ZXN1bHQgPSB0ZW1wbGF0ZS5fbmV3KCkKKyAgICAgYWNiX3RvX0NvbXBsZXhJbnRlcnZhbEZpZWxk RWxlbWVudCgKKyAgICAgICAgIHJlc3VsdCwgc291cmNlKQorICAgICByZXR1cm4gcmVzdWx0Cisg CistY2RlZiBNYXRyaXhfZ2VuZXJpY19kZW5zZSBhY2JfbWF0X3RvX21hdHJpeChhY2JfbWF0X3Qg c291cmNlLCBQYXJlbnQgQ0lGKSBub2V4Y2VwdDoKKytjZGVmIE1hdHJpeF9nZW5lcmljX2RlbnNl IGFjYl9tYXRfdG9fbWF0cml4KGFjYl9tYXRfdCBzb3VyY2UsIFBhcmVudCBDSUYpOgorICAgICAi IiIKKyAgICAgQ29udmVydCBhbiBgYGFjYl9tYXRfdGBgIHRvIGEgbWF0cml4IGNvbnRhaW5pbmcg OmNsYXNzOmBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnRgLgorIAorQEAgLTE1OCw3ICsxNTgs NyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UoTWF0cml4X2RlbnNlKToK KyAgICAgICAgICIiIgorICAgICAgICAgYWNiX21hdF9jbGVhcihzZWxmLnZhbHVlKQorIAorLSAg ICBjZGVmIE1hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5y b3dzLCBQeV9zc2l6ZV90IG5jb2xzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBNYXRyaXhfY29tcGxl eF9iYWxsX2RlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVfdCBucm93cywgUHlfc3NpemVfdCBuY29s cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBuZXcgbWF0cml4IG92ZXIgdGhl IHNhbWUgYmFzZSByaW5nLgorICAgICAgICAgIiIiCitAQCAtMjUyLDcgKzI1Miw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAg ICAgIHogPSA8Q29tcGxleEJhbGw+c2UuZW50cnkKKyAgICAgICAgICAgICBhY2Jfc2V0KGFjYl9t YXRfZW50cnkoc2VsZi52YWx1ZSwgc2UuaSwgc2UuaiksIHoudmFsdWUpCisgCistICAgIGNkZWYg c2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwgb2JqZWN0IHgpIG5v ZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6 ZV90IGosIG9iamVjdCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHBvc2l0aW9uIGBg aWBgLCBgYGpgYCBvZiB0aGlzIG1hdHJpeCB0byBgYHhgYC4KKyAKK0BAIC0yNzgsNyArMjc4LDcg QEAgY2RlZiBjbGFzcyBNYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlKE1hdHJpeF9kZW5zZSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGFjYl9zZXQoYWNiX21hdF9lbnRyeShzZWxmLnZhbHVlLCBp LCBqKSwgKDxDb21wbGV4QmFsbD4geCkudmFsdWUpCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShz ZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0 X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBgYChpLCBqKWBgIGVudHJ5IG9mIHRoaXMgbWF0cml4IGFzIGEgbmV3 IENvbXBsZXhCYWxsLgorIAorQEAgLTMwNyw3ICszMDcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9j b21wbGV4X2JhbGxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIGFjYl9zZXQoei52YWx1 ZSwgYWNiX21hdF9lbnRyeShzZWxmLnZhbHVlLCBpLCBqKSkKKyAgICAgICAgIHJldHVybiB6Cisg CistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgciIiIgor ICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTQwMSw3ICs0MDEsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9jb21wbGV4X2JhbGxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC00MTQsNyArNDE0LDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfY29tcGxleF9iYWxsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisg ICAgICAgICBURVNUUzo6CisgCitAQCAtNDI3LDcgKzQyNyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 X2NvbXBsZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGEp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBhKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC00NDAsNyArNDQwLDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdf b2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVs ZW1lbnQgYSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGEpOgor ICAgICAgICAgciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTQ0OSw3ICs0NDksNyBAQCBj ZGVmIGNsYXNzIE1hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2xtdWxfKGEpCisgCistICAgIGNkZWYgX21h dHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIE1hdHJpeCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNk ZWYgX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIE1hdHJpeCBvdGhlcik6CisgICAgICAgICBy IiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNDYyLDcgKzQ2Miw3IEBAIGNkZWYgY2xhc3Mg TWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4p IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgYGBuYGAtdGggcG93ZXIgb2YgdGhpcyBtYXRyaXguCisgCitA QCAtOTYxLDcgKzk2MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZShN YXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisg CistY2RlZiBfYWNiX3ZlY190b19saXN0KGFjYl9wdHIgdmVjLCBsb25nIG4sIFBhcmVudCBwYXJl bnQpIG5vZXhjZXB0OgorK2NkZWYgX2FjYl92ZWNfdG9fbGlzdChhY2JfcHRyIHZlYywgbG9uZyBu LCBQYXJlbnQgcGFyZW50KToKKyAgICAgY2RlZiBDb21wbGV4QmFsbCBiCisgICAgIHJlcyA9IFtd CisgICAgIGZvciBpIGluIHJhbmdlKG4pOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfY3ljbG9fZGVuc2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jeWNsb19kZW5z ZS5weGQKK2luZGV4IGQ2Yzg3MTFmODYyLi4xM2Y3MjM4OWNmNSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfY3ljbG9fZGVuc2UucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X2N5Y2xvX2RlbnNlLnB4ZAorQEAgLTEyLDUgKzEyLDUgQEAgY2RlZiBjbGFzcyBNYXRy aXhfY3ljbG9fZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgY2RlZiBpbnQgX24KKyAKKyAgICAg Y2RlZiBfcmFuZG9taXplX3JhdGlvbmFsX2NvbHVtbl91bnNhZmUoTWF0cml4X2N5Y2xvX2RlbnNl IHNlbGYsCistICAgICAgICBQeV9zc2l6ZV90IGNvbCwgbXB6X3QgbnVtcDEsIG1wel90IGRlbnAx LCBkaXN0cmlidXRpb249Pykgbm9leGNlcHQKKysgICAgICAgIFB5X3NzaXplX3QgY29sLCBtcHpf dCBudW1wMSwgbXB6X3QgZGVucDEsIGRpc3RyaWJ1dGlvbj0/KQorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21hdHJpeC9tYXRyaXhfY3ljbG9fZGVuc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21h dHJpeF9jeWNsb19kZW5zZS5weXgKK2luZGV4IGFiY2E2YTQ1MjRkLi44YmZmYmI5MDVkOCAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY3ljbG9fZGVuc2UucHl4CisrKysgYi9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xvX2RlbnNlLnB5eAorQEAgLTE1OSw3ICsxNTksNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9jeWNsb19kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAg UVFtYXQgPSBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoUVFzcGFjZSwgTCwgRmFsc2UsIEZhbHNlKQor ICAgICAgICAgc2VsZi5fbWF0cml4ID0gUVFtYXQudHJhbnNwb3NlKCkKKyAKKy0gICAgY2RlZiBz ZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB2YWx1ZSkgbm9leGNl cHQ6CisrICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qg aiwgdmFsdWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGlqLXRoIGVudHJ5IG9m IHNlbGYuCisgCitAQCAtMjg2LDcgKzI4Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2N5Y2xvX2Rl bnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBtcHpfY2xlYXIobnVtZXIpCisgICAgICAgICBt cHpfY2xlYXIoZGVub20pCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90 IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQ eV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdldCB0 aGUgaWotdGggb2Ygc2VsZi4KKyAKK0BAIC00ODgsNyArNDg4LDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfY3ljbG9fZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgIyAgICogX2RpY3QgLS0gc3BhcnNl IGRpY3Rpb25hcnkgb2YgdW5kZXJseWluZyBlbGVtZW50cyAobmVlZCBub3QgYmUgYSBjb3B5KQor ICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHR3byBkZW5zZSBjeWNsb3RvbWljIG1hdHJpY2VzLgor IAorQEAgLTUxNiw3ICs1MTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9jeWNsb19kZW5zZShNYXRy aXhfZGVuc2UpOgorICAgICAgICAgQS5fbWF0cml4ID0gc2VsZi5fbWF0cml4ICsgKDxNYXRyaXhf Y3ljbG9fZGVuc2U+cmlnaHQpLl9tYXRyaXgKKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNw ZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2Yg dHdvIGRlbnNlIGN5Y2xvdG9taWMgbWF0cmljZXMuCisgCitAQCAtNTQzLDcgKzU0Myw3IEBAIGNk ZWYgY2xhc3MgTWF0cml4X2N5Y2xvX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBBLl9t YXRyaXggPSBzZWxmLl9tYXRyaXggLSAoPE1hdHJpeF9jeWNsb19kZW5zZT5yaWdodCkuX21hdHJp eAorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IGEgZGVuc2UgY3ljbG90b21pYyBtYXRy aXggYnkgYSBzY2FsYXIuCisgCitAQCAtNTg0LDcgKzU4NCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 X2N5Y2xvX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAgICAgQS5fbWF0cml4ID0gVCAq IHNlbGYuX21hdHJpeAorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2RlZiBfbWF0cml4X3Rp bWVzX21hdHJpeF8oc2VsZiwgYmFzZU1hdHJpeCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYg X21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIGJhc2VNYXRyaXggcmlnaHQpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdHdvIGN5Y2xvdG9taWMgZGVuc2Ug bWF0cmljZXMuCisgCitAQCAtNzE5LDcgKzcxOSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2N5Y2xv X2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBoYXNo KHNlbGYuX21hdHJpeCkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQg b3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEltcGxlbWVudCBjb21wYXJpc29uIG9mIHR3byBjeWNs b3RvbWljIG1hdHJpY2VzIHdpdGgKKyAgICAgICAgIGlkZW50aWNhbCBwYXJlbnRzLgorQEAgLTk3 Nyw3ICs5NzcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9jeWNsb19kZW5zZShNYXRyaXhfZGVuc2Up OgorICAgICAgICAgcmV0dXJuIGh0CisgCisgICAgIGNkZWYgX3JhbmRvbWl6ZV9yYXRpb25hbF9j b2x1bW5fdW5zYWZlKE1hdHJpeF9jeWNsb19kZW5zZSBzZWxmLAorLSAgICAgICAgUHlfc3NpemVf dCBjb2wsIG1wel90IG51bXAxLCBtcHpfdCBkZW5wMSwgZGlzdHJpYnV0aW9uPU5vbmUpIG5vZXhj ZXB0OgorKyAgICAgICAgUHlfc3NpemVfdCBjb2wsIG1wel90IG51bXAxLCBtcHpfdCBkZW5wMSwg ZGlzdHJpYnV0aW9uPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSYW5kb21pemVzIGFs bCBlbnRyaWVzIGluIGNvbHVtbiBgYGNvbGBgLiAgVGhpcyBpcyBhIGhlbHBlciBtZXRob2QKKyAg ICAgICAgIHVzZWQgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIGRlbnNlIG1hdHJpY2VzIG92ZXIg Y3ljbG90b21pYyBmaWVsZHMuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9k ZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2RlbnNlLnB5eAoraW5kZXggYjA0ZmM3 MjQ4YWYuLmE5NTRkZGUzOWQyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9k ZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZGVuc2UucHl4CitAQCAtNTMs NyArNTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9kZW5zZShtYXRyaXguTWF0cml4KToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ1bmtub3duIG1hdHJp eCB2ZXJzaW9uICg9JXMpIiAlIHZlcnNpb24pCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJp Z2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9kb3VibGVfZGVuc2UucHl4IGIvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9kb3VibGVfZGVuc2UucHl4CitpbmRleCBlZGUwNmYwN2Y3Zi4uMTYw ZGNjNGRjZDkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2RvdWJsZV9kZW5z ZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZG91YmxlX2RlbnNlLnB5eAorQEAg LTE0Niw3ICsxNDYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9kb3VibGVfZGVuc2UoTWF0cml4X251 bXB5X2RlbnNlKToKKyAgICAgIyBMRVZFTCAyIGZ1bmN0aW9uYWxpdHkKKyAgICAgIyAgICogZGVm IF9waWNrbGUKKyAgICAgIyAgICogZGVmIF91bnBpY2tsZQorLSAgICBjcGRlZiBfYWRkXyhzZWxm LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgQWRkIHR3byBtYXRyaWNlcyB0b2dldGhlci4KKyAKK0BAIC0xNjks NyArMTY5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZG91YmxlX2RlbnNlKE1hdHJpeF9udW1weV9k ZW5zZSk6CisgICAgICAgICBNLl9tYXRyaXhfbnVtcHkgPSBfbGVmdC5fbWF0cml4X251bXB5ICsg X3JpZ2h0Ll9tYXRyaXhfbnVtcHkKKyAgICAgICAgIHJldHVybiBNCisgCistICAgIGNwZGVmIF9z dWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gc2VsZiAtIHJpZ2h0CisgCitAQCAtMjIw LDcgKzIyMCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2RvdWJsZV9kZW5zZShNYXRyaXhfbnVtcHlf ZGVuc2UpOgorICAgICAjIGRlZiBfcGlja2xlKHNlbGYpOiAgICAgICAgICAgICAgICAgICAgICAg ICN1bnN1cmUgaG93IHRvIGltcGxlbWVudAorICAgICAjIGRlZiBfdW5waWNrbGUoc2VsZiwgZGF0 YSwgaW50IHZlcnNpb24pOiAgICMgdXNlIHZlcnNpb24gPj0gMCAjdW5zdXJlIGhvdyB0byBpbXBs ZW1lbnQKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLSAgICBjZGVmIHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBzYWdlLnN0cnVjdHVyZS5lbGVt ZW50Lk1hdHJpeCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuTWF0cml4IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIE11bHRpcGx5IGBg c2VsZiAqIHJpZ2h0YGAgYXMgbWF0cmljZXMuCisgCitAQCAtMzU4OCw3ICszNTg4LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhfZG91YmxlX2RlbnNlKE1hdHJpeF9udW1weV9kZW5zZSk6CisgICAgICAg ICAgICAgcG9zZGVmID0gc2VsZi5mZXRjaChjYWNoZV9zdHIpCisgICAgICAgICByZXR1cm4gcG9z ZGVmCisgCistICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNlbGYsVmVjdG9yIHYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIF92ZWN0b3JfdGltZXNfbWF0cml4XyhzZWxmLFZlY3RvciB2KToK KyAgICAgICAgIGlmIHNlbGYuX25yb3dzID09IDAgb3Igc2VsZi5fbmNvbHMgPT0gMDoKKyAgICAg ICAgICAgICByZXR1cm4gc2VsZi5yb3dfYW1iaWVudF9tb2R1bGUoKS56ZXJvX3ZlY3RvcigpCisg ICAgICAgICBnbG9iYWwgbnVtcHkKK0BAIC0zNjAxLDcgKzM2MDEsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9kb3VibGVfZGVuc2UoTWF0cml4X251bXB5X2RlbnNlKToKKyAgICAgICAgIGFucyA9IG51 bXB5LmRvdCh2X251bXB5LHNlbGYuX21hdHJpeF9udW1weSkKKyAgICAgICAgIHJldHVybiBNKGFu cykKKyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZixWZWN0b3Igdikgbm9l eGNlcHQ6CisrICAgIGNkZWYgX21hdHJpeF90aW1lc192ZWN0b3JfKHNlbGYsVmVjdG9yIHYpOgor ICAgICAgICAgaWYgc2VsZi5fbnJvd3MgPT0gMCBvciBzZWxmLl9uY29scyA9PSAwOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmLmNvbHVtbl9hbWJpZW50X21vZHVsZSgpLnplcm9fdmVjdG9yKCkK KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dhcC5weGQgYi9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X2dhcC5weGQKK2luZGV4IGRhOGZlN2UxMjc3Li5mMzc4YWRiZmMyYSAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2FwLnB4ZAorKysrIGIvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9nYXAucHhkCitAQCAtNSw1ICs1LDUgQEAgZnJvbSBzYWdlLmxpYnMu Z2FwLmVsZW1lbnQgY2ltcG9ydCBHYXBFbGVtZW50CisgY2RlZiBjbGFzcyBNYXRyaXhfZ2FwKE1h dHJpeF9kZW5zZSk6CisgICAgIGNkZWYgR2FwRWxlbWVudCBfbGliZ2FwCisgCistICAgIGNwZGVm IEdhcEVsZW1lbnQgZ2FwKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgTWF0cml4X2dhcCBfbmV3 KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0CisrICAg IGNwZGVmIEdhcEVsZW1lbnQgZ2FwKHNlbGYpCisrICAgIGNkZWYgTWF0cml4X2dhcCBfbmV3KHNl bGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9nYXAucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nYXAu cHl4CitpbmRleCA5ZTFkMTA2NmE0OC4uYmI0MjNlZTAzZDUgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X2dhcC5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2Fw LnB5eAorQEAgLTEyNSw3ICsxMjUsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nYXAoTWF0cml4X2Rl bnNlKToKKyAgICAgICAgICAgICBtYXQuYXBwZW5kKHJvdykKKyAgICAgICAgIHNlbGYuX2xpYmdh cCA9IGxpYmdhcChtYXQpCisgCistICAgIGNkZWYgTWF0cml4X2dhcCBfbmV3KHNlbGYsIFB5X3Nz aXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIE1hdHJp eF9nYXAgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKToKKyAg ICAgICAgIGlmIG5yb3dzID09IHNlbGYuX25yb3dzIGFuZCBuY29scyA9PSBzZWxmLl9uY29sczoK KyAgICAgICAgICAgICBQID0gc2VsZi5fcGFyZW50CisgICAgICAgICBlbHNlOgorQEAgLTE2Niw3 ICsxNjYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nYXAoTWF0cml4X2RlbnNlKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudCwgKHNlbGYubGlzdCgpLCkKKyAKKy0g ICAgY3BkZWYgR2FwRWxlbWVudCBnYXAoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEdhcEVs ZW1lbnQgZ2FwKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB1bmRl cmx5aW5nIGdhcCBvYmplY3QuCisgCitAQCAtMTg0LDEwICsxODQsMTAgQEAgY2RlZiBjbGFzcyBN YXRyaXhfZ2FwKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLl9saWJnYXAKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwg UHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3Nz aXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgIHJldHVybiBzZWxmLl9iYXNlX3Jpbmco c2VsZi5fbGliZ2FwW2ksal0pCisgCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6 ZV90IGksIFB5X3NzaXplX3Qgaiwgb2JqZWN0IHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldF91 bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIG9iamVjdCB4KToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0yMDQsNyArMjA0LDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhfZ2FwKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHNl bGYuX2xpYmdhcFtpLGpdID0geAorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIs IGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50 IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmUgYGBzZWxmYGAgYW5kIGBgcmln aHRgYC4KKyAKK0BAIC0yODQsNyArMjg0LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2FwKE1hdHJp eF9kZW5zZSk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBNYXRyaXhfZGVu c2UuX19pbnZlcnRfXyhzZWxmKQorIAorLSAgICBjcGRlZiBfYWRkXyhsZWZ0LCByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFRFU1RTOjoKKyAKK0BAIC0yOTcsNyArMjk3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhf Z2FwKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBhbnMuX2xpYmdhcCA9IGxlZnQuX2xpYmdhcCAr ICg8TWF0cml4X2dhcD4gcmlnaHQpLl9saWJnYXAKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0g ICAgY3BkZWYgX3N1Yl8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhs ZWZ0LCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtMzEw LDcgKzMxMCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dhcChNYXRyaXhfZGVuc2UpOgorICAgICAg ICAgYW5zLl9saWJnYXAgPSBsZWZ0Ll9saWJnYXAgLSAoPE1hdHJpeF9nYXA+IHJpZ2h0KS5fbGli Z2FwCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgTWF0cml4IF9tYXRyaXhfdGlt ZXNfbWF0cml4XyhsZWZ0LCBNYXRyaXggcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjZGVmIE1hdHJp eCBfbWF0cml4X3RpbWVzX21hdHJpeF8obGVmdCwgTWF0cml4IHJpZ2h0KToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X2dlbmVyaWNfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZW5lcmljX2Rl bnNlLnB4ZAoraW5kZXggODM5ZWZkMjIxNTkuLmJhMzc0MjhjYjFmIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9nZW5lcmljX2RlbnNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0 cml4L21hdHJpeF9nZW5lcmljX2RlbnNlLnB4ZAorQEAgLTMsNCArMyw0IEBAIGZyb20gc2FnZS5t YXRyaXgubWF0cml4X2RlbnNlIGNpbXBvcnQgTWF0cml4X2RlbnNlCisgCisgY2RlZiBjbGFzcyBN YXRyaXhfZ2VuZXJpY19kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICBjZGVmIGxpc3QgX2VudHJp ZXMKKy0gICAgY2RlZiBNYXRyaXhfZ2VuZXJpY19kZW5zZSBfbmV3KHNlbGYsIFB5X3NzaXplX3Qg bnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0CisrICAgIGNkZWYgTWF0cml4X2dlbmVy aWNfZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2VuZXJpY19kZW5zZS5weXggYi9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2dlbmVyaWNfZGVuc2UucHl4CitpbmRleCA5NjA5NGY1NjQ2 Yi4uNDQxMTM4NTYwYjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dlbmVy aWNfZGVuc2UucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dlbmVyaWNfZGVuc2Uu cHl4CitAQCAtODEsNyArODEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZW5lcmljX2RlbnNlKG1h dHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgbWEgPSBNYXRyaXhBcmdzX2luaXQo cGFyZW50LCBlbnRyaWVzKQorICAgICAgICAgc2VsZi5fZW50cmllcyA9IG1hLmxpc3QoY29lcmNl KQorIAorLSAgICBjZGVmIE1hdHJpeF9nZW5lcmljX2RlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVf dCBucm93cywgUHlfc3NpemVfdCBuY29scykgbm9leGNlcHQ6CisrICAgIGNkZWYgTWF0cml4X2dl bmVyaWNfZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xz KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBkZW5zZSBtYXRyaXggd2l0 aCBubyBlbnRyaWVzIHNldC4KKyAgICAgICAgICIiIgorQEAgLTkzLDEwICs5MywxMCBAQCBjZGVm IGNsYXNzIE1hdHJpeF9nZW5lcmljX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgor ICAgICAgICAgY2RlZiB0eXBlIHQgPSA8dHlwZT50eXBlKHNlbGYpCisgICAgICAgICByZXR1cm4g PE1hdHJpeF9nZW5lcmljX2RlbnNlPnQuX19uZXdfXyh0LCBNUykKKyAKKy0gICAgY2RlZiBzZXRf dW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB2YWx1ZSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg dmFsdWUpOgorICAgICAgICAgc2VsZi5fZW50cmllc1tpKnNlbGYuX25jb2xzICsgal0gPSB2YWx1 ZQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90 IGopIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQ eV9zc2l6ZV90IGopOgorICAgICAgICAgcmV0dXJuIHNlbGYuX2VudHJpZXNbaSpzZWxmLl9uY29s cyArIGpdCisgCisgCitAQCAtMjA5LDcgKzIwOSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dlbmVy aWNfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgCisgICAgIEBjeXRob24uYm91 bmRzY2hlY2soRmFsc2UpCisgICAgIEBjeXRob24ud3JhcGFyb3VuZChGYWxzZSkKKy0gICAgY3Bk ZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBy aWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0d28gZ2VuZXJpYyBkZW5zZSBtYXRy aWNlcyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BAIC0yMzMsNyArMjMzLDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhfZ2VuZXJpY19kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAK KyAgICAgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyAgICAgQGN5dGhvbi53cmFwYXJvdW5k KEZhbHNlKQorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3Qg dHdvIGdlbmVyaWMgZGVuc2UgbWF0cmljZXMgd2l0aCB0aGUgc2FtZSBwYXJlbnQuCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZW5lcmljX3NwYXJzZS5weXggYi9zcmMv c2FnZS9tYXRyaXgvbWF0cml4X2dlbmVyaWNfc3BhcnNlLnB5eAoraW5kZXggNTlmZmZlMzg4ZDIu LmU2ODYxYmU0ZmI4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZW5lcmlj X3NwYXJzZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2VuZXJpY19zcGFyc2Uu cHl4CitAQCAtMTg3LDcgKzE4Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dlbmVyaWNfc3BhcnNl KG1hdHJpeF9zcGFyc2UuTWF0cml4X3NwYXJzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBib29sKHNlbGYuX2VudHJpZXMpCisgCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQ eV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNl dF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHZhbHVlKToKKyAgICAg ICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIGRl bCBzZWxmLl9lbnRyaWVzWyhpLGopXQorQEAgLTE5Niw3ICsxOTYsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9nZW5lcmljX3NwYXJzZShtYXRyaXhfc3BhcnNlLk1hdHJpeF9zcGFyc2UpOgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLl9lbnRyaWVzWyhpLGopXSA9IHZhbHVlCisgCist ICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9l eGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXpl X3Qgaik6CisgICAgICAgICByZXR1cm4gc2VsZi5fZW50cmllcy5nZXQoKGksaiksIHNlbGYuX3pl cm8pCisgCisgICAgIGNkZWYgYmludCBnZXRfaXNfemVyb191bnNhZmUoc2VsZiwgUHlfc3NpemVf dCBpLCBQeV9zc2l6ZV90IGopIGV4Y2VwdCAtMToKK0BAIC0yNDcsNyArMjQ3LDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhfZ2VuZXJpY19zcGFyc2UobWF0cml4X3NwYXJzZS5NYXRyaXhfc3BhcnNlKToK KyAgICAgIyB4ICAqIF9kaWN0IC0tIGNvcHkgb2YgdGhlIHNwYXJzZSBkaWN0aW9uYXJ5IG9mIHVu ZGVybHlpbmcgZWxlbWVudHMKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistICAgIGNwZGVmIF9h ZGRfKHNlbGYsIF9vdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9vdGhl cik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2dmMmVfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21h dHJpeF9nZjJlX2RlbnNlLnB4ZAoraW5kZXggNDg1MjY2ZTUxN2IuLmRjZDEwMTlmMjMwIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZjJlX2RlbnNlLnB4ZAorKysrIGIvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9nZjJlX2RlbnNlLnB4ZAorQEAgLTksNiArOSw2IEBAIGNkZWYg Y2xhc3MgTWF0cml4X2dmMmVfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgY2RlZiBvYmplY3Qg X3plcm8KKyAgICAgY2RlZiBtNHJpX3dvcmQgX3plcm9fd29yZCAgIyBtNHJpX3dvcmQgcmVwcmVz ZW50YXRpb24gb2YgX3plcm8KKyAKKy0gICAgY3BkZWYgTWF0cml4X2dmMmVfZGVuc2UgX211bHRp cGx5X25ld3Rvbl9qb2huKE1hdHJpeF9nZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9nZjJlX2RlbnNl IHJpZ2h0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBNYXRyaXhfZ2YyZV9kZW5zZSBfbXVsdGlwbHlf a2FyYXRzdWJhKE1hdHJpeF9nZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9nZjJlX2RlbnNlIHJpZ2h0 KSBub2V4Y2VwdAorLSAgICBjcGRlZiBNYXRyaXhfZ2YyZV9kZW5zZSBfbXVsdGlwbHlfc3RyYXNz ZW4oTWF0cml4X2dmMmVfZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQsIGN1dG9m Zj0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBNYXRyaXhfZ2YyZV9kZW5zZSBfbXVsdGlwbHlfbmV3 dG9uX2pvaG4oTWF0cml4X2dmMmVfZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQp CisrICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9rYXJhdHN1YmEoTWF0cml4 X2dmMmVfZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQpCisrICAgIGNwZGVmIE1h dHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9zdHJhc3NlbihNYXRyaXhfZ2YyZV9kZW5zZSBzZWxm LCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCwgY3V0b2ZmPSopCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9nZjJlX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf Z2YyZV9kZW5zZS5weXgKK2luZGV4IGU3Nzk2NTYxMmZjLi5hMDg5NzcwZWY0YyAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2YyZV9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdl L21hdHJpeC9tYXRyaXhfZ2YyZV9kZW5zZS5weXgKK0BAIC0yMzIsNyArMjMyLDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhfZ2YyZV9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAgICAg ICAgICAgICBzZSA9IDxTcGFyc2VFbnRyeT50CisgICAgICAgICAgICAgbXplZF93cml0ZV9lbGVt KHNlbGYuX2VudHJpZXMsIHNlLmksIHNlLmosIHBvbHlfdG9fd29yZChzZS5lbnRyeSkpCisgCist ICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgdmFs dWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQ eV9zc2l6ZV90IGosIHZhbHVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgQVtpLGpdID0gdmFs dWUgd2l0aG91dCBib3VuZCBjaGVja3MKKyAKK0BAIC0yNTksNyArMjU5LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfZ2YyZV9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAgICAgICAg ICIiIgorICAgICAgICAgbXplZF93cml0ZV9lbGVtKHNlbGYuX2VudHJpZXMsIGksIGosIHBvbHlf dG9fd29yZCh2YWx1ZSkpCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90 IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQ eV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdldCBB W2ksal0gd2l0aG91dCBib3VuZCBjaGVja3MuCisgCitAQCAtMjk4LDcgKzI5OCw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4X2dmMmVfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBtemVkX3JlYWRfZWxlbShzZWxmLl9lbnRyaWVzLCBp LCBqKSA9PSBzZWxmLl96ZXJvX3dvcmQKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBBK0IKKyAKK0BAIC0zMjQsNyArMzI0LDcgQEAgY2RlZiBjbGFzcyBN YXRyaXhfZ2YyZV9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAKKyAgICAgICAg IHJldHVybiBBCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitAQCAtMzg1LDcgKzM4NSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVu c2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwg TWF0cml4IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3RpbWVzX21hdHJpeF8o c2VsZiwgTWF0cml4IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIEEqQgor IAorQEAgLTQyOCw3ICs0MjgsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZjJlX2RlbnNlKG1hdHJp eF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gYW5zCisgCistICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9uZXd0b25f am9obihNYXRyaXhfZ2YyZV9kZW5zZSBzZWxmLCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9uZXd0b25fam9o bihNYXRyaXhfZ2YyZV9kZW5zZSBzZWxmLCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiBBKkIgdXNpbmcgTmV3dG9uLUpvaG4gdGFibGVzLgor IAorQEAgLTQ5MCw3ICs0OTAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZjJlX2RlbnNlKG1hdHJp eF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gYW5zCisgCistICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9rYXJhdHN1 YmEoTWF0cml4X2dmMmVfZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBNYXRyaXhfZ2YyZV9kZW5zZSBfbXVsdGlwbHlfa2FyYXRzdWJhKE1h dHJpeF9nZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9nZjJlX2RlbnNlIHJpZ2h0KToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIE1hdHJpeCBtdWx0aXBsaWNhdGlvbiB1c2luZyBLYXJhdHN1YmEgb3Zl ciBwb2x5bm9taWFscyB3aXRoCisgICAgICAgICBtYXRyaXggY29lZmZpY2llbnRzIG92ZXIgR0Yo MikuCitAQCAtNTM4LDcgKzUzOCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVuc2UobWF0 cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJl dHVybiBhbnMKKyAKKy0gICAgY3BkZWYgTWF0cml4X2dmMmVfZGVuc2UgX211bHRpcGx5X3N0cmFz c2VuKE1hdHJpeF9nZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9nZjJlX2RlbnNlIHJpZ2h0LCBjdXRv ZmY9MCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9z dHJhc3NlbihNYXRyaXhfZ2YyZV9kZW5zZSBzZWxmLCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCwg Y3V0b2ZmPTApOgorICAgICAgICAgIiIiCisgICAgICAgICBXaW5vZ3JhZC1TdHJhc3NlbiBtYXRy aXggbXVsdGlwbGljYXRpb24gd2l0aCBOZXd0b24tSm9obgorICAgICAgICAgbXVsdGlwbGljYXRp b24gYXMgYmFzZSBjYXNlLgorQEAgLTU5Miw3ICs1OTIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9n ZjJlX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigp CisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50 IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBhKkJgYCBmb3IgYGBhYGAgYW4gZWxl bWVudCBvZiB0aGUgYmFzZSBmaWVsZC4KKyAKK0BAIC02MjUsNyArNjI1LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfZ2YyZV9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX19jb3B5X18oKQorIAorLSAgICBjcGRlZiBfcmlj aGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21w XyhzZWxmLCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6 OgorIAorQEAgLTk5Myw3ICs5OTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZjJlX2RlbnNlKG1h dHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorIAorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAg Y2RlZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5X3NzaXplX3Qgcm93LCBtdWx0aXBsZSwgUHlfc3Np emVfdCBzdGFydF9jb2wpIG5vZXhjZXB0OgorKyAgICBjZGVmIHJlc2NhbGVfcm93X2Moc2VsZiwg UHlfc3NpemVfdCByb3csIG11bHRpcGxlLCBQeV9zc2l6ZV90IHN0YXJ0X2NvbCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBgYG11bHRpcGxlICogc2VsZltyb3ddW3N0YXJ0X2NvbDpd YGAKKyAKK0BAIC0xMDMzLDcgKzEwMzMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZjJlX2RlbnNl KG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgY2RlZiBtNHJpX3dvcmQgeCA9 IHBvbHlfdG9fd29yZChtdWx0aXBsZSkKKyAgICAgICAgIG16ZWRfcmVzY2FsZV9yb3coc2VsZi5f ZW50cmllcywgcm93LCBzdGFydF9jb2wsIHgpCisgCistICAgIGNkZWYgYWRkX211bHRpcGxlX29m X3Jvd19jKHNlbGYsIFB5X3NzaXplX3Qgcm93X3RvLCBQeV9zc2l6ZV90IHJvd19mcm9tLCBtdWx0 aXBsZSwgUHlfc3NpemVfdCBzdGFydF9jb2wpIG5vZXhjZXB0OgorKyAgICBjZGVmIGFkZF9tdWx0 aXBsZV9vZl9yb3dfYyhzZWxmLCBQeV9zc2l6ZV90IHJvd190bywgUHlfc3NpemVfdCByb3dfZnJv bSwgbXVsdGlwbGUsIFB5X3NzaXplX3Qgc3RhcnRfY29sKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ29tcHV0ZSBgYHNlbGZbcm93X3RvXVtzdGFydF9jb2w6XSArPSBtdWx0aXBsZSAqIHNlbGZb cm93X2Zyb21dW3N0YXJ0X2NvbDpdYGAuCisgCitAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhfZ2YyZV9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAgICAg ICAgIG16ZWRfYWRkX211bHRpcGxlX29mX3JvdyhzZWxmLl9lbnRyaWVzLCByb3dfdG8sIHNlbGYu X2VudHJpZXMsIHJvd19mcm9tLCB4LCBzdGFydF9jb2wpCisgCisgCistICAgIGNkZWYgc3dhcF9y b3dzX2Moc2VsZiwgUHlfc3NpemVfdCByb3cxLCBQeV9zc2l6ZV90IHJvdzIpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3Qgcm93MSwgUHlfc3NpemVfdCBy b3cyKToKKyAgICAgICAgICIiIgorICAgICAgICAgU3dhcCByb3dzIGBgcm93MWBgIGFuZCBgYHJv dzJgYC4KKyAKK0BAIC0xMDkxLDcgKzEwOTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZjJlX2Rl bnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBt emVkX3Jvd19zd2FwKHNlbGYuX2VudHJpZXMsIHJvdzEsIHJvdzIpCisgCistICAgIGNkZWYgc3dh cF9jb2x1bW5zX2Moc2VsZiwgUHlfc3NpemVfdCBjb2wxLCBQeV9zc2l6ZV90IGNvbDIpIG5vZXhj ZXB0OgorKyAgICBjZGVmIHN3YXBfY29sdW1uc19jKHNlbGYsIFB5X3NzaXplX3QgY29sMSwgUHlf c3NpemVfdCBjb2wyKToKKyAgICAgICAgICIiIgorICAgICAgICAgU3dhcCBjb2x1bW5zIGBgY29s MWBgIGFuZCBgYGNvbDJgYC4KKyAKK0BAIC0xMTg4LDcgKzExODgsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9nZjJlX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgQS5f ZW50cmllcyA9IG16ZWRfY29uY2F0KEEuX2VudHJpZXMsIHNlbGYuX2VudHJpZXMsIHJpZ2h0Ll9l bnRyaWVzKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2RlZiBfc3RhY2tfaW1wbChzZWxm LCBib3R0b20pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9zdGFja19pbXBsKHNlbGYsIGJvdHRvbSk6 CisgICAgICAgICByIiIiCisgICAgICAgICBTdGFjayBgYHNlbGZgYCBvbiB0b3Agb2YgYGBib3R0 b21gYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVu c2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB4ZAoraW5kZXgg ZGNjNjlkYjVkNzIuLmM2MGI0NDIyZTk3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21h dHJpeF9pbnRlZ2VyX2RlbnNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRl Z2VyX2RlbnNlLnB4ZAorQEAgLTExLDExICsxMSwxMSBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRl Z2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgIGNkZWYgZm1wel9tYXRfdCBfbWF0cml4Cisg ICAgIGNkZWYgb2JqZWN0IF9waXZvdHMKKyAgICAgY2RlZiBpbnQgbXB6X2hlaWdodChzZWxmLCBt cHpfdCBoZWlnaHQpIGV4Y2VwdCAtMQorLSAgICBjZGVmIF9tb2RfaW50X2Moc2VsZiwgbW9kX2lu dCBtb2R1bHVzKSBub2V4Y2VwdAorLSAgICBjZGVmIF9tb2RfdHdvKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNkZWYgX3BpY2tsZV92ZXJzaW9uMChzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF91bnBp Y2tsZV92ZXJzaW9uMChzZWxmLCBkYXRhKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZXhwb3J0X2Fz X3N0cmluZyhzZWxmLCBpbnQgYmFzZT0/KSBub2V4Y2VwdAorKyAgICBjZGVmIF9tb2RfaW50X2Mo c2VsZiwgbW9kX2ludCBtb2R1bHVzKQorKyAgICBjZGVmIF9tb2RfdHdvKHNlbGYpCisrICAgIGNk ZWYgX3BpY2tsZV92ZXJzaW9uMChzZWxmKQorKyAgICBjZGVmIF91bnBpY2tsZV92ZXJzaW9uMChz ZWxmLCBkYXRhKQorKyAgICBjcGRlZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmLCBpbnQgYmFzZT0/ KQorICAgICBjZGVmIHZvaWQgc2V0X3Vuc2FmZV9tcHooc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGosIGNvbnN0IG1wel90IHZhbHVlKSBub2V4Y2VwdAorICAgICBjZGVmIHZvaWQgc2V0 X3Vuc2FmZV9kb3VibGUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIGRvdWJsZSB2 YWx1ZSkgbm9leGNlcHQKKyAgICAgY2RlZiBpbmxpbmUgdm9pZCBnZXRfdW5zYWZlX21weihzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgbXB6X3QgdmFsdWUpIG5vZXhjZXB0CitAQCAt MjgsNyArMjgsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5z ZSk6CisgICAgIGNkZWYgaW50KiBfaG5mX21vZG5faW1wbChNYXRyaXhfaW50ZWdlcl9kZW5zZSBz ZWxmLCB1bnNpZ25lZCBpbnQgZGV0LAorICAgICAgICAgICAgIFB5X3NzaXplX3QgbnJvd3MsIFB5 X3NzaXplX3QgbmNvbHMpIGV4Y2VwdCBOVUxMCisgCistICAgIGNkZWYgTWF0cml4X2ludGVnZXJf ZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKSBub2V4 Y2VwdAorKyAgICBjZGVmIE1hdHJpeF9pbnRlZ2VyX2RlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVf dCBucm93cywgUHlfc3NpemVfdCBuY29scykKKyAKKyAKKy1jcGRlZiBfbGlmdF9jcnQoTWF0cml4 X2ludGVnZXJfZGVuc2UgTSwgcmVzaWR1ZXMsIG1vZHVsaT0qKSBub2V4Y2VwdAorK2NwZGVmIF9s aWZ0X2NydChNYXRyaXhfaW50ZWdlcl9kZW5zZSBNLCByZXNpZHVlcywgbW9kdWxpPSopCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eCBiL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9kZW5zZS5weXgKK2luZGV4IGIxOTdiYTg4MjVlLi42 MDhkMzk1MjM0NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9k ZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9kZW5zZS5weXgK K0BAIC0zMTMsNyArMzEzLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRy aXhfZGVuc2UpOgorICAgICAgICAgICAgIHogPSA8SW50ZWdlcj5zZS5lbnRyeQorICAgICAgICAg ICAgIGZtcHpfc2V0X21weihmbXB6X21hdF9lbnRyeShzZWxmLl9tYXRyaXgsIHNlLmksIHNlLmop LCB6LnZhbHVlKQorIAorLSAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQ eV9zc2l6ZV90IGosIG9iamVjdCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXRfdW5zYWZlKHNl bGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBvYmplY3QgeCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFNldCBwb3NpdGlvbiBpLGogb2YgdGhpcyBtYXRyaXggdG8gYGB4YGAuCisgCitA QCAtMzc2LDcgKzM3Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfZGVuc2UoTWF0cml4 X2RlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgZm1wel9zZXRfZChmbXB6X21hdF9lbnRy eShzZWxmLl9tYXRyaXgsaSxqKSwgdmFsdWUpCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vu c2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgKGksIGopIGVudHJ5IG9mIHNlbGYgYXMgYSBuZXcgSW50ZWdlci4K KyAKK0BAIC00OTIsNyArNDkyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShN YXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcGlja2xl X3ZlcnNpb24wKCksIDAKKyAKKy0gICAgY2RlZiBfcGlja2xlX3ZlcnNpb24wKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9waWNrbGVfdmVyc2lvbjAoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC01MDIsNyArNTAyLDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gc3RyX3RvX2J5dGVzKHNlbGYuX2V4cG9ydF9hc19zdHJpbmcoMzIpLCAnYXNjaWknKQor IAorLSAgICBjcGRlZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmLCBpbnQgYmFzZT0xMCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9leHBvcnRfYXNfc3RyaW5nKHNlbGYsIGludCBiYXNlPTEwKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2YgdGhl IGVudHJpZXMgaW4gdGhpcyBtYXRyaXgsIGluIHRoZQorICAgICAgICAgZ2l2ZW4gYmFzZS4gVGhp cyBpcyBvcHRpbWl6ZWQgZm9yIHNwZWVkLgorQEAgLTU4Nyw3ICs1ODcsNyBAQCBjZGVmIGNsYXNz IE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidW5rbm93biBtYXRyaXggdmVyc2lvbiAoPSVz KSIldmVyc2lvbikKKyAKKy0gICAgY2RlZiBfdW5waWNrbGVfdmVyc2lvbjAoc2VsZiwgZGF0YSkg bm9leGNlcHQ6CisrICAgIGNkZWYgX3VucGlja2xlX3ZlcnNpb24wKHNlbGYsIGRhdGEpOgorICAg ICAgICAgY2RlZiBQeV9zc2l6ZV90IGksIGosIG4sIGsKKyAgICAgICAgIGRhdGEgPSBkYXRhLnNw bGl0KCkKKyAgICAgICAgIG4gPSBzZWxmLl9ucm93cyAqIHNlbGYuX25jb2xzCitAQCAtNjEzLDcg KzYxMyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfZGVuc2UoTWF0cml4X2RlbnNlKToK KyAgICAgIyBMRVZFTCAxIGhlbHBlcnM6CisgICAgICMgICBUaGVzZSBmdW5jdGlvbiBzdXBwb3J0 IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbGV2ZWwgMSBmdW5jdGlvbmFsaXR5LgorICAgICAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKy0gICAgY2RlZiBNYXRyaXhfaW50ZWdlcl9kZW5zZSBfbmV3KHNlbGYs IFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0OgorKyAgICBjZGVm IE1hdHJpeF9pbnRlZ2VyX2RlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVfdCBucm93cywgUHlfc3Np emVfdCBuY29scyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBtYXRyaXgg b3ZlciB0aGUgaW50ZWdlcnMgZnJvbSBnaXZlbiBwYXJlbnQKKyAgICAgICAgIEFsbCBtZW1vcnkg aXMgYWxsb2NhdGVkIGZvciB0aGlzIG1hdHJpeCwgYnV0IGl0cworQEAgLTgyMiw3ICs4MjIsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAg ICBmbXB6X2NsZWFyKHMpCisgICAgICAgICByZXR1cm4gTQorIAorLSAgICBjZGVmIHNhZ2Uuc3Ry dWN0dXJlLmVsZW1lbnQuTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBzYWdlLnN0 cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2FnZS5z dHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IHJpZ2h0KToKKyAgICAgICAgIGNkZWYgTWF0cml4X2lu dGVnZXJfZGVuc2UgTQorIAorICAgICAgICAgaWYgc2VsZi5fbmNvbHMgIT0gcmlnaHQuX25yb3dz OgorQEAgLTgzNSw3ICs4MzUsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1h dHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBNCisgCist ICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBF WEFNUExFUzo6CisgCitAQCAtODU1LDcgKzg1NSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVn ZXJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIE0KKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0d28g ZGVuc2UgbWF0cmljZXMgb3ZlciBaWi4KKyAKK0BAIC04ODAsNyArODgwLDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigp CisgICAgICAgICByZXR1cm4gTQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAg ICAgICAgU3VidHJhY3QgdHdvIGRlbnNlIG1hdHJpY2VzIG92ZXIgWlouCisgCitAQCAtMTAyMCw3 ICsxMDIwLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2Up OgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gTQorIAorLSAgICBjcGRlZiBf cmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNo Y21wXyhzZWxmLCByaWdodCwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBh cmUgYGBzZWxmYGAgd2l0aCBgYHJpZ2h0YGAsIGV4YW1pbmluZyBlbnRyaWVzIGluCisgICAgICAg ICBsZXhpY29ncmFwaGljIChyb3cgbWFqb3IpIG9yZGVyaW5nLgorQEAgLTEwNTQsNyArMTA1NCw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAg ICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIDApCisgCisgICAgICMgVE9ETzogSW1wbGVtZW50 IGJldHRlcgorLSAgICBjZGVmIF92ZWN0b3JfdGltZXNfbWF0cml4XyhzZWxmLCBWZWN0b3Igdikg bm9leGNlcHQ6CisrICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNlbGYsIFZlY3RvciB2 KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2ZWN0b3IgdGltZXMgbWF0cml4 IHByb2R1Y3QuCisgCitAQCAtMTU3OSw3ICsxNTc5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50 ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5fbW9kX2ludF9jKG1vZHVsdXMpCisgCistICAgIGNkZWYgX21vZF90d28oc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNkZWYgX21vZF90d28oc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFRFU1RTOgorIAorQEAgLTE1OTMsNyArMTU5Myw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 X2ludGVnZXJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIE1TID0gbWF0cml4X3NwYWNl Lk1hdHJpeFNwYWNlKEdGKDIpLCBzZWxmLl9ucm93cywgc2VsZi5fbmNvbHMpCisgICAgICAgICBy ZXR1cm4gTWF0cml4X21vZDJfZGVuc2UoTVMsIHNlbGYsIFRydWUsIFRydWUpCisgCistICAgIGNk ZWYgX21vZF9pbnRfYyhzZWxmLCBtb2RfaW50IHApIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tb2Rf aW50X2Moc2VsZiwgbW9kX2ludCBwKToKKyAgICAgICAgIGZyb20gc2FnZS5tYXRyaXgubWF0cml4 X21vZG5fZGVuc2VfZmxvYXQgaW1wb3J0IE1BWF9NT0RVTFVTIGFzIE1BWF9NT0RVTFVTX0ZMT0FU CisgICAgICAgICBmcm9tIHNhZ2UubWF0cml4Lm1hdHJpeF9tb2RuX2RlbnNlX2RvdWJsZSBpbXBv cnQgTUFYX01PRFVMVVMgYXMgTUFYX01PRFVMVVNfRE9VQkxFCisgCitAQCAtMTY4MCw3ICsxNjgw LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAg ICAgICAgc2lnX2ZyZWUoZW50cnlfbGlzdCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAg Y3BkZWYgX2VjaGVsb25faW5fcGxhY2Uoc2VsZiwgc3RyIGFsZ29yaXRobSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9lY2hlbG9uX2luX3BsYWNlKHNlbGYsIHN0ciBhbGdvcml0aG0pOgorICAgICAg ICAgY2RlZiBNYXRyaXhfaW50ZWdlcl9kZW5zZSBFCisgICAgICAgICBFID0gc2VsZi5lY2hlbG9u X2Zvcm0oKQorICAgICAgICAgc2lnX29uKCkKK0BAIC01MzAxLDcgKzUzMDEsNyBAQCBjZGVmIGNs YXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAgICAgZm1w el9nZXRfbXB6KHYuX2VudHJpZXNbal0sIGZtcHpfbWF0X2VudHJ5KHNlbGYuX21hdHJpeCwgaiwg aSkpCisgICAgICAgICByZXR1cm4gdgorIAorLSAgICBjZGVmIF9zdGFja19pbXBsKHNlbGYsIGJv dHRvbSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbWF0cml4IGBgc2VsZmBgIG9uIHRvcCBv ZiBgYGJvdHRvbWBgOjoKKyAKK0BAIC02MDE1LDcgKzYwMTUsNyBAQCBjZGVmIGlubGluZSBHRU4g cGFyaV9HRU4oTWF0cml4X2ludGVnZXJfZGVuc2UgQikgbm9leGNlcHQ6CisgICAgIHJldHVybiBB CisgCisgCistY2RlZiBleHRyYWN0X2huZl9mcm9tX3BhcmlfbWF0cml4KE1hdHJpeF9pbnRlZ2Vy X2RlbnNlIHNlbGYsIEdlbiBILCBiaW50IGluY2x1ZGVfemVyb19yb3dzKSBub2V4Y2VwdDoKKytj ZGVmIGV4dHJhY3RfaG5mX2Zyb21fcGFyaV9tYXRyaXgoTWF0cml4X2ludGVnZXJfZGVuc2Ugc2Vs ZiwgR2VuIEgsIGJpbnQgaW5jbHVkZV96ZXJvX3Jvd3MpOgorICAgICBjZGVmIG1wel90IHRtcAor ICAgICBtcHpfaW5pdCh0bXApCisgCitAQCAtNjAzNyw3ICs2MDM3LDcgQEAgY2RlZiBleHRyYWN0 X2huZl9mcm9tX3BhcmlfbWF0cml4KE1hdHJpeF9pbnRlZ2VyX2RlbnNlIHNlbGYsIEdlbiBILCBi aW50IGluY2x1ZGUKKyAgICAgcmV0dXJuIEIKKyAKKyAKKy1jZGVmIF9jbGVhcl9jb2x1bW5zKE1h dHJpeF9pbnRlZ2VyX2RlbnNlIEEsIHBpdm90cywgUHlfc3NpemVfdCBuKSBub2V4Y2VwdDoKKytj ZGVmIF9jbGVhcl9jb2x1bW5zKE1hdHJpeF9pbnRlZ2VyX2RlbnNlIEEsIHBpdm90cywgUHlfc3Np emVfdCBuKToKKyAgICAgIyBDbGVhciBhbGwgY29sdW1ucworICAgICBjZGVmIFB5X3NzaXplX3Qg aSwgaywgcCwgbCwgbSA9IEEuX25jb2xzCisgICAgIGNkZWYgZm1wel90IGMsdAorQEAgLTYwNjAs NyArNjA2MCw3IEBAIGNkZWYgX2NsZWFyX2NvbHVtbnMoTWF0cml4X2ludGVnZXJfZGVuc2UgQSwg cGl2b3RzLCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0OgorICAgICBzaWdfb2ZmKCkKKyAKKyAKKy1j cGRlZiBfbGlmdF9jcnQoTWF0cml4X2ludGVnZXJfZGVuc2UgTSwgcmVzaWR1ZXMsIG1vZHVsaT1O b25lKSBub2V4Y2VwdDoKKytjcGRlZiBfbGlmdF9jcnQoTWF0cml4X2ludGVnZXJfZGVuc2UgTSwg cmVzaWR1ZXMsIG1vZHVsaT1Ob25lKToKKyAgICAgIiIiCisgICAgIElOUFVUOgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9zcGFyc2UucHhkIGIvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX3NwYXJzZS5weGQKK2luZGV4IGZhMTMwZjllNjgwLi5m YmZhOWM5YTc5MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9z cGFyc2UucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfc3BhcnNlLnB4 ZAorQEAgLTUsNCArNSw0IEBAIGZyb20gc2FnZS5tYXRyaXgubWF0cml4X3NwYXJzZSBjaW1wb3J0 IE1hdHJpeF9zcGFyc2UKKyBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX3NwYXJzZShNYXRyaXhf c3BhcnNlKToKKyAgICAgY2RlZiBtcHpfdmVjdG9yKiBfbWF0cml4CisgCistICAgIGNkZWYgX21v ZF9pbnRfYyhzZWxmLCBtb2RfaW50IHApIG5vZXhjZXB0CisrICAgIGNkZWYgX21vZF9pbnRfYyhz ZWxmLCBtb2RfaW50IHApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRl Z2VyX3NwYXJzZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfc3BhcnNlLnB5 eAoraW5kZXggMTVhZmQwM2MxNzkuLjMxYzZjMWU5ZDFhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bWF0cml4L21hdHJpeF9pbnRlZ2VyX3NwYXJzZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfaW50ZWdlcl9zcGFyc2UucHl4CitAQCAtMTEwLDEwICsxMTAsMTAgQEAgY2RlZiBjbGFz cyBNYXRyaXhfaW50ZWdlcl9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICAgICAgaWYg ejoKKyAgICAgICAgICAgICAgICAgbXB6X3ZlY3Rvcl9zZXRfZW50cnkoJnNlbGYuX21hdHJpeFtz ZS5pXSwgc2Uuaiwgei52YWx1ZSkKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3Nz aXplX3QgaSwgUHlfc3NpemVfdCBqLCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXRfdW5zYWZl KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB4KToKKyAgICAgICAgIG1wel92ZWN0 b3Jfc2V0X2VudHJ5KCZzZWxmLl9tYXRyaXhbaV0sIGosICg8SW50ZWdlcj4geCkudmFsdWUpCisg CistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikg bm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3Nz aXplX3Qgaik6CisgICAgICAgICBjZGVmIEludGVnZXIgeAorICAgICAgICAgeCA9IEludGVnZXIo KQorICAgICAgICAgbXB6X3ZlY3Rvcl9nZXRfZW50cnkoeC52YWx1ZSwgJnNlbGYuX21hdHJpeFtp XSwgaikKK0BAIC0xNjAsNyArMTYwLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9zcGFy c2UoTWF0cml4X3NwYXJzZSk6CisgICAgICMgZGVmIF9tdWx0aXBseV9jbGFzc2ljYWwobGVmdCwg bWF0cml4Lk1hdHJpeCBfcmlnaHQpOgorICAgICAjIGRlZiBfbGlzdChzZWxmKToKKyAKKy0gICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC0xODIsNyArMTgyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9z cGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICAgICAgbXB6X3ZlY3Rvcl9zY2FsYXJfbXVs dGlwbHkoTV9yb3csIHNlbGZfcm93LCBfeC52YWx1ZSkKKyAgICAgICAgIHJldHVybiBNCisgCist ICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAgICAgICAgIGNkZWYg TWF0cml4X2ludGVnZXJfc3BhcnNlIE0KKyAKK0BAIC0xOTYsNyArMTk2LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfaW50ZWdlcl9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICBtcHpfY2xl YXIobXVsKQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICBj ZGVmIFB5X3NzaXplX3QgaQorICAgICAgICAgY2RlZiBNYXRyaXhfaW50ZWdlcl9zcGFyc2UgTQor IAorQEAgLTIzMSw3ICsyMzEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX3NwYXJzZShN YXRyaXhfc3BhcnNlKToKKyAgICAgICAgIHNlbGYuY2FjaGUoJ2RpY3QnLCBkKQorICAgICAgICAg cmV0dXJuIGQKKyAKKy0gICAgY2RlZiBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCBfbWF0 cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggX3Jp Z2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCBf bWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgg X3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRo ZSBzcGFyc2UgaW50ZWdlciBtYXRyaWNlcworICAgICAgICAgYGBzZWxmYGAgYW5kIGBgX3JpZ2h0 YGAuCitAQCAtMzgxLDcgKzM4MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfc3BhcnNl KE1hdHJpeF9zcGFyc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbW9k X2ludF9jKG1vZHVsdXMpCisgCistICAgIGNkZWYgX21vZF9pbnRfYyhzZWxmLCBtb2RfaW50IHAp IG5vZXhjZXB0OgorKyAgICBjZGVmIF9tb2RfaW50X2Moc2VsZiwgbW9kX2ludCBwKToKKyAgICAg ICAgIGNkZWYgUHlfc3NpemVfdCBpLCBqCisgICAgICAgICBjZGVmIE1hdHJpeF9tb2RuX3NwYXJz ZSByZXMKKyAgICAgICAgIGNkZWYgbXB6X3ZlY3Rvciogc2VsZl9yb3cKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZDJfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21h dHJpeF9tb2QyX2RlbnNlLnB4ZAoraW5kZXggODJkZjgxMTZhNWMuLmVhMzU3NWVmM2JlIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2QyX2RlbnNlLnB4ZAorKysrIGIvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9tb2QyX2RlbnNlLnB4ZAorQEAgLTYsOCArNiw4IEBAIGNkZWYg Y2xhc3MgTWF0cml4X21vZDJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgY2RlZiBvYmplY3Qg X29uZQorICAgICBjZGVmIG9iamVjdCBfemVybworIAorLSAgICBjcGRlZiBNYXRyaXhfbW9kMl9k ZW5zZSBfbXVsdGlwbHlfbTRybShNYXRyaXhfbW9kMl9kZW5zZSBzZWxmLCBNYXRyaXhfbW9kMl9k ZW5zZSByaWdodCwgaW50IGspIG5vZXhjZXB0CistICAgIGNwZGVmIE1hdHJpeF9tb2QyX2RlbnNl IF9tdWx0aXBseV9zdHJhc3NlbihNYXRyaXhfbW9kMl9kZW5zZSBzZWxmLCBNYXRyaXhfbW9kMl9k ZW5zZSByaWdodCwgaW50IGN1dG9mZikgbm9leGNlcHQKKysgICAgY3BkZWYgTWF0cml4X21vZDJf ZGVuc2UgX211bHRpcGx5X200cm0oTWF0cml4X21vZDJfZGVuc2Ugc2VsZiwgTWF0cml4X21vZDJf ZGVuc2UgcmlnaHQsIGludCBrKQorKyAgICBjcGRlZiBNYXRyaXhfbW9kMl9kZW5zZSBfbXVsdGlw bHlfc3RyYXNzZW4oTWF0cml4X21vZDJfZGVuc2Ugc2VsZiwgTWF0cml4X21vZDJfZGVuc2Ugcmln aHQsIGludCBjdXRvZmYpCisgCisgICAgICMgRm9yIGNvbnZlcnNpb24gdG8gb3RoZXIgc3lzdGVt cworLSAgICBjcGRlZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRl ZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfbW9kMl9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZDJfZGVuc2Uu cHl4CitpbmRleCA3ZjUyYzEzZGQ1NC4uOWRkOWZmY2Y2YjggMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X21vZDJfZGVuc2UucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X21vZDJfZGVuc2UucHl4CitAQCAtMzM1LDEwICszMzUsMTAgQEAgY2RlZiBjbGFzcyBNYXRy aXhfbW9kMl9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9yIHNw YXJzZQorICAgICAgICAgIiIiCisgICAgICAgICBtemRfd3JpdGVfYml0KHNlbGYuX2VudHJpZXMs IGksIGosIGludCh2YWx1ZSkpCisgCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6 ZV90IGksIFB5X3NzaXplX3QgaiwgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNh ZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHZhbHVlKToKKyAgICAgICAgIG16 ZF93cml0ZV9iaXQoc2VsZi5fZW50cmllcywgaSwgaiwgaW50KHZhbHVlKSkKKyAKKy0gICAgY2Rl ZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoK KysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToK KyAgICAgICAgIGlmIG16ZF9yZWFkX2JpdChzZWxmLl9lbnRyaWVzLCBpLCBqKToKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZi5fb25lCisgICAgICAgICBlbHNlOgorQEAgLTUyMSw3ICs1MjEsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2Up OiAgICMgZGVuc2Ugb3Igc3BhcnNlCisgICAgICMgZGVmIF9waWNrbGUoc2VsZik6CisgICAgICMg ZGVmIF91bnBpY2tsZShzZWxmLCBkYXRhLCBpbnQgdmVyc2lvbik6ICAgIyB1c2UgdmVyc2lvbiA+ PSAwCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNYXRyaXggYWRk aXRpb24uCisgCitAQCAtNTU5LDcgKzU1OSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZDJfZGVu c2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6ICAgIyBkZW5zZSBvciBzcGFyc2UKKyAKKyAg ICAgICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBNYXRyaXggYWRkaXRpb24uCisgCitAQCAtNTc1LDcgKzU3NSw3IEBAIGNkZWYgY2xhc3MgTWF0 cml4X21vZDJfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6ICAgIyBkZW5zZSBvciBz cGFyc2UKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2FkZF8ocmlnaHQpCisg CistICAgIGNkZWYgX21hdHJpeF90aW1lc192ZWN0b3JfKHNlbGYsIFZlY3RvciB2KSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfbWF0cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZiwgVmVjdG9yIHYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNjMzLDcgKzYzMyw3IEBAIGNk ZWYgY2xhc3MgTWF0cml4X21vZDJfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6ICAg IyBkZW5zZSBvciBzcGFyc2UKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIGMK KyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgTWF0cml4IHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgTWF0cml4IHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTWF0cml4IG11bHRpcGxpY2F0aW9uLgorIAor QEAgLTY0Niw3ICs2NDYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2RlbnNlKG1hdHJpeF9k ZW5zZS5NYXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Igc3BhcnNlCisgCisgICAgICAgICByZXR1 cm4gc2VsZi5fbXVsdGlwbHlfc3RyYXNzZW4ocmlnaHQsIDApCisgCistICAgIGNwZGVmIE1hdHJp eF9tb2QyX2RlbnNlIF9tdWx0aXBseV9tNHJtKE1hdHJpeF9tb2QyX2RlbnNlIHNlbGYsIE1hdHJp eF9tb2QyX2RlbnNlIHJpZ2h0LCBpbnQgaykgbm9leGNlcHQ6CisrICAgIGNwZGVmIE1hdHJpeF9t b2QyX2RlbnNlIF9tdWx0aXBseV9tNHJtKE1hdHJpeF9tb2QyX2RlbnNlIHNlbGYsIE1hdHJpeF9t b2QyX2RlbnNlIHJpZ2h0LCBpbnQgayk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5 IG1hdHJpY2VzIHVzaW5nIHRoZSAnTWV0aG9kIG9mIHRoZSBGb3VyIFJ1c3NpYW5zCisgICAgICAg ICBNdWx0aXBsaWNhdGlvbicgKE00Uk0pIG9yIEtvbnJvZCdzIG1ldGhvZC4KK0BAIC03NzUsNyAr Nzc1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kMl9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4 X2RlbnNlKTogICAjIGRlbnNlIG9yIHNwYXJzZQorICAgICAgICAgQS5fZW50cmllcyA9IG16ZF9t dWxfbmFpdmUoQS5fZW50cmllcywgc2VsZi5fZW50cmllcywoPE1hdHJpeF9tb2QyX2RlbnNlPnJp Z2h0KS5fZW50cmllcykKKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIE1hdHJpeF9t b2QyX2RlbnNlIF9tdWx0aXBseV9zdHJhc3NlbihNYXRyaXhfbW9kMl9kZW5zZSBzZWxmLCBNYXRy aXhfbW9kMl9kZW5zZSByaWdodCwgaW50IGN1dG9mZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIE1h dHJpeF9tb2QyX2RlbnNlIF9tdWx0aXBseV9zdHJhc3NlbihNYXRyaXhfbW9kMl9kZW5zZSBzZWxm LCBNYXRyaXhfbW9kMl9kZW5zZSByaWdodCwgaW50IGN1dG9mZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBTdHJhc3Nlbi1XaW5vZ3JhZCBgTyhuXnsyLjgwN30pYCBtdWx0aXBsaWNhdGlvbiBb U3RyMTk2OV1fLgorIAorQEAgLTEyNTAsNyArMTI1MCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21v ZDJfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6ICAgIyBkZW5zZSBvciBzcGFyc2UK KyAgICAgICAgICAgICAgICAgICAgICAgICBtemRfd3JpdGVfYml0KHNlbGYuX2VudHJpZXMsIGks IGosIDEpCisgICAgICAgICAgICAgc2lnX29mZigpCisgCistICAgIGNkZWYgcmVzY2FsZV9yb3df YyhzZWxmLCBQeV9zc2l6ZV90IHJvdywgbXVsdGlwbGUsIFB5X3NzaXplX3Qgc3RhcnRfY29sKSBu b2V4Y2VwdDoKKysgICAgY2RlZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5X3NzaXplX3Qgcm93LCBt dWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9jb2wpOgorICAgICAgICAgIiIiCisgICAgICAgICBF WEFNUExFUzo6CisgCitAQCAtMTI2Myw3ICsxMjYzLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9k Ml9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9yIHNwYXJzZQor ICAgICAgICAgICAgIG16ZF9yb3dfY2xlYXJfb2Zmc2V0KHNlbGYuX2VudHJpZXMsIHJvdywgc3Rh cnRfY29sKQorIAorICAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9yb3dfYyhzZWxmLCBQeV9zc2l6 ZV90IHJvd190bywgUHlfc3NpemVfdCByb3dfZnJvbSwgbXVsdGlwbGUsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnRfY29sKSBub2V4Y2VwdDoKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydF9jb2wpOgorICAgICAg ICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTI3Niw3ICsxMjc2LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhfbW9kMl9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAj IGRlbnNlIG9yIHNwYXJzZQorICAgICAgICAgaWYgaW50KG11bHRpcGxlKSAlIDI6CisgICAgICAg ICAgICAgbXpkX3Jvd19hZGRfb2Zmc2V0KHNlbGYuX2VudHJpZXMsIHJvd190bywgcm93X2Zyb20s IHN0YXJ0X2NvbCkKKyAKKy0gICAgY2RlZiBzd2FwX3Jvd3NfYyhzZWxmLCBQeV9zc2l6ZV90IHJv dzEsIFB5X3NzaXplX3Qgcm93Mikgbm9leGNlcHQ6CisrICAgIGNkZWYgc3dhcF9yb3dzX2Moc2Vs ZiwgUHlfc3NpemVfdCByb3cxLCBQeV9zc2l6ZV90IHJvdzIpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFWEFNUExFUzo6CisgCitAQCAtMTI5Miw3ICsxMjkyLDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfbW9kMl9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9yIHNw YXJzZQorICAgICAgICAgIiIiCisgICAgICAgICBtemRfcm93X3N3YXAoc2VsZi5fZW50cmllcywg cm93MSwgcm93MikKKyAKKy0gICAgY2RlZiBzd2FwX2NvbHVtbnNfYyhzZWxmLCBQeV9zc2l6ZV90 IGNvbDEsIFB5X3NzaXplX3QgY29sMikgbm9leGNlcHQ6CisrICAgIGNkZWYgc3dhcF9jb2x1bW5z X2Moc2VsZiwgUHlfc3NpemVfdCBjb2wxLCBQeV9zc2l6ZV90IGNvbDIpOgorICAgICAgICAgIiIi CisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTQyMiw3ICsxNDIyLDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfbW9kMl9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNl IG9yIHNwYXJzZQorICAgICAgICAgICAgIEEuc3ViZGl2aWRlKCpzZWxmLnN1YmRpdmlzaW9ucygp KQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0 LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGlu dCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgYGBzZWxmYGAgd2l0aCBgYHJp Z2h0YGAuCisgCitAQCAtMTU3MSw3ICsxNTcxLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kMl9k ZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9yIHNwYXJzZQorICAg ICAgICAgICAgIFouX3N1YmRpdmlkZV9vbl9hdWdtZW50KHNlbGYsIG90aGVyKQorICAgICAgICAg cmV0dXJuIFoKKyAKKy0gICAgY2RlZiBfc3RhY2tfaW1wbChzZWxmLCBib3R0b20pIG5vZXhjZXB0 OgorKyAgICBjZGVmIF9zdGFja19pbXBsKHNlbGYsIGJvdHRvbSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBTdGFjayBgYHNlbGZgYCBvbiB0b3Agb2YgYGBib3R0b21gYC4KKyAKK0BAIC0xNzU4 LDcgKzE3NTgsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2RlbnNlKG1hdHJpeF9kZW5zZS5N YXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Igc3BhcnNlCisgICAgICAgICBnZEltYWdlRGVzdHJv eShpbSkKKyAgICAgICAgIHJldHVybiB1bnBpY2tsZV9tYXRyaXhfbW9kMl9kZW5zZV92MiwgKHIs YywgZGF0YSwgc2l6ZSwgc2VsZi5faXNfaW1tdXRhYmxlKQorIAorLSAgICBjcGRlZiBfZXhwb3J0 X2FzX3N0cmluZyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2V4cG9ydF9hc19zdHJpbmco c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBzcGFjZSBzZXBhcmF0ZWQgc3Ry aW5nIG9mIHRoZSBlbnRyaWVzIGluIHRoaXMgbWF0cml4LgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfbW9kbl9kZW5zZV9kb3VibGUucHl4IGIvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeF9tb2RuX2RlbnNlX2RvdWJsZS5weXgKK2luZGV4IDg1OGMzZmNiODg3Li5iMTEyZmZi YTkxMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kbl9kZW5zZV9kb3Vi bGUucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVuc2VfZG91YmxlLnB5 eAorQEAgLTEwMSw3ICsxMDEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX2RvdWJs ZShNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHNl bGYuX21hdHJpeFtpXVtqXSA9IDxkb3VibGU+dmFsdWUKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZl KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB4KSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB4KToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFNldCB0aGUgKGksaikgZW50cnkgd2l0aCBubyBib3VuZHMtY2hl Y2tpbmcsIG9yIGFueSBvdGhlciBjaGVja3MuCisgCitAQCAtMTM2LDcgKzEzNiw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4X21vZG5fZGVuc2VfZG91YmxlKE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRl KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5fbWF0cml4W2ldW2pdID0gPGRv dWJsZT4oPEludGVnZXJNb2RfaW50NjQ+eCkuaXZhbHVlCisgCistICAgIGNkZWYgSW50ZWdlck1v ZF9hYnN0cmFjdCBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBJbnRlZ2VyTW9kX2Fic3RyYWN0IGdldF91bnNhZmUoc2VsZiwg UHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSAoaSxqKSBlbnRyeSB3aXRoIG5vIGJvdW5kcy1jaGVja2luZy4KKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVuc2VfZmxvYXQucHl4IGIvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9tb2RuX2RlbnNlX2Zsb2F0LnB5eAoraW5kZXggMzI1ZTQ5MmY1ZmIu LjczZmJlMTc1ZDk1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2RuX2Rl bnNlX2Zsb2F0LnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2RuX2RlbnNlX2Zs b2F0LnB5eAorQEAgLTkxLDcgKzkxLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kbl9kZW5zZV9m bG9hdChNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IHNlbGYuX21hdHJpeFtpXVtqXSA9IDxmbG9hdD52YWx1ZQorIAorLSAgICBjZGVmIHNldF91bnNh ZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpIG5vZXhjZXB0OgorKyAgICBj ZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpOgorICAg ICAgICAgciIiIgorICAgICAgICAgU2V0IHRoZSAoaSxqKSBlbnRyeSB3aXRoIG5vIGJvdW5kcy1j aGVja2luZywgb3IgYW55IG90aGVyIGNoZWNrcy4KKyAKK0BAIC0xMjEsNyArMTIxLDcgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhfbW9kbl9kZW5zZV9mbG9hdChNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0 ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHNlbGYuX21hdHJpeFtpXVtqXSA9IDxmbG9hdD4o PEludGVnZXJNb2RfaW50PngpLml2YWx1ZQorIAorLSAgICBjZGVmIEludGVnZXJNb2RfaW50IGdl dF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0OgorKyAg ICBjZGVmIEludGVnZXJNb2RfaW50IGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGopOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoaSxqKSBlbnRy eSB3aXRoIG5vIGJvdW5kcy1jaGVja2luZy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9tb2RuX2RlbnNlX3RlbXBsYXRlLnB4aQoraW5kZXggYzg1MTc2ZDU4M2IuLjA4ZjAxMjA1ZGEx IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRl LnB4aQorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlLnB4 aQorQEAgLTEzMSw3ICsxMzEsNyBAQCBmcm9tIHNhZ2UuY3B5dGhvbi5zdHJpbmcgY2ltcG9ydCBj aGFyX3RvX3N0cgorIGNkZWYgbG9uZyBudW0gPSAxCisgY2RlZiBiaW50IGxpdHRsZV9lbmRpYW4g PSAoPGNoYXIqPigmbnVtKSlbMF0KKyAKKy1jZGVmIGlubGluZSBjZWxlbWVudF9pbnZlcnQoY2Vs ZW1lbnQgYSwgY2VsZW1lbnQgbikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY2VsZW1lbnRfaW52 ZXJ0KGNlbGVtZW50IGEsIGNlbGVtZW50IG4pOgorICAgICAiIiIKKyAgICAgSW52ZXJ0IHRoZSBm aW5pdGUgZmllbGQgZWxlbWVudCBgYWAgbW9kdWxvIGBuYC4KKyAgICAgIiIiCitAQCAtMTcyLDcg KzE3Miw3IEBAIGNkZWYgaW5saW5lIGJpbnQgbGluYm94X2lzX3plcm8oY2VsZW1lbnQgbW9kdWx1 cywgY2VsZW1lbnQqIGVudHJpZXMsIFB5X3NzaXplX3QKKyAgICAgICAgICAgICAgICAgcmV0dXJu IDAKKyAgICAgcmV0dXJuIDEKKyAKKy1jZGVmIGlubGluZSBsaW5ib3hfZWNoZWxvbml6ZShjZWxl bWVudCBtb2R1bHVzLCBjZWxlbWVudCogZW50cmllcywgUHlfc3NpemVfdCBucm93cywgUHlfc3Np emVfdCBuY29scykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgbGluYm94X2VjaGVsb25pemUoY2Vs ZW1lbnQgbW9kdWx1cywgY2VsZW1lbnQqIGVudHJpZXMsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3Nz aXplX3QgbmNvbHMpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSByZWR1Y2VkIHJvdyBlY2hl bG9uIGZvcm0gb2YgdGhpcyBtYXRyaXguCisgICAgICIiIgorQEAgLTIxMyw3ICsyMTMsNyBAQCBj ZGVmIGlubGluZSBsaW5ib3hfZWNoZWxvbml6ZShjZWxlbWVudCBtb2R1bHVzLCBjZWxlbWVudCog ZW50cmllcywgUHlfc3NpemVfdCBucgorICAgICBkZWwgRgorICAgICByZXR1cm4gciwgcGl2b3Rz CisgCistY2RlZiBpbmxpbmUgbGluYm94X2VjaGVsb25pemVfZWZkKGNlbGVtZW50IG1vZHVsdXMs IGNlbGVtZW50KiBlbnRyaWVzLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKSBu b2V4Y2VwdDoKKytjZGVmIGlubGluZSBsaW5ib3hfZWNoZWxvbml6ZV9lZmQoY2VsZW1lbnQgbW9k dWx1cywgY2VsZW1lbnQqIGVudHJpZXMsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNv bHMpOgorICAgICAjIFNlZSB0cmFjICMxMzg3ODogVGhpcyBpcyB0byBhdm9pZCBzZW5kaW5nIGlu dmFsaWQgZGF0YSB0byBsaW5ib3gsCisgICAgICMgd2hpY2ggd291bGQgeWllbGQgYSBzZWdmYXVs dCBpbiBTYWdlJ3MgZGVidWcgdmVyc2lvbi4gVE9ETzogRml4CisgICAgICMgdGhhdCBidWcgdXBz dHJlYW0uCitAQCAtMzQ3LDcgKzM0Nyw3IEBAIGNkZWYgaW5saW5lIGludCBsaW5ib3hfbWF0cml4 X3ZlY3Rvcl9tdWx0aXBseShjZWxlbWVudCBtb2R1bHVzLCBjZWxlbWVudCogQywgY2VsCisgCisg ICAgIGRlbCBGCisgCistY2RlZiBpbmxpbmUgbGluYm94X21pbnBvbHkoY2VsZW1lbnQgbW9kdWx1 cywgUHlfc3NpemVfdCBucm93cywgY2VsZW1lbnQqIGVudHJpZXMpIG5vZXhjZXB0OgorK2NkZWYg aW5saW5lIGxpbmJveF9taW5wb2x5KGNlbGVtZW50IG1vZHVsdXMsIFB5X3NzaXplX3QgbnJvd3Ms IGNlbGVtZW50KiBlbnRyaWVzKToKKyAgICAgIiIiCisgICAgIENvbXB1dGUgdGhlIG1pbmltYWwg cG9seW5vbWlhbC4KKyAgICAgIiIiCitAQCAtMzY4LDcgKzM2OCw3IEBAIGNkZWYgaW5saW5lIGxp bmJveF9taW5wb2x5KGNlbGVtZW50IG1vZHVsdXMsIFB5X3NzaXplX3QgbnJvd3MsIGNlbGVtZW50 KiBlbnRyaWVzCisgICAgIGRlbCBGCisgICAgIHJldHVybiBsCisgCistY2RlZiBpbmxpbmUgbGlu Ym94X2NoYXJwb2x5KGNlbGVtZW50IG1vZHVsdXMsIFB5X3NzaXplX3QgbnJvd3MsIGNlbGVtZW50 KiBlbnRyaWVzKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBsaW5ib3hfY2hhcnBvbHkoY2VsZW1l bnQgbW9kdWx1cywgUHlfc3NpemVfdCBucm93cywgY2VsZW1lbnQqIGVudHJpZXMpOgorICAgICAi IiIKKyAgICAgQ29tcHV0ZSB0aGUgY2hhcmFjdGVyaXN0aWMgIHBvbHlub21pYWwuCisgICAgICIi IgorQEAgLTM5Niw3ICszOTYsNyBAQCBjZGVmIGlubGluZSBsaW5ib3hfY2hhcnBvbHkoY2VsZW1l bnQgbW9kdWx1cywgUHlfc3NpemVfdCBucm93cywgY2VsZW1lbnQqIGVudHJpZQorICAgICByZXR1 cm4gbAorIAorIAorLWNwZGVmIF9fbWF0cml4X2Zyb21fcm93c19vZl9tYXRyaWNlcyhYKSBub2V4 Y2VwdDoKKytjcGRlZiBfX21hdHJpeF9mcm9tX3Jvd3Nfb2ZfbWF0cmljZXMoWCk6CisgICAgICIi IgorICAgICBSZXR1cm4gYSBtYXRyaXggd2hvc2Ugcm93IGBgaWBgIGlzIGNvbnN0cnVjdGVkIGZy b20gdGhlIGVudHJpZXMgb2YKKyAgICAgbWF0cml4IGBgWFtpXWBgLgorQEAgLTgwMiw3ICs4MDIs NyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6 CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBNCisgCistICAgIGNwZGVmIF9s bXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2Vs ZiwgRWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTg1Niw3ICs4NTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRl KE1hdHJpeF9kZW5zZSk6CisgICAgICAgICByZXR1cm4gQQorIAorIAorLSAgICBjcGRlZiBfYWRk XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIEFkZCB0d28gZGVuc2UgbWF0cmljZXMgb3ZlciBgXFov blxaYAorIAorQEAgLTkwMCw3ICs5MDAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNl X3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICByZXR1cm4gTQorIAorIAorLSAgICBj cGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYs IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byBkZW5zZSBtYXRy aWNlcyBvdmVyIGBcWi9uXFpgCisgCitAQCAtOTM2LDcgKzkzNiw3IEBAIGNkZWYgY2xhc3MgTWF0 cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0 LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGlu dCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wYXJlIHR3byBkZW5zZSBtYXRyaWNl cyBvdmVyIGBcWi9uXFpgLgorIAorQEAgLTk4OCw3ICs5ODgsNyBAQCBjZGVmIGNsYXNzIE1hdHJp eF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIDApCisgCistICAgIGNkZWYgX21hdHJp eF90aW1lc19tYXRyaXhfKHNlbGYsIE1hdHJpeCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYg X21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIE1hdHJpeCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBgYHNlbGYqcmlnaHRgYAorIAorQEAgLTExNDYsNyArMTE0Niw3IEBA IGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAK KyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8o c2VsZiwgVmVjdG9yIHYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF92ZWN0b3JfdGltZXNfbWF0cml4 XyhzZWxmLCBWZWN0b3Igdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIGBgdipzZWxmYGAKKyAK K0BAIC0xMjAzLDcgKzEyMDMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBs YXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfZnJlZShfYykKKyAgICAgICAgIHJldHVy biBjCisgCistICAgIGNkZWYgX21hdHJpeF90aW1lc192ZWN0b3JfKHNlbGYsIFZlY3RvciB2KSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZiwgVmVjdG9yIHYp OgorICAgICAgICAgIiIiCisgICAgICAgICBgYHNlbGYqdmBgCisgCitAQCAtMjI4Myw3ICsyMjgz LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZShNYXRyaXhfZGVuc2Up OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gTWF0cml4X2RlbnNlLmRldGVy bWluYW50KHNlbGYpCisgCistICAgIGNkZWYgeGdjZF9lbGltaW5hdGUoc2VsZiwgY2VsZW1lbnQg KiByb3cxLCBjZWxlbWVudCogcm93MiwgUHlfc3NpemVfdCBzdGFydF9jb2wpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHhnY2RfZWxpbWluYXRlKHNlbGYsIGNlbGVtZW50ICogcm93MSwgY2VsZW1lbnQq IHJvdzIsIFB5X3NzaXplX3Qgc3RhcnRfY29sKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl ZHVjZXMgYGByb3cxYGAgYW5kIGBgcm93MmBgIGJ5IGEgdW5pbW9kdWxhciB0cmFuc2Zvcm1hdGlv bgorICAgICAgICAgdXNpbmcgdGhlIHhnY2QgcmVsYXRpb24gYmV0d2VlbiB0aGVpciBmaXJzdCBj b2VmZmljaWVudHMgYGBhYGAgYW5kCitAQCAtMjMyNSw3ICsyMzI1LDcgQEAgY2RlZiBjbGFzcyBN YXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgICAgIHJv dzFbaV0gPSB0bXAKKyAgICAgICAgIHJldHVybiBnCisgCistICAgIGNkZWYgcmVzY2FsZV9yb3df YyhzZWxmLCBQeV9zc2l6ZV90IHJvdywgbXVsdGlwbGUsIFB5X3NzaXplX3Qgc3RhcnRfY29sKSBu b2V4Y2VwdDoKKysgICAgY2RlZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5X3NzaXplX3Qgcm93LCBt dWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9jb2wpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXNjYWxlIGBgc2VsZltyb3ddYGAgYnkgYGBtdWx0aXBsZWBgIGJ1dCBvbmx5IHN0YXJ0IGF0IGNv bHVtbgorICAgICAgICAgaW5kZXggYGBzdGFydF9jb2xgYC4KK0BAIC0yMzc2LDcgKzIzNzYsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6Cisg ICAgICAgICBmb3IgaSBmcm9tIHN0YXJ0X2NvbCA8PSBpIDwgc2VsZi5fbmNvbHM6CisgICAgICAg ICAgICAgdltpXSA9ICh2W2ldKjxjZWxlbWVudD5tdWx0aXBsZSkgJSBwCisgCistICAgIGNkZWYg cmVzY2FsZV9jb2xfYyhzZWxmLCBQeV9zc2l6ZV90IGNvbCwgbXVsdGlwbGUsIFB5X3NzaXplX3Qg c3RhcnRfcm93KSBub2V4Y2VwdDoKKysgICAgY2RlZiByZXNjYWxlX2NvbF9jKHNlbGYsIFB5X3Nz aXplX3QgY29sLCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9yb3cpOgorICAgICAgICAgIiIi CisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjQxOSw3ICsyNDE5LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgZm9y IGkgZnJvbSBzdGFydF9yb3cgPD0gaSA8IHNlbGYuX25yb3dzOgorICAgICAgICAgICAgIHNlbGYu X21hdHJpeFtpXVtjb2xdID0gKHNlbGYuX21hdHJpeFtpXVtjb2xdKjxjZWxlbWVudD5tdWx0aXBs ZSkgJSBwCisgCistICAgIGNkZWYgYWRkX211bHRpcGxlX29mX3Jvd19jKHNlbGYsIFB5X3NzaXpl X3Qgcm93X3RvLCBQeV9zc2l6ZV90IHJvd19mcm9tLCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFy dF9jb2wpIG5vZXhjZXB0OgorKyAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9yb3dfYyhzZWxmLCBQ eV9zc2l6ZV90IHJvd190bywgUHlfc3NpemVfdCByb3dfZnJvbSwgbXVsdGlwbGUsIFB5X3NzaXpl X3Qgc3RhcnRfY29sKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGBgbXVsdGlwbGVgYCB0 aW1lcyBgYHNlbGZbcm93X2Zyb21dYGAgdG8gYGBzZWxmW3Jvd190b11gYAorICAgICAgICAgc3Rh dHRpbmcgaW4gY29sdW1uIGBgc3RhcnRfY29sYGAuCitAQCAtMjQ1Niw3ICsyNDU2LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZShNYXRyaXhfZGVuc2UpOgorICAgICAg ICAgZm9yIGkgZnJvbSBzdGFydF9jb2wgPD0gaSA8IG5jOgorICAgICAgICAgICAgIHZfdG9baV0g PSAoKDxjZWxlbWVudD5tdWx0aXBsZSkgKiB2X2Zyb21baV0gKyAgdl90b1tpXSkgJSBwCisgCist ICAgIGNkZWYgYWRkX211bHRpcGxlX29mX2NvbHVtbl9jKHNlbGYsIFB5X3NzaXplX3QgY29sX3Rv LCBQeV9zc2l6ZV90IGNvbF9mcm9tLCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9yb3cpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9jb2x1bW5fYyhzZWxmLCBQeV9zc2l6 ZV90IGNvbF90bywgUHlfc3NpemVfdCBjb2xfZnJvbSwgbXVsdGlwbGUsIFB5X3NzaXplX3Qgc3Rh cnRfcm93KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGBgbXVsdGlwbGVgYCB0aW1lcyBg YHNlbGZbcm93X2Zyb21dYGAgdG8gYGBzZWxmW3Jvd190b11gYAorICAgICAgICAgc3RhdHRpbmcg aW4gY29sdW1uIGBgc3RhcnRfY29sYGAuCitAQCAtMjQ5MSw3ICsyNDkxLDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgZm9y IGkgZnJvbSBzdGFydF9yb3cgPD0gaSA8IHNlbGYuX25yb3dzOgorICAgICAgICAgICAgIG1baV1b Y29sX3RvXSA9IChtW2ldW2NvbF90b10gKyAoPGNlbGVtZW50Pm11bHRpcGxlKSAqIG1baV1bY29s X2Zyb21dKSAlcAorIAorLSAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3Qgcm93 MSwgUHlfc3NpemVfdCByb3cyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzd2FwX3Jvd3NfYyhzZWxm LCBQeV9zc2l6ZV90IHJvdzEsIFB5X3NzaXplX3Qgcm93Mik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNTA5LDcgKzI1MDksNyBAQCBjZGVmIGNsYXNzIE1hdHJp eF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAgICAgcjFbaV0g PSByMltpXQorICAgICAgICAgICAgIHIyW2ldID0gdGVtcAorIAorLSAgICBjZGVmIHN3YXBfY29s dW1uc19jKHNlbGYsIFB5X3NzaXplX3QgY29sMSwgUHlfc3NpemVfdCBjb2wyKSBub2V4Y2VwdDoK KysgICAgY2RlZiBzd2FwX2NvbHVtbnNfYyhzZWxmLCBQeV9zc2l6ZV90IGNvbDEsIFB5X3NzaXpl X3QgY29sMik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNjc4 LDcgKzI2NzgsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJp eF9kZW5zZSk6CisgICAgICAgICByZXR1cm4gJ01hdHJpeCglcywlcywlcyxTdHJpbmdUb0ludGVn ZXJTZXF1ZW5jZSgiJXMiKSknJSgKKyAgICAgICAgICAgICBzLCBzZWxmLl9ucm93cywgc2VsZi5f bmNvbHMsIHNlbGYuX2V4cG9ydF9hc19zdHJpbmcoKSkKKyAKKy0gICAgY3BkZWYgX2V4cG9ydF9h c19zdHJpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9leHBvcnRfYXNfc3RyaW5nKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gc3BhY2Ugc2VwYXJhdGVkIHN0cmlu ZyBvZiB0aGUgZW50cmllcyBpbiB0aGlzIG1hdHJpeC4KKyAKK0BAIC0yODMwLDcgKzI4MzAsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6Cisg CisgICAgICAgICByZXR1cm4gTQorIAorLSAgICBjZGVmIF9zdGFja19pbXBsKHNlbGYsIGJvdHRv bSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIDptZXRoOmBzdGFja2AgYnkgcmV0 dXJuaW5nIGEgbmV3IG1hdHJpeAorICAgICAgICAgZm9ybWVkIGJ5IGFwcGVuZGluZyB0aGUgbWF0 cml4IGBgYm90dG9tYGAgYmVuZWF0aCBgYHNlbGZgYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t YXRyaXgvbWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGVfaGVhZGVyLnB4aSBiL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZV9oZWFkZXIucHhpCitpbmRleCAxOGUxNDlm YjVkZS4uYjVmMTJjNjkzOTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21v ZG5fZGVuc2VfdGVtcGxhdGVfaGVhZGVyLnB4aQorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9tb2RuX2RlbnNlX3RlbXBsYXRlX2hlYWRlci5weGkKK0BAIC05LDYgKzksNiBAQCBjZGVmIGNs YXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgIGNkZWYg Y2VsZW1lbnQgKipfbWF0cml4CisgICAgIGNkZWYgY2VsZW1lbnQgKl9lbnRyaWVzCisgICAgIGNk ZWYgbW9kX2ludCBwCistICAgIGNkZWYgeGdjZF9lbGltaW5hdGUgKHNlbGYsIGNlbGVtZW50ICog cm93MSwgY2VsZW1lbnQqIHJvdzIsIFB5X3NzaXplX3Qgc3RhcnRfY29sKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIHhnY2Rf ZWxpbWluYXRlIChzZWxmLCBjZWxlbWVudCAqIHJvdzEsIGNlbGVtZW50KiByb3cyLCBQeV9zc2l6 ZV90IHN0YXJ0X2NvbCkKKysgICAgY3BkZWYgX2V4cG9ydF9hc19zdHJpbmcoc2VsZikKKyAgICAg Y2RlZiBpbnQgX2NvcHlfcm93X3RvX21vZF9pbnRfYXJyYXkoc2VsZiwgbW9kX2ludCAqdG8sIFB5 X3NzaXplX3QgaSkgbm9leGNlcHQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4 X21vZG5fc3BhcnNlLnB4ZCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kbl9zcGFyc2UucHhk CitpbmRleCAzN2RkOTliZjVmMy4uZGRlZDA2OWIzZDggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9t YXRyaXgvbWF0cml4X21vZG5fc3BhcnNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9tb2RuX3NwYXJzZS5weGQKK0BAIC00LDQgKzQsNCBAQCBmcm9tIHNhZ2UubW9kdWxlcy52ZWN0 b3JfbW9kbl9zcGFyc2UgY2ltcG9ydCAqCisgY2RlZiBjbGFzcyBNYXRyaXhfbW9kbl9zcGFyc2Uo TWF0cml4X3NwYXJzZSk6CisgICAgIGNkZWYgY192ZWN0b3JfbW9kaW50KiByb3dzCisgICAgIGNk ZWYgcHVibGljIGludCBwCistICAgIGNkZWYgc3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCBu MSwgUHlfc3NpemVfdCBuMikgbm9leGNlcHQKKysgICAgY2RlZiBzd2FwX3Jvd3NfYyhzZWxmLCBQ eV9zc2l6ZV90IG4xLCBQeV9zc2l6ZV90IG4yKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJp eC9tYXRyaXhfbW9kbl9zcGFyc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2RuX3Nw YXJzZS5weXgKK2luZGV4IDNiZTNjNmIwZmM1Li41NWZkNjVjNjA2MSAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kbl9zcGFyc2UucHl4CisrKysgYi9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X21vZG5fc3BhcnNlLnB5eAorQEAgLTE3MywxMCArMTczLDEwIEBAIGNkZWYgY2xh c3MgTWF0cml4X21vZG5fc3BhcnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAgICAgICAgIGlmIHo6 CisgICAgICAgICAgICAgICAgIHNldF9lbnRyeSgmc2VsZi5yb3dzW3NlLmldLCBzZS5qLCB6KQor IAorLSAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGos IHZhbHVlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qg aSwgUHlfc3NpemVfdCBqLCB2YWx1ZSk6CisgICAgICAgICBzZXRfZW50cnkoJnNlbGYucm93c1tp XSwgaiwgKDxJbnRlZ2VyTW9kX2ludD4gdmFsdWUpLml2YWx1ZSkKKyAKKy0gICAgY2RlZiBnZXRf dW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAg ICAgIGNkZWYgSW50ZWdlck1vZF9pbnQgbgorICAgICAgICAgbiA9ICBJbnRlZ2VyTW9kX2ludC5f X25ld19fKEludGVnZXJNb2RfaW50KQorICAgICAgICAgSW50ZWdlck1vZF9hYnN0cmFjdC5fX2lu aXRfXyhuLCBzZWxmLl9iYXNlX3JpbmcpCitAQCAtMjU1LDcgKzI1NSw3IEBAIGNkZWYgY2xhc3Mg TWF0cml4X21vZG5fc3BhcnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIG1hdHJpeCBmb3JtYXQiKQorIAorLSAg ICBjZGVmIE1hdHJpeCBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgTWF0cml4IF9yaWdodCkg bm9leGNlcHQ6CisrICAgIGNkZWYgTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBN YXRyaXggX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBjb2RlIGlzIGltcGxp Y2l0bHkgY2FsbGVkIGZvciBtdWx0aXBseWluZyBzZWxmIGJ5IGFub3RoZXIKKyAgICAgICAgIHNw YXJzZSBtYXRyaXguCitAQCAtMzkyLDcgKzM5Miw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5f c3BhcnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAgICAgc2VsZi5jaGVja19ib3VuZHNfYW5kX211 dGFiaWxpdHkocjIsMCkKKyAgICAgICAgIHNlbGYuc3dhcF9yb3dzX2MocjEsIHIyKQorIAorLSAg ICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3QgbjEsIFB5X3NzaXplX3QgbjIpIG5v ZXhjZXB0OgorKyAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3QgbjEsIFB5X3Nz aXplX3QgbjIpOgorICAgICAgICAgIiIiCisgICAgICAgICBTd2FwIHRoZSByb3dzIGluIHBvc2l0 aW9ucyBuMSBhbmQgbjIuIE5vIGJvdW5kcyBjaGVja2luZy4KKyAgICAgICAgICIiIgorQEAgLTQw MSw3ICs0MDEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX3NwYXJzZShNYXRyaXhfc3BhcnNl KToKKyAgICAgICAgIHNlbGYucm93c1tuMV0gPSBzZWxmLnJvd3NbbjJdCisgICAgICAgICBzZWxm LnJvd3NbbjJdID0gdG1wCisgCistICAgIGNwZGVmIF9lY2hlbG9uX2luX3BsYWNlKHNlbGYsIHN0 ciBhbGdvcml0aG0pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZWNoZWxvbl9pbl9wbGFjZShzZWxm LCBzdHIgYWxnb3JpdGhtKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVwbGFjZSBzZWxmIGJ5 IGl0cyByZWR1Y3Rpb24gdG8gcmVkdWNlZCByb3cgZWNoZWxvbiBmb3JtLgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbnVtcHlfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbWF0 cml4L21hdHJpeF9udW1weV9kZW5zZS5weGQKK2luZGV4IDE1MGY5ZDU5NTUxLi40ZmUyYzY1ZTBm YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbnVtcHlfZGVuc2UucHhkCisr KysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X251bXB5X2RlbnNlLnB4ZAorQEAgLTksNSArOSw1 IEBAIGNkZWYgY2xhc3MgTWF0cml4X251bXB5X2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgIGNk ZWYgb2JqZWN0IF9weXRob25fZHR5cGUKKyAgICAgY2RlZiBvYmplY3QgX3NhZ2VfZHR5cGUKKyAg ICAgY2RlZiBvYmplY3QgX3NhZ2VfdmVjdG9yX2R0eXBlCistICAgIGNkZWYgTWF0cml4X251bXB5 X2RlbnNlIF9uZXcoc2VsZiwgaW50IG5yb3dzPSosIGludCBuY29scz0qKSBub2V4Y2VwdAorKyAg ICBjZGVmIE1hdHJpeF9udW1weV9kZW5zZSBfbmV3KHNlbGYsIGludCBucm93cz0qLCBpbnQgbmNv bHM9KikKKyAgICAgY2RlZiBjbnVtcHkubmRhcnJheSBfbWF0cml4X251bXB5CitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9udW1weV9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X251bXB5X2RlbnNlLnB5eAoraW5kZXggM2UzMzU5OWJmNzAuLjQwMWYxMTVlZDc4 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9udW1weV9kZW5zZS5weXgKKysr KyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbnVtcHlfZGVuc2UucHl4CitAQCAtMTQ1LDcgKzE0 NSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X251bXB5X2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAg ICAgICAgICAgZm9yIGogaW4gcmFuZ2UobWEubmNvbHMpOgorICAgICAgICAgICAgICAgICBzZWxm LnNldF91bnNhZmUoaSwgaiwgbmV4dChpdCkpCisgCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwgb2JqZWN0IHZhbHVlKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBvYmpl Y3QgdmFsdWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIChpLGopIGVudHJ5IHRv IHZhbHVlIHdpdGhvdXQgYW55IGJvdW5kcyBjaGVja2luZywKKyAgICAgICAgIG11dGFiaWxpdHkg Y2hlY2tpbmcsIGV0Yy4KK0BAIC0xNjksNyArMTY5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbnVt cHlfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9w eXRob25fZHR5cGUodmFsdWUpKQorICAgICAgICAgI1RPRE86IFRocm93IGFuIGVycm9yIGlmIHN0 YXR1cyA9PSAtMQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQ eV9zc2l6ZV90IGopIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3Np emVfdCBpLCBQeV9zc2l6ZV90IGopOgorICAgICAgICAgIiIiCisgICAgICAgICBHZXQgdGhlIChp LGopIGVudHJ5IHdpdGhvdXQgYW55IGJvdW5kcyBjaGVja2luZywgZXRjLgorICAgICAgICAgIiIi CitAQCAtMTc3LDcgKzE3Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X251bXB5X2RlbnNlKE1hdHJp eF9kZW5zZSk6CisgICAgICAgICByZXR1cm4gc2VsZi5fc2FnZV9kdHlwZShjbnVtcHkuUHlBcnJh eV9HRVRJVEVNKHNlbGYuX21hdHJpeF9udW1weSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbnVtcHkuUHlBcnJheV9HRVRQVFIyKHNlbGYuX21hdHJp eF9udW1weSwgaSwgaikpKQorIAorLSAgICBjZGVmIE1hdHJpeF9udW1weV9kZW5zZSBfbmV3KHNl bGYsIGludCBucm93cz0tMSwgaW50IG5jb2xzPS0xKSBub2V4Y2VwdDoKKysgICAgY2RlZiBNYXRy aXhfbnVtcHlfZGVuc2UgX25ldyhzZWxmLCBpbnQgbnJvd3M9LTEsIGludCBuY29scz0tMSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyB1bmluaXRpYWxpemVkIG1hdHJpeCB3 aXRoIHNhbWUgcGFyZW50IGFzIGBgc2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfcmF0aW9uYWxfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9y YXRpb25hbF9kZW5zZS5weGQKK2luZGV4IDZhNjM0N2Y0OTI2Li5kMmQ5OTU1ZmVmYyAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmF0aW9uYWxfZGVuc2UucHhkCisrKysgYi9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X3JhdGlvbmFsX2RlbnNlLnB4ZAorQEAgLTgsMTQgKzgsMTQg QEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAg Y2RlZiBpbnQgZm1wel9oZWlnaHQoc2VsZiwgZm1wel90IGhlaWdodCkgZXhjZXB0IC0xCisgIyAg ICBjZGVmIGludCBfcmVzY2FsZShzZWxmLCBtcHFfdCBhKSBleGNlcHQgLTEKKyAKKy0gICAgY2Rl ZiBfcGlja2xlX3ZlcnNpb24wKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX3VucGlja2xlX3Zl cnNpb24wKHNlbGYsIGRhdGEpIG5vZXhjZXB0CistICAgIGNwZGVmIF9leHBvcnRfYXNfc3RyaW5n KHNlbGYsIGludCBiYXNlPT8pIG5vZXhjZXB0CisrICAgIGNkZWYgX3BpY2tsZV92ZXJzaW9uMChz ZWxmKQorKyAgICBjZGVmIF91bnBpY2tsZV92ZXJzaW9uMChzZWxmLCBkYXRhKQorKyAgICBjcGRl ZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmLCBpbnQgYmFzZT0/KQorIAorLSAgICBjZGVmIF9hZGRf dWlfdW5zYWZlX2Fzc3VtaW5nX2ludChzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg dW5zaWduZWQgbG9uZyBpbnQgbikgbm9leGNlcHQKKy0gICAgY2RlZiBfc3ViX3VpX3Vuc2FmZV9h c3N1bWluZ19pbnQoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHVuc2lnbmVkIGxv bmcgaW50IG4pIG5vZXhjZXB0CisrICAgIGNkZWYgX2FkZF91aV91bnNhZmVfYXNzdW1pbmdfaW50 KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB1bnNpZ25lZCBsb25nIGludCBuKQor KyAgICBjZGVmIF9zdWJfdWlfdW5zYWZlX2Fzc3VtaW5nX2ludChzZWxmLCBQeV9zc2l6ZV90IGks IFB5X3NzaXplX3QgaiwgdW5zaWduZWQgbG9uZyBpbnQgbikKKyAKKy0gICAgY2RlZiBpbmxpbmUg TWF0cml4X3JhdGlvbmFsX2RlbnNlIF9uZXdfbWF0cml4KHNlbGYsIFB5X3NzaXplX3QgbnJvd3Ms IFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0CisrICAgIGNkZWYgaW5saW5lIE1hdHJpeF9yYXRp b25hbF9kZW5zZSBfbmV3X21hdHJpeChzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90 IG5jb2xzKQorIAorIGNkZWYgY2xhc3MgTWF0cml4V2luZG93OgorICAgICBjZGVmIE1hdHJpeF9y YXRpb25hbF9kZW5zZSBfbWF0cml4CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9yYXRpb25hbF9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3JhdGlvbmFsX2Rl bnNlLnB5eAoraW5kZXggMTVlNDgxNDkzMDYuLjgyZDUxNGNiNDE4IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9yYXRpb25hbF9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfcmF0aW9uYWxfZGVuc2UucHl4CitAQCAtMTQ3LDcgKzE0Nyw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBmbXBx X21hdF9pbml0KHNlbGYuX21hdHJpeCwgc2VsZi5fbnJvd3MsIHNlbGYuX25jb2xzKQorICAgICAg ICAgc2lnX29mZigpCisgCistICAgIGNkZWYgaW5saW5lIE1hdHJpeF9yYXRpb25hbF9kZW5zZSBf bmV3X21hdHJpeChzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgTWF0cml4X3JhdGlvbmFsX2RlbnNlIF9uZXdfbWF0cml4 KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpOgorICAgICAgICAgaWYg bnJvd3MgPT0gc2VsZi5fbnJvd3MgYW5kIG5jb2xzID09IHNlbGYuX25jb2xzOgorICAgICAgICAg ICAgIHBhcmVudCA9IHNlbGYuX3BhcmVudAorICAgICAgICAgZWxzZToKK0BAIC0yNTUsMTAgKzI1 NSwxMCBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yYXRpb25hbF9kZW5zZShNYXRyaXhfZGVuc2UpOgor ICAgICAgICAgICAgICAgICAgdG1wKQorICAgICAgICAgZm1wcV9jbGVhcih0bXApCisgCistICAg IGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgdmFsdWUp IG5vZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGosIHZhbHVlKToKKyAgICAgICAgIGZtcHFfc2V0X21wcShmbXBxX21hdF9lbnRyeShz ZWxmLl9tYXRyaXgsIGksIGopLCAoPFJhdGlvbmFsPiB2YWx1ZSkudmFsdWUpCisgCistICAgIGNk ZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6 CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6 CisgICAgICAgICBjZGVmIFJhdGlvbmFsIHgKKyAgICAgICAgIHggPSBSYXRpb25hbC5fX25ld19f KFJhdGlvbmFsKQorICAgICAgICAgZm1wcV9nZXRfbXBxKHgudmFsdWUsIGZtcHFfbWF0X2VudHJ5 KHNlbGYuX21hdHJpeCwgaSwgaikpCitAQCAtMjc1LDE0ICsyNzUsMTQgQEAgY2RlZiBjbGFzcyBN YXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIGZtcHFfaXNfemVybyhmbXBxX21hdF9lbnRyeShzZWxmLl9tYXRyaXgsIGksaikp CisgCistICAgIGNkZWYgX2FkZF91aV91bnNhZmVfYXNzdW1pbmdfaW50KHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqLCB1bnNpZ25lZCBsb25nIGludCBuKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfYWRkX3VpX3Vuc2FmZV9hc3N1bWluZ19pbnQoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGosIHVuc2lnbmVkIGxvbmcgaW50IG4pOgorICAgICAgICAgIyBkb2Vzbid0IGNoZWNr IGltbXV0YWJpbGl0eQorICAgICAgICAgIyBkb2Vzbid0IGRvIGJvdW5kcyBjaGVja3MuCisgICAg ICAgICAjIGFzc3VtZXMgdGhhdCBzZWxmW2ksal0gaXMgYW4gaW50ZWdlci4KKyAgICAgICAgIGNk ZWYgZm1weiAqIGVudHJ5ID0gZm1wcV9udW1yZWYoZm1wcV9tYXRfZW50cnkoc2VsZi5fbWF0cml4 LCBpLCBqKSkKKyAgICAgICAgIGZtcHpfYWRkX3VpKGVudHJ5LCBlbnRyeSwgbikKKyAKKy0gICAg Y2RlZiBfc3ViX3VpX3Vuc2FmZV9hc3N1bWluZ19pbnQoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGosIHVuc2lnbmVkIGxvbmcgaW50IG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9zdWJf dWlfdW5zYWZlX2Fzc3VtaW5nX2ludChzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg dW5zaWduZWQgbG9uZyBpbnQgbik6CisgICAgICAgICAjIGRvZXNuJ3QgY2hlY2sgaW1tdXRhYmls aXR5CisgICAgICAgICAjIGRvZXNuJ3QgZG8gYm91bmRzIGNoZWNrcy4KKyAgICAgICAgICMgYXNz dW1lcyB0aGF0IHNlbGZbaSxqXSBpcyBhbiBpbnRlZ2VyLgorQEAgLTI5OCwxMCArMjk4LDEwIEBA IGNkZWYgY2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidW5rbm93biBtYXRyaXgg dmVyc2lvbiAoPSVzKSIgJSB2ZXJzaW9uKQorIAorLSAgICBjZGVmIF9waWNrbGVfdmVyc2lvbjAo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3BpY2tsZV92ZXJzaW9uMChzZWxmKToKKyAgICAg ICAgIHJldHVybiBzZWxmLl9leHBvcnRfYXNfc3RyaW5nKDMyKQorIAorLSAgICBjcGRlZiBfZXhw b3J0X2FzX3N0cmluZyhzZWxmLCBpbnQgYmFzZT0xMCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9l eHBvcnRfYXNfc3RyaW5nKHNlbGYsIGludCBiYXNlPTEwKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2YgdGhlIGVudHJpZXMgaW4gdGhpcyBt YXRyaXgsIGluIHRoZQorICAgICAgICAgZ2l2ZW4gYmFzZS4gVGhpcyBpcyBvcHRpbWl6ZWQgZm9y IHNwZWVkLgorQEAgLTM1Niw3ICszNTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yYXRpb25hbF9k ZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgICAgIHNpZ19mcmVlKHMpCisgICAgICAgICBy ZXR1cm4gZGF0YQorIAorLSAgICBjZGVmIF91bnBpY2tsZV92ZXJzaW9uMChzZWxmLCBkYXRhKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfdW5waWNrbGVfdmVyc2lvbjAoc2VsZiwgZGF0YSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtMzk4LDcgKzM5OCw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICMgICAqIF9k aWN0IC0tIHNwYXJzZSBkaWN0aW9uYXJ5IG9mIHVuZGVybHlpbmcgZWxlbWVudHMgKG5lZWQgbm90 IGJlIGEgY29weSkKKyAgICAgIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLSAgICBjcGRlZiBfbG11bF8o c2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBF bGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAg LTQxNyw3ICs0MTcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yYXRpb25hbF9kZW5zZShNYXRyaXhf ZGVuc2UpOgorICAgICAgICAgZm1wcV9jbGVhcih4KQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0d28gZGVuc2UgbWF0cmlj ZXMgb3ZlciBRUS4KKyAKK0BAIC00NDAsNyArNDQwLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0 aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3Vi dHJhY3QgdHdvIGRlbnNlIG1hdHJpY2VzIG92ZXIgUVEuCisgCitAQCAtNDYxLDcgKzQ2MSw3IEBA IGNkZWYgY2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBf KHNlbGYsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2Vs ZiwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBURVNUUzo6CisgCitA QCAtNTAyLDcgKzUwMiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJp eF9kZW5zZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChv cCwgLTEpCisgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCAwKQorIAorLSAgICBjZGVm IF92ZWN0b3JfdGltZXNfbWF0cml4XyhzZWxmLCBWZWN0b3Igdikgbm9leGNlcHQ6CisrICAgIGNk ZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNlbGYsIFZlY3RvciB2KToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgdmVjdG9yIHRpbWVzIG1hdHJpeCBwcm9kdWN0LgorIAorQEAg LTExMjcsNyArMTEyNyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJp eF9kZW5zZSk6CisgICAgICAgICBzZWxmLmNhY2hlKCdtaW5wb2x5JywgZykKKyAgICAgICAgIHJl dHVybiBnCisgCistICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggX21hdHJp eF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCBfbWF0 cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTgwOSw3ICsx ODA5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToK KyAgICAgICAgIGZtcHFfbWF0X3N3YXAoc2VsZi5fbWF0cml4LCAoPE1hdHJpeF9yYXRpb25hbF9k ZW5zZT5FKS5fbWF0cml4KQorICAgICAgICAgcmV0dXJuIHBpdm90cworIAorLSAgICBjZGVmIHN3 YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3NzaXplX3QgcjIpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3NzaXplX3QgcjIp OgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTgyNSw3ICsxODI1 LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAg ICAgICAgICAgICBmbXBxX3N3YXAoZm1wcV9tYXRfZW50cnkoc2VsZi5fbWF0cml4LCByMSwgYyks CisgICAgICAgICAgICAgICAgICAgICAgIGZtcHFfbWF0X2VudHJ5KHNlbGYuX21hdHJpeCwgcjIs IGMpKQorIAorLSAgICBjZGVmIHN3YXBfY29sdW1uc19jKHNlbGYsIFB5X3NzaXplX3QgYzEsIFB5 X3NzaXplX3QgYzIpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN3YXBfY29sdW1uc19jKHNlbGYsIFB5 X3NzaXplX3QgYzEsIFB5X3NzaXplX3QgYzIpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitAQCAtMjk5Niw3ICsyOTk2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0aW9u YWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHJldHVybiBBLmlzX0xMTF9yZWR1Y2Vk KGRlbHRhLCBldGEpCisgCisgCistY2RlZiBuZXdfbWF0cml4X2Zyb21fcGFyaV9HRU4ocGFyZW50 LCBHRU4gZCkgbm9leGNlcHQ6CisrY2RlZiBuZXdfbWF0cml4X2Zyb21fcGFyaV9HRU4ocGFyZW50 LCBHRU4gZCk6CisgICAgICIiIgorICAgICBHaXZlbiBhIFBBUkkgR0VOIHdpdGggYGB0X0lOVGBg IG9yIGBgdF9GUkFDIGVudHJpZXMsIGNyZWF0ZSBhCisgICAgIDpjbGFzczpgTWF0cml4X3JhdGlv bmFsX2RlbnNlYCBmcm9tIGl0LgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf cmF0aW9uYWxfc3BhcnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmF0aW9uYWxfc3Bh cnNlLnB5eAoraW5kZXggOTZkMjQwMmRkODMuLmRhYzA2YTNjZmQzIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9yYXRpb25hbF9zcGFyc2UucHl4CisrKysgYi9zcmMvc2FnZS9t YXRyaXgvbWF0cml4X3JhdGlvbmFsX3NwYXJzZS5weXgKK0BAIC05MywxMCArOTMsMTAgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhfcmF0aW9uYWxfc3BhcnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAgICAg ICAgIGlmIHo6CisgICAgICAgICAgICAgICAgIG1wcV92ZWN0b3Jfc2V0X2VudHJ5KCZzZWxmLl9t YXRyaXhbc2UuaV0sIHNlLmosIHoudmFsdWUpCisgCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2V0 X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgeCk6CisgICAgICAgICBt cHFfdmVjdG9yX3NldF9lbnRyeSgmc2VsZi5fbWF0cml4W2ldLCBqLCAoPFJhdGlvbmFsPiB4KS52 YWx1ZSkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3Np emVfdCBqKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qg aSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgIGNkZWYgUmF0aW9uYWwgeAorICAgICAgICAgeCA9 IFJhdGlvbmFsKCkKKyAgICAgICAgIG1wcV92ZWN0b3JfZ2V0X2VudHJ5KHgudmFsdWUsICZzZWxm Ll9tYXRyaXhbaV0sIGopCitAQCAtMTY4LDcgKzE2OCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3Jh dGlvbmFsX3NwYXJzZShNYXRyaXhfc3BhcnNlKToKKyAgICAgIyAgICogX2xpc3QgLS0gbGlzdCBv ZiB1bmRlcmx5aW5nIGVsZW1lbnRzIChuZWVkIG5vdCBiZSBhIGNvcHkpCisgICAgICMgICAqIHgg X2RpY3QgLS0gc3BhcnNlIGRpY3Rpb25hcnkgb2YgdW5kZXJseWluZyBlbGVtZW50cyAobmVlZCBu b3QgYmUgYSBjb3B5KQorIAorLSAgICBjZGVmIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4 IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJp eCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0 cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1h dHJpeCBfcmlnaHQpOgorICAgICAgICAgY2RlZiBNYXRyaXhfcmF0aW9uYWxfc3BhcnNlIHJpZ2h0 LCBhbnMKKyAgICAgICAgIHJpZ2h0ID0gX3JpZ2h0CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bWF0cml4L21hdHJpeF9yZWFsX2RvdWJsZV9kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X3JlYWxfZG91YmxlX2RlbnNlLnB4ZAoraW5kZXggZDBiYWRmNDgyNDAuLmQ3ODFhODRjZTQw IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yZWFsX2RvdWJsZV9kZW5zZS5w eGQKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmVhbF9kb3VibGVfZGVuc2UucHhkCitA QCAtMiw1ICsyLDUgQEAgZnJvbSBzYWdlLm1hdHJpeC5tYXRyaXhfZG91YmxlX2RlbnNlIGNpbXBv cnQgTWF0cml4X2RvdWJsZV9kZW5zZQorIAorIAorIGNkZWYgY2xhc3MgTWF0cml4X3JlYWxfZG91 YmxlX2RlbnNlKE1hdHJpeF9kb3VibGVfZGVuc2UpOgorLSAgICBjZGVmIHNldF91bnNhZmVfZG91 YmxlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBkb3VibGUgdmFsdWUpIG5vZXhj ZXB0CisrICAgIGNkZWYgc2V0X3Vuc2FmZV9kb3VibGUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGosIGRvdWJsZSB2YWx1ZSkKKyAgICAgY2RlZiBkb3VibGUgZ2V0X3Vuc2FmZV9kb3Vi bGUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0CitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yZWFsX2RvdWJsZV9kZW5zZS5weXggYi9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X3JlYWxfZG91YmxlX2RlbnNlLnB5eAoraW5kZXggMTMzNzY0MWJiMjQu LjEwZWFlYWM0ZTU2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yZWFsX2Rv dWJsZV9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmVhbF9kb3VibGVf ZGVuc2UucHl4CitAQCAtOTksNyArOTksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yZWFsX2RvdWJs ZV9kZW5zZShNYXRyaXhfZG91YmxlX2RlbnNlKToKKyAgICAgICAgIHNlbGYuX19jcmVhdGVfbWF0 cml4X18oKQorICAgICAgICAgcmV0dXJuCisgCistICAgIGNkZWYgc2V0X3Vuc2FmZV9kb3VibGUo c2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIGRvdWJsZSB2YWx1ZSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgc2V0X3Vuc2FmZV9kb3VibGUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6 ZV90IGosIGRvdWJsZSB2YWx1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgKGks aikgZW50cnkgdG8gdmFsdWUgd2l0aG91dCBhbnkgdHlwZSBjaGVja2luZyBvcgorICAgICAgICAg Ym91bmQgY2hlY2tpbmcuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9zcGFy c2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9zcGFyc2UucHl4CitpbmRleCAwNjQ4ZjQ4 OGY5OC4uMDBkOGVlN2ZiYzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3Nw YXJzZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfc3BhcnNlLnB5eAorQEAgLTMw MSw3ICszMDEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9zcGFyc2UobWF0cml4Lk1hdHJpeCk6Cisg CisgICAgICAgICByZXR1cm4gbGVmdC5uZXdfbWF0cml4KGxlZnQuX25yb3dzLCByaWdodC5fbmNv bHMsIGVudHJpZXM9ZSwgY29lcmNlPUZhbHNlLCBjb3B5PUZhbHNlKQorIAorLSAgICBjcGRlZiBf bG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhz ZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTGVmdCBzY2FsYXIg bXVsdGlwbGljYXRpb24uIEludGVybmFsIHVzYWdlIG9ubHkuCisgCitAQCAtMzcwLDcgKzM3MCw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X3NwYXJzZShtYXRyaXguTWF0cml4KToKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ1bmtub3duIG1hdHJpeCB2ZXJz aW9uICg9JXMpIiAlIHZlcnNpb24pCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdo dCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBp bnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBSaWNoIGNvbXBhcmlzb24uCisgCitAQCAt OTY4LDcgKzk2OCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3NwYXJzZShtYXRyaXguTWF0cml4KToK KyAgICAgICAgICAgICAgICAgICAgICAgICBBLnNldF91bnNhZmUobmV3X3JvdywgbmV3X2NvbCwg ZW50cnkpCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIF9zdGFja19pbXBsKHNlbGYs IGJvdHRvbSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFN0YWNrIGBgc2VsZmBgIG9uIHRvcCBvZiBgYGJvdHRv bWBgOjoKKyAKK0BAIC0xMTE5LDcgKzExMTksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9zcGFyc2Uo bWF0cml4Lk1hdHJpeCk6CisgICAgICAgICAgICAgWi5fc3ViZGl2aWRlX29uX2F1Z21lbnQoc2Vs Ziwgb3RoZXIpCisgICAgICAgICByZXR1cm4gWgorIAorLSAgICBjZGVmIF92ZWN0b3JfdGltZXNf bWF0cml4XyhzZWxmLCBWZWN0b3Igdikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3ZlY3Rvcl90aW1l c19tYXRyaXhfKHNlbGYsIFZlY3RvciB2KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSB2ZWN0b3IgdGltZXMgbWF0cml4IHByb2R1Y3QuCisgCitAQCAtMTE1Miw3ICsxMTUyLDcg QEAgY2RlZiBjbGFzcyBNYXRyaXhfc3BhcnNlKG1hdHJpeC5NYXRyaXgpOgorICAgICAgICAgICAg IHNbal0gKz0gdltpXSAqIGEKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNkZWYgX21hdHJp eF90aW1lc192ZWN0b3JfKHNlbGYsIFZlY3RvciB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0 cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZiwgVmVjdG9yIHYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIG1hdHJpeCB0aW1lcyB2ZWN0b3IgcHJvZHVjdC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3dpbmRvdy5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X3dpbmRvdy5weGQKK2luZGV4IGMzM2Q1ZDE2ODA2Li4wNzBmMWRlYWYyNSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfd2luZG93LnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0 cml4L21hdHJpeF93aW5kb3cucHhkCitAQCAtNywzMCArNywzMCBAQCBjZGVmIGNsYXNzIE1hdHJp eFdpbmRvdzoKKyAgICAgY2RlZiBvYmplY3QgX2NhY2hlZF96ZXJvCisgCisgICAgICMgWU9VICpS RUFMTFkgU0hPVUxEKiBPVkVSUklERSBUSEVTRToKKy0gICAgY3BkZWYgYWRkKE1hdHJpeFdpbmRv dyBzZWxmLCBNYXRyaXhXaW5kb3cgQSkgbm9leGNlcHQKKy0gICAgY3BkZWYgc3VidHJhY3QoTWF0 cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRf dG9fc3VtKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIp IG5vZXhjZXB0CistICAgIGNwZGVmIHNldF90b19kaWZmKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRy aXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIpIG5vZXhjZXB0CistICAgIGNwZGVmIHNldF90b19w cm9kKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIpIG5v ZXhjZXB0CistICAgIGNwZGVmIGFkZF9wcm9kKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5k b3cgQSwgTWF0cml4V2luZG93IEIpIG5vZXhjZXB0CistICAgIGNwZGVmIHN1YnRyYWN0X3Byb2Qo TWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikgbm9leGNl cHQKKysgICAgY3BkZWYgYWRkKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSkKKysg ICAgY3BkZWYgc3VidHJhY3QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBKQorKyAg ICBjcGRlZiBzZXRfdG9fc3VtKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSwgTWF0 cml4V2luZG93IEIpCisrICAgIGNwZGVmIHNldF90b19kaWZmKE1hdHJpeFdpbmRvdyBzZWxmLCBN YXRyaXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIpCisrICAgIGNwZGVmIHNldF90b19wcm9kKE1h dHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIpCisrICAgIGNw ZGVmIGFkZF9wcm9kKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4V2lu ZG93IEIpCisrICAgIGNwZGVmIHN1YnRyYWN0X3Byb2QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJp eFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikKKyAKKyAgICAgY3BkZWYgYmludCBlbGVtZW50X2lz X3plcm8oTWF0cml4V2luZG93IHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBzZXRfdG8oTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBB KSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRfdG9femVybyhNYXRyaXhXaW5kb3cgc2VsZikgbm9l eGNlcHQKKysgICAgY3BkZWYgc2V0X3RvKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cg QSkKKysgICAgY3BkZWYgc2V0X3RvX3plcm8oTWF0cml4V2luZG93IHNlbGYpCisgCisgICAgICMg Rk9SIEJFVFRFUiBTUEVFRCwgT1ZFUlJJREUgQU5ZIFNVQlNFVCBPRiBUSEVTRSAoT1BUSU9OQUwp OgorLSAgICBjcGRlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBq LCB4KSBub2V4Y2VwdAorLSAgICBjcGRlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwg UHlfc3NpemVfdCBqKSBub2V4Y2VwdAorLSAgICBjcGRlZiB0b19tYXRyaXgoTWF0cml4V2luZG93 IHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIG5ld19lbXB0eV93aW5kb3coTWF0cml4V2luZG93 IHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0CisrICAg IGNwZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpCisr ICAgIGNwZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopCisr ICAgIGNwZGVmIHRvX21hdHJpeChNYXRyaXhXaW5kb3cgc2VsZikKKysgICAgY3BkZWYgbmV3X2Vt cHR5X3dpbmRvdyhNYXRyaXhXaW5kb3cgc2VsZiwgUHlfc3NpemVfdCBucm93cywgUHlfc3NpemVf dCBuY29scykKKyAKKyAgICAgIyBOTyBCRU5FRklUIFRPIE9WRVJSSURJTkcgVEhFU0U6CisgICAg IGNwZGVmIE1hdHJpeFdpbmRvdyBtYXRyaXhfd2luZG93KE1hdHJpeFdpbmRvdyBzZWxmLCBQeV9z c2l6ZV90IHJvdywgUHlfc3NpemVfdCBjb2wsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB5X3NzaXplX3Qgbl9yb3dzLCBQeV9zc2l6ZV90IG5fY29scykgbm9leGNlcHQK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuX3Jvd3Ms IFB5X3NzaXplX3Qgbl9jb2xzKQorICAgICBjcGRlZiBNYXRyaXhXaW5kb3cgbmV3X21hdHJpeF93 aW5kb3coTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeCBtYXRyaXgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgcm93LCBQeV9zc2l6ZV90IGNvbCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgbl9y b3dzLCBQeV9zc2l6ZV90IG5fY29scykgbm9leGNlcHQKKy0gICAgY3BkZWYgbWF0cml4KE1hdHJp eFdpbmRvdyBzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzd2FwX3Jvd3MoTWF0cml4V2luZG93 IHNlbGYsIFB5X3NzaXplX3QgYSwgUHlfc3NpemVfdCBiKSBub2V4Y2VwdAorLSAgICBjZGVmIG9i amVjdCBfemVybyhzZWxmKSBub2V4Y2VwdAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHlfc3NpemVfdCBuX3Jvd3MsIFB5X3NzaXplX3Qgbl9jb2xzKQorKyAgICBj cGRlZiBtYXRyaXgoTWF0cml4V2luZG93IHNlbGYpCisrICAgIGNwZGVmIHN3YXBfcm93cyhNYXRy aXhXaW5kb3cgc2VsZiwgUHlfc3NpemVfdCBhLCBQeV9zc2l6ZV90IGIpCisrICAgIGNkZWYgb2Jq ZWN0IF96ZXJvKHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF93aW5k b3cucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF93aW5kb3cucHl4CitpbmRleCA2NzFlZWUw YTg0NS4uMTFhOGMwZWQxYjIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3dp bmRvdy5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfd2luZG93LnB5eAorQEAgLTIy LDcgKzIyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgCisgICAgIGNwZGVmIE1hdHJp eFdpbmRvdyBuZXdfbWF0cml4X3dpbmRvdyhNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4IG1hdHJp eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qg cm93LCBQeV9zc2l6ZV90IGNvbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHlfc3NpemVfdCBuX3Jvd3MsIFB5X3NzaXplX3Qgbl9jb2xzKSBub2V4Y2VwdDoKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuX3Jvd3Ms IFB5X3NzaXplX3Qgbl9jb2xzKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBtZXRob2Qg aXMgaGVyZSBvbmx5IHRvIHByb3ZpZGUgYSBmYXN0IGNkZWYgd2F5IG9mCisgICAgICAgICBjb25z dHJ1Y3RpbmcgbmV3IG1hdHJpeCB3aW5kb3dzLiBUaGUgb25seSBpbXBsaWNpdCBhc3N1bXB0aW9u CitAQCAtNDcsMTMgKzQ3LDEzIEBAIGNkZWYgY2xhc3MgTWF0cml4V2luZG93OgorICAgICAgICAg c2VsZi5fbnJvd3MgPSBucm93cworICAgICAgICAgc2VsZi5fbmNvbHMgPSBuY29scworIAorLSAg ICBjZGVmIG9iamVjdCBfemVybyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBvYmplY3QgX3pl cm8oc2VsZik6CisgICAgICAgICBpZiBzZWxmLl9jYWNoZWRfemVybyBpcyBOb25lOgorICAgICAg ICAgICAgIHNlbGYuX2NhY2hlZF96ZXJvID0gc2VsZi5fbWF0cml4LmJhc2VfcmluZygpKDApICAj IGV4cGVuc2l2ZQorICAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZF96ZXJvCisgCisgICAgIGNw ZGVmIE1hdHJpeFdpbmRvdyBtYXRyaXhfd2luZG93KE1hdHJpeFdpbmRvdyBzZWxmLCBQeV9zc2l6 ZV90IHJvdywgUHlfc3NpemVfdCBjb2wsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHlfc3NpemVfdCBuX3Jvd3MsIFB5X3NzaXplX3Qgbl9jb2xzKSBub2V4Y2VwdDoKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG5fcm93cywgUHlf c3NpemVfdCBuX2NvbHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEgbWF0cml4 IHdpbmRvdyByZWxhdGl2ZSB0byB0aGlzIHdpbmRvdyBvZiB0aGUKKyAgICAgICAgIHVuZGVybHlp bmcgbWF0cml4LgorQEAgLTYyLDcgKzYyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIHJldHVybiBzZWxmLm5ld19tYXRyaXhf d2luZG93KHNlbGYuX21hdHJpeCwgc2VsZi5fcm93ICsgcm93LCBzZWxmLl9jb2wgKyBjb2wsIG5f cm93cywgbl9jb2xzKQorIAorLSAgICBjcGRlZiBuZXdfZW1wdHlfd2luZG93KE1hdHJpeFdpbmRv dyBzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbmV3X2VtcHR5X3dpbmRvdyhNYXRyaXhXaW5kb3cgc2VsZiwgUHlfc3NpemVfdCBu cm93cywgUHlfc3NpemVfdCBuY29scyk6CisgICAgICAgICBhID0gc2VsZi5fbWF0cml4Lm5ld19t YXRyaXgobnJvd3MsIG5jb2xzKQorICAgICAgICAgcmV0dXJuIHNlbGYubmV3X21hdHJpeF93aW5k b3coYSwgMCwgMCwgbnJvd3MsIG5jb2xzKQorIAorQEAgLTc5LDEwICs3OSwxMCBAQCBjZGVmIGNs YXNzIE1hdHJpeFdpbmRvdzoKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlBhcmVudHMg bXVzdCBiZSBlcXVhbC4iKQorICAgICAgICAgc2VsZi5zZXRfdG8oc3JjKQorIAorLSAgICBjcGRl ZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB4KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qg aiwgeCk6CisgICAgICAgICBzZWxmLl9tYXRyaXguc2V0X3Vuc2FmZShpICsgc2VsZi5fcm93LCBq ICsgc2VsZi5fY29sLCB4KQorIAorLSAgICBjcGRlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3Vuc2FmZShzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6CisgICAgICAgICByZXR1cm4gc2VsZi5fbWF0 cml4LmdldF91bnNhZmUoaSArIHNlbGYuX3JvdywgaiArIHNlbGYuX2NvbCkKKyAKKyAgICAgZGVm IF9fc2V0aXRlbV9fKHNlbGYsIGlqLCB4KToKK0BAIC0xMTksMTQgKzExOSwxNCBAQCBjZGVmIGNs YXNzIE1hdHJpeFdpbmRvdzoKKyAgICAgICAgICAgICBpID0gaWoKKyAgICAgICAgICAgICByZXR1 cm4gc2VsZi5yb3coaSkKKyAKKy0gICAgY3BkZWYgbWF0cml4KE1hdHJpeFdpbmRvdyBzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgbWF0cml4KE1hdHJpeFdpbmRvdyBzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgdW5kZXJseWluZyBtYXRyaXggdGhhdCB0aGlzIHdp bmRvdyBpcyBhIHZpZXcgb2YuCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9t YXRyaXgKKyAKKyAKKy0gICAgY3BkZWYgdG9fbWF0cml4KE1hdHJpeFdpbmRvdyBzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgdG9fbWF0cml4KE1hdHJpeFdpbmRvdyBzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJucyBhbiBhY3R1YWwgbWF0cml4IG9iamVjdCByZXByZXNlbnRp bmcgdGhpcyB2aWV3LgorICAgICAgICAgIiIiCitAQCAtMTQyLDcgKzE0Miw3IEBAIGNkZWYgY2xh c3MgTWF0cml4V2luZG93OgorICAgICBkZWYgbmNvbHMoTWF0cml4V2luZG93IHNlbGYpOgorICAg ICAgICAgcmV0dXJuIHNlbGYuX25jb2xzCisgCistICAgIGNwZGVmIHNldF90byhNYXRyaXhXaW5k b3cgc2VsZiwgTWF0cml4V2luZG93IEEpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfdG8oTWF0 cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBKToKKyAgICAgICAgICIiIgorICAgICAgICAg Q2hhbmdlIHNlbGYsIG1ha2luZyBpdCBlcXVhbCBBLgorICAgICAgICAgIiIiCitAQCAtMTU0LDE0 ICsxNTQsMTQgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAgICAgICAgICAgICAgIHNl bGYuc2V0X3Vuc2FmZShpLCBqLCBBLmdldF91bnNhZmUoaSwgaikpCisgICAgICAgICByZXR1cm4g MAorIAorLSAgICBjcGRlZiBzZXRfdG9femVybyhNYXRyaXhXaW5kb3cgc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHNldF90b196ZXJvKE1hdHJpeFdpbmRvdyBzZWxmKToKKyAgICAgICAgIGNk ZWYgUHlfc3NpemVfdCBpLCBqCisgICAgICAgICB6ID0gc2VsZi5femVybygpCisgICAgICAgICBm b3IgaSBmcm9tIDAgPD0gaSA8IHNlbGYuX25yb3dzOgorICAgICAgICAgICAgIGZvciBqIGZyb20g MCA8PSBqIDwgc2VsZi5fbmNvbHM6CisgICAgICAgICAgICAgICAgIHNlbGYuc2V0X3Vuc2FmZShp LCBqLCB6KQorIAorLSAgICBjcGRlZiBhZGQoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRv dyBBKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhX aW5kb3cgQSk6CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgagorICAgICAgICAgaWYgc2Vs Zi5fbnJvd3MgIT0gQS5fbnJvd3Mgb3Igc2VsZi5fbmNvbHMgIT0gQS5fbmNvbHM6CisgICAgICAg ICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJpbmNvbXBhdGlibGUgZGltZW5zaW9ucyIpCitA QCAtMTY5LDcgKzE2OSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4V2luZG93OgorICAgICAgICAgICAg IGZvciBqIGZyb20gMCA8PSBqIDwgc2VsZi5fbmNvbHM6CisgICAgICAgICAgICAgICAgIHNlbGYu c2V0X3Vuc2FmZShpLCBqLCBzZWxmLmdldF91bnNhZmUoaSwgaikgKyBBLmdldF91bnNhZmUoaSwg aikpCisgCistICAgIGNwZGVmIHN1YnRyYWN0KE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5k b3cgQSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHN1YnRyYWN0KE1hdHJpeFdpbmRvdyBzZWxmLCBN YXRyaXhXaW5kb3cgQSk6CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgagorICAgICAgICAg aWYgc2VsZi5fbnJvd3MgIT0gQS5fbnJvd3Mgb3Igc2VsZi5fbmNvbHMgIT0gQS5fbmNvbHM6Cisg ICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJpbmNvbXBhdGlibGUgZGltZW5zaW9u cyIpCitAQCAtMTc3LDcgKzE3Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4V2luZG93OgorICAgICAg ICAgICAgIGZvciBqIGZyb20gMCA8PSBqIDwgc2VsZi5fbmNvbHM6CisgICAgICAgICAgICAgICAg IHNlbGYuc2V0X3Vuc2FmZShpLCBqLCBzZWxmLmdldF91bnNhZmUoaSwgaikgLSBBLmdldF91bnNh ZmUoaSwgaikpCisgCistICAgIGNwZGVmIHNldF90b19zdW0oTWF0cml4V2luZG93IHNlbGYsIE1h dHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF90 b19zdW0oTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQik6 CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgagorICAgICAgICAgaWYgc2VsZi5fbnJvd3Mg IT0gQS5fbnJvd3Mgb3Igc2VsZi5fbmNvbHMgIT0gQS5fbmNvbHM6CisgICAgICAgICAgICAgcmFp c2UgQXJpdGhtZXRpY0Vycm9yKCJpbmNvbXBhdGlibGUgZGltZW5zaW9ucyIpCitAQCAtMTg3LDEz ICsxODcsMTMgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAgICAgICAgICAgZm9yIGog ZnJvbSAwIDw9IGogPCBzZWxmLl9uY29sczoKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRfdW5z YWZlKGksIGosIEEuZ2V0X3Vuc2FmZShpLCBqKSArIEIuZ2V0X3Vuc2FmZShpLCBqKSkKKyAKKy0g ICAgY3BkZWYgc2V0X3RvX2RpZmYoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBN YXRyaXhXaW5kb3cgQikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF90b19kaWZmKE1hdHJpeFdp bmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIpOgorICAgICAgICAgY2Rl ZiBQeV9zc2l6ZV90IGksIGoKKyAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgc2VsZi5fbnJv d3M6CisgICAgICAgICAgICAgZm9yIGogZnJvbSAwIDw9IGogPCBzZWxmLl9uY29sczoKKyAgICAg ICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGksIGosIEEuZ2V0X3Vuc2FmZShpLCBqKSAtIEIu Z2V0X3Vuc2FmZShpLCBqKSkKKyAKKy0gICAgY3BkZWYgc2V0X3RvX3Byb2QoTWF0cml4V2luZG93 IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHNldF90b19wcm9kKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4 V2luZG93IEIpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGksIGosIGsKKyAgICAgICAgIGlm IEEuX25jb2xzICE9IEIuX25yb3dzIG9yIHNlbGYuX25yb3dzICE9IEEuX25yb3dzIG9yIHNlbGYu X25jb2xzICE9IEIuX25jb2xzOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigi aW5jb21wYXRpYmxlIGRpbWVuc2lvbnMiKQorQEAgLTIwNCw3ICsyMDQsNyBAQCBjZGVmIGNsYXNz IE1hdHJpeFdpbmRvdzoKKyAgICAgICAgICAgICAgICAgICAgIHMgPSBzICsgQS5nZXRfdW5zYWZl KGksIGspICogQi5nZXRfdW5zYWZlKGssIGopCisgICAgICAgICAgICAgICAgIHNlbGYuc2V0X3Vu c2FmZShpLCBqLCBzKQorIAorLSAgICBjcGRlZiBhZGRfcHJvZChNYXRyaXhXaW5kb3cgc2VsZiwg TWF0cml4V2luZG93IEEsIE1hdHJpeFdpbmRvdyBCKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRk X3Byb2QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQik6 CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgaiwgaworICAgICAgICAgaWYgQS5fbmNvbHMg IT0gQi5fbnJvd3Mgb3Igc2VsZi5fbnJvd3MgIT0gQS5fbnJvd3Mgb3Igc2VsZi5fbmNvbHMgIT0g Qi5fbmNvbHM6CisgICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJpbmNvbXBhdGli bGUgZGltZW5zaW9ucyIpCitAQCAtMjE1LDcgKzIxNSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4V2lu ZG93OgorICAgICAgICAgICAgICAgICAgICAgcyA9IHMgKyBBLmdldF91bnNhZmUoaSwgaykgKiBC LmdldF91bnNhZmUoaywgaikKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGksIGos IHMpCisgCistICAgIGNwZGVmIHN1YnRyYWN0X3Byb2QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJp eFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHN1YnRyYWN0 X3Byb2QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQik6 CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgaiwgaworICAgICAgICAgaWYgQS5fbmNvbHMg IT0gQi5fbnJvd3Mgb3Igc2VsZi5fbnJvd3MgIT0gQS5fbnJvd3Mgb3Igc2VsZi5fbmNvbHMgIT0g Qi5fbmNvbHM6CisgICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJpbmNvbXBhdGli bGUgZGltZW5zaW9ucyIpCitAQCAtMjI2LDcgKzIyNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4V2lu ZG93OgorICAgICAgICAgICAgICAgICAgICAgcyA9IHMgLSBBLmdldF91bnNhZmUoaSwgaykgKiBC LmdldF91bnNhZmUoaywgaikKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGksIGos IHMpCisgCistICAgIGNwZGVmIHN3YXBfcm93cyhNYXRyaXhXaW5kb3cgc2VsZiwgUHlfc3NpemVf dCBhLCBQeV9zc2l6ZV90IGIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzd2FwX3Jvd3MoTWF0cml4 V2luZG93IHNlbGYsIFB5X3NzaXplX3QgYSwgUHlfc3NpemVfdCBiKToKKyAgICAgICAgIHNlbGYu X21hdHJpeC5zd2FwX3Jvd3NfYyhzZWxmLl9yb3cgKyBhLCBzZWxmLl9yb3cgKyBiKQorIAorICAg ICBkZWYgZWNoZWxvbl9pbl9wbGFjZShNYXRyaXhXaW5kb3cgc2VsZik6CitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvbWF0cml4L3N0cmFzc2VuLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9zdHJhc3Nlbi5w eXgKK2luZGV4IGQ0NWU1MjE2NzQ3Li5lNTY4MDExYWRiNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L21hdHJpeC9zdHJhc3Nlbi5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9zdHJhc3Nlbi5weXgK K0BAIC01MCw3ICs1MCw3IEBAIGRlZiBzdHJhc3Nlbl93aW5kb3dfbXVsdGlwbHkoQywgQSxCLCBj dXRvZmYpOgorIAorIAorIGNkZWYgc3RyYXNzZW5fd2luZG93X211bHRpcGx5X2MoTWF0cml4V2lu ZG93IEMsIE1hdHJpeFdpbmRvdyBBLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TWF0cml4V2luZG93IEIsIFB5X3NzaXplX3QgY3V0b2ZmKSBub2V4Y2VwdDoKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1hdHJpeFdpbmRvdyBCLCBQeV9zc2l6ZV90IGN1dG9mZik6 CisgICAgICMgdG9kbyAtLSBJJ20gbm90IHN1cmUgaG93IHRvIGludGVycHJldCAiY3V0b2ZmIi4g U2hvdWxkIGl0IGJlLi4uCisgICAgICMgKGEpIHRoZSBtaW5pbXVtIHNpZGUgbGVuZ3RoIG9mIHRo ZSBtYXRyaWNlcyAoY3VycmVudGx5IGltcGxlbWVudGVkIGJlbG93KQorICAgICAjIChiKSB0aGUg bWF4aW11bSBzaWRlIGxlbmd0aCBvZiB0aGUgbWF0cmljZXMKK0BAIC0yMzUsNyArMjM1LDcgQEAg Y2RlZiBzdHJhc3Nlbl93aW5kb3dfbXVsdGlwbHlfYyhNYXRyaXhXaW5kb3cgQywgTWF0cml4V2lu ZG93IEEsCisgICAgICAgICBDX2J1bGsgPSBDLm1hdHJpeF93aW5kb3coMCwgMCwgQV9zdWJfbnJv d3MgPDwgMSwgQl9zdWJfbmNvbHMgPDwgMSkKKyAgICAgICAgIENfYnVsay5hZGRfcHJvZChBX2xh c3RfY29sLCBCX2xhc3Rfcm93KQorIAorLWNkZWYgc3VidHJhY3Rfc3RyYXNzZW5fcHJvZHVjdChN YXRyaXhXaW5kb3cgcmVzdWx0LCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIsIFB5X3Nz aXplX3QgY3V0b2ZmKSBub2V4Y2VwdDoKKytjZGVmIHN1YnRyYWN0X3N0cmFzc2VuX3Byb2R1Y3Qo TWF0cml4V2luZG93IHJlc3VsdCwgTWF0cml4V2luZG93IEEsIE1hdHJpeFdpbmRvdyBCLCBQeV9z c2l6ZV90IGN1dG9mZik6CisgICAgIGNkZWYgTWF0cml4V2luZG93IHRvX3N1YgorICAgICBpZiAo Y3V0b2ZmID09IC0xIG9yIHJlc3VsdC5uY29scygpIDw9IGN1dG9mZiBvciByZXN1bHQubnJvd3Mo KSA8PSBjdXRvZmYpOgorICAgICAgICAgcmVzdWx0LnN1YnRyYWN0X3Byb2QoQSwgQikKK0BAIC0z MTEsNyArMzExLDcgQEAgZGVmIHN0cmFzc2VuX2VjaGVsb24oTWF0cml4V2luZG93IEEsIGN1dG9m Zik6CisgICAgIHNpZ19vZmYoKQorIAorIAorLWNkZWYgc3RyYXNzZW5fZWNoZWxvbl9jKE1hdHJp eFdpbmRvdyBBLCBQeV9zc2l6ZV90IGN1dG9mZiwgUHlfc3NpemVfdCBtdWxfY3V0b2ZmKSBub2V4 Y2VwdDoKKytjZGVmIHN0cmFzc2VuX2VjaGVsb25fYyhNYXRyaXhXaW5kb3cgQSwgUHlfc3NpemVf dCBjdXRvZmYsIFB5X3NzaXplX3QgbXVsX2N1dG9mZik6CisgICAgICMgVGhlIGZvbGxvd2luZyBu b3RhdGlvbiB3aWxsIGJlIHVzZWQgaW4gdGhlIGNvbW1lbnRzIGJlbG93LCB3aGljaCBzaG91bGQg YmUgdW5kZXJzdG9vZCB0byBnaXZlCisgICAgICMgdGhlIGdlbmVyYWwgaWRlYSBvZiB3aGF0J3Mg Z29pbmcgb24sIGFzIGlmIHRoZXJlIHdlcmUgbm8gaW5jb252ZW5pZW50IG5vbi1waXZvdCBjb2x1 bW5zLgorICAgICAjIFRoZSBvcmlnaW5hbCBtYXRyaXggaXMgZ2l2ZW4gYnkgWyBBIEIgXQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHhkIGIv c3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weGQKK2luZGV4IDU4Nzdm NjJmYzA5Li4yYTM2ZWQ2YTk1YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lz X2V4Y2hhbmdlX21hdHJvaWQucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNo YW5nZV9tYXRyb2lkLnB4ZAorQEAgLTE1LDg2ICsxNSw4NiBAQCBjZGVmIGNsYXNzIEJhc2lzRXhj aGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICBjZGVmIF93ZWFrX2ludmFyaWFudF92YXIsIF9z dHJvbmdfaW52YXJpYW50X3ZhciwgX2hldXJpc3RpY19pbnZhcmlhbnRfdmFyCisgICAgIGNkZWYg U2V0U3lzdGVtIF93ZWFrX3BhcnRpdGlvbl92YXIsIF9zdHJvbmdfcGFydGl0aW9uX3ZhciwgX2hl dXJpc3RpY19wYXJ0aXRpb25fdmFyCisgCistICAgIGNkZWYgX3JlbGFiZWwoc2VsZiwgbCkgbm9l eGNlcHQKKysgICAgY2RlZiBfcmVsYWJlbChzZWxmLCBsKQorIAorLSAgICBjZGVmIF9wYWNrKHNl bGYsIGJpdHNldF90LCBYKSBub2V4Y2VwdAorLSAgICBjZGVmIF9fdW5wYWNrKHNlbGYsIGJpdHNl dF90KSBub2V4Y2VwdAorKyAgICBjZGVmIF9wYWNrKHNlbGYsIGJpdHNldF90LCBYKQorKyAgICBj ZGVmIF9fdW5wYWNrKHNlbGYsIGJpdHNldF90KQorICAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdl X3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBfZXhj aGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBfbW92 ZShzZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRfdCBZKSBleGNlcHQgLTEKKy0gICAgY2RlZiBfX2Z1 bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgbG9uZyB4KSBub2V4Y2VwdAorLSAg ICBjZGVmIF9fZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgbG9uZyB5KSBub2V4 Y2VwdAorKyAgICBjZGVmIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBs b25nIHgpCisrICAgIGNkZWYgX19mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBs b25nIHkpCisgCistICAgIGNkZWYgX19tYXhfaW5kZXBlbmRlbnQoc2VsZiwgYml0c2V0X3QsIGJp dHNldF90KSBub2V4Y2VwdAorLSAgICBjZGVmIF9fY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgYml0 c2V0X3QpIG5vZXhjZXB0CistICAgIGNkZWYgX19jbG9zdXJlKHNlbGYsIGJpdHNldF90LCBiaXRz ZXRfdCkgbm9leGNlcHQKKy0gICAgY2RlZiBfX21heF9jb2luZGVwZW5kZW50KHNlbGYsIGJpdHNl dF90LCBiaXRzZXRfdCkgbm9leGNlcHQKKy0gICAgY2RlZiBfX2NvY2lyY3VpdChzZWxmLCBiaXRz ZXRfdCwgYml0c2V0X3QpIG5vZXhjZXB0CistICAgIGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChz ZWxmLCBiaXRzZXRfdCwgYml0c2V0X3QpIG5vZXhjZXB0CisrICAgIGNkZWYgX19tYXhfaW5kZXBl bmRlbnQoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90KQorKyAgICBjZGVmIF9fY2lyY3VpdChzZWxm LCBiaXRzZXRfdCwgYml0c2V0X3QpCisrICAgIGNkZWYgX19jbG9zdXJlKHNlbGYsIGJpdHNldF90 LCBiaXRzZXRfdCkKKysgICAgY2RlZiBfX21heF9jb2luZGVwZW5kZW50KHNlbGYsIGJpdHNldF90 LCBiaXRzZXRfdCkKKysgICAgY2RlZiBfX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgYml0c2V0 X3QpCisrICAgIGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCwgYml0c2V0 X3QpCisgCistICAgIGNkZWYgX19hdWdtZW50KHNlbGYsIGJpdHNldF90LCBiaXRzZXRfdCwgYml0 c2V0X3QpIG5vZXhjZXB0CisrICAgIGNkZWYgX19hdWdtZW50KHNlbGYsIGJpdHNldF90LCBiaXRz ZXRfdCwgYml0c2V0X3QpCisgICAgIGNkZWYgYmludCBfX2lzX2luZGVwZW5kZW50KHNlbGYsIGJp dHNldF90IEYpIGV4Y2VwdCAtMQorLSAgICBjZGVmIF9fbW92ZV9jdXJyZW50X2Jhc2lzKHNlbGYs IGJpdHNldF90LCBiaXRzZXRfdCkgbm9leGNlcHQKKysgICAgY2RlZiBfX21vdmVfY3VycmVudF9i YXNpcyhzZWxmLCBiaXRzZXRfdCwgYml0c2V0X3QpCisgCisgICAgIGNkZWYgYmludCBfc2V0X2N1 cnJlbnRfYmFzaXMoc2VsZiwgRikgbm9leGNlcHQKKyAKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGdyb3VuZHNldF9saXN0KHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBmdWxsX2NvcmFu ayhzZWxmKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBiYXNpcyhzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfbW92ZV9jdXJyZW50X2Jhc2lzKHNlbGYsIFgsIFkpIG5vZXhjZXB0CistCistICAg IGNwZGVmIF9tYXhfaW5kZXBlbmRlbnQoc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3Jh bmsoc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NpcmN1aXQoc2VsZiwgRikgbm9leGNl cHQKKy0gICAgY3BkZWYgX2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2Nsb3N1cmUoc2VsZiwgRikgbm9leGNlcHQKKy0KKy0gICAgY3BkZWYgX21h eF9jb2luZGVwZW5kZW50KHNlbGYsIEYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9jb3Jhbmsoc2Vs ZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NvY2lyY3VpdChzZWxmLCBGKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIEIsIGUpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9jb2Nsb3N1cmUoc2VsZiwgRikgbm9leGNlcHQKKy0KKy0gICAgY3BkZWYgX2F1 Z21lbnQoc2VsZiwgWCwgWSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNl bGYsIEYpIG5vZXhjZXB0CistCistICAgIGNwZGVmIGZfdmVjdG9yKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNkZWYgIF9mX3ZlY3Rvcl9yZWMoc2VsZiwgb2JqZWN0IGZfdmVjLCBiaXRzZXRfdCogZmxh dHMsIGJpdHNldF90KiB0b2RvLCBsb25nIGVsdCwgbG9uZyBybmspIG5vZXhjZXB0CistICAgIGNw ZGVmIGZsYXRzKHNlbGYsIFIpIG5vZXhjZXB0CistICAgIGNkZWYgIF9mbGF0c19yZWMoc2VsZiwg U2V0U3lzdGVtIFJmbGF0cywgbG9uZyBSLCBiaXRzZXRfdCogZmxhdHMsIGJpdHNldF90KiB0b2Rv LCBsb25nIGVsdCwgbG9uZyBybmspIG5vZXhjZXB0CistICAgIGNwZGVmIGNvZmxhdHMoc2VsZiwg Uikgbm9leGNlcHQKKy0gICAgY2RlZiAgX2NvZmxhdHNfcmVjKHNlbGYsIFNldFN5c3RlbSBSY29m bGF0cywgbG9uZyBSLCBiaXRzZXRfdCogY29mbGF0cywgYml0c2V0X3QqIHRvZG8sIGxvbmcgZWx0 LCBsb25nIGNvcm5rKSBub2V4Y2VwdAorLSAgICBjZGVmIF9mbGF0X2VsZW1lbnRfaW52KHNlbGYs IGxvbmcgaykgbm9leGNlcHQKKy0gICAgY2RlZiAgX2ZsYXRfZWxlbWVudF9pbnZfcmVjKHNlbGYs IG9iamVjdCBmX2luYywgbG9uZyBSLCBiaXRzZXRfdCogZmxhdHMsIGJpdHNldF90KiB0b2RvLCBs b25nIGVsdCwgbG9uZyBpKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBiYXNlc19jb3VudChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBpbmRlcGVuZGVudF9yX3NldHMoc2VsZiwgbG9uZyByKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBiYXNlcyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZXBl bmRlbnRfcl9zZXRzKHNlbGYsIGxvbmcgcikgbm9leGNlcHQKKy0gICAgY3BkZWYgbm9uYmFzZXMo c2VsZikgbm9leGNlcHQKKy0KKy0gICAgY3BkZWYgbm9uc3Bhbm5pbmdfY2lyY3VpdHMoc2VsZikg bm9leGNlcHQKKy0gICAgY3BkZWYgY29jaXJjdWl0cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBjaXJjdWl0cyhzZWxmKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBfY2hhcmFjdGVyaXN0aWNf c2V0c3lzdGVtKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF93ZWFrX2ludmFyaWFudChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfd2Vha19wYXJ0aXRpb24oc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgX3N0cm9uZ19pbnZhcmlhbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3N0 cm9uZ19wYXJ0aXRpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2hldXJpc3RpY19pbnZh cmlhbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2hldXJpc3RpY19wYXJ0aXRpb24oc2Vs Zikgbm9leGNlcHQKKy0gICAgY2RlZiBfZmx1c2goc2VsZikgbm9leGNlcHQKKy0KKy0gICAgY3Bk ZWYgX2VxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgUD0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf aXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0gICAg Y3BkZWYgX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNf aXNvbW9ycGhpc20oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2VwdAorKyAgICBjcGRlZiBn cm91bmRzZXQoc2VsZikKKysgICAgY3BkZWYgZ3JvdW5kc2V0X2xpc3Qoc2VsZikKKysgICAgY3Bk ZWYgZnVsbF9yYW5rKHNlbGYpCisrICAgIGNwZGVmIGZ1bGxfY29yYW5rKHNlbGYpCisrCisrICAg IGNwZGVmIGJhc2lzKHNlbGYpCisrICAgIGNwZGVmIF9tb3ZlX2N1cnJlbnRfYmFzaXMoc2VsZiwg WCwgWSkKKysKKysgICAgY3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBGKQorKyAgICBjcGRl ZiBfcmFuayhzZWxmLCBGKQorKyAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBGKQorKyAgICBjcGRl ZiBfZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBCLCBlKQorKyAgICBjcGRlZiBfY2xvc3VyZShz ZWxmLCBGKQorKworKyAgICBjcGRlZiBfbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgRikKKysgICAg Y3BkZWYgX2NvcmFuayhzZWxmLCBGKQorKyAgICBjcGRlZiBfY29jaXJjdWl0KHNlbGYsIEYpCisr ICAgIGNwZGVmIF9mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgQiwgZSkKKysgICAgY3BkZWYg X2NvY2xvc3VyZShzZWxmLCBGKQorKworKyAgICBjcGRlZiBfYXVnbWVudChzZWxmLCBYLCBZKQor KyAgICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgRikKKysKKysgICAgY3BkZWYgZl92ZWN0 b3Ioc2VsZikKKysgICAgY2RlZiAgX2ZfdmVjdG9yX3JlYyhzZWxmLCBvYmplY3QgZl92ZWMsIGJp dHNldF90KiBmbGF0cywgYml0c2V0X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIHJuaykKKysgICAg Y3BkZWYgZmxhdHMoc2VsZiwgUikKKysgICAgY2RlZiAgX2ZsYXRzX3JlYyhzZWxmLCBTZXRTeXN0 ZW0gUmZsYXRzLCBsb25nIFIsIGJpdHNldF90KiBmbGF0cywgYml0c2V0X3QqIHRvZG8sIGxvbmcg ZWx0LCBsb25nIHJuaykKKysgICAgY3BkZWYgY29mbGF0cyhzZWxmLCBSKQorKyAgICBjZGVmICBf Y29mbGF0c19yZWMoc2VsZiwgU2V0U3lzdGVtIFJjb2ZsYXRzLCBsb25nIFIsIGJpdHNldF90KiBj b2ZsYXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxvbmcgY29ybmspCisrICAgIGNkZWYg X2ZsYXRfZWxlbWVudF9pbnYoc2VsZiwgbG9uZyBrKQorKyAgICBjZGVmICBfZmxhdF9lbGVtZW50 X2ludl9yZWMoc2VsZiwgb2JqZWN0IGZfaW5jLCBsb25nIFIsIGJpdHNldF90KiBmbGF0cywgYml0 c2V0X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIGkpCisrCisrICAgIGNwZGVmIGJhc2VzX2NvdW50 KHNlbGYpCisrICAgIGNwZGVmIGluZGVwZW5kZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpCisrICAg IGNwZGVmIGJhc2VzKHNlbGYpCisrICAgIGNwZGVmIGRlcGVuZGVudF9yX3NldHMoc2VsZiwgbG9u ZyByKQorKyAgICBjcGRlZiBub25iYXNlcyhzZWxmKQorKworKyAgICBjcGRlZiBub25zcGFubmlu Z19jaXJjdWl0cyhzZWxmKQorKyAgICBjcGRlZiBjb2NpcmN1aXRzKHNlbGYpCisrICAgIGNwZGVm IGNpcmN1aXRzKHNlbGYpCisrCisrICAgIGNwZGVmIF9jaGFyYWN0ZXJpc3RpY19zZXRzeXN0ZW0o c2VsZikKKysgICAgY3BkZWYgX3dlYWtfaW52YXJpYW50KHNlbGYpCisrICAgIGNwZGVmIF93ZWFr X3BhcnRpdGlvbihzZWxmKQorKyAgICBjcGRlZiBfc3Ryb25nX2ludmFyaWFudChzZWxmKQorKyAg ICBjcGRlZiBfc3Ryb25nX3BhcnRpdGlvbihzZWxmKQorKyAgICBjcGRlZiBfaGV1cmlzdGljX2lu dmFyaWFudChzZWxmKQorKyAgICBjcGRlZiBfaGV1cmlzdGljX3BhcnRpdGlvbihzZWxmKQorKyAg ICBjZGVmIF9mbHVzaChzZWxmKQorKworKyAgICBjcGRlZiBfZXF1aXRhYmxlX3BhcnRpdGlvbihz ZWxmLCBQPSopCisrICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZp Y2F0ZT0qKQorKyAgICBjcGRlZiBfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVm IF9pc19pc29tb3JwaGlzbShzZWxmLCBvdGhlciwgbW9ycGhpc20pCisgICAgIGNkZWYgYmludCBf X2lzX2lzb21vcnBoaXNtKHNlbGYsIEJhc2lzRXhjaGFuZ2VNYXRyb2lkIG90aGVyLCBtb3JwaGlz bSkgbm9leGNlcHQKKyAKKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikgbm9leGNlcHQKKysgICAg Y3BkZWYgaXNfdmFsaWQoc2VsZikKKyAKKyBjZGVmIGJpbnQgbnhrc3JkKGJpdHNldF9zICpiLCBs b25nIG4sIGxvbmcgaywgYmludCBzdWNjKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHl4IGIvc3JjL3NhZ2UvbWF0cm9pZHMv YmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weXgKK2luZGV4IGJmYTEzYjQ0YzAyLi5hNmEzOGM1ODA4 MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQu cHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB5eAor QEAgLTE5MSw3ICsxOTEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJv aWQpOgorICAgICAgICAgYml0c2V0X2ZyZWUoc2VsZi5fb3V0cHV0KQorICAgICAgICAgYml0c2V0 X2ZyZWUoc2VsZi5fdGVtcCkKKyAKKy0gICAgY2RlZiBfcmVsYWJlbChzZWxmLCBsKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfcmVsYWJlbChzZWxmLCBsKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmVsYWJlbCBlYWNoIGVsZW1lbnQgYGVgIGFzIGBsW2VdYCwgd2hlcmUgYGxgIGlzIGEgZ2l2ZW4g aW5qZWN0aXZlIG1hcC4KKyAKK0BAIC0yMzAsNyArMjMwLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9oZXVyaXN0aWNfcGFy dGl0aW9uX3Zhci5fcmVsYWJlbChsKQorIAorICAgICAjIHRoZSBlbmdpbmUKKy0gICAgY2RlZiBf cGFjayhzZWxmLCBiaXRzZXRfdCBJLCBGKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcGFjayhzZWxm LCBiaXRzZXRfdCBJLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgRW5jb2RlIGEgc3Vic2V0 IEYgb2YgdGhlIGdyb3VuZHNldCBpbnRvIGEgYml0cGFja2VkIHNldCBvZiBpbnRlZ2VycworICAg ICAgICAgIiIiCitAQCAtMjM4LDcgKzIzOCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBmb3IgZiBpbiBGOgorICAgICAgICAgICAgIGJpdHNl dF9hZGQoSSwgPG1wX2JpdGNudF90PiBzZWxmLl9pZHhbZl0pCisgCistICAgIGNkZWYgX191bnBh Y2soc2VsZiwgYml0c2V0X3QgSSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX191bnBhY2soc2VsZiwg Yml0c2V0X3QgSSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFVuZW5jb2RlIGEgYml0cGFja2Vk IHNldCBvZiBpbnRlZ2VycyB0byBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0LgorICAgICAgICAg IiIiCitAQCAtMjg1LDcgKzI4NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQo TWF0cm9pZCk6CisgICAgICAgICAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoWSwgeSArIDEp CisgICAgICAgICAgICAgeCA9IGJpdHNldF9uZXh0KFgsIHggKyAxKQorIAorLSAgICBjZGVmIF9f ZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMsIGxvbmcgeCkgbm9leGNlcHQ6 CisrICAgIGNkZWYgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3QgQywgbG9u ZyB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB1bmlxdWUgY29jaXJjdWl0 IHRoYXQgbWVldHMgYGBzZWxmLl9jdXJyZW50X2Jhc2lzYGAgaW4gZXhhY3RseSBlbGVtZW50IGBg eGBgLgorICAgICAgICAgIiIiCitAQCAtMjk5LDcgKzI5OSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNF eGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNl bGYuX3RlbXAsIHkgKyAxKQorICAgICAgICAgYml0c2V0X2FkZChDLCB4KQorIAorLSAgICBjZGVm IF9fZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHkpIG5vZXhjZXB0 OgorKyAgICBjZGVmIF9fZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25n IHkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHVuaXF1ZSBjaXJjdWl0IGNv bnRhaW5lZCBpbiBgYHNlbGYuX2N1cnJlbnRfYmFzaXNgYCB1bmlvbiBgYHlgYC4KKyAgICAgICAg ICIiIgorQEAgLTMxMiw3ICszMTIsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lk KE1hdHJvaWQpOgorICAgICAgICAgICAgIHggPSBiaXRzZXRfbmV4dChzZWxmLl9jdXJyZW50X2Jh c2lzLCB4ICsgMSkKKyAgICAgICAgIGJpdHNldF9hZGQoQywgeSkKKyAKKy0gICAgY2RlZiBfX21h eF9pbmRlcGVuZGVudChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfX21heF9pbmRlcGVuZGVudChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToK KyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZlcnNpb24gb2YgYGBtYXhfaW5kZXBl bmRlbnRgYC4KKyAgICAgICAgICIiIgorQEAgLTMyMSw3ICszMjEsNyBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9p bnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRfaW50ZXJzZWN0aW9uKFIsIHNl bGYuX2N1cnJlbnRfYmFzaXMsIEYpCisgCistICAgIGNkZWYgX19jaXJjdWl0KHNlbGYsIGJpdHNl dF90IFIsIGJpdHNldF90IEYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9fY2lyY3VpdChzZWxmLCBi aXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2Vk IHZlcnNpb24gb2YgYGBjaXJjdWl0YGAuCisgICAgICAgICAiIiIKK0BAIC0zNDgsNyArMzQ4LDcg QEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAg ICAgICAgcmV0dXJuCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX291dHNpZGUs IHkgKyAxKQorIAorLSAgICBjZGVmIF9fY2xvc3VyZShzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRf dCBGKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX2Nsb3N1cmUoc2VsZiwgYml0c2V0X3QgUiwgYml0 c2V0X3QgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBg Y2xvc3VyZWBgLgorICAgICAgICAgIiIiCitAQCAtMzYyLDcgKzM2Miw3IEBAIGNkZWYgY2xhc3Mg QmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgYml0c2V0X2RpZmZl cmVuY2UoUiwgUiwgRikKKyAgICAgICAgICAgICB4ID0gYml0c2V0X25leHQoc2VsZi5faW5zaWRl LCB4ICsgMSkKKyAKKy0gICAgY2RlZiBfX21heF9jb2luZGVwZW5kZW50KHNlbGYsIGJpdHNldF90 IFIsIGJpdHNldF90IEYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9fbWF4X2NvaW5kZXBlbmRlbnQo c2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEJp dHBhY2tlZCB2ZXJzaW9uIG9mIGBgbWF4X2NvaW5kZXBlbmRlbnRgYC4KKyAgICAgICAgICIiIgor QEAgLTM3Miw3ICszNzIsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJv aWQpOgorICAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisg ICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShSLCBGLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorIAor LSAgICBjZGVmIF9fY29jaXJjdWl0KHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9fY29jaXJjdWl0KHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYp OgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYGNvY2lyY3Vp dGBgLgorICAgICAgICAgIiIiCitAQCAtNDAwLDcgKzQwMCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNF eGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAg ICAgICAgIHggPSBiaXRzZXRfbmV4dChzZWxmLl9pbnNpZGUsIHggKyAxKQorIAorLSAgICBjZGVm IF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRikgbm9leGNl cHQ6CisrICAgIGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCBSLCBiaXRz ZXRfdCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZlcnNpb24gb2YgYGBj bG9zdXJlYGAuCisgICAgICAgICAiIiIKK0BAIC00MTUsNyArNDE1LDcgQEAgY2RlZiBjbGFzcyBC YXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBiaXRzZXRfZGlmZmVy ZW5jZShSLCBSLCBGKQorICAgICAgICAgICAgIHkgPSBiaXRzZXRfbmV4dChzZWxmLl9vdXRzaWRl LCB5ICsgMSkKKyAKKy0gICAgY2RlZiBfX2F1Z21lbnQoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0 X3QgWCwgYml0c2V0X3QgWSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX19hdWdtZW50KHNlbGYsIGJp dHNldF90IFIsIGJpdHNldF90IFgsIGJpdHNldF90IFkpOgorICAgICAgICAgIiIiCisgICAgICAg ICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYGF1Z21lbnRgYC4KKyAgICAgICAgICIiIgorQEAgLTQz Niw3ICs0MzYsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgor ICAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAg ICByZXR1cm4gYml0c2V0X2lzZW1wdHkoc2VsZi5fb3V0c2lkZSkKKyAKKy0gICAgY2RlZiBfX21v dmVfY3VycmVudF9iYXNpcyhzZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRfdCBZKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfX21vdmVfY3VycmVudF9iYXNpcyhzZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRf dCBZKToKKyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZlcnNpb24gb2YgYGBfbW92 ZV9jdXJyZW50X2Jhc2lzYGAuCisgICAgICAgICAiIiIKK0BAIC00NjAsNyArNDYwLDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHJldHVybiBi aXRzZXRfaXNlbXB0eShzZWxmLl9vdXRzaWRlKSBhbmQgYml0c2V0X2lzZW1wdHkoc2VsZi5faW5z aWRlKQorIAorICAgICAjIGdyb3VuZHNldCBhbmQgZnVsbF9yYW5rCistICAgIGNwZGVmIGdyb3Vu ZHNldChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGdyb3VuZHNldCBvZiB0aGUgbWF0cm9pZC4KKyAK K0BAIC00NzgsNyArNDc4LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VuZHNldAorIAor LSAgICBjcGRlZiBncm91bmRzZXRfbGlzdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ3Jv dW5kc2V0X2xpc3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGxpc3Qg b2YgZWxlbWVudHMgb2YgdGhlIGdyb3VuZHNldCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC01MjMs NyArNTIzLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VuZHNldF9zaXplCisgCistICAg IGNwZGVmIGZ1bGxfcmFuayhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZnVsbF9yYW5rKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByYW5rIG9mIHRoZSBtYXRy b2lkLgorIAorQEAgLTU0NCw3ICs1NDQsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRy b2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbWF0cm9p ZF9yYW5rCisgCistICAgIGNwZGVmIGZ1bGxfY29yYW5rKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBmdWxsX2NvcmFuayhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgY29yYW5rIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTU3Miw3ICs1NzIsNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorIAorICAgICAjIG1hdHJvaWQgb3Jh Y2xlcworIAorLSAgICBjcGRlZiBiYXNpcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFz aXMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYW4gYXJiaXRyYXJ5IGJh c2lzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTYwMCw3ICs2MDAsNyBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5fX3VucGFjayhzZWxmLl9jdXJyZW50X2Jhc2lzKQorIAorLSAgICBjcGRlZiBfbW92 ZV9jdXJyZW50X2Jhc2lzKHNlbGYsIFgsIFkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbW92ZV9j dXJyZW50X2Jhc2lzKHNlbGYsIFgsIFkpOgorICAgICAgICAgIiIiCisgICAgICAgICBDaGFuZ2Ug Y3VycmVudCBiYXNpcyBzbyB0aGF0IGludGVyc2VjdGlvbiB3aXRoIFggaXMgbWF4aW1pemVkLAor ICAgICAgICAgaW50ZXJzZWN0aW9uIHdpdGggWSBpcyBtaW5pbWl6ZWQuCitAQCAtNjMwLDcgKzYz MCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAg ICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0MiwgWSkKKyAgICAgICAgIHNlbGYuX19tb3ZlX2N1cnJl bnRfYmFzaXMoc2VsZi5faW5wdXQsIHNlbGYuX2lucHV0MikKKyAKKy0gICAgY3BkZWYgX21heF9p bmRlcGVuZGVudChzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21heF9pbmRlcGVuZGVu dChzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBhIG1heGltYWwgaW5k ZXBlbmRlbnQgc3Vic2V0LgorIAorQEAgLTY2MCw3ICs2NjAsNyBAQCBjZGVmIGNsYXNzIEJhc2lz RXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fX21heF9pbmRlcGVuZGVu dChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBh Y2soc2VsZi5fb3V0cHV0KQorIAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBGKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3Jhbmsoc2VsZiwgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1 dGUgdGhlIHJhbmsgb2YgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZCBzZXQuCisgCitAQCAtNjkwLDcg KzY5MCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICBzZWxmLl9fbWF4X2luZGVwZW5kZW50KHNlbGYuX291dHB1dCwgc2VsZi5faW5wdXQpCisg ICAgICAgICByZXR1cm4gYml0c2V0X2xlbihzZWxmLl9vdXRwdXQpCisgCistICAgIGNwZGVmIF9j aXJjdWl0KHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBGKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbWluaW1hbCBkZXBlbmRlbnQgc3Vic2V0 LgorIAorQEAgLTcyNyw3ICs3MjcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lk KE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fX2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxmLl9p bnB1dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAKKy0g ICAgY3BkZWYgX2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYsIEIsIGUpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBgQmAtZnVuZGFtZW50YWwgY2lyY3VpdCB1c2luZyBgZWAuCisg CitAQCAtNzU0LDcgKzc1NCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0 cm9pZCk6CisgICAgICAgICBzZWxmLl9fZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLl9vdXRwdXQs IHNlbGYuX2lkeFtlXSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1 dCkKKyAKKy0gICAgY3BkZWYgX2Nsb3N1cmUoc2VsZiwgRikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9jbG9zdXJlKHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNs b3N1cmUgb2YgYSBzZXQuCisgCitAQCAtNzg0LDcgKzc4NCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNF eGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9fY2xvc3VyZShzZWxmLl9v dXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5f b3V0cHV0KQorIAorLSAgICBjcGRlZiBfbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgRikgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9tYXhfY29pbmRlcGVuZGVudChzZWxmLCBGKToKKyAgICAgICAgICIi IgorICAgICAgICAgQ29tcHV0ZSBhIG1heGltYWwgY29pbmRlcGVuZGVudCBzdWJzZXQuCisgCitA QCAtODE0LDcgKzgxNCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9p ZCk6CisgICAgICAgICBzZWxmLl9fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZi5fb3V0cHV0LCBzZWxm Ll9pbnB1dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAK Ky0gICAgY3BkZWYgX2NvcmFuayhzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvcmFu ayhzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb3Jhbmsgb2Yg YSBzZXQuCisgCitAQCAtODQ0LDcgKzg0NCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZi5f b3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGVuKHNlbGYuX291 dHB1dCkKKyAKKy0gICAgY3BkZWYgX2NvY2lyY3VpdChzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2NvY2lyY3VpdChzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IGEgbWluaW1hbCBjb2RlcGVuZGVudCBzdWJzZXQuCisgCitAQCAtODgxLDcgKzg4MSw3IEBAIGNk ZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9f Y29jaXJjdWl0KHNlbGYuX291dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4gc2Vs Zi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisgCistICAgIGNwZGVmIF9mdW5kYW1lbnRhbF9jb2Np cmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mdW5kYW1lbnRhbF9jb2Np cmN1aXQoc2VsZiwgQiwgZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBC YC1mdW5kYW1lbnRhbCBjaXJjdWl0IHVzaW5nIGBlYC4KKyAKK0BAIC05MDgsNyArOTA4LDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNlbGYu X19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pZHhbZV0pCisgICAg ICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisgCistICAgIGNwZGVmIF9j b2Nsb3N1cmUoc2VsZiwgRikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2Nsb3N1cmUoc2VsZiwg Rik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29jbG9zdXJlIG9mIGEgc2V0 LgorIAorQEAgLTkzOCw3ICs5MzgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lk KE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fY29jbG9zdXJlX2ludGVybmFsKHNlbGYuX291dHB1 dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9vdXRw dXQpCisgCistICAgIGNwZGVmIF9hdWdtZW50KHNlbGYsIFgsIFkpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYXVnbWVudChzZWxmLCBYLCBZKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biBhIG1heGltYWwgc3Vic2V0IGBJYCBvZiBgWWAgc3VjaCB0aGF0IGByKFggKyBJKT1yKFgpICsg cihJKWAuCisgCitAQCAtOTY4LDcgKzk2OCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9fYXVnbWVudChzZWxmLl9vdXRwdXQsIHNl bGYuX2lucHV0LCBzZWxmLl9pbnB1dDIpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhz ZWxmLl9vdXRwdXQpCisgCistICAgIGNwZGVmIF9pc19pbmRlcGVuZGVudChzZWxmLCBGKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIEYpOgorICAgICAgICAgIiIi CisgICAgICAgICBUZXN0IGlmIGlucHV0IGlzIGluZGVwZW5kZW50LgorIAorQEAgLTEwMDEsNyAr MTAwMSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgCisg ICAgICMgY29ubmVjdGl2aXR5CisgCistICAgIGNwZGVmIGNvbXBvbmVudHMoc2VsZikgbm9leGNl cHQ6CisrICAgIGNwZGVmIGNvbXBvbmVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBhbiBpdGVyYWJsZSBjb250YWluaW5nIHRoZSBjb21wb25lbnRzIG9mIHRoZSBtYXRy b2lkLgorIAorQEAgLTEwODUsNyArMTA4NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzaWdfZnJlZShjb21wKQorICAgICAgICAgcmV0dXJu IHJlcworIAorLSAgICBjcGRlZiBfbGluayhzZWxmLCBTLCBUKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2xpbmsoc2VsZiwgUywgVCk6CisgICAgICAgICByIiIiCisgICAgICAgICBHaXZlbiBkaXNq b2ludCBzdWJzZXRzIGBTYCBhbmQgYFRgLCByZXR1cm4gYSBjb25uZWN0b3IgYElgIGFuZCBhIHNl cGFyYXRpb24gYFhgLAorICAgICAgICAgd2hpY2ggYXJlIG9wdGltYWwgZHVhbCBzb2x1dGlvbnMg aW4gVHV0dGUncyBMaW5raW5nIFRoZW9yZW06CitAQCAtMTIzMiw3ICsxMjMyLDcgQEAgY2RlZiBj bGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgIyBlbnVtZXJhdGlv bgorIAorLSAgICBjcGRlZiBmX3ZlY3RvcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZl92 ZWN0b3Ioc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBmYC12ZWN0 b3Igb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTI3Miw3ICsxMjcyLDcgQEAgY2RlZiBjbGFzcyBC YXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNpZ19mcmVlKHRvZG8pCisg ICAgICAgICByZXR1cm4gZl92ZWMKKyAKKy0gICAgY2RlZiBfZl92ZWN0b3JfcmVjKHNlbGYsIG9i amVjdCBmX3ZlYywgYml0c2V0X3QqIGZsYXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxv bmcgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2ZfdmVjdG9yX3JlYyhzZWxmLCBvYmplY3QgZl92 ZWMsIGJpdHNldF90KiBmbGF0cywgYml0c2V0X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIGkpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZWN1cnNpb24gZm9yIHRoZSBmX3ZlY3RvciBtZXRob2Qu CisgICAgICAgICAiIiIKK0BAIC0xMjkwLDcgKzEyOTAsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhj aGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBzZWxmLl9mX3ZlY3Rvcl9y ZWMoZl92ZWMsIGZsYXRzLCB0b2RvLCBlICsgMSwgaSArIDEpCisgICAgICAgICAgICAgZSA9IGJp dHNldF9uZXh0KHRvZG9baV0sIGUpCisgCistICAgIGNwZGVmIGZsYXRzKHNlbGYsIHIpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBmbGF0cyhzZWxmLCByKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIGZsYXRzIG9mIHRoZSBtYXRyb2lkIG9mIHNwZWNpZmll ZCByYW5rLgorIAorQEAgLTEzNDUsNyArMTM0NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzaWdfZnJlZSh0b2RvKQorICAgICAgICAgcmV0 dXJuIFJmbGF0cworIAorLSAgICBjZGVmIF9mbGF0c19yZWMoc2VsZiwgU2V0U3lzdGVtIFJmbGF0 cywgbG9uZyBSLCBiaXRzZXRfdCogZmxhdHMsIGJpdHNldF90KiB0b2RvLCBsb25nIGVsdCwgbG9u ZyBpKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZmxhdHNfcmVjKHNlbGYsIFNldFN5c3RlbSBSZmxh dHMsIGxvbmcgUiwgYml0c2V0X3QqIGZsYXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxv bmcgaSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlY3Vyc2lvbiBmb3IgdGhlIGBgZmxhdHNg YCBtZXRob2QuCisgICAgICAgICAiIiIKK0BAIC0xMzY1LDcgKzEzNjUsNyBAQCBjZGVmIGNsYXNz IEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBzZWxmLl9m bGF0c19yZWMoUmZsYXRzLCBSLCBmbGF0cywgdG9kbywgZSArIDEsIGkgKyAxKQorICAgICAgICAg ICAgIGUgPSBiaXRzZXRfbmV4dCh0b2RvW2ldLCBlKQorIAorLSAgICBjcGRlZiBjb2ZsYXRzKHNl bGYsIHIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2ZsYXRzKHNlbGYsIHIpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvbGxlY3Rpb24gb2YgY29mbGF0cyBvZiB0aGUgbWF0 cm9pZCBvZiBzcGVjaWZpZWQgY29yYW5rLgorIAorQEAgLTE0MjAsNyArMTQyMCw3IEBAIGNkZWYg Y2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzaWdfZnJlZSh0 b2RvKQorICAgICAgICAgcmV0dXJuIFJjb2ZsYXRzCisgCistICAgIGNkZWYgX2NvZmxhdHNfcmVj KHNlbGYsIFNldFN5c3RlbSBSY29mbGF0cywgbG9uZyBSLCBiaXRzZXRfdCogY29mbGF0cywgYml0 c2V0X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIGkpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9jb2Zs YXRzX3JlYyhzZWxmLCBTZXRTeXN0ZW0gUmNvZmxhdHMsIGxvbmcgUiwgYml0c2V0X3QqIGNvZmxh dHMsIGJpdHNldF90KiB0b2RvLCBsb25nIGVsdCwgbG9uZyBpKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmVjdXJzaW9uIGZvciB0aGUgYGBjb2ZsYXRzYGAgbWV0aG9kLgorICAgICAgICAgIiIi CitAQCAtMTQ0MCw3ICsxNDQwLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChN YXRyb2lkKToKKyAgICAgICAgICAgICAgICAgc2VsZi5fY29mbGF0c19yZWMoUmNvZmxhdHMsIFIs IGNvZmxhdHMsIHRvZG8sIGUgKyAxLCBpICsgMSkKKyAgICAgICAgICAgICBlID0gYml0c2V0X25l eHQodG9kb1tpXSwgZSkKKyAKKy0gICAgY2RlZiBfZmxhdF9lbGVtZW50X2ludihzZWxmLCBsb25n IGspIG5vZXhjZXB0OgorKyAgICBjZGVmIF9mbGF0X2VsZW1lbnRfaW52KHNlbGYsIGxvbmcgayk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgYSBmbGF0LWVsZW1lbnQgaW52YXJpYW50 IG9mIHRoZSBtYXRyb2lkLgorICAgICAgICAgIiIiCitAQCAtMTQ3NSw3ICsxNDc1LDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIGZfdmVjID0g dHVwbGUoW2ZfaW5jW2ldW3NlbGYuX2dyb3VuZHNldF9zaXplXSBmb3IgaSBpbiByYW5nZShrICsg MSldKQorICAgICAgICAgcmV0dXJuIGZpZSwgZl92ZWMKKyAKKy0gICAgY2RlZiBfZmxhdF9lbGVt ZW50X2ludl9yZWMoc2VsZiwgb2JqZWN0IGZfaW5jLCBsb25nIFIsIGJpdHNldF90KiBmbGF0cywg Yml0c2V0X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIGkpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9m bGF0X2VsZW1lbnRfaW52X3JlYyhzZWxmLCBvYmplY3QgZl9pbmMsIGxvbmcgUiwgYml0c2V0X3Qq IGZsYXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxvbmcgaSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJlY3Vyc2lvbiBmb3IgYGBfZmxhdF9lbGVtZW50X2ludmBgLgorICAgICAgICAg IiIiCitAQCAtMTUwMiw3ICsxNTAyLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9p ZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgc2VsZi5fZmxhdF9lbGVtZW50X2ludl9yZWMo Zl9pbmMsIFIsIGZsYXRzLCB0b2RvLCBlICsgMSwgaSArIDEpCisgICAgICAgICAgICAgZSA9IGJp dHNldF9uZXh0KHRvZG9baV0sIGUpCisgCistICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlc19jb3VudChzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgYmFzZXMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAt MTUzNSw3ICsxNTM1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgIHNlbGYuX2Jjb3VudCA9IHJlcworICAgICAgICAgcmV0dXJuIHNlbGYuX2Jj b3VudAorIAorLSAgICBjcGRlZiBpbmRlcGVuZGVudF9zZXRzKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBpbmRlcGVuZGVudF9zZXRzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBsaXN0IG9mIGluZGVwZW5kZW50IHN1YnNldHMgb2YgdGhlIG1hdHJvaWQuCisg CitAQCAtMTU5MSw3ICsxNTkxLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChN YXRyb2lkKToKKyAgICAgICAgIHNpZ19mcmVlKFQpCisgICAgICAgICByZXR1cm4gcmVzCisgCist ICAgIGNwZGVmIGluZGVwZW5kZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBpbmRlcGVuZGVudF9yX3NldHMoc2VsZiwgbG9uZyByKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIHNpemUtYGByYGAgaW5kZXBlbmRlbnQgc3Vic2V0 cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xNjI1LDcgKzE2MjUsNyBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHJlcGVhdCA9IG54a3Ny ZChzZWxmLl9pbnB1dCwgc2VsZi5fZ3JvdW5kc2V0X3NpemUsIHIsIFRydWUpCisgICAgICAgICBy ZXR1cm4gQkIKKyAKKy0gICAgY3BkZWYgYmFzZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGJhc2VzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2Yg YmFzZXMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTY0NSw3ICsxNjQ1LDcgQEAgY2RlZiBjbGFz cyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYuaW5kZXBlbmRlbnRfcl9zZXRzKHNlbGYuZnVsbF9yYW5rKCkpCisgCistICAg IGNwZGVmIGRlcGVuZGVudF9yX3NldHMoc2VsZiwgbG9uZyByKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZGVwZW5kZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGxpc3Qgb2YgZGVwZW5kZW50IHN1YnNldHMgb2YgZml4ZWQgc2l6ZS4KKyAK K0BAIC0xNjg0LDcgKzE2ODQsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1h dHJvaWQpOgorICAgICAgICAgTkIucmVzaXplKCkKKyAgICAgICAgIHJldHVybiBOQgorIAorLSAg ICBjcGRlZiBub25iYXNlcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9uYmFzZXMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBub25iYXNlcyBv ZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xNzA5LDcgKzE3MDksNyBAQCBjZGVmIGNsYXNzIEJhc2lz RXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZi5kZXBlbmRlbnRfcl9zZXRzKHNlbGYuZnVsbF9yYW5rKCkpCisgCistICAgIGNwZGVmIG5v bnNwYW5uaW5nX2NpcmN1aXRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBub25zcGFubmlu Z19jaXJjdWl0cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0 IG9mIG5vbnNwYW5uaW5nIGNpcmN1aXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTE3NTgsNyAr MTc1OCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICBOU0MucmVzaXplKCkKKyAgICAgICAgIHJldHVybiBOU0MKKyAKKy0gICAgY3BkZWYgbm9u Y29zcGFubmluZ19jb2NpcmN1aXRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBub25jb3Nw YW5uaW5nX2NvY2lyY3VpdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgbGlzdCBvZiBub25jb3NwYW5uaW5nIGNvY2lyY3VpdHMgb2YgdGhlIG1hdHJvaWQuCisgCitA QCAtMTgwOCw3ICsxODA4LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgIE5TQy5yZXNpemUoKQorICAgICAgICAgcmV0dXJuIE5TQworIAorLSAg ICBjcGRlZiBjb2NpcmN1aXRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2NpcmN1aXRz KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgY29jaXJj dWl0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xODU2LDcgKzE4NTYsNyBAQCBjZGVmIGNsYXNz IEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgTlNDLnJlc2l6ZSgpCisg ICAgICAgICByZXR1cm4gTlNDCisgCistICAgIGNwZGVmIGNpcmN1aXRzKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBjaXJjdWl0cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBsaXN0IG9mIGNpcmN1aXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTE5MDgsNyAr MTkwOCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgCisg ICAgICMgaXNvbW9ycGhpc20KKyAKKy0gICAgY3BkZWYgX2NoYXJhY3RlcmlzdGljX3NldHN5c3Rl bShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NoYXJhY3RlcmlzdGljX3NldHN5c3RlbShz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGNoYXJhY3RlcmlzdGljIHNl dC1zeXN0ZW0gZm9yIHRoaXMgbWF0cm9pZCwgb24gdGhlIHNhbWUKKyAgICAgICAgIGdyb3VuZCBz ZXQuCitAQCAtMTkzMCw3ICsxOTMwLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9p ZChNYXRyb2lkKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYubm9u Y29zcGFubmluZ19jb2NpcmN1aXRzKCkKKyAKKy0gICAgY3BkZWYgX3dlYWtfaW52YXJpYW50KHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfd2Vha19pbnZhcmlhbnQoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBpc29tb3JwaGlzbSBpbnZhcmlhbnQgb2YgdGhlIG1h dHJvaWQuCisgCitAQCAtMTk2MSw3ICsxOTYxLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdl TWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgc2VsZi5fd2Vha19wYXJ0aXRpb25f dmFyID0gU2V0U3lzdGVtKHNlbGYuX0UsIFtmaWVbZl0gZm9yIGYgaW4gc29ydGVkKGZpZSldKQor ICAgICAgICAgcmV0dXJuIHNlbGYuX3dlYWtfaW52YXJpYW50X3ZhcgorIAorLSAgICBjcGRlZiBf d2Vha19wYXJ0aXRpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF93ZWFrX3BhcnRpdGlv bihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFuIG9yZGVyZWQgcGFydGl0 aW9uIGJhc2VkIG9uIHRoZSBpbmNpZGVuY2VzIG9mIGVsZW1lbnRzIHdpdGgKKyAgICAgICAgIGxv dy1kaW1lbnNpb25hbCBmbGF0cy4KK0BAIC0xOTc1LDcgKzE5NzUsNyBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fd2Vha19pbnZhcmlh bnQoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX3dlYWtfcGFydGl0aW9uX3ZhcgorIAorLSAgICBj cGRlZiBfc3Ryb25nX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N0cm9u Z19pbnZhcmlhbnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBpc29t b3JwaGlzbSBpbnZhcmlhbnQgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMjAwMSw3ICsyMDAxLDcg QEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAg ICBzZWxmLl9zdHJvbmdfaW52YXJpYW50X3ZhciA9IENQWzJdCisgICAgICAgICByZXR1cm4gc2Vs Zi5fc3Ryb25nX2ludmFyaWFudF92YXIKKyAKKy0gICAgY3BkZWYgX3N0cm9uZ19wYXJ0aXRpb24o c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdHJvbmdfcGFydGl0aW9uKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gZXF1aXRhYmxlIHBhcnRpdGlvbiB3aGljaCBy ZWZpbmVzIF93ZWFrX3BhcnRpdGlvbigpLgorIAorQEAgLTIwMTUsNyArMjAxNSw3IEBAIGNkZWYg Y2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9zdHJv bmdfaW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9zdHJvbmdfcGFydGl0aW9uX3Zh cgorIAorLSAgICBjcGRlZiBfaGV1cmlzdGljX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2hldXJpc3RpY19pbnZhcmlhbnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiBhIG51bWJlciBjaGFyYWN0ZXJpc3RpYyBmb3IgdGhlIGNvbnN0cnVjdGlvbiBv ZgorICAgICAgICAgX2hldXJpc3RpY19wYXJ0aXRpb24oKS4KK0BAIC0yMDM0LDcgKzIwMzQsNyBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAg IHNlbGYuX2hldXJpc3RpY19pbnZhcmlhbnRfdmFyID0gQ1BbMl0KKyAgICAgICAgIHJldHVybiBz ZWxmLl9oZXVyaXN0aWNfaW52YXJpYW50X3ZhcgorIAorLSAgICBjcGRlZiBfaGV1cmlzdGljX3Bh cnRpdGlvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2hldXJpc3RpY19wYXJ0aXRpb24o c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBvcmRlcmVkIHBhcnRpdGlv biBpbnRvIHNpbmdsZXRvbnMgd2hpY2ggcmVmaW5lcyBhbiBlcXVpdGFibGUKKyAgICAgICAgIHBh cnRpdGlvbiBvZiB0aGUgbWF0cm9pZC4KK0BAIC0yMDU4LDcgKzIwNTgsNyBAQCBjZGVmIGNsYXNz IEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5faGV1cmlzdGlj X2ludmFyaWFudCgpCisgICAgICAgICByZXR1cm4gc2VsZi5faGV1cmlzdGljX3BhcnRpdGlvbl92 YXIKKyAKKy0gICAgY2RlZiBfZmx1c2goc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2ZsdXNo KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWxldGUgYWxsIGludmFyaWFudHMuCisg ICAgICAgICAiIiIKK0BAIC0yMDY2LDcgKzIwNjYsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFu Z2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fc3Ryb25nX2ludmFyaWFudF92YXIg PSBOb25lCisgICAgICAgICBzZWxmLl9oZXVyaXN0aWNfaW52YXJpYW50X3ZhciA9IE5vbmUKKyAK Ky0gICAgY3BkZWYgX2VxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgUD1Ob25lKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2VxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgUD1Ob25lKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBlcXVpdGFibGUgcmVmaW5lbWVudCBvZiBhIGdpdmVu IG9yZGVyZWQgcGFydGl0aW9uLgorIAorQEAgLTIwOTcsNyArMjA5Nyw3IEBAIGNkZWYgY2xhc3Mg QmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgRVEgPSBzZWxmLl9j aGFyYWN0ZXJpc3RpY19zZXRzeXN0ZW0oKS5fZXF1aXRhYmxlX3BhcnRpdGlvbigpCisgICAgICAg ICByZXR1cm4gRVFbMF0KKyAKKy0gICAgY3BkZWYgX2lzX2lzb21vcnBoaXNtKHNlbGYsIG90aGVy LCBtb3JwaGlzbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19pc29tb3JwaGlzbShzZWxmLCBv dGhlciwgbW9ycGhpc20pOgorICAgICAgICAgciIiIgorICAgICAgICAgVmVyc2lvbiBvZiBpc19p c29tb3JwaGlzbSgpIHRoYXQgZG9lcyBubyB0eXBlIGNoZWNraW5nLgorIAorQEAgLTIxNjQsNyAr MjE2NCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICAgICAgcmVwZWF0ID0gbnhrc3JkKHNlbGYuX2lucHV0LCBzZWxmLl9ncm91bmRzZXRfc2l6 ZSwgc2VsZi5fbWF0cm9pZF9yYW5rLCBUcnVlKQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0g ICAgY3BkZWYgX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2lzb21vcnBoaXNtKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IGFuIGlzb21vcnBoaXNtIGZvcm0gYGBzZWxmYGAgdG8gYGBvdGhlcmBgLCBpZiBvbmUgZXhpc3Rz LgorIAorQEAgLTIyNTIsNyArMjI1Miw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJv aWQoTWF0cm9pZCk6CisgCisgICAgICAgICByZXR1cm4gc2VsZi5fY2hhcmFjdGVyaXN0aWNfc2V0 c3lzdGVtKCkuX2lzb21vcnBoaXNtKG90aGVyLl9jaGFyYWN0ZXJpc3RpY19zZXRzeXN0ZW0oKSwg UFMsIFBPKQorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlm aWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBv dGhlciwgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGlm IGBgc2VsZmBgIGlzIGlzb21vcnBoaWMgdG8gYGBvdGhlcmBgLgorIAorQEAgLTIzMzgsNyArMjMz OCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgCisgICAg ICAgICByZXR1cm4gc2VsZi5fY2hhcmFjdGVyaXN0aWNfc2V0c3lzdGVtKCkuX2lzb21vcnBoaXNt KG90aGVyLl9jaGFyYWN0ZXJpc3RpY19zZXRzeXN0ZW0oKSwgUFMsIFBPKSBpcyBub3QgTm9uZQor IAorLSAgICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfdmFs aWQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBkYXRhIG9iZXkg dGhlIG1hdHJvaWQgYXhpb21zLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2Jh c2lzX21hdHJvaWQucHhkIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfbWF0cm9pZC5weGQKK2lu ZGV4IGFlYjU5ZmRiNjZmLi4zNzgyYjUxYzVmYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJv aWRzL2Jhc2lzX21hdHJvaWQucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRy b2lkLnB4ZAorQEAgLTE0LDMzICsxNCwzMyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNp c0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgIGNkZWYgX2Jhc2VzX2ludmFyaWFudDNfdmFyCisgICAg IGNkZWYgU2V0U3lzdGVtIF9iYXNlc19wYXJ0aXRpb24zX3ZhcgorIAorLSAgICBjZGVmIHJlc2V0 X2N1cnJlbnRfYmFzaXMoc2VsZikgbm9leGNlcHQKKy0KKy0gICAgY3BkZWYgX2lzX2Jhc2lzKHNl bGYsIFgpIG5vZXhjZXB0CistCistICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGJhc2VzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIG5vbmJhc2VzKHNl bGYpIG5vZXhjZXB0CistCistICAgIGNwZGVmIHRydW5jYXRpb24oc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgX2V4dGVuc2lvbihzZWxmLCBlLCBIKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfd2l0 aF9jb2xvb3Aoc2VsZiwgZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgcmVsYWJlbChzZWxmLCBsKSBu b2V4Y2VwdAorLQorLSAgICBjcGRlZiBfYmFzZXNfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9iYXNlc19wYXJ0aXRpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Jh c2VzX2ludmFyaWFudDIoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Jhc2VzX3BhcnRpdGlv bjIoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Jhc2VzX2ludmFyaWFudDMoc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgX2Jhc2VzX3BhcnRpdGlvbjMoc2VsZikgbm9leGNlcHQKKy0gICAg Y2RlZiBfcmVzZXRfaW52YXJpYW50cyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIHJlc2V0X2N1 cnJlbnRfYmFzaXMoc2VsZikKKysKKysgICAgY3BkZWYgX2lzX2Jhc2lzKHNlbGYsIFgpCisrCisr ICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpCisrICAgIGNwZGVmIGJhc2VzKHNlbGYpCisrICAg IGNwZGVmIG5vbmJhc2VzKHNlbGYpCisrCisrICAgIGNwZGVmIHRydW5jYXRpb24oc2VsZikKKysg ICAgY3BkZWYgX2V4dGVuc2lvbihzZWxmLCBlLCBIKQorKyAgICBjcGRlZiBfd2l0aF9jb2xvb3Ao c2VsZiwgZSkKKysgICAgY3BkZWYgcmVsYWJlbChzZWxmLCBsKQorKworKyAgICBjcGRlZiBfYmFz ZXNfaW52YXJpYW50KHNlbGYpCisrICAgIGNwZGVmIF9iYXNlc19wYXJ0aXRpb24oc2VsZikKKysg ICAgY3BkZWYgX2Jhc2VzX2ludmFyaWFudDIoc2VsZikKKysgICAgY3BkZWYgX2Jhc2VzX3BhcnRp dGlvbjIoc2VsZikKKysgICAgY3BkZWYgX2Jhc2VzX2ludmFyaWFudDMoc2VsZikKKysgICAgY3Bk ZWYgX2Jhc2VzX3BhcnRpdGlvbjMoc2VsZikKKysgICAgY2RlZiBfcmVzZXRfaW52YXJpYW50cyhz ZWxmKQorICAgICBjcGRlZiAgYmludCBpc19kaXN0aW5ndWlzaGVkKHNlbGYsIGUpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9pc19yZWxheGF0aW9uKHNlbGYsIE0sIG1vcnBoaXNtKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpc20oc2VsZiwgTSwgbW9ycGhpc20pIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9pc29tb3JwaGlzbShzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CisrICAg IGNwZGVmIF9pc19yZWxheGF0aW9uKHNlbGYsIE0sIG1vcnBoaXNtKQorKyAgICBjcGRlZiBfaXNf aXNvbW9ycGhpc20oc2VsZiwgTSwgbW9ycGhpc20pCisrICAgIGNwZGVmIF9pc29tb3JwaGlzbShz ZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRp ZmljYXRlPSopCisgCisgCistY2RlZiAgYmlub21faW5pdChsb25nIG4sIGxvbmcgaykgbm9leGNl cHQKKytjZGVmICBiaW5vbV9pbml0KGxvbmcgbiwgbG9uZyBrKQorIGNkZWYgIGxvbmcgc2V0X3Rv X2luZGV4KGJpdHNldF90IFMpIG5vZXhjZXB0CistY2RlZiAgaW5kZXhfdG9fc2V0KGJpdHNldF90 LCBsb25nLCBsb25nLCBsb25nKSBub2V4Y2VwdAorK2NkZWYgIGluZGV4X3RvX3NldChiaXRzZXRf dCwgbG9uZywgbG9uZywgbG9uZykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNp c19tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21hdHJvaWQucHl4CitpbmRl eCAxMzdlZGMyMWQ5NC4uMTE0NThjZjQ4OGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lk cy9iYXNpc19tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfbWF0cm9p ZC5weXgKK0BAIC0yODgsNyArMjg4LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNF eGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgYml0c2V0X2FkZChzZWxmLl9iLCB5KQorICAgICAg ICAgcmV0dXJuIGJpdHNldF9pbihzZWxmLl9iYiwgc2V0X3RvX2luZGV4KHNlbGYuX2IpKQorIAor LSAgICBjZGVmIHJlc2V0X2N1cnJlbnRfYmFzaXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg cmVzZXRfY3VycmVudF9iYXNpcyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRo ZSBjdXJyZW50IGJhc2lzIHRvIHRoZSAobGV4aWNvZ3JhcGhpY2FsbHkpIGZpcnN0IGJhc2lzIG9m IHRoZQorICAgICAgICAgbWF0cm9pZC4KK0BAIC0yOTcsNyArMjk3LDcgQEAgY2RlZiBjbGFzcyBC YXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorIAorICAgICAjIGEgZnVuY3Rpb24g dGhhdCBpcyB2ZXJ5IGVmZmljaWVudCBmb3IgdGhpcyBjbGFzcworIAorLSAgICBjcGRlZiBfaXNf YmFzaXMoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19iYXNpcyhzZWxmLCBYKToK KyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiBpbnB1dCBpcyBhIGJhc2lzLgorIAorQEAg LTMyOSw3ICszMjksNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0 cm9pZCk6CisgCisgICAgICMgZHVhbCBhbmQgbWlub3JzCisgCistICAgIGNwZGVmIGR1YWwoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGR1YWwoc2VsZik6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIGR1YWwgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMzY5LDcgKzM2OSw3 IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAg ICAgIEQuX2Jjb3VudCA9IHNlbGYuX2Jjb3VudAorICAgICAgICAgcmV0dXJuIEQKKyAKKy0gICAg Y3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIGEgbWlub3IuCisgCitAQCAtNDA1LDcgKzQwNSw3IEBAIGNk ZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIE5C ID0gW2Zyb3plbnNldChCKSBmb3IgQiBpbiBjb21iaW5hdGlvbnMoRSwgbXIpIGlmIG5vdCBzZWxm Ll9pc19iYXNpcyhjb250cmFjdGlvbnMgfCBmcm96ZW5zZXQoQikpXQorICAgICAgICAgcmV0dXJu IEJhc2lzTWF0cm9pZChncm91bmRzZXQ9RSwgbm9uYmFzZXM9TkIsIHJhbms9bXIpCisgCistICAg IGNwZGVmIHRydW5jYXRpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHRydW5jYXRpb24o c2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSByYW5rLTEgdHJ1bmNhdGlv biBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00MzcsNyArNDM3LDcgQEAgY2RlZiBjbGFzcyBCYXNp c01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgIHJldHVybiBOb25l CisgICAgICAgICByZXR1cm4gQmFzaXNNYXRyb2lkKGdyb3VuZHNldD1zZWxmLl9FLCBub25iYXNl cz1zZWxmLmRlcGVuZGVudF9yX3NldHMoc2VsZi5mdWxsX3JhbmsoKSAtIDEpLCByYW5rPXNlbGYu ZnVsbF9yYW5rKCkgLSAxKQorIAorLSAgICBjcGRlZiBfZXh0ZW5zaW9uKHNlbGYsIGUsIEgpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfZXh0ZW5zaW9uKHNlbGYsIGUsIEgpOgorICAgICAgICAgciIi IgorICAgICAgICAgRXh0ZW5kIHRoZSBtYXRyb2lkIGJ5IGEgbmV3IGVsZW1lbnQuCisgCitAQCAt NDg5LDcgKzQ4OSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRy b2lkKToKKyAgICAgICAgIEJFICs9IEJCCisgICAgICAgICByZXR1cm4gQmFzaXNNYXRyb2lkKGdy b3VuZHNldD1zZWxmLl9FICsgKGUsKSwgYmFzZXM9QkUpCisgCistICAgIGNwZGVmIF93aXRoX2Nv bG9vcChzZWxmLCBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3dpdGhfY29sb29wKHNlbGYsIGUp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtYXRyb2lkIHRoYXQgYXJpc2Vz IGJ5IGFkZGluZyBhbiBlbGVtZW50IGBlYCB0byB0aGUKKyAgICAgICAgIGdyb3VuZHNldCwgdGhh dCBpcyBhIGNvbG9vcCBvZiB0aGUgcmVzdWx0aW5nIG1hdHJvaWQuCitAQCAtNTE1LDcgKzUxNSw3 IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAg ICAgIGNkZWYgZnJvemVuc2V0IHNlID0gZnJvemVuc2V0KFtlXSkKKyAgICAgICAgIHJldHVybiBC YXNpc01hdHJvaWQoZ3JvdW5kc2V0PXNlbGYuX0UgKyAoZSwpLCBiYXNlcz1bQiB8IHNlIGZvciBC IGluIHNlbGYuYmFzZXMoKV0pCisgCistICAgIGNwZGVmIHJlbGFiZWwoc2VsZiwgbCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIHJlbGFiZWwoc2VsZiwgbCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBhbiBpc29tb3JwaGljIG1hdHJvaWQgd2l0aCByZWxhYmVsZWQgZ3JvdW5kc2V0Lgor IAorQEAgLTU1NSw3ICs1NTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hh bmdlTWF0cm9pZCk6CisgCisgICAgICMgZW51bWVyYXRpb24KKyAKKy0gICAgY3BkZWYgYmFzZXNf Y291bnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgYmFzZXMgb2YgdGhlIG1h dHJvaWQuCisgCitAQCAtNTc1LDcgKzU3NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJh c2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9iY291bnQgPSBiaXRzZXRf bGVuKHNlbGYuX2JiKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2Jjb3VudAorIAorLSAgICBjcGRl ZiBiYXNlcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZXMoc2VsZik6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgYmFzZXMgb2YgdGhlIG1hdHJvaWQu CisgCitAQCAtNjA2LDcgKzYwNiw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhj aGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBiID0gYml0c2V0X25leHQoc2VsZi5fYmIsIGIg KyAxKQorICAgICAgICAgcmV0dXJuIEJCCisgCistICAgIGNwZGVmIG5vbmJhc2VzKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBub25iYXNlcyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgbGlzdCBvZiBub25iYXNlcyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC02 NTEsNyArNjUxLDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorIAorICAgICAjIGlzb21vcnBoaXNtIHRlc3QKKyAKKy0gICAgY3BkZWYgX2Jhc2VzX2lu dmFyaWFudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Jhc2VzX2ludmFyaWFudChzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFuIGlzb21vcnBoaXNtIGludmFyaWFu dCBiYXNlZCBvbiB0aGUgaW5jaWRlbmNlcyBvZiBncm91bmRzZXQKKyAgICAgICAgIGVsZW1lbnRz IHdpdGggYmFzZXMuCitAQCAtNjk1LDcgKzY5NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lk KEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX2Jhc2VzX3BhcnRpdGlvbl92 YXIgPSBTZXRTeXN0ZW0oc2VsZi5fRSwgW1tzZWxmLl9FW2VdIGZvciBlIGluIGJpW2NdXSBmb3Ig YyBpbiBzb3J0ZWQoYmkpXSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9iYXNlc19pbnZhcmlhbnRf dmFyCisgCistICAgIGNwZGVmIF9iYXNlc19wYXJ0aXRpb24oc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9iYXNlc19wYXJ0aXRpb24oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBhbiBvcmRlcmVkIHBhcnRpdGlvbiBiYXNlZCBvbiB0aGUgaW5jaWRlbmNlcyBvZiBncm91 bmRzZXQKKyAgICAgICAgIGVsZW1lbnRzIHdpdGggYmFzZXMuCitAQCAtNzEwLDcgKzcxMCw3IEBA IGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAg IHNlbGYuX2Jhc2VzX2ludmFyaWFudCgpCisgICAgICAgICByZXR1cm4gc2VsZi5fYmFzZXNfcGFy dGl0aW9uX3ZhcgorIAorLSAgICBjcGRlZiBfYmFzZXNfaW52YXJpYW50MihzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2Jhc2VzX2ludmFyaWFudDIoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBhbiBpc29tb3JwaGlzbSBpbnZhcmlhbnQgb2YgdGhlIG1hdHJvaWQuCisg CitAQCAtNzM3LDcgKzczNyw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFu Z2VNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9iYXNlc19pbnZhcmlhbnQyX3ZhciA9IENQ WzJdCisgICAgICAgICByZXR1cm4gc2VsZi5fYmFzZXNfaW52YXJpYW50Ml92YXIKKyAKKy0gICAg Y3BkZWYgX2Jhc2VzX3BhcnRpdGlvbjIoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9iYXNl c19wYXJ0aXRpb24yKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gZXF1 aXRhYmxlIHBhcnRpdGlvbiB3aGljaCByZWZpbmVzCisgICAgICAgICA6bWV0aDpgPEJhc2lzTWF0 cm9pZC5fYmFzZXNfcGFydGl0aW9uMj5gLgorQEAgLTc1Miw3ICs3NTIsNyBAQCBjZGVmIGNsYXNz IEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9iYXNl c19pbnZhcmlhbnQyKCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9iYXNlc19wYXJ0aXRpb24yX3Zh cgorIAorLSAgICBjcGRlZiBfYmFzZXNfaW52YXJpYW50MyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2Jhc2VzX2ludmFyaWFudDMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBhIG51bWJlciBjaGFyYWN0ZXJpc3RpYyBmb3IgdGhlIGNvbnN0cnVjdGlvbiBvZgorICAg ICAgICAgOm1ldGg6YDxCYXNpc01hdHJvaWQuX2Jhc2VzX3BhcnRpdGlvbjM+YC4KK0BAIC03NzEs NyArNzcxLDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQp OgorICAgICAgICAgICAgIHNlbGYuX2Jhc2VzX2ludmFyaWFudDNfdmFyID0gQ1BbMl0KKyAgICAg ICAgIHJldHVybiBzZWxmLl9iYXNlc19pbnZhcmlhbnQzX3ZhcgorIAorLSAgICBjcGRlZiBfYmFz ZXNfcGFydGl0aW9uMyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Jhc2VzX3BhcnRpdGlv bjMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBvcmRlcmVkIHBhcnRp dGlvbiBpbnRvIHNpbmdsZXRvbnMgd2hpY2ggcmVmaW5lcyBhbiBlcXVpdGFibGUKKyAgICAgICAg IHBhcnRpdGlvbiBvZiB0aGUgbWF0cm9pZC4KK0BAIC03OTUsNyArNzk1LDcgQEAgY2RlZiBjbGFz cyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fYmFz ZXNfaW52YXJpYW50MygpCisgICAgICAgICByZXR1cm4gc2VsZi5fYmFzZXNfcGFydGl0aW9uM192 YXIKKyAKKy0gICAgY2RlZiBfcmVzZXRfaW52YXJpYW50cyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfcmVzZXRfaW52YXJpYW50cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVt b3ZlIGFsbCBwcmVjb21wdXRlZCBpbnZhcmlhbnRzLgorICAgICAgICAgIiIiCitAQCAtODU1LDcg Kzg1NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToK KyAgICAgICAgICAgICAgICAgcSA9IHEyCisgICAgICAgICByZXR1cm4gZSBpbiBxCisgCistICAg IGNwZGVmIF9pc19yZWxheGF0aW9uKHNlbGYsIG90aGVyLCBtb3JwaGlzbSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9pc19yZWxheGF0aW9uKHNlbGYsIG90aGVyLCBtb3JwaGlzbSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBpZiB0aGUgYXBwbGljYXRpb24gb2YgYSBncm91bmRzZXQg bW9ycGhpc20gdG8gdGhpcyBtYXRyb2lkCisgICAgICAgICB5aWVsZHMgYSByZWxheGF0aW9uIG9m IHRoZSBnaXZlbiBtYXRyb2lkLgorQEAgLTkxNSw3ICs5MTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lz TWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICBiaXRzZXRfZnJlZShiYl9j b21wKQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgX2lzX2lzb21vcnBoaXNt KHNlbGYsIG90aGVyLCBtb3JwaGlzbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19pc29tb3Jw aGlzbShzZWxmLCBvdGhlciwgbW9ycGhpc20pOgorICAgICAgICAgIiIiCisgICAgICAgICBWZXJz aW9uIG9mIDptZXRoOmBpc19pc29tb3JwaGlzbWAgdGhhdCBkb2VzIG5vIHR5cGUgY2hlY2tpbmcu CisgCitAQCAtOTUzLDcgKzk1Myw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhj aGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBvdCA9IG90aGVyCisgICAgICAgICByZXR1cm4g c2VsZi5iYXNlc19jb3VudCgpID09ICg8QmFzaXNNYXRyb2lkPm90KS5iYXNlc19jb3VudCgpIGFu ZCBzZWxmLl9pc19yZWxheGF0aW9uKG90LCBtb3JwaGlzbSkKKyAKKy0gICAgY3BkZWYgX2lzb21v cnBoaXNtKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzb21vcnBoaXNtKHNl bGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGlzb21vcnBoaXNtIGZy b20gYGBzZWxmYGAgdG8gYGBvdGhlcmBgLCBpZiBvbmUgZXhpc3RzLgorIAorQEAgLTEwMzIsNyAr MTAzMiw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToK KyAKKyAgICAgICAgIHJldHVybiBzZWxmLm5vbmJhc2VzKCkuX2lzb21vcnBoaXNtKG90aGVyLm5v bmJhc2VzKCksIFBTLCBQTykKKyAKKy0gICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3Ro ZXIsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2lzb21vcnBo aWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIGlmIHRoaXMgbWF0cm9pZCBpcyBpc29tb3JwaGljIHRvIHRoZSBnaXZlbiBtYXRy b2lkLgorIAorQEAgLTEyMzUsNyArMTIzNSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJh c2lzRXhjaGFuZ2VNYXRyb2lkKToKKyBjZGVmIGxvbmcgYmlub21bMjk1Nl1bMzNdICAgIyBDYWNo ZWQgYmlub21pYWwgdGFibGUKKyAKKyAKKy1jZGVmICBiaW5vbV9pbml0KGxvbmcgTiwgbG9uZyBL KSBub2V4Y2VwdDoKKytjZGVmICBiaW5vbV9pbml0KGxvbmcgTiwgbG9uZyBLKToKKyAgICAgIiIi CisgICAgIEZpbGwgdXAgdGhlIGNhY2hlZCBiaW5vbWlhbCB0YWJsZS4KKyAgICAgIiIiCitAQCAt MTI3Nyw3ICsxMjc3LDcgQEAgY2RlZiBsb25nIHNldF90b19pbmRleChiaXRzZXRfdCBTKSBub2V4 Y2VwdDoKKyAgICAgcmV0dXJuIGluZGV4CisgCisgCistY2RlZiAgaW5kZXhfdG9fc2V0KGJpdHNl dF90IFMsIGxvbmcgaW5kZXgsIGxvbmcgaywgbG9uZyBuKSBub2V4Y2VwdDoKKytjZGVmICBpbmRl eF90b19zZXQoYml0c2V0X3QgUywgbG9uZyBpbmRleCwgbG9uZyBrLCBsb25nIG4pOgorICAgICBy IiIiCisgICAgIENvbXB1dGUgdGhlIGstc3Vic2V0IG9mIGBcezAsIC4uLiwgbi0xXH1gIG9mIHJh bmsgaW5kZXgKKyAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3Vp dF9jbG9zdXJlc19tYXRyb2lkLnB4ZCBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3Vy ZXNfbWF0cm9pZC5weGQKK2luZGV4IDVmNGVkZjEwOWI3Li43YzdiNjFlYzM1ZiAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weGQKKysrKyBi L3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weGQKK0BAIC01LDEx ICs1LDExIEBAIGNkZWYgY2xhc3MgQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChNYXRyb2lkKToKKyAg ICAgY2RlZiBmcm96ZW5zZXQgX2dyb3VuZHNldCAgIyBfRQorICAgICBjZGVmIGRpY3QgX2NpcmN1 aXRfY2xvc3VyZXMgICMgX0NDCisgICAgIGNkZWYgaW50IF9tYXRyb2lkX3JhbmsgICMgX1IKKy0g ICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9yYW5rKHNlbGYs IFgpIG5vZXhjZXB0CistICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKSBub2V4Y2VwdAorLSAgICBj cGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX21heF9p bmRlcGVuZGVudChzZWxmLCBGKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBG KSBub2V4Y2VwdAorLSAgICBjcGRlZiBjaXJjdWl0X2Nsb3N1cmVzKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKSBub2V4 Y2VwdAorKyAgICBjcGRlZiBncm91bmRzZXQoc2VsZikKKysgICAgY3BkZWYgX3Jhbmsoc2VsZiwg WCkKKysgICAgY3BkZWYgZnVsbF9yYW5rKHNlbGYpCisrICAgIGNwZGVmIF9pc19pbmRlcGVuZGVu dChzZWxmLCBGKQorKyAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50KHNlbGYsIEYpCisrICAgIGNw ZGVmIF9jaXJjdWl0KHNlbGYsIEYpCisrICAgIGNwZGVmIGNpcmN1aXRfY2xvc3VyZXMoc2VsZikK KysgICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLnB5 eCBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgKK2luZGV4 IDM1NzBkNTljNDIxLi40MjI5M2NjMmZjMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRz L2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2Np cmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgKK0BAIC0xNjUsNyArMTY1LDcgQEAgY2RlZiBjbGFz cyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBzZWxm Ll9jaXJjdWl0X2Nsb3N1cmVzW2tdID0gZnJvemVuc2V0KFtmcm96ZW5zZXQoWCkgZm9yIFggaW4g Y2lyY3VpdF9jbG9zdXJlc1trXV0pCisgICAgICAgICBzZWxmLl9tYXRyb2lkX3JhbmsgPSBzZWxm LnJhbmsoc2VsZi5fZ3JvdW5kc2V0KQorIAorLSAgICBjcGRlZiBncm91bmRzZXQoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGdyb3VuZHNldChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBncm91bmRzZXQgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTgzLDcgKzE4 Myw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChNYXRyb2lkKToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIGZyb3plbnNldChzZWxmLl9ncm91bmRzZXQpCisgCist ICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmFuayhzZWxm LCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSByYW5rIG9mIGEgc2V0IGBg WGBgLgorIAorQEAgLTIwNyw3ICsyMDcsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRDbG9zdXJlc01h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICByZXR1cm4gbGVuKHNlbGYuX21heF9pbmRlcGVuZGVu dChYKSkKKyAKKyAgICAgIyBPUFRJT05BTCwgT1BUSU1JWkVEIEZPUiBUSElTIENMQVNTCistICAg IGNwZGVmIGZ1bGxfcmFuayhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZnVsbF9yYW5rKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByYW5rIG9mIHRoZSBtYXRy b2lkLgorIAorQEAgLTIyOCw3ICsyMjgsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRDbG9zdXJlc01h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXRy b2lkX3JhbmsKKyAKKy0gICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIEYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgRik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFRlc3QgaWYgaW5wdXQgaXMgaW5kZXBlbmRlbnQuCisgCitAQCAtMjU4LDcgKzI1OCw3 IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAg ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAg Y3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21h eF9pbmRlcGVuZGVudChzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBh IG1heGltYWwgaW5kZXBlbmRlbnQgc3Vic2V0LgorIAorQEAgLTI5NSw3ICsyOTUsNyBAQCBjZGVm IGNsYXNzIENpcmN1aXRDbG9zdXJlc01hdHJvaWQoTWF0cm9pZCk6CisgCisgICAgICAgICByZXR1 cm4gZnJvemVuc2V0KEkpCisgCistICAgIGNwZGVmIF9jaXJjdWl0KHNlbGYsIEYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGEgbWluaW1hbCBkZXBlbmRlbnQgc3Vic2V0LgorIAorQEAgLTMyOCw3ICszMjgsNyBA QCBjZGVmIGNsYXNzIENpcmN1aXRDbG9zdXJlc01hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gZnJvemVuc2V0KFMpCisgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KCJubyBjaXJjdWl0IGluIGluZGVwZW5kZW50IHNldCIpCisgCistICAgIGNwZGVmIGNpcmN1aXRf Y2xvc3VyZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNpcmN1aXRfY2xvc3VyZXMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBjbG9zdXJlcyBv ZiBjaXJjdWl0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0zNjIsNyArMzYyLDcgQEAgY2RlZiBj bGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5fY2lyY3VpdF9jbG9zdXJlcworIAorLSAgICBjcGRlZiBfaXNfaXNv bW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpOgorICAg ICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIGBgc2VsZmBgIGlzIGlzb21vcnBoaWMgdG8gYGBv dGhlcmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRzX21hdHJv aWQucHhkIGIvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdHNfbWF0cm9pZC5weGQKK2luZGV4IDJk ZTA2YmQxNmFiLi4yNmY4NmIyZGFjMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2Np cmN1aXRzX21hdHJvaWQucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9jaXJjdWl0c19tYXRy b2lkLnB4ZAorQEAgLTcsMjUgKzcsMjUgQEAgY2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0 cm9pZCk6CisgICAgIGNkZWYgU2V0U3lzdGVtIF9DICAjIGNpcmN1aXRzCisgICAgIGNkZWYgZGlj dCBfa19DICAjIGstY2lyY3VpdHMgKGs9bGVuKQorICAgICBjZGVmIGJpbnQgX25zY19kZWZpbmVk CistICAgIGNwZGVmIGdyb3VuZHNldChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcmFuayhz ZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBmdWxsX3Jhbmsoc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIEYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9t YXhfaW5kZXBlbmRlbnQoc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NpcmN1aXQoc2Vs ZiwgRikgbm9leGNlcHQKKysgICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpCisrICAgIGNwZGVmIF9y YW5rKHNlbGYsIFgpCisrICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKQorKyAgICBjcGRlZiBfaXNf aW5kZXBlbmRlbnQoc2VsZiwgRikKKysgICAgY3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBG KQorKyAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBGKQorIAorICAgICAjIGVudW1lcmF0aW9uCist ICAgIGNwZGVmIGJhc2VzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNpcmN1aXRzKHNlbGYs IGs9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgbm9uc3Bhbm5pbmdfY2lyY3VpdHMoc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgbm9fYnJva2VuX2NpcmN1aXRzX3NldHMoc2VsZiwgb3JkZXJpbmc9 Kikgbm9leGNlcHQKKysgICAgY3BkZWYgYmFzZXMoc2VsZikKKysgICAgY3BkZWYgY2lyY3VpdHMo c2VsZiwgaz0qKQorKyAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKQorKyAgICBj cGRlZiBub19icm9rZW5fY2lyY3VpdHNfc2V0cyhzZWxmLCBvcmRlcmluZz0qKQorIAorICAgICAj IHByb3BlcnRpZXMKKy0gICAgY3BkZWYgZ2lydGgoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg aXNfcGF2aW5nKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGdpcnRoKHNlbGYpCisrICAgIGNw ZGVmIGlzX3BhdmluZyhzZWxmKQorIAorICAgICAjIGlzb21vcnBoaXNtCistICAgIGNwZGVmIF9p c19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAorKyAgICBj cGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9KikKKyAKKyAgICAg IyB2ZXJpZmljYXRpb24KKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikgbm9leGNlcHQKKysgICAg Y3BkZWYgaXNfdmFsaWQoc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9jaXJj dWl0c19tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRzX21hdHJvaWQucHl4 CitpbmRleCBiYmNmNmNlODMxOS4uNDMzNTgxODAxY2MgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9t YXRyb2lkcy9jaXJjdWl0c19tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvY2ly Y3VpdHNfbWF0cm9pZC5weXgKK0BAIC04NCw3ICs4NCw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNN YXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fbWF0cm9pZF9yYW5rID0gc2VsZi5yYW5r KHNlbGYuX2dyb3VuZHNldCkKKyAgICAgICAgIHNlbGYuX25zY19kZWZpbmVkID0gbnNjX2RlZmlu ZWQKKyAKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBn cm91bmRzZXQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZ3JvdW5k c2V0IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTEwMCw3ICsxMDAsNyBAQCBjZGVmIGNsYXNzIENp cmN1aXRzTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNl bGYuX2dyb3VuZHNldAorIAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBYKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3Jhbmsoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgcmFuayBvZiBhIHNldCBgYFhgYC4KKyAKK0BAIC0xMjMsNyArMTIzLDcgQEAgY2RlZiBjbGFz cyBDaXJjdWl0c01hdHJvaWQoTWF0cm9pZCk6CisgCisgICAgICMgb3B0aW9uYWwKKyAKKy0gICAg Y3BkZWYgZnVsbF9yYW5rKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmdWxsX3Jhbmsoc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2YgdGhlIG1hdHJv aWQuCisgCitAQCAtMTQwLDcgKzE0MCw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNNYXRyb2lkKE1h dHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbWF0cm9pZF9yYW5r CisgCistICAgIGNwZGVmIF9pc19pbmRlcGVuZGVudChzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBU ZXN0IGlmIGlucHV0IGlzIGluZGVwZW5kZW50LgorIAorQEAgLTE2OCw3ICsxNjgsNyBAQCBjZGVm IGNsYXNzIENpcmN1aXRzTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIF9tYXhf aW5kZXBlbmRlbnQoc2VsZiwgRikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tYXhfaW5kZXBlbmRl bnQoc2VsZiwgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgYSBtYXhpbWFsIGlu ZGVwZW5kZW50IHN1YnNldC4KKyAKK0BAIC0xOTUsNyArMTk1LDcgQEAgY2RlZiBjbGFzcyBDaXJj dWl0c01hdHJvaWQoTWF0cm9pZCk6CisgCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KEkpCisg CistICAgIGNwZGVmIF9jaXJjdWl0KHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY2ly Y3VpdChzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbWluaW1hbCBk ZXBlbmRlbnQgc3Vic2V0LgorIAorQEAgLTIyMyw3ICsyMjMsNyBAQCBjZGVmIGNsYXNzIENpcmN1 aXRzTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIEMKKyAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoIm5vIGNpcmN1aXQgaW4gaW5kZXBlbmRlbnQgc2V0IikKKyAKKy0g ICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmlj YXRlPUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiBgYHNlbGZgYCBpcyBp c29tb3JwaGljIHRvIGBgb3RoZXJgYC4KKyAKK0BAIC00MTUsNyArNDE1LDcgQEAgY2RlZiBjbGFz cyBDaXJjdWl0c01hdHJvaWQoTWF0cm9pZCk6CisgCisgICAgICMgZW51bWVyYXRpb24KKyAKKy0g ICAgY3BkZWYgYmFzZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VzKHNlbGYpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBiYXNlcyBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC00NzAsNyArNDcwLDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0cm9p ZCk6CisgICAgICAgICAgICAgaWYgbm90IGFueShDIDw9IEIgZm9yIEMgaW4gTlNDKToKKyAgICAg ICAgICAgICAgICAgeWllbGQgQgorIAorLSAgICBjcGRlZiBjaXJjdWl0cyhzZWxmLCBrPU5vbmUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaXJjdWl0cyhzZWxmLCBrPU5vbmUpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNpcmN1aXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAg LTUzNyw3ICs1MzcsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRzTWF0cm9pZChNYXRyb2lkKToKKyAg ICAgICAgICAgICAgICAgZm9yIEMgaW4gc2VsZi5fa19DW2ldOgorICAgICAgICAgICAgICAgICAg ICAgeWllbGQgQworIAorLSAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgbm9uc3Bhbm5pbmdfY2lyY3VpdHMoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiB0aGUgbm9uc3Bhbm5pbmcgY2lyY3VpdHMgb2YgdGhlIG1hdHJv aWQuCisgCitAQCAtNTcyLDcgKzU3Miw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNNYXRyb2lkKE1h dHJvaWQpOgorICAgICAgICAgICAgICAgICBmb3IgQyBpbiBzZWxmLl9rX0NbaV06CisgICAgICAg ICAgICAgICAgICAgICB5aWVsZCBDCisgCistICAgIGNwZGVmIG5vX2Jyb2tlbl9jaXJjdWl0c19z ZXRzKHNlbGYsIG9yZGVyaW5nPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBub19icm9rZW5f Y2lyY3VpdHNfc2V0cyhzZWxmLCBvcmRlcmluZz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgbm8gYnJva2VuIGNpcmN1aXRzIChOQkMpIHNldHMgb2YgYGBzZWxmYGAu CisgCitAQCAtNjQxLDcgKzY0MSw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNNYXRyb2lkKE1hdHJv aWQpOgorIAorICAgICAjIHByb3BlcnRpZXMKKyAKKy0gICAgY3BkZWYgZ2lydGgoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGdpcnRoKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBnaXJ0aCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC02NTksNyArNjU5LDcgQEAg Y2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBtaW4oc2VsZi5fa19DLCBkZWZhdWx0PWZsb2F0KCdpbmYnKSkKKyAKKy0gICAg Y3BkZWYgaXNfcGF2aW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19wYXZpbmcoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBpZiBgYHNlbGZgYCBpcyBwYXZpbmcu CisgCitAQCAtNjc4LDcgKzY3OCw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNNYXRyb2lkKE1hdHJv aWQpOgorIAorICAgICAjIHZlcmlmaWNhdGlvbgorIAorLSAgICBjcGRlZiBpc192YWxpZChzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfdmFsaWQoc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBUZXN0IGlmIGBgc2VsZmBgIG9iZXlzIHRoZSBtYXRyb2lkIGF4aW9tcy4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9leHRlbnNpb24ucHhkIGIvc3JjL3NhZ2UvbWF0 cm9pZHMvZXh0ZW5zaW9uLnB4ZAoraW5kZXggNmI2ZDc5NDk3OTQuLmI0OGE5YTdlMDJkIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvZXh0ZW5zaW9uLnB4ZAorKysrIGIvc3JjL3NhZ2Uv bWF0cm9pZHMvZXh0ZW5zaW9uLnB4ZAorQEAgLTYsMTIgKzYsMTIgQEAgY2RlZiBjbGFzcyBDdXRO b2RlOgorICAgICBjZGVmIGJpdHNldF90IF9wX2ZyZWUsIF9wX2luLCBfbDAsIF9sMQorICAgICBj ZGVmIGxvbmcgX21sCisgCistICAgIGNkZWYgQ3V0Tm9kZSBjb3B5KHNlbGYpIG5vZXhjZXB0Cisr ICAgIGNkZWYgQ3V0Tm9kZSBjb3B5KHNlbGYpCisgICAgIGNkZWYgYmludCBpbnNlcnRfcGxhbmUo c2VsZiwgbG9uZyBwMCkgbm9leGNlcHQKKyAgICAgY2RlZiBiaW50IHJlbW92ZV9wbGFuZShzZWxm LCBsb25nIHAwKSBub2V4Y2VwdAorLSAgICBjZGVmIHNlbGVjdF9wbGFuZShzZWxmKSBub2V4Y2Vw dAorKyAgICBjZGVmIHNlbGVjdF9wbGFuZShzZWxmKQorIAorLSAgICBjZGVmIGxpc3QgcGxhbmVz KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgbGlzdCBwbGFuZXMoc2VsZikKKyAKKyBjZGVmIGNs YXNzIExpbmVhclN1YmNsYXNzZXNJdGVyOgorICAgICBjZGVmIExpbmVhclN1YmNsYXNzZXMgX01D CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvZXh0ZW5zaW9uLnB5eCBiL3NyYy9zYWdl L21hdHJvaWRzL2V4dGVuc2lvbi5weXgKK2luZGV4IGFiMjY2MmFmN2ZkLi5kNzNiNDU4MTY3NCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2V4dGVuc2lvbi5weXgKKysrKyBiL3NyYy9z YWdlL21hdHJvaWRzL2V4dGVuc2lvbi5weXgKK0BAIC04Nyw3ICs4Nyw3IEBAIGNkZWYgY2xhc3Mg Q3V0Tm9kZToKKyAgICAgICAgIGJpdHNldF9mcmVlKHNlbGYuX2wwKQorICAgICAgICAgYml0c2V0 X2ZyZWUoc2VsZi5fbDEpCisgCistICAgIGNkZWYgQ3V0Tm9kZSBjb3B5KHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjZGVmIEN1dE5vZGUgY29weShzZWxmKToKKyAgICAgICAgIHJldHVybiBDdXROb2Rl KHNlbGYuX01DLCBzZWxmKQorIAorICAgICBjZGVmIGJpbnQgaW5zZXJ0X3BsYW5lKHNlbGYsIGxv bmcgcDApIG5vZXhjZXB0OgorQEAgLTE1Myw3ICsxNTMsNyBAQCBjZGVmIGNsYXNzIEN1dE5vZGU6 CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4g VHJ1ZQorIAorLSAgICBjZGVmIHNlbGVjdF9wbGFuZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBzZWxlY3RfcGxhbmUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENob29zZSBhIGh5 cGVycGxhbmUgZnJvbSB0aGUgbGluZWFyIHN1YmNsYXNzLgorICAgICAgICAgIiIiCitAQCAtMTY5 LDcgKzE2OSw3IEBAIGNkZWYgY2xhc3MgQ3V0Tm9kZToKKyAKKyAgICAgICAgIHJldHVybiBiaXRz ZXRfZmlyc3Qoc2VsZi5fcF9mcmVlKQorIAorLSAgICBjZGVmIGxpc3QgcGxhbmVzKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGxpc3QgcGxhbmVzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gYWxsIGh5cGVycGxhbmVzIGZyb20gdGhlIGxpbmVhciBzdWJjbGFzcy4KKyAg ICAgICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2xlYW5fbWF0cml4LnB4 ZCBiL3NyYy9zYWdlL21hdHJvaWRzL2xlYW5fbWF0cml4LnB4ZAoraW5kZXggZjcxZTIyZjYzZWUu LjMwOTFhZjEwN2QwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbGVhbl9tYXRyaXgu cHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9sZWFuX21hdHJpeC5weGQKK0BAIC01LDE4ICs1 LDE4IEBAIGNkZWYgY2xhc3MgTGVhbk1hdHJpeDoKKyAgICAgY2RlZiBsb25nIF9ucm93cworICAg ICBjZGVmIGxvbmcgX25jb2xzCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBjb3B5KHNlbGYpIG5v ZXhjZXB0ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIExl YW5NYXRyaXggY29weShzZWxmKSAgICMgRGVwcmVjYXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRpb24K KyAgICAgY2RlZiBpbnQgcmVzaXplKHNlbGYsIGxvbmcgaykgZXhjZXB0IC0xICAgIyBOb3QgYSBT YWdlIG1hdHJpeCBvcGVyYXRpb24KKy0gICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYsIExl YW5NYXRyaXggTSkgbm9leGNlcHQKKy0gICAgY2RlZiBMZWFuTWF0cml4IGF1Z21lbnQoc2VsZiwg TGVhbk1hdHJpeCBNKSBub2V4Y2VwdAorLSAgICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9pZGVu dGl0eShzZWxmKSBub2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAg IGNkZWYgTGVhbk1hdHJpeCBzdGFjayhzZWxmLCBMZWFuTWF0cml4IE0pCisrICAgIGNkZWYgTGVh bk1hdHJpeCBhdWdtZW50KHNlbGYsIExlYW5NYXRyaXggTSkKKysgICAgY2RlZiBMZWFuTWF0cml4 IHByZXBlbmRfaWRlbnRpdHkoc2VsZikgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgor IAorICAgICBjcGRlZiBsb25nIG5jb2xzKHNlbGYpIGV4Y2VwdCAtMQorICAgICBjcGRlZiBsb25n IG5yb3dzKHNlbGYpIGV4Y2VwdCAtMQorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikgbm9leGNlcHQgICAjIE5vdCBhIFNh Z2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikKKysgICAgY3Bk ZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgor IAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9uZyByLCBsb25nIGMpIG5vZXhjZXB0Cisr ICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcgYykKKyAgICAgY2RlZiBpbnQg c2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcgYywgeCkgZXhjZXB0IC0xCisgICAgIGNkZWYg YmludCBpc19ub256ZXJvKHNlbGYsIGxvbmcgciwgbG9uZyBjKSBleGNlcHQgLTIgICMgTm90IGEg U2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCitAQCAtMjUsMTYgKzI1LDE2IEBAIGNkZWYgY2xhc3Mg TGVhbk1hdHJpeDoKKyAgICAgY2RlZiBpbnQgcmVzY2FsZV9yb3dfYyhzZWxmLCBsb25nIHgsIHMs IGJpbnQgY29sX3N0YXJ0KSBleGNlcHQgLTEKKyAgICAgY2RlZiBpbnQgcmVzY2FsZV9jb2x1bW5f YyhzZWxmLCBsb25nIHksIHMsIGJpbnQgc3RhcnRfcm93KSBleGNlcHQgLTEKKyAgICAgY2RlZiBp bnQgcGl2b3Qoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMSAgIyBOb3QgYSBTYWdlIG1h dHJpeCBvcGVyYXRpb24KKy0gICAgY2RlZiBsaXN0IGdhdXNzX2pvcmRhbl9yZWR1Y2Uoc2VsZiwg Y29sdW1ucykgbm9leGNlcHQgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBj ZGVmIGxpc3QgZ2F1c3Nfam9yZGFuX3JlZHVjZShzZWxmLCBjb2x1bW5zKSAgICMgTm90IGEgU2Fn ZSBtYXRyaXggb3BlcmF0aW9uCisgCistICAgIGNkZWYgbGlzdCBub256ZXJvX3Bvc2l0aW9uc19p bl9yb3coc2VsZiwgbG9uZyByKSBub2V4Y2VwdAorKyAgICBjZGVmIGxpc3Qgbm9uemVyb19wb3Np dGlvbnNfaW5fcm93KHNlbGYsIGxvbmcgcikKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHRyYW5z cG9zZShzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19t YXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0CistICAgIGNkZWYgTGVhbk1h dHJpeCBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHNlbGYsIHJvd3MsIGNvbHVtbnMpIG5v ZXhjZXB0CisrICAgIGNkZWYgTGVhbk1hdHJpeCB0cmFuc3Bvc2Uoc2VsZikKKysgICAgY2RlZiBM ZWFuTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVyKQor KyAgICBjZGVmIExlYW5NYXRyaXggbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1ucyhzZWxmLCBy b3dzLCBjb2x1bW5zKQorIAorLSAgICBjZGVmIHNoaWZ0aW5nX2FsbChzZWxmLCBQX3Jvd3MsIFBf Y29scywgUV9yb3dzLCBRX2NvbHMsIGludCBtKSBub2V4Y2VwdAorLSAgICBjZGVmIHNoaWZ0aW5n KHNlbGYsIFVfMSwgVl8yLCBVXzIsIFZfMSwgejIsIHoxLCBpbnQgbSkgbm9leGNlcHQKKysgICAg Y2RlZiBzaGlmdGluZ19hbGwoc2VsZiwgUF9yb3dzLCBQX2NvbHMsIFFfcm93cywgUV9jb2xzLCBp bnQgbSkKKysgICAgY2RlZiBzaGlmdGluZyhzZWxmLCBVXzEsIFZfMiwgVV8yLCBWXzEsIHoyLCB6 MSwgaW50IG0pCisgCisgY2RlZiBjbGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgpOgorICAg ICBjZGVmIF9iYXNlX3JpbmcsIF9jaGFyYWN0ZXJpc3RpYworQEAgLTQyLDcgKzQyLDcgQEAgY2Rl ZiBjbGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIF96ZXJvCisgICAg IGNkZWYgX29uZQorIAorLSAgICBjZGVmIGlubGluZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBs b25nIGksIGxvbmcgaikgbm9leGNlcHQgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgor KyAgICBjZGVmIGlubGluZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxvbmcgaikg ICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorIGNkZWYgY2xhc3MgQmluYXJ5TWF0 cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIGJpdHNldF90KiBfTQorQEAgLTU0LDE3ICs1NCwx NyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgY2RlZiBpbmxp bmUgYmludCBnZXQoc2VsZiwgbG9uZyB4LCBsb25nIHkpIG5vZXhjZXB0ICAgIyBOb3QgYSBTYWdl IG1hdHJpeCBvcGVyYXRpb24KKyAgICAgY2RlZiBpbmxpbmUgdm9pZCBzZXQoc2VsZiwgbG9uZyB4 LCBsb25nIHkpIG5vZXhjZXB0ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAKKy0g ICAgY2RlZiBpbmxpbmUgbGlzdCByb3dfc3VtKHNlbGYsIG9iamVjdCBMKSBub2V4Y2VwdCAgICMg Tm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCistICAgIGNkZWYgaW5saW5lIGxpc3Qgcm93X3Vu aW9uKHNlbGYsIG9iamVjdCBMKSBub2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0 aW9uCisrICAgIGNkZWYgaW5saW5lIGxpc3Qgcm93X3N1bShzZWxmLCBvYmplY3QgTCkgICAjIE5v dCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIGlubGluZSBsaXN0IHJvd191bmlv bihzZWxmLCBvYmplY3QgTCkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorLSAg ICBjZGVmIExlYW5NYXRyaXggbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1ucyhzZWxmLCByb3dz LCBjb2x1bW5zKSBub2V4Y2VwdAorLSAgICBjZGVmIG1hdHJpeF9mcm9tX3Jvd3NfYW5kX2NvbHVt bnNfcmVvcmRlcmVkKHNlbGYsIHJvd3MsIGNvbHVtbnMpIG5vZXhjZXB0CisrICAgIGNkZWYgTGVh bk1hdHJpeCBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHNlbGYsIHJvd3MsIGNvbHVtbnMp CisrICAgIGNkZWYgbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1uc19yZW9yZGVyZWQoc2VsZiwg cm93cywgY29sdW1ucykKKyAKKy0gICAgY2RlZiBsaXN0IF9jaGFyYWN0ZXIoc2VsZiwgYml0c2V0 X3QgeCkgbm9leGNlcHQKKy0gICAgY2RlZiBCaW5hcnlNYXRyaXggX2Rpc3Rpbmd1aXNoX2J5KHNl bGYsIEJpbmFyeU1hdHJpeCBQKSBub2V4Y2VwdAorLSAgICBjZGVmIEJpbmFyeU1hdHJpeCBfc3Bs aWNlX2J5KHNlbGYsIEJpbmFyeU1hdHJpeCBQKSBub2V4Y2VwdAorLSAgICBjZGVmIEJpbmFyeU1h dHJpeCBfaXNvbGF0ZShzZWxmLCBsb25nIHIpIG5vZXhjZXB0CistICAgIGNkZWYgQmluYXJ5TWF0 cml4IGVxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgQmluYXJ5TWF0cml4IFA9Kikgbm9leGNlcHQg ICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIGxpc3QgX2NoYXJhY3Rl cihzZWxmLCBiaXRzZXRfdCB4KQorKyAgICBjZGVmIEJpbmFyeU1hdHJpeCBfZGlzdGluZ3Vpc2hf Ynkoc2VsZiwgQmluYXJ5TWF0cml4IFApCisrICAgIGNkZWYgQmluYXJ5TWF0cml4IF9zcGxpY2Vf Ynkoc2VsZiwgQmluYXJ5TWF0cml4IFApCisrICAgIGNkZWYgQmluYXJ5TWF0cml4IF9pc29sYXRl KHNlbGYsIGxvbmcgcikKKysgICAgY2RlZiBCaW5hcnlNYXRyaXggZXF1aXRhYmxlX3BhcnRpdGlv bihzZWxmLCBCaW5hcnlNYXRyaXggUD0qKSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9u CisgICAgIGNkZWYgYmludCBpc19pc29tb3JwaGljKHNlbGYsIEJpbmFyeU1hdHJpeCBvdGhlciwg QmluYXJ5TWF0cml4IHNfZXE9KiwgQmluYXJ5TWF0cml4IG9fZXE9KikgZXhjZXB0IC0yICAgIyBO b3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAKKyAKK0BAIC04Miw3ICs4Miw3IEBAIGNkZWYg Y2xhc3MgVGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgY2RlZiBpbmxpbmUgbG9uZyBy b3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxvbmcgaikgbm9leGNlcHQgICAjIE5vdCBh IFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICBjZGVmIHZvaWQgcm93X3N1YnMoc2VsZiwgbG9u ZyB4LCBsb25nIHkpIG5vZXhjZXB0ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAg ICAgY2RlZiB2b2lkIF9yb3dfbmVnYXRlKHNlbGYsIGxvbmcgeCkgbm9leGNlcHQKKy0gICAgY2Rl ZiBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zX3Jlb3JkZXJlZChzZWxmLCByb3dzLCBjb2x1 bW5zKSBub2V4Y2VwdAorKyAgICBjZGVmIG1hdHJpeF9mcm9tX3Jvd3NfYW5kX2NvbHVtbnNfcmVv cmRlcmVkKHNlbGYsIHJvd3MsIGNvbHVtbnMpCisgCisgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0 cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIGJpdHNldF90ICpfTTAgICAgIyBfTTBbaV0gPSAx LXN1cHBvcnQgb2Ygcm93IGkKK0BAIC05MCwxMyArOTAsMTMgQEAgY2RlZiBjbGFzcyBRdWF0ZXJu YXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIGJpdHNldF90IF9zLCBfdCwgX3UgICAg IyByZWdpc3RlcnMKKyAgICAgY2RlZiBvYmplY3QgX2dmNCwgX3plcm8sIF9vbmUsIF94X3plcm8s IF94X29uZQorIAorLSAgICBjZGVmIGlubGluZSBnZXQoc2VsZiwgbG9uZyByLCBsb25nIGMpIG5v ZXhjZXB0ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBpbmxpbmUg Z2V0KHNlbGYsIGxvbmcgciwgbG9uZyBjKSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9u CisgICAgIGNkZWYgaW5saW5lIGludCBzZXQoc2VsZiwgbG9uZyByLCBsb25nIGMsIHgpIGV4Y2Vw dCAtMSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCisgICAgIGNkZWYgaW5saW5l IGxvbmcgcm93X2xlbihzZWxmLCBsb25nIGkpIGV4Y2VwdCAtMSAgICMgTm90IGEgU2FnZSBtYXRy aXggb3BlcmF0aW9uCistICAgIGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxv bmcgaSwgbG9uZyBqKSBub2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisr ICAgIGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKSAg ICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgIGNkZWYgaW5saW5lIGludCBfcm93 X2RpdihzZWxmLCBsb25nIHgsIG9iamVjdCBzKSBleGNlcHQgLTEKKy0gICAgY2RlZiBtYXRyaXhf ZnJvbV9yb3dzX2FuZF9jb2x1bW5zX3Jlb3JkZXJlZChzZWxmLCByb3dzLCBjb2x1bW5zKSBub2V4 Y2VwdAorKyAgICBjZGVmIG1hdHJpeF9mcm9tX3Jvd3NfYW5kX2NvbHVtbnNfcmVvcmRlcmVkKHNl bGYsIHJvd3MsIGNvbHVtbnMpCisgICAgIGNkZWYgdm9pZCBjb25qdWdhdGUoc2VsZikgbm9leGNl cHQgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorIAorQEAgLTEwNyw3ICsxMDcs NyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgY2Rl ZiBpbmxpbmUgdm9pZCBzZXQoc2VsZiwgbG9uZyByLCBsb25nIGMsIGludCB4KSBub2V4Y2VwdCAg ICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCisgICAgIGNkZWYgaW5saW5lIGxvbmcg cm93X2xlbihzZWxmLCBsb25nIGkpIGV4Y2VwdCAtMSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCistICAgIGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwg bG9uZyBqKSBub2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNk ZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKSAgICMgTm90 IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCisgY2RlZiBjbGFzcyBSYXRpb25hbE1hdHJpeChM ZWFuTWF0cml4KToKKyAgICAgY2RlZiBtcHFfdCogX2VudHJpZXMKK0BAIC0xMTYsMTAgKzExNiwx MCBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsTWF0cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIGlu bGluZSB2b2lkIHNldChzZWxmLCBsb25nIHIsIGxvbmcgYywgbXBxX3QgeCkgbm9leGNlcHQgICAj IE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorICAgICBjZGVmIGlubGluZSBsb25nIHJv d19sZW4oc2VsZiwgbG9uZyBpKSBleGNlcHQgLTEgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJh dGlvbgorLSAgICBjZGVmIGlubGluZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxv bmcgaikgbm9leGNlcHQgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVm IGlubGluZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxvbmcgaikgICAjIE5vdCBh IFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorICAgICBjZGVmIGludCBhZGRfbXVsdGlwbGVfb2Zf cm93X21wcShzZWxmLCBsb25nIHgsIGxvbmcgeSwgbXBxX3QgcywgYmludCBjb2xfc3RhcnQpIGV4 Y2VwdCAtMQorICAgICBjZGVmIGludCByZXNjYWxlX3Jvd19tcHEoc2VsZiwgbG9uZyB4LCBtcHFf dCBzLCBiaW50IGNvbF9zdGFydCkgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50IHJlc2NhbGVfY29s dW1uX21wcShzZWxmLCBsb25nIHksIG1wcV90IHMsIGJpbnQgc3RhcnRfcm93KSBleGNlcHQgLTEK KyAKKy1jcGRlZiBHZW5lcmljTWF0cml4IGdlbmVyaWNfaWRlbnRpdHkobiwgcmluZykgbm9leGNl cHQKKytjcGRlZiBHZW5lcmljTWF0cml4IGdlbmVyaWNfaWRlbnRpdHkobiwgcmluZykKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9sZWFuX21hdHJpeC5weXggYi9zcmMvc2FnZS9tYXRy b2lkcy9sZWFuX21hdHJpeC5weXgKK2luZGV4IDFlNzY4Nzc1ZmRmLi4zNGM0OThiMDE2YSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2xlYW5fbWF0cml4LnB5eAorKysrIGIvc3JjL3Nh Z2UvbWF0cm9pZHMvbGVhbl9tYXRyaXgucHl4CitAQCAtMTExLDcgKzExMSw3IEBAIGNkZWYgY2xh c3MgTGVhbk1hdHJpeDoKKyAgICAgICAgICAgICAgICAgTVtyLCBjXSA9IHNlbGYuZ2V0X3Vuc2Fm ZShyLCBjKQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IGNvcHko c2VsZikgbm9leGNlcHQ6ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAg ICBjZGVmIExlYW5NYXRyaXggY29weShzZWxmKTogICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXgg b3BlcmF0aW9uCisgICAgICAgICAiIiIKKyAgICAgICAgIE1ha2UgYSBjb3B5IG9mIGBgc2VsZmBg LgorICAgICAgICAgIiIiCitAQCAtMTI0LDcgKzEyNCw3IEBAIGNkZWYgY2xhc3MgTGVhbk1hdHJp eDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAor LSAgICBjZGVmIExlYW5NYXRyaXggc3RhY2soc2VsZiwgTGVhbk1hdHJpeCBNKSBub2V4Y2VwdDoK KysgICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYsIExlYW5NYXRyaXggTSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFN0YWNrIGBgc2VsZmBgIG9uIHRvcCBvZiBgYE1gYC4gQXNzdW1lcyBg YHNlbGZgYCBhbmQgYGBNYGAgYXJlIG9mIHNhbWUKKyAgICAgICAgIHR5cGUsIGFuZCBjb21wYXRp YmxlIGRpbWVuc2lvbnMuCitAQCAtMTQxLDcgKzE0MSw3IEBAIGNkZWYgY2xhc3MgTGVhbk1hdHJp eDoKKyAgICAgICAgICAgICAgICAgQS5zZXRfdW5zYWZlKGkgKyBzciwgaiwgTS5nZXRfdW5zYWZl KGksIGopKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IGF1Z21l bnQoc2VsZiwgTGVhbk1hdHJpeCBNKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4IGF1 Z21lbnQoc2VsZiwgTGVhbk1hdHJpeCBNKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29uY2F0 ZW5hdGVzIGBgc2VsZmBgIHdpdGggYGBNYGAsIHBsYWNpbmcgYGBNYGAgdG8gdGhlIHJpZ2h0IG9m CisgICAgICAgICBgYHNlbGZgYC4gQXNzdW1lcyBgYHNlbGZgYCBhbmQgYGBNYGAgYXJlIG9mIHNh bWUgdHlwZSwgYW5kIGNvbXBhdGlibGUKK0BAIC0xNTgsNyArMTU4LDcgQEAgY2RlZiBjbGFzcyBM ZWFuTWF0cml4OgorICAgICAgICAgICAgICAgICBBLnNldF91bnNhZmUoaSwgaiArIHNjLCBNLmdl dF91bnNhZmUoaSwgaikpCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRy aXggcHJlcGVuZF9pZGVudGl0eShzZWxmKSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4 IG9wZXJhdGlvbgorKyAgICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9pZGVudGl0eShzZWxmKTog ICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIG1hdHJpeCBvYnRhaW5lZCBieSBwcmVwZW5kaW5nIGFuIGlkZW50aXR5IG1hdHJp eC4gU3BlY2lhbAorICAgICAgICAgY2FzZSBvZiBgYGF1Z21lbnRgYC4KK0BAIC0xOTcsNyArMTk3 LDcgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5fbnJvd3MKKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgYmFzZSByaW5nLgorIAorQEAgLTIxMiw3ICsyMTIsNyBAQCBjZGVmIGNsYXNzIExlYW5N YXRyaXg6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io InN1YmNsYXNzZXMgbmVlZCB0byBpbXBsZW1lbnQgdGhpcy4iKQorIAorLSAgICBjcGRlZiBjaGFy YWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY2hhcmFjdGVyaXN0aWMgb2Yg YGBzZWxmLmJhc2VfcmluZygpYGAuCisgCitAQCAtMjI1LDcgKzIyNSw3IEBAIGNkZWYgY2xhc3Mg TGVhbk1hdHJpeDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuYmFzZV9yaW5n KCkuY2hhcmFjdGVyaXN0aWMoKQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9uZyBy LCBsb25nIGMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9uZyByLCBs b25nIGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIGluIHJvdyBg YHJgYCwgY29sdW1uIGBgY2BgLgorICAgICAgICAgIiIiCitAQCAtMzA5LDcgKzMwOSw3IEBAIGNk ZWYgY2xhc3MgTGVhbk1hdHJpeDoKKyAgICAgICAgICAgICAgICAgc2VsZi5hZGRfbXVsdGlwbGVf b2Zfcm93X2MoaSwgeCwgLXMsIDApCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjZGVmIGxp c3QgZ2F1c3Nfam9yZGFuX3JlZHVjZShzZWxmLCBjb2x1bW5zKSBub2V4Y2VwdDogICAjIE5vdCBh IFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIGxpc3QgZ2F1c3Nfam9yZGFuX3JlZHVj ZShzZWxmLCBjb2x1bW5zKTogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAg ICAgIiIiCisgICAgICAgICBSb3ctcmVkdWNlIHNvIHRoZSBsZXhpY29ncmFwaGljYWxseSBmaXJz dCBiYXNpcyBpbmRleGVzIGFuIGlkZW50aXR5CisgICAgICAgICBzdWJtYXRyaXguCitAQCAtMzM0 LDEzICszMzQsMTMgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4OgorICAgICAgICAgICAgICAgICBi cmVhaworICAgICAgICAgcmV0dXJuIFAKKyAKKy0gICAgY2RlZiBsaXN0IG5vbnplcm9fcG9zaXRp b25zX2luX3JvdyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3Qgbm9uemVy b19wb3NpdGlvbnNfaW5fcm93KHNlbGYsIGxvbmcgcik6CisgICAgICAgICAiIiIKKyAgICAgICAg IEdldCBjb29yZGluYXRlcyBvZiBub256ZXJvIGVudHJpZXMgb2Ygcm93IGBgcmBgLgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gW2kgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbmNvbHMpIGlm IHNlbGYuaXNfbm9uemVybyhyLCBpKV0KKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHRyYW5zcG9z ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4IHRyYW5zcG9zZShzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB0cmFuc3Bvc2Ugb2YgdGhlIG1hdHJp eC4KKyAgICAgICAgICIiIgorQEAgLTM1MSw3ICszNTEsNyBAQCBjZGVmIGNsYXNzIExlYW5NYXRy aXg6CisgICAgICAgICAgICAgICAgIEEuc2V0X3Vuc2FmZShqLCBpLCBzZWxmLmdldF91bnNhZmUo aSwgaikpCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggX21hdHJp eF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0OgorKyAgICBj ZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3Ro ZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSB0d28gbWF0cmljZXMuIEFzc3Vt ZXMgYGBzZWxmYGAgYW5kIGBgTWBgIGFyZSBvZiBzYW1lIHR5cGUsCisgICAgICAgICBhbmQgY29t cGF0aWJsZSBkaW1lbnNpb25zLgorQEAgLTM2NCw3ICszNjQsNyBAQCBjZGVmIGNsYXNzIExlYW5N YXRyaXg6CisgICAgICAgICAgICAgICAgICAgICBBLnNldF91bnNhZmUoaSwgaiwgc2VsZi5nZXRf dW5zYWZlKGksIGspICogb3RoZXIuZ2V0X3Vuc2FmZShrLCBqKSkKKyAgICAgICAgIHJldHVybiBB CisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHNl bGYsIHJvd3MsIGNvbHVtbnMpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggbWF0cml4 X2Zyb21fcm93c19hbmRfY29sdW1ucyhzZWxmLCByb3dzLCBjb2x1bW5zKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHN1Ym1hdHJpeCBpbmRleGVkIGJ5IGluZGljYXRlZCByb3dzIGFu ZCBjb2x1bW5zLgorICAgICAgICAgIiIiCitAQCAtNTE3LDcgKzUxNyw3IEBAIGNkZWYgY2xhc3Mg TGVhbk1hdHJpeDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF cnJvcigic3ViY2xhc3NlcyBuZWVkIHRvIGltcGxlbWVudCB0aGlzLiIpCisgCistICAgIGNkZWYg c2hpZnRpbmdfYWxsKHNlbGYsIFBfcm93cywgUF9jb2xzLCBRX3Jvd3MsIFFfY29scywgaW50IG0p IG5vZXhjZXB0OgorKyAgICBjZGVmIHNoaWZ0aW5nX2FsbChzZWxmLCBQX3Jvd3MsIFBfY29scywg UV9yb3dzLCBRX2NvbHMsIGludCBtKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVuIGEg cGFydGlhbCBtYXRyaXggYE1gLiBJZiB0aGUgc3VibWF0cml4IGBNYCB1c2luZyByb3dzCisgICAg ICAgICBgUF9yb3dzYCBjb2x1bW5zIGBQX2NvbHNgIGFuZCBzdWJtYXRyaXggdXNpbmcgcm93cyBg UV9yb3dzYCBjb2x1bW5zCitAQCAtNTYwLDcgKzU2MCw3IEBAIGNkZWYgY2xhc3MgTGVhbk1hdHJp eDoKKyAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIGNlcnQKKyAgICAgICAgIHJldHVybiBG YWxzZSwgTm9uZQorIAorLSAgICBjZGVmIHNoaWZ0aW5nKHNlbGYsIFVfMSwgVl8yLCBVXzIsIFZf MSwgejIsIHoxLCBpbnQgbSkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2hpZnRpbmcoc2VsZiwgVV8x LCBWXzIsIFVfMiwgVl8xLCB6MiwgejEsIGludCBtKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IExldCBgRV8xYCBiZSB0aGUgc3VibWF0cml4IHVzaW5nIHJvd3MgYFVfMWAgYW5kIGNvbHVtbnMg YFZfMmAgd2l0aAorICAgICAgICAgb3B0aW9uYWwgY29sdW1uIGB6MmAgYXR0YWNoZWQuCitAQCAt NzU4LDcgKzc1OCw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY01hdHJpeChMZWFuTWF0cml4KToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICJMZWFuTWF0cml4IGluc3RhbmNlIHdpdGggIiAr IHN0cihzZWxmLl9ucm93cykgKyAiIHJvd3MgYW5kICIgKyBzdHIoc2VsZi5fbmNvbHMpICsgIiBj b2x1bW5zIG92ZXIgIiArIHJlcHIoc2VsZi5fYmFzZV9yaW5nKQorIAorLSAgICBjZGVmIExlYW5N YXRyaXggY29weShzZWxmKSBub2V4Y2VwdDogICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCisrICAgIGNkZWYgTGVhbk1hdHJpeCBjb3B5KHNlbGYpOiAgICMgRGVwcmVjYXRlZCBT YWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIGNkZWYgR2VuZXJpY01hdHJpeCBNID0gR2Vu ZXJpY01hdHJpeChzZWxmLl9ucm93cywgc2VsZi5fbmNvbHMsIE09c2VsZikKKyAgICAgICAgIHJl dHVybiBNCisgCitAQCAtNzc0LDcgKzc3NCw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY01hdHJpeChM ZWFuTWF0cml4KToKKyAgICAgICAgIHNlbGYuX25yb3dzID0gaworICAgICAgICAgcmV0dXJuIDAK KyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYsIExlYW5NYXRyaXggTSkgbm9leGNl cHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBzdGFjayhzZWxmLCBMZWFuTWF0cml4IE0pOgorICAg ICAgICAgIiIiCisgICAgICAgICBXYXJuaW5nOiBhc3N1bWVzIGBgTWBgIGlzIGEgR2VuZXJpY01h dHJpeCBpbnN0YW5jZSEKKyAgICAgICAgICIiIgorQEAgLTc4NSw3ICs3ODUsNyBAQCBjZGVmIGNs YXNzIEdlbmVyaWNNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBBLl9uY29scyA9IHNlbGYu X25jb2xzCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggYXVnbWVu dChzZWxmLCBMZWFuTWF0cml4IE0pIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggYXVn bWVudChzZWxmLCBMZWFuTWF0cml4IE0pOgorICAgICAgICAgIiIiCisgICAgICAgICBXYXJuaW5n OiBhc3N1bWVzIGBgTWBgIGlzIGEgR2VuZXJpY01hdHJpeCBpbnN0YW5jZSEKKyAgICAgICAgICIi IgorQEAgLTc5OCwxNCArNzk4LDE0IEBAIGNkZWYgY2xhc3MgR2VuZXJpY01hdHJpeChMZWFuTWF0 cml4KToKKyAgICAgICAgICAgICBBLl9lbnRyaWVzW2kgKiBBLl9uY29scyArIHNlbGYuX25jb2xz OihpICsgMSkgKiBBLl9uY29sc109KDxHZW5lcmljTWF0cml4Pk0pLl9lbnRyaWVzW2kgKiBNbjoo aSArIDEpICogTW5dCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXgg cHJlcGVuZF9pZGVudGl0eShzZWxmKSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9w ZXJhdGlvbgorKyAgICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9pZGVudGl0eShzZWxmKTogICAj IE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgY2RlZiBHZW5lcmljTWF0cml4 IEEgPSBHZW5lcmljTWF0cml4KHNlbGYuX25yb3dzLCBzZWxmLl9uY29scyArIHNlbGYuX25yb3dz LCByaW5nPXNlbGYuX2Jhc2VfcmluZykKKyAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX25y b3dzKToKKyAgICAgICAgICAgICBBLl9lbnRyaWVzW2kgKiBBLl9uY29scyArIGldID0gc2VsZi5f b25lCisgICAgICAgICAgICAgQS5fZW50cmllc1tpICogQS5fbmNvbHMgKyBzZWxmLl9ucm93czoo aSArIDEpICogQS5fbmNvbHNdPXNlbGYuX2VudHJpZXNbaSAqIHNlbGYuX25jb2xzOihpICsgMSkg KiBzZWxmLl9uY29sc10KKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIGJhc2Vfcmlu ZyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJhc2UgcmluZyBvZiBgYHNlbGZgYC4KKyAKK0BAIC04 MTgsNyArODE4LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYmFzZV9yaW5nCisgCistICAgIGNwZGVm IGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3Rp YyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJpc3Rp YyBvZiBgYHNlbGYuYmFzZV9yaW5nKClgYC4KKyAKK0BAIC04MzMsNyArODMzLDcgQEAgY2RlZiBj bGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIHNlbGYuX2NoYXJh Y3RlcmlzdGljID0gc2VsZi5fYmFzZV9yaW5nLmNoYXJhY3RlcmlzdGljKCkKKyAgICAgICAgIHJl dHVybiBzZWxmLl9jaGFyYWN0ZXJpc3RpYworIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwg bG9uZyByLCBsb25nIGMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9u ZyByLCBsb25nIGMpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX2VudHJpZXNbciAqIHNlbGYuX25j b2xzICsgY10KKyAKKyAgICAgY2RlZiBpbnQgc2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcg YywgeCkgZXhjZXB0IC0xOgorQEAgLTg0OSw3ICs4NDksNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNN YXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBzZWxmLl9lbnRyaWVzW3kgKiBzZWxmLl9uY29s czooeSArIDEpICogc2VsZi5fbmNvbHNdID0gdG1wCisgICAgICAgICByZXR1cm4gMAorIAorLSAg ICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIExl YW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g dGhlIHRyYW5zcG9zZSBvZiB0aGUgbWF0cml4LgorICAgICAgICAgIiIiCitAQCAtODYxLDcgKzg2 MSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY01hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAg ICAgICAgQS5zZXRfdW5zYWZlKGosIGksIHNlbGYuZ2V0X3Vuc2FmZShpLCBqKSkKKyAgICAgICAg IHJldHVybiBBCisgCistICAgIGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxv bmcgaSwgbG9uZyBqKSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgor KyAgICBjZGVmIGlubGluZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxvbmcgaik6 ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBpbm5lciBwcm9kdWN0IGJldHdlZW4gcm93cyBgYGlgYCBhbmQgYGBqYGAuCisg ICAgICAgICAiIiIKK0BAIC04NzUsNyArODc1LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljTWF0cml4 KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIHJlcyArPSB4ICogeQorICAgICAgICAgcmV0dXJu IHJlcworIAorLSAgICBjZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYs IExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggX21hdHJp eF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogb3RoZXJgYC4KKyAgICAgICAgICIi IgorQEAgLTEwODIsNyArMTA4Miw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRy aXgpOgorICAgICAgICAgICAgICAgICAgICAgTVtpLCBqXSA9IDEKKyAgICAgICAgIHJldHVybiBN CisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBjb3B5KHNlbGYpIG5vZXhjZXB0OiAgICMgRGVwcmVj YXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2Vs Zik6ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgY2RlZiBC aW5hcnlNYXRyaXggQgorICAgICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAgIEIgPSBCaW5hcnlN YXRyaXgoc2VsZi5ucm93cygpLCBzZWxmLm5jb2xzKCkpCitAQCAtMTEwOSw3ICsxMTA5LDcgQEAg Y2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgc2VsZi5f bnJvd3MgPSBrCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjZGVmIExlYW5NYXRyaXggc3Rh Y2soc2VsZiwgTGVhbk1hdHJpeCBNTSkgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBz dGFjayhzZWxmLCBMZWFuTWF0cml4IE1NKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2l2ZW4g YGBBYGAgYW5kIGBgQmBgLCByZXR1cm4KKyAgICAgICAgIFtBXQorQEAgLTExMjMsNyArMTEyMyw3 IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIGJp dHNldF9jb3B5KFIuX01baSArIHNlbGYubnJvd3MoKV0sIE0uX01baV0pCisgICAgICAgICByZXR1 cm4gUgorIAorLSAgICBjZGVmIExlYW5NYXRyaXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4IE1N KSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4IGF1Z21lbnQoc2VsZiwgTGVhbk1hdHJp eCBNTSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdpdmVuIGBgQWBgIGFuZCBgYEJgYCwgcmV0 dXJuCisgICAgICAgICBbQSBCXQorQEAgLTExMzcsNyArMTEzNyw3IEBAIGNkZWYgY2xhc3MgQmlu YXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBiaXRzZXRfc2V0X3RvKFIu X01baV0sIHNlbGYubmNvbHMoKSArIGosIGJpdHNldF9pbihNLl9NW2ldLCBqKSkKKyAgICAgICAg IHJldHVybiBSCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5kX2lkZW50aXR5KHNlbGYp IG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgTGVh bk1hdHJpeCBwcmVwZW5kX2lkZW50aXR5KHNlbGYpOiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbWF0cml4IG9idGFpbmVk IGJ5IHByZXBlbmRpbmcgYW4gaWRlbnRpdHkgbWF0cml4LiBTcGVjaWFsIGNhc2Ugb2YgYGBhdWdt ZW50YGAuCisgICAgICAgICAiIiIKK0BAIC0xMTQ4LDcgKzExNDgsNyBAQCBjZGVmIGNsYXNzIEJp bmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICBBLnNldChpLCBpKQorICAgICAg ICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBg R0YoMilgLgorIAorQEAgLTExNjIsNyArMTE2Miw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4 KExlYW5NYXRyaXgpOgorICAgICAgICAgZ2xvYmFsIEdGMgorICAgICAgICAgcmV0dXJuIEdGMgor IAorLSAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg Y2hhcmFjdGVyaXN0aWMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg Y2hhcmFjdGVyaXN0aWMgb2YgYGBzZWxmLmJhc2VfcmluZygpYGAuCisgCitAQCAtMTE3NSw3ICsx MTc1LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiAyCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25n IHIsIGxvbmcgYykgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIs IGxvbmcgYyk6CisgICAgICAgICBnbG9iYWwgR0YyX29uZSwgR0YyX3plcm8KKyAgICAgICAgIGlm IGJpdHNldF9pbihzZWxmLl9NW3JdLCBjKToKKyAgICAgICAgICAgICByZXR1cm4gR0YyX29uZQor QEAgLTEyNDMsMTMgKzEyNDMsMTMgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1hdHJp eCk6CisgICAgICAgICBiaXRzZXRfY29weShzZWxmLl9NW2pdLCBzZWxmLl90ZW1wKQorICAgICAg ICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBpbmxpbmUgbGlzdCBub256ZXJvX3Bvc2l0aW9uc19p bl9yb3coc2VsZiwgbG9uZyBpKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgbGlzdCBub256 ZXJvX3Bvc2l0aW9uc19pbl9yb3coc2VsZiwgbG9uZyBpKToKKyAgICAgICAgICIiIgorICAgICAg ICAgR2V0IGNvb3JkaW5hdGVzIG9mIG5vbnplcm8gZW50cmllcyBvZiByb3cgYGByYGAuCisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGlzdChzZWxmLl9NW2ldKQorIAorLSAg ICBjZGVmIGlubGluZSBsaXN0IHJvd19zdW0oc2VsZiwgb2JqZWN0IEwpIG5vZXhjZXB0OiAgICMg Tm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgaW5saW5lIGxpc3Qgcm93X3N1 bShzZWxmLCBvYmplY3QgTCk6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtb2QtMiBzdW0gb2YgdGhlIHJvd3MgaW5kZXhl ZCBieSBgYExgYC4KKyAgICAgICAgICIiIgorQEAgLTEyNTgsNyArMTI1OCw3IEBAIGNkZWYgY2xh c3MgQmluYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIGJpdHNldF9zeW1tZXRy aWNfZGlmZmVyZW5jZShzZWxmLl90ZW1wLCBzZWxmLl90ZW1wLCBzZWxmLl9NW2xdKQorICAgICAg ICAgcmV0dXJuIGJpdHNldF9saXN0KHNlbGYuX3RlbXApCisgCistICAgIGNkZWYgaW5saW5lIGxp c3Qgcm93X3VuaW9uKHNlbGYsIG9iamVjdCBMKSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0 cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIGlubGluZSBsaXN0IHJvd191bmlvbihzZWxmLCBvYmpl Y3QgTCk6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBgYG9yYGAgb2YgdGhlIHJvd3MgaW5kZXhlZCBieSBgYExgYC4KKyAg ICAgICAgICIiIgorQEAgLTEyNjcsNyArMTI2Nyw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4 KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIGJpdHNldF91bmlvbihzZWxmLl90ZW1wLCBzZWxm Ll90ZW1wLCBzZWxmLl9NW2xdKQorICAgICAgICAgcmV0dXJuIGJpdHNldF9saXN0KHNlbGYuX3Rl bXApCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCB0cmFuc3Bvc2Uoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgTGVhbk1hdHJpeCB0cmFuc3Bvc2Uoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgdHJhbnNwb3NlIG9mIHRoZSBtYXRyaXguCisgICAgICAgICAiIiIKK0BA IC0xMjgxLDcgKzEyODEsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJpeChMZWFuTWF0cml4KToK KyAgICAgICAgICAgICAgICAgaiA9IGJpdHNldF9uZXh0KHNlbGYuX01baV0sIGogKyAxKQorICAg ICAgICAgcmV0dXJuIFQKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0 cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0 cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IGBgc2VsZiAqIG90aGVyYGAuCisg ICAgICAgICAiIiIKK0BAIC0xMjk2LDcgKzEyOTYsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJp eChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgaiA9IGJpdHNldF9uZXh0KHNlbGYuX01b aV0sIGogKyAxKQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IG1h dHJpeF9mcm9tX3Jvd3NfYW5kX2NvbHVtbnMoc2VsZiwgcm93cywgY29sdW1ucykgbm9leGNlcHQ6 CisrICAgIGNkZWYgTGVhbk1hdHJpeCBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHNlbGYs IHJvd3MsIGNvbHVtbnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gc3VibWF0cml4 IGluZGV4ZWQgYnkgaW5kaWNhdGVkIHJvd3MgYW5kIGNvbHVtbnMuCisgICAgICAgICAiIiIKK0BA IC0xMzA4LDcgKzEzMDgsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJpeChMZWFuTWF0cml4KToK KyAgICAgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoQS5fTVtyXSwgYykKKyAgICAgICAgIHJl dHVybiBBCisgCistICAgIGNkZWYgbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1uc19yZW9yZGVy ZWQoc2VsZiwgcm93cywgY29sdW1ucykgbm9leGNlcHQ6CisrICAgIGNkZWYgbWF0cml4X2Zyb21f cm93c19hbmRfY29sdW1uc19yZW9yZGVyZWQoc2VsZiwgcm93cywgY29sdW1ucyk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBhIHN1Ym1hdHJpeCBpbmRleGVkIGJ5IGluZGljYXRlZCBy b3dzIGFuZCBjb2x1bW5zLCBhcyB3ZWxsIGFzCisgICAgICAgICB0aGUgY29sdW1uIG9yZGVyIG9m IHRoZSByZXN1bHRpbmcgc3VibWF0cml4LgorQEAgLTEzNjUsNyArMTM2NSw3IEBAIGNkZWYgY2xh c3MgQmluYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgYml0c2V0X2ZyZWUobWFzaykK KyAgICAgICAgIHJldHVybiBBLCBvcmRlcgorIAorLSAgICBjZGVmIGxpc3QgX2NoYXJhY3Rlcihz ZWxmLCBiaXRzZXRfdCB4KSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlv bgorKyAgICBjZGVmIGxpc3QgX2NoYXJhY3RlcihzZWxmLCBiaXRzZXRfdCB4KTogICAjIE5vdCBh IFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IHZlY3RvciBvZiBpbnRlcnNlY3Rpb24gbGVuZ3RocyBvZiB0aGUgcm93cyB3aXRoIGBgeGBgLgor ICAgICAgICAgIiIiCitAQCAtMTM3Niw3ICsxMzc2LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRy aXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgSS5hcHBlbmQoYml0c2V0X2xlbihzZWxmLl90 ZW1wKSkKKyAgICAgICAgIHJldHVybiBJCisgCistICAgIGNkZWYgQmluYXJ5TWF0cml4IF9kaXN0 aW5ndWlzaF9ieShzZWxmLCBCaW5hcnlNYXRyaXggUCkgbm9leGNlcHQ6CisrICAgIGNkZWYgQmlu YXJ5TWF0cml4IF9kaXN0aW5ndWlzaF9ieShzZWxmLCBCaW5hcnlNYXRyaXggUCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEhlbHBlciBtZXRob2QgZm9yIGVxdWl0YWJsZSBwYXJ0aXRpb24uCisg ICAgICAgICAiIiIKK0BAIC0xMzk3LDcgKzEzOTcsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJp eChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICBpICs9IDEKKyAgICAgICAgIHJldHVybiBRCisg CistICAgIGNkZWYgQmluYXJ5TWF0cml4IF9zcGxpY2VfYnkoc2VsZiwgQmluYXJ5TWF0cml4IFAp IG5vZXhjZXB0OgorKyAgICBjZGVmIEJpbmFyeU1hdHJpeCBfc3BsaWNlX2J5KHNlbGYsIEJpbmFy eU1hdHJpeCBQKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIG1ldGhvZCBmb3IgZXF1 aXRhYmxlIHBhcnRpdGlvbi4KKyAgICAgICAgICIiIgorQEAgLTE0MTQsNyArMTQxNCw3IEBAIGNk ZWYgY2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgUS5yZXNpemUocikK KyAgICAgICAgIHJldHVybiBRCisgCistICAgIGNkZWYgQmluYXJ5TWF0cml4IF9pc29sYXRlKHNl bGYsIGxvbmcgaikgbm9leGNlcHQ6CisrICAgIGNkZWYgQmluYXJ5TWF0cml4IF9pc29sYXRlKHNl bGYsIGxvbmcgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBtZXRob2QgZm9yIGlz b21vcnBoaXNtIHRlc3QuCisgICAgICAgICAiIiIKK0BAIC0xNDI3LDcgKzE0MjcsNyBAQCBjZGVm IGNsYXNzIEJpbmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgIGJpdHNldF9hZGQoUS5f TVtzZWxmLl9ucm93c10sIGopCisgICAgICAgICByZXR1cm4gUQorIAorLSAgICBjZGVmIEJpbmFy eU1hdHJpeCBlcXVpdGFibGVfcGFydGl0aW9uKHNlbGYsIEJpbmFyeU1hdHJpeCBQPU5vbmUpIG5v ZXhjZXB0OgorKyAgICBjZGVmIEJpbmFyeU1hdHJpeCBlcXVpdGFibGVfcGFydGl0aW9uKHNlbGYs IEJpbmFyeU1hdHJpeCBQPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIGFu IGVxdWl0YWJsZSBwYXJ0aXRpb24gb2YgdGhlIGNvbHVtbnMuCisgICAgICAgICAiIiIKK0BAIC0x NzE4LDcgKzE3MTgsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6Cisg ICAgICAgICAgICAgICAgIE1baSwgal0gPSBzZWxmLmdldChpLCBqKQorICAgICAgICAgcmV0dXJu IE0KKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjKToKKyAgICAgICAg IGdsb2JhbCBHRjNfemVybywgR0YzX29uZSwgR0YzX21pbnVzX29uZQorICAgICAgICAgaWYgbm90 IGJpdHNldF9pbihzZWxmLl9NMFtyXSwgYyk6CisgICAgICAgICAgICAgcmV0dXJuIEdGM196ZXJv CitAQCAtMTczMCw3ICsxNzMwLDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cml4KExlYW5NYXRy aXgpOgorICAgICAgICAgc2VsZi5zZXQociwgYywgeCkKKyAgICAgICAgIHJldHVybiAwCisgCist ICAgIGNkZWYgTGVhbk1hdHJpeCBjb3B5KHNlbGYpIG5vZXhjZXB0OiAgICMgRGVwcmVjYXRlZCBT YWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2VsZik6ICAg IyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgY2RlZiBUZXJuYXJ5 TWF0cml4IFQKKyAgICAgICAgIGNkZWYgbG9uZyBpCisgICAgICAgICBUID0gVGVybmFyeU1hdHJp eChzZWxmLl9ucm93cywgc2VsZi5fbmNvbHMpCitAQCAtMTc2NCw3ICsxNzY0LDcgQEAgY2RlZiBj bGFzcyBUZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIHNlbGYuX25yb3dz ID0gaworICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNl bGYsIExlYW5NYXRyaXggTU0pIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggc3RhY2so c2VsZiwgTGVhbk1hdHJpeCBNTSk6CisgICAgICAgICBjZGVmIFRlcm5hcnlNYXRyaXggUgorICAg ICAgICAgY2RlZiBUZXJuYXJ5TWF0cml4IE0gPSA8VGVybmFyeU1hdHJpeCA+IE1NCisgICAgICAg ICBjZGVmIGxvbmcgaQorQEAgLTE3NzQsNyArMTc3NCw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1h dHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICBiaXRzZXRfY29weShSLl9NMVtpICsgc2Vs Zi5ucm93cygpXSwgTS5fTTFbaV0pCisgICAgICAgICByZXR1cm4gUgorIAorLSAgICBjZGVmIExl YW5NYXRyaXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4IE1NKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBMZWFuTWF0cml4IGF1Z21lbnQoc2VsZiwgTGVhbk1hdHJpeCBNTSk6CisgICAgICAgICBjZGVm IFRlcm5hcnlNYXRyaXggUgorICAgICAgICAgY2RlZiBUZXJuYXJ5TWF0cml4IE0gPSA8VGVybmFy eU1hdHJpeCA+IE1NCisgICAgICAgICBjZGVmIGxvbmcgaSwgagorQEAgLTE3ODUsNyArMTc4NSw3 IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAg ICAgYml0c2V0X3NldF90byhSLl9NMVtpXSwgc2VsZi5uY29scygpICsgaiwgYml0c2V0X2luKE0u X00xW2ldLCBqKSkKKyAgICAgICAgIHJldHVybiBSCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBw cmVwZW5kX2lkZW50aXR5KHNlbGYpIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCisrICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5kX2lkZW50aXR5KHNlbGYpOiAgICMg Tm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgbWF0cml4IG9idGFpbmVkIGJ5IHByZXBlbmRpbmcgYW4gaWRlbnRpdHkgbWF0cml4Lgor IAorQEAgLTE3OTksNyArMTc5OSw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJpeChMZWFuTWF0 cml4KToKKyAgICAgICAgICAgICBBLnNldChpLCBpLCAxKQorICAgICAgICAgcmV0dXJuIEEKKyAK Ky0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlX3Jp bmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBHRigzKS4KKyAKK0BAIC0x ODEzLDcgKzE4MTMsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6Cisg ICAgICAgICBnbG9iYWwgR0YzCisgICAgICAgICByZXR1cm4gR0YzCisgCistICAgIGNwZGVmIGNo YXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJpc3RpYyBv ZiBgYHNlbGYuYmFzZV9yaW5nKClgYC4KKyAKK0BAIC0xOTQyLDEzICsxOTQyLDEzIEBAIGNkZWYg Y2xhc3MgVGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgICAgIHNl bGYucm93X3N1YnMoaSwgeCkKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNkZWYgbGlzdCBu b256ZXJvX3Bvc2l0aW9uc19pbl9yb3coc2VsZiwgbG9uZyByKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBsaXN0IG5vbnplcm9fcG9zaXRpb25zX2luX3JvdyhzZWxmLCBsb25nIHIpOgorICAgICAgICAg IiIiCisgICAgICAgICBHZXQgY29vcmRpbmF0ZXMgb2Ygbm9uemVybyBlbnRyaWVzIG9mIHJvdyBg YHJgYC4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGJpdHNldF9saXN0KHNlbGYuX00w W3JdKQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHRyYW5zcG9zZSBvZiB0aGUgbWF0cml4LgorICAgICAgICAgIiIiCitA QCAtMTk2NCw3ICsxOTY0LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgp OgorICAgICAgICAgICAgICAgICBqID0gYml0c2V0X25leHQoc2VsZi5fTTBbaV0sIGogKyAxKQor ICAgICAgICAgcmV0dXJuIFQKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IF9tYXRyaXhfdGltZXNf bWF0cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFu TWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVyKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IGBgc2VsZiAqIG90aGVyYGAu CisgICAgICAgICAiIiIKK0BAIC0xOTg0LDcgKzE5ODQsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlN YXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBNLnJlc2l6ZShzZWxmLl9ucm93cykKKyAgICAg ICAgIHJldHVybiBNCisgCistICAgIGNkZWYgbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1uc19y ZW9yZGVyZWQoc2VsZiwgcm93cywgY29sdW1ucykgbm9leGNlcHQ6CisrICAgIGNkZWYgbWF0cml4 X2Zyb21fcm93c19hbmRfY29sdW1uc19yZW9yZGVyZWQoc2VsZiwgcm93cywgY29sdW1ucyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIHN1Ym1hdHJpeCBpbmRleGVkIGJ5IGluZGlj YXRlZCByb3dzIGFuZCBjb2x1bW5zLCBhcyB3ZWxsIGFzCisgICAgICAgICB0aGUgY29sdW1uIG9y ZGVyIG9mIHRoZSByZXN1bHRpbmcgc3VibWF0cml4LgorQEAgLTIyOTYsNyArMjI5Niw3IEBAIGNk ZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAg TVtpLCBqXSA9IHNlbGYuZ2V0KGksIGopCisgICAgICAgICByZXR1cm4gTQorIAorLSAgICBjZGVm IGlubGluZSBnZXQoc2VsZiwgbG9uZyByLCBsb25nIGMpIG5vZXhjZXB0OiAgICMgTm90IGEgU2Fn ZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgaW5saW5lIGdldChzZWxmLCBsb25nIHIsIGxv bmcgYyk6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIGlmIGJpdHNl dF9pbihzZWxmLl9NMFtyXSwgYyk6CisgICAgICAgICAgICAgaWYgYml0c2V0X2luKHNlbGYuX00x W3JdLCBjKToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3hfb25lCitAQCAtMjMyMyw3 ICsyMzIzLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAg ICAgICAgICAgIGJpdHNldF9hZGQoc2VsZi5fTTFbcl0sIGMpCisgICAgICAgICByZXR1cm4gMAor IAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9uZyByLCBsb25nIGMpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9uZyByLCBsb25nIGMpOgorICAgICAgICAgcmV0 dXJuIHNlbGYuZ2V0KHIsIGMpCisgCisgICAgIGNkZWYgaW50IHNldF91bnNhZmUoc2VsZiwgbG9u ZyByLCBsb25nIGMsIHgpIGV4Y2VwdCAtMToKK0BAIC0yMzMzLDcgKzIzMzMsNyBAQCBjZGVmIGNs YXNzIFF1YXRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgIGNkZWYgaW5saW5lIGJpbnQg aXNfbm9uemVybyhzZWxmLCBsb25nIHIsIGxvbmcgYykgZXhjZXB0IC0yOiAgICMgTm90IGEgU2Fn ZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICByZXR1cm4gYml0c2V0X2luKHNlbGYuX00wW3Jd LCBjKSBvciBiaXRzZXRfaW4oc2VsZi5fTTFbcl0sIGMpCisgCistICAgIGNkZWYgTGVhbk1hdHJp eCBjb3B5KHNlbGYpIG5vZXhjZXB0OiAgICMgRGVwcmVjYXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRp b24KKysgICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2VsZik6ICAgIyBEZXByZWNhdGVkIFNhZ2Ug bWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgY2RlZiBRdWF0ZXJuYXJ5TWF0cml4IFQKKyAgICAg ICAgIGNkZWYgbG9uZyBpCisgICAgICAgICBUID0gUXVhdGVybmFyeU1hdHJpeChzZWxmLl9ucm93 cywgc2VsZi5fbmNvbHMsIHJpbmc9c2VsZi5fZ2Y0KQorQEAgLTIzNjYsNyArMjM2Niw3IEBAIGNk ZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICBzZWxm Ll9ucm93cyA9IGsKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBz dGFjayhzZWxmLCBMZWFuTWF0cml4IE1NKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4 IHN0YWNrKHNlbGYsIExlYW5NYXRyaXggTU0pOgorICAgICAgICAgY2RlZiBRdWF0ZXJuYXJ5TWF0 cml4IFIKKyAgICAgICAgIGNkZWYgUXVhdGVybmFyeU1hdHJpeCBNID0gPFF1YXRlcm5hcnlNYXRy aXggPiBNTQorICAgICAgICAgY2RlZiBsb25nIGkKK0BAIC0yMzc2LDcgKzIzNzYsNyBAQCBjZGVm IGNsYXNzIFF1YXRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgYml0c2V0 X2NvcHkoUi5fTTFbaSArIHNlbGYubnJvd3MoKV0sIE0uX00xW2ldKQorICAgICAgICAgcmV0dXJu IFIKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IGF1Z21lbnQoc2VsZiwgTGVhbk1hdHJpeCBNTSkg bm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdtZW50KHNlbGYsIExlYW5NYXRyaXgg TU0pOgorICAgICAgICAgY2RlZiBRdWF0ZXJuYXJ5TWF0cml4IFIKKyAgICAgICAgIGNkZWYgUXVh dGVybmFyeU1hdHJpeCBNID0gPFF1YXRlcm5hcnlNYXRyaXggPiBNTQorICAgICAgICAgY2RlZiBs b25nIGksIGoKK0BAIC0yMzg3LDcgKzIzODcsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRy aXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9zZXRfdG8oUi5fTTFbaV0s IHNlbGYubmNvbHMoKSArIGosIGJpdHNldF9pbihNLl9NMVtpXSwgaikpCisgICAgICAgICByZXR1 cm4gUgorIAorLSAgICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9pZGVudGl0eShzZWxmKSBub2V4 Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIExlYW5NYXRy aXggcHJlcGVuZF9pZGVudGl0eShzZWxmKTogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlv bgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1hdHJpeCBvYnRhaW5lZCBieSBw cmVwZW5kaW5nIGFuIGlkZW50aXR5IG1hdHJpeC4gU3BlY2lhbAorICAgICAgICAgY2FzZSBvZiBg YGF1Z21lbnRgYC4KK0BAIC0yNDAwLDcgKzI0MDAsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlN YXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgQS5zZXQoaSwgaSwgMSkKKyAgICAgICAg IHJldHVybiBBCisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gY29w eSBvZiBgR0YoNClgIHdpdGggYXBwcm9wcmlhdGUgZ2VuZXJhdG9yLgorIAorQEAgLTI0MTMsNyAr MjQxMyw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2dmNAorIAorLSAgICBjcGRlZiBjaGFyYWN0 ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY2hhcmFjdGVyaXN0aWMgb2YgYGBz ZWxmLmJhc2VfcmluZygpYGAuCisgCitAQCAtMjQzMyw3ICsyNDMzLDcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgYml0c2V0X3VuaW9uKHNlbGYu X3QsIHNlbGYuX00wW2ldLCBzZWxmLl9NMVtpXSkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGVu KHNlbGYuX3QpCisgCistICAgIGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxv bmcgaSwgbG9uZyBqKSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgor KyAgICBjZGVmIGlubGluZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxvbmcgaik6 ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBpbm5lciBwcm9kdWN0IGJldHdlZW4gcm93cyBgYGlgYCBhbmQgYGBqYGAuCisg ICAgICAgICAiIiIKK0BAIC0yNTI1LDE0ICsyNTI1LDE0IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFy eU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgc2VsZi5hZGRfbXVsdGlwbGVf b2Zfcm93X2MoaSwgeCwgc2VsZi5nZXQoaSwgeSksIDApCisgICAgICAgICByZXR1cm4gMAorIAor LSAgICBjZGVmIGxpc3Qgbm9uemVyb19wb3NpdGlvbnNfaW5fcm93KHNlbGYsIGxvbmcgcikgbm9l eGNlcHQ6CisrICAgIGNkZWYgbGlzdCBub256ZXJvX3Bvc2l0aW9uc19pbl9yb3coc2VsZiwgbG9u ZyByKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2V0IGNvb3JkaW5hdGVzIG9mIG5vbnplcm8g ZW50cmllcyBvZiByb3cgYGByYGAuCisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF91bmlv bihzZWxmLl90LCBzZWxmLl9NMFtyXSwgc2VsZi5fTTFbcl0pCisgICAgICAgICByZXR1cm4gYml0 c2V0X2xpc3Qoc2VsZi5fdCkKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHRyYW5zcG9zZShzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4IHRyYW5zcG9zZShzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB0cmFuc3Bvc2Ugb2YgdGhlIG1hdHJpeC4KKyAg ICAgICAgICIiIgorQEAgLTI1NTIsNyArMjU1Miw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1h dHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX25yb3dzKToK KyAgICAgICAgICAgICBiaXRzZXRfc3ltbWV0cmljX2RpZmZlcmVuY2Uoc2VsZi5fTTBbaV0sIHNl bGYuX00wW2ldLCBzZWxmLl9NMVtpXSkKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IF9tYXRyaXhf dGltZXNfbWF0cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBMZWFuTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVy KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IGBgc2VsZiAqIG90 aGVyYGAuCisgICAgICAgICAiIiIKK0BAIC0yNTY4LDcgKzI1NjgsNyBAQCBjZGVmIGNsYXNzIFF1 YXRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBNLnJlc2l6ZShzZWxmLl9ucm93 cykKKyAgICAgICAgIHJldHVybiBNCisgCistICAgIGNkZWYgbWF0cml4X2Zyb21fcm93c19hbmRf Y29sdW1uc19yZW9yZGVyZWQoc2VsZiwgcm93cywgY29sdW1ucykgbm9leGNlcHQ6CisrICAgIGNk ZWYgbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1uc19yZW9yZGVyZWQoc2VsZiwgcm93cywgY29s dW1ucyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIHN1Ym1hdHJpeCBpbmRleGVk IGJ5IGluZGljYXRlZCByb3dzIGFuZCBjb2x1bW5zLCBhcyB3ZWxsIGFzCisgICAgICAgICB0aGUg Y29sdW1uIG9yZGVyIG9mIHRoZSByZXN1bHRpbmcgc3VibWF0cml4LgorQEAgLTI3MjQsNyArMjcy NCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAg IGRhdGEgPSAoc2VsZi5ucm93cygpLCBzZWxmLm5jb2xzKCksIHJpbmcsIHZlcnNpb25CLCBzaXpl LCBsaW1icywgbG9uZ3NpemUsIE0wLCBNMSkKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRz LnVucGlja2xpbmcudW5waWNrbGVfcXVhdGVybmFyeV9tYXRyaXgsICh2ZXJzaW9uLCBkYXRhKQor IAorLWNwZGVmIEdlbmVyaWNNYXRyaXggZ2VuZXJpY19pZGVudGl0eShuLCByaW5nKSBub2V4Y2Vw dDoKKytjcGRlZiBHZW5lcmljTWF0cml4IGdlbmVyaWNfaWRlbnRpdHkobiwgcmluZyk6CisgICAg ICIiIgorICAgICBSZXR1cm4gYSBHZW5lcmljTWF0cml4IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhl IGBuIFx0aW1lcyBuYCBpZGVudGl0eQorICAgICBtYXRyaXggb3ZlciBgYHJpbmdgYC4KK0BAIC0y ODUyLDcgKzI4NTIsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChMZWFuTWF0cml4 KToKKyAgICAgY2RlZiBpbmxpbmUgdm9pZCBzZXQoc2VsZiwgbG9uZyByLCBsb25nIGMsIGludCB4 KSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgc2Vs Zi5fZW50cmllc1tyICogc2VsZi5fbmNvbHMgKyBjXSA9IHgKKyAKKy0gICAgY2RlZiBnZXRfdW5z YWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZl KHNlbGYsIGxvbmcgciwgbG9uZyBjKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEg U2FnZSBJbnRlZ2VyLCBmb3Igc2FmZXR5IGRvd24gdGhlIGxpbmUgd2hlbiBkaXZpZGluZy4KKyAK K0BAIC0yODgxLDcgKzI4ODEsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChMZWFu TWF0cml4KToKKyAgICAgY2RlZiBiaW50IGlzX25vbnplcm8oc2VsZiwgbG9uZyByLCBsb25nIGMp IGV4Y2VwdCAtMjogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgcmV0 dXJuIHNlbGYuZ2V0KHIsIGMpICE9IDAKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2Vs Zikgbm9leGNlcHQ6ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBj ZGVmIExlYW5NYXRyaXggY29weShzZWxmKTogICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCisgICAgICAgICBjZGVmIFBsdXNNaW51c09uZU1hdHJpeCBNID0gUGx1c01pbnVzT25l TWF0cml4KHNlbGYuX25yb3dzLCBzZWxmLl9uY29scykKKyAgICAgICAgIG1lbWNweShNLl9lbnRy aWVzLCBzZWxmLl9lbnRyaWVzLCBzZWxmLl9ucm93cyAqIHNlbGYuX25jb2xzICogc2l6ZW9mKGlu dCkpCisgICAgICAgICByZXR1cm4gTQorQEAgLTI4OTksNyArMjg5OSw3IEBAIGNkZWYgY2xhc3Mg UGx1c01pbnVzT25lTWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgc2VsZi5fbnJvd3MgPSBr CisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjZGVmIExlYW5NYXRyaXggc3RhY2soc2VsZiwg TGVhbk1hdHJpeCBNKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYs IExlYW5NYXRyaXggTSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFdhcm5pbmc6IGFzc3VtZXMg YGBNYGAgaXMgYSBQbHVzTWludXNPbmVNYXRyaXggaW5zdGFuY2Ugb2YgcmlnaHQKKyAgICAgICAg IGRpbWVuc2lvbnMhCitAQCAtMjkxMCw3ICsyOTEwLDcgQEAgY2RlZiBjbGFzcyBQbHVzTWludXNP bmVNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBtZW1jcHkoQS5fZW50cmllcyArIHNlbGYu X25yb3dzICogc2VsZi5fbmNvbHMsICg8UGx1c01pbnVzT25lTWF0cml4Pk0pLl9lbnRyaWVzLCBN Lm5yb3dzKCkgKiBNLm5jb2xzKCkgKiBzaXplb2YoaW50KSkKKyAgICAgICAgIHJldHVybiBBCisg CistICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdtZW50KHNlbGYsIExlYW5NYXRyaXggTSkgbm9leGNl cHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdtZW50KHNlbGYsIExlYW5NYXRyaXggTSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFdhcm5pbmc6IGFzc3VtZXMgYGBNYGAgaXMgYSBQbHVzTWlu dXNPbmVNYXRyaXggaW5zdGFuY2UhCisgICAgICAgICAiIiIKK0BAIC0yOTIzLDcgKzI5MjMsNyBA QCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAg ICBtZW1jcHkoQS5fZW50cmllcyArIChpICogQS5fbmNvbHMgKyBzZWxmLl9uY29scyksICg8UGx1 c01pbnVzT25lTWF0cml4Pk0pLl9lbnRyaWVzICsgaSAqIE1uLCBNbiAqIHNpemVvZihpbnQpKQor ICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHByZXBlbmRfaWRlbnRp dHkoc2VsZikgbm9leGNlcHQ6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAg Y2RlZiBMZWFuTWF0cml4IHByZXBlbmRfaWRlbnRpdHkoc2VsZik6ICAgIyBOb3QgYSBTYWdlIG1h dHJpeCBvcGVyYXRpb24KKyAgICAgICAgIGNkZWYgUGx1c01pbnVzT25lTWF0cml4IEEgPSBQbHVz TWludXNPbmVNYXRyaXgoc2VsZi5fbnJvd3MsIHNlbGYuX25jb2xzICsgc2VsZi5fbnJvd3MsIHJp bmc9c2VsZi5fYmFzZV9yaW5nKQorICAgICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAgIGZvciBp IGluIHJhbmdlKHNlbGYuX25yb3dzKToKK0BAIC0yOTMxLDcgKzI5MzEsNyBAQCBjZGVmIGNsYXNz IFBsdXNNaW51c09uZU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICBtZW1jcHkoQS5f ZW50cmllcyArIChpICogQS5fbmNvbHMgKyBzZWxmLl9ucm93cyksIHNlbGYuX2VudHJpZXMgKyBp ICogc2VsZi5fbmNvbHMsIHNlbGYuX25jb2xzICogc2l6ZW9mKGludCkpCisgICAgICAgICByZXR1 cm4gQQorIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBiYXNl IHJpbmcgb2YgYGBzZWxmYGAuCisgCitAQCAtMjk0NCw3ICsyOTQ0LDcgQEAgY2RlZiBjbGFzcyBQ bHVzTWludXNPbmVNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBaWgorIAorLSAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgY2hhcmFjdGVyaXN0aWMgb2YgYGBzZWxmLmJhc2VfcmluZygpYGAuCisgCitAQCAt Mjk2OCw3ICsyOTY4LDcgQEAgY2RlZiBjbGFzcyBQbHVzTWludXNPbmVNYXRyaXgoTGVhbk1hdHJp eCk6CisgICAgICAgICAgICAgICAgIHJlcyArPSAxCisgICAgICAgICByZXR1cm4gcmVzCisgCist ICAgIGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKSBu b2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIGlubGlu ZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxvbmcgaik6ICAgIyBOb3QgYSBTYWdl IG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbm5l ciBwcm9kdWN0IGJldHdlZW4gcm93cyBgYGlgYCBhbmQgYGBqYGAuCisgICAgICAgICAiIiIKK0BA IC0zMDUzLDcgKzMwNTMsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChMZWFuTWF0 cml4KToKKyAgICAgICAgICAgICAgICAgc2VsZi5hZGRfbXVsdGlwbGVfb2Zfcm93X2MoaSwgeCwg LXMsIDApCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjZGVmIGxpc3Qgbm9uemVyb19wb3Np dGlvbnNfaW5fcm93KHNlbGYsIGxvbmcgcikgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBub256 ZXJvX3Bvc2l0aW9uc19pbl9yb3coc2VsZiwgbG9uZyByKToKKyAgICAgICAgICIiIgorICAgICAg ICAgR2V0IGNvb3JkaW5hdGVzIG9mIG5vbnplcm8gZW50cmllcyBvZiByb3cgYGByYGAuCisgICAg ICAgICAiIiIKK0BAIC0zMDY0LDcgKzMwNjQsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1h dHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChqIC0gciAqIHNl bGYuX25jb2xzKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVmIExlYW5NYXRyaXgg dHJhbnNwb3NlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3Nl KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHRyYW5zcG9zZSBvZiB0 aGUgbWF0cml4LgorICAgICAgICAgIiIiCitAQCAtMzA3Niw3ICszMDc2LDcgQEAgY2RlZiBjbGFz cyBQbHVzTWludXNPbmVNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgICAgIEEuc2V0 KGosIGksIHNlbGYuZ2V0KGksIGopKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2RlZiBM ZWFuTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBMZWFuTWF0cml4IG90aGVyKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxm LCBMZWFuTWF0cml4IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBw cm9kdWN0IGBgc2VsZiAqIG90aGVyYGAuCisgICAgICAgICAiIiIKK0BAIC0zMDkzLDcgKzMwOTMs NyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAg ICAgICAgICAgQS5zZXQoaSwgaiwgcykKKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYg bGlzdCBnYXVzc19qb3JkYW5fcmVkdWNlKHNlbGYsIGNvbHVtbnMpIG5vZXhjZXB0OiAgICMgTm90 IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgbGlzdCBnYXVzc19qb3JkYW5fcmVk dWNlKHNlbGYsIGNvbHVtbnMpOiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAg ICAgICAiIiIKKyAgICAgICAgIFJvdy1yZWR1Y2Ugc28gdGhlIGxleGljb2dyYXBoaWNhbGx5IGZp cnN0IGJhc2lzIGluZGV4ZXMgYW4gaWRlbnRpdHkKKyAgICAgICAgIHN1Ym1hdHJpeC4KK0BAIC0z Mjk5LDcgKzMyOTksNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsTWF0cml4KExlYW5NYXRyaXgpOgor ICAgICBjZGVmIGlubGluZSB2b2lkIHNldChzZWxmLCBsb25nIHIsIGxvbmcgYywgbXBxX3QgeCkg bm9leGNlcHQ6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIG1wcV9z ZXQoc2VsZi5fZW50cmllc1tyICogc2VsZi5fbmNvbHMgKyBjXSwgeCkKKyAKKy0gICAgY2RlZiBn ZXRfdW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRf dW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIGEgU2FnZSBJbnRlZ2VyLCBmb3Igc2FmZXR5IGRvd24gdGhlIGxpbmUgd2hlbiBkaXZpZGlu Zy4KKyAKK0BAIC0zMzMwLDcgKzMzMzAsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsTWF0cml4KExl YW5NYXRyaXgpOgorICAgICBjZGVmIGJpbnQgaXNfbm9uemVybyhzZWxmLCBsb25nIHIsIGxvbmcg YykgZXhjZXB0IC0yOiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBy ZXR1cm4gbXBxX3NnbihzZWxmLl9lbnRyaWVzW3NlbGYuaW5kZXgociwgYyldKSAhPSAwCisgCist ICAgIGNkZWYgTGVhbk1hdHJpeCBjb3B5KHNlbGYpIG5vZXhjZXB0OiAgICMgRGVwcmVjYXRlZCBT YWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2VsZik6ICAg IyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgY2RlZiBSYXRpb25h bE1hdHJpeCBNID0gUmF0aW9uYWxNYXRyaXgoc2VsZi5fbnJvd3MsIHNlbGYuX25jb2xzKQorICAg ICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX25yb3dzICog c2VsZi5fbmNvbHMpOgorQEAgLTMzNTYsNyArMzM1Niw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxN YXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBzZWxmLl9ucm93cyA9IGsKKyAgICAgICAgIHJl dHVybiAwCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBzdGFjayhzZWxmLCBMZWFuTWF0cml4IE0p IG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggc3RhY2soc2VsZiwgTGVhbk1hdHJpeCBN KToKKyAgICAgICAgICIiIgorICAgICAgICAgV2FybmluZzogYXNzdW1lcyBgYE1gYCBpcyBhIFJh dGlvbmFsTWF0cml4IGluc3RhbmNlIG9mIHJpZ2h0CisgICAgICAgICBkaW1lbnNpb25zIQorQEAg LTMzNzEsNyArMzM3MSw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJpeCk6 CisgICAgICAgICAgICAgbXBxX3NldChBLl9lbnRyaWVzW2wraV0sICg8UmF0aW9uYWxNYXRyaXg+ TSkuX2VudHJpZXNbaV0pCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRy aXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4IE0pIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5N YXRyaXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4IE0pOgorICAgICAgICAgIiIiCisgICAgICAg ICBXYXJuaW5nOiBhc3N1bWVzIGBgTWBgIGlzIGEgUmF0aW9uYWxNYXRyaXggaW5zdGFuY2UhCisg ICAgICAgICAiIiIKK0BAIC0zMzg1LDcgKzMzODUsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsTWF0 cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBtcHFfc2V0KEEuX2VudHJpZXNbaSpB Ll9uY29scyArIHNlbGYuX25jb2xzICsgal0sICg8UmF0aW9uYWxNYXRyaXg+TSkuX2VudHJpZXNb aSpNbiArIGpdKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHBy ZXBlbmRfaWRlbnRpdHkoc2VsZikgbm9leGNlcHQ6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVy YXRpb24KKysgICAgY2RlZiBMZWFuTWF0cml4IHByZXBlbmRfaWRlbnRpdHkoc2VsZik6ICAgIyBO b3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIGNkZWYgUmF0aW9uYWxNYXRyaXgg QSA9IFJhdGlvbmFsTWF0cml4KHNlbGYuX25yb3dzLCBzZWxmLl9uY29scyArIHNlbGYuX25yb3dz KQorICAgICAgICAgY2RlZiBsb25nIGksIGoKKyAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYu X25yb3dzKToKK0BAIC0zMzk0LDcgKzMzOTQsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsTWF0cml4 KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBtcHFfc2V0KEEuX2VudHJpZXNbQS5pbmRl eChpLHNlbGYuX25yb3dzK2opXSwgc2VsZi5fZW50cmllc1tzZWxmLmluZGV4KGksaildKQorICAg ICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgYmFzZSByaW5nIG9mIGBgc2VsZmBgLgorIAorQEAgLTM0MDcsNyArMzQwNyw3IEBAIGNk ZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBRUQorIAorLSAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgY2hhcmFjdGVyaXN0aWMgb2YgYGBzZWxmLmJhc2VfcmluZygpYGAuCisg CitAQCAtMzQzMSw3ICszNDMxLDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbE1hdHJpeChMZWFuTWF0 cml4KToKKyAgICAgICAgICAgICAgICAgcmVzICs9IDEKKyAgICAgICAgIHJldHVybiByZXMKKyAK Ky0gICAgY2RlZiBpbmxpbmUgcm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25nIGop IG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgaW5s aW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKTogICAjIE5vdCBhIFNh Z2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGlu bmVyIHByb2R1Y3QgYmV0d2VlbiByb3dzIGBgaWBgIGFuZCBgYGpgYC4KKyAgICAgICAgICIiIgor QEAgLTM1NDAsNyArMzU0MCw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJp eCk6CisgICAgICAgICBtcHFfY2xlYXIodCkKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNk ZWYgbGlzdCBub256ZXJvX3Bvc2l0aW9uc19pbl9yb3coc2VsZiwgbG9uZyByKSBub2V4Y2VwdDoK KysgICAgY2RlZiBsaXN0IG5vbnplcm9fcG9zaXRpb25zX2luX3JvdyhzZWxmLCBsb25nIHIpOgor ICAgICAgICAgIiIiCisgICAgICAgICBHZXQgY29vcmRpbmF0ZXMgb2Ygbm9uemVybyBlbnRyaWVz IG9mIHJvdyBgYHJgYC4KKyAgICAgICAgICIiIgorQEAgLTM1NTEsNyArMzU1MSw3IEBAIGNkZWYg Y2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgICAgIHJlcy5h cHBlbmQoaiAtIHIgKiBzZWxmLl9uY29scykKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAg Y2RlZiBMZWFuTWF0cml4IHRyYW5zcG9zZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFu TWF0cml4IHRyYW5zcG9zZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSB0cmFuc3Bvc2Ugb2YgdGhlIG1hdHJpeC4KKyAgICAgICAgICIiIgorQEAgLTM1NjMsNyArMzU2 Myw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAg ICAgICAgIEEuc2V0KGosIGksIHNlbGYuX2VudHJpZXNbc2VsZi5pbmRleChpLCBqKV0pCisgICAg ICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19tYXRy aXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRy aXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogb3RoZXJgYC4KKyAg ICAgICAgICIiIgorQEAgLTM1ODMsNyArMzU4Myw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRy aXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBtcHFfY2xlYXIocykKKyAgICAgICAgIHJldHVybiBB CisgCistICAgIGNkZWYgbGlzdCBnYXVzc19qb3JkYW5fcmVkdWNlKHNlbGYsIGNvbHVtbnMpIG5v ZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgbGlzdCBn YXVzc19qb3JkYW5fcmVkdWNlKHNlbGYsIGNvbHVtbnMpOiAgICMgTm90IGEgU2FnZSBtYXRyaXgg b3BlcmF0aW9uCisgICAgICAgICAiIiIKKyAgICAgICAgIFJvdy1yZWR1Y2Ugc28gdGhlIGxleGlj b2dyYXBoaWNhbGx5IGZpcnN0IGJhc2lzIGluZGV4ZXMgYW4gaWRlbnRpdHkKKyAgICAgICAgIHN1 Ym1hdHJpeC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5w eGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weGQKK2luZGV4IGM3ZTZhNDAy NDk0Li40OTAyY2NlZjZlZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9t YXRyb2lkLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHhkCitA QCAtMTAsODcgKzEwLDg3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdl TWF0cm9pZCk6CisgICAgIGNkZWYgbG9uZyAqX3Byb3cKKyAgICAgY2RlZiBvYmplY3QgX3plcm8s IF9vbmUKKyAKKy0gICAgY3BkZWYgX2ZvcmdldChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBi YXNlX3Jpbmcoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikg bm9leGNlcHQKKysgICAgY3BkZWYgX2ZvcmdldChzZWxmKQorKyAgICBjcGRlZiBiYXNlX3Jpbmco c2VsZikKKysgICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikKKyAKKy0gICAgY2RlZiBsaXN0 IF9zZXR1cF9pbnRlcm5hbF9yZXByZXNlbnRhdGlvbihzZWxmLCBtYXRyaXgsIHJlZHVjZWRfbWF0 cml4LCByaW5nLCBrZWVwX2luaXRpYWxfcmVwcmVzZW50YXRpb24pIG5vZXhjZXB0CistICAgIGNk ZWYgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBub2V4Y2Vw dAorKyAgICBjZGVmIGxpc3QgX3NldHVwX2ludGVybmFsX3JlcHJlc2VudGF0aW9uKHNlbGYsIG1h dHJpeCwgcmVkdWNlZF9tYXRyaXgsIHJpbmcsIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbikK KysgICAgY2RlZiBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkp CisgCistICAgIGNwZGVmIHJlcHJlc2VudGF0aW9uKHNlbGYsIEI9KiwgcmVkdWNlZD0qLCBsYWJl bHM9Kiwgb3JkZXI9KiwgbGlmdF9tYXA9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2N1cnJlbnRf cm93c19jb2xzKHNlbGYsIEI9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgcmVwcmVzZW50YXRpb25f dmVjdG9ycyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXBy ZXNlbnRhdGlvbihzZWxmLCBCPSopIG5vZXhjZXB0CistICAgIGNwZGVmIExlYW5NYXRyaXggX3Jl ZHVjZWRfcmVwcmVzZW50YXRpb24oc2VsZiwgQj0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiByZXBy ZXNlbnRhdGlvbihzZWxmLCBCPSosIHJlZHVjZWQ9KiwgbGFiZWxzPSosIG9yZGVyPSosIGxpZnRf bWFwPSopCisrICAgIGNwZGVmIF9jdXJyZW50X3Jvd3NfY29scyhzZWxmLCBCPSopCisrICAgIGNw ZGVmIHJlcHJlc2VudGF0aW9uX3ZlY3RvcnMoc2VsZikKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBf YmFzaWNfcmVwcmVzZW50YXRpb24oc2VsZiwgQj0qKQorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9y ZWR1Y2VkX3JlcHJlc2VudGF0aW9uKHNlbGYsIEI9KikKKyAKKyAgICAgY3BkZWYgYmludCBfaXNf ZmllbGRfaXNvbW9ycGhpc20oc2VsZiwgTGluZWFyTWF0cm9pZCBvdGhlciwgbW9ycGhpc20pIG5v ZXhjZXB0CistICAgIGNwZGVmIGlzX2ZpZWxkX2VxdWl2YWxlbnQoc2VsZiwgb3RoZXIpIG5vZXhj ZXB0CistICAgIGNwZGVmIGlzX2ZpZWxkX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBtb3JwaGlz bSkgbm9leGNlcHQKKysgICAgY3BkZWYgaXNfZmllbGRfZXF1aXZhbGVudChzZWxmLCBvdGhlcikK KysgICAgY3BkZWYgaXNfZmllbGRfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKQor ICAgICAjIGNwZGVmIGlzX2ZpZWxkX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIpICAjIFRPRE86IGN1 cnJlbnRseSBvbmx5IHdvcmtzIGFzIGBgZGVmYGAKKy0gICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0 KHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBfbWlub3Ioc2VsZiwgY29udHJh Y3Rpb25zLCBkZWxldGlvbnMpIG5vZXhjZXB0CistICAgIGNwZGVmIGR1YWwoc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgaGFzX2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJsaW5lcz0qLCBjZXJ0 aWZpY2F0ZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBoYXNfZmllbGRfbWlub3Ioc2VsZiwgTikg bm9leGNlcHQKKy0KKy0gICAgY3BkZWYgX2V4Y2hhbmdlX3ZhbHVlKHNlbGYsIGUsIGYpIG5vZXhj ZXB0CistICAgIGNwZGVmIGZ1bmRhbWVudGFsX2N5Y2xlKHNlbGYsIEIsIGUpIG5vZXhjZXB0Cist ICAgIGNwZGVmIGZ1bmRhbWVudGFsX2NvY3ljbGUoc2VsZiwgQiwgZSkgbm9leGNlcHQKKy0KKy0g ICAgY3BkZWYgX2xpbmVfcmF0aW9zKHNlbGYsIEYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9saW5l X2xlbmd0aChzZWxmLCBGKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBfbGluZV9jcm9zc19yYXRp b3Moc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgY3Jvc3NfcmF0aW9zKHNlbGYsIGh5cGVy bGluZXM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgY3Jvc3NfcmF0aW8oc2VsZiwgRiwgYSwgYiwg YywgZCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xpbmVfY3Jvc3NfcmF0aW9fdGVzdChzZWxmLCBG LCB4LCBmdW5kYW1lbnRhbHMpIG5vZXhjZXB0CistICAgIGNwZGVmIF9jcm9zc19yYXRpb190ZXN0 KHNlbGYsIHgsIGZ1bmRhbWVudGFscywgaHlwZXJsaW5lcz0qKSBub2V4Y2VwdAorLQorLSAgICBj cGRlZiBsaW5lYXJfZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQsIGNoYWluPSosIGNvbD0qKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBsaW5lYXJfY29leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgY29jaGFp bj0qLCByb3c9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xpbmVhcl9leHRlbnNpb25zKHNlbGYs IGVsZW1lbnQsIGNoYWlucykgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xpbmVhcl9jb2V4dGVuc2lv bnMoc2VsZiwgZWxlbWVudCwgY29jaGFpbnMpIG5vZXhjZXB0CistICAgIGNkZWYgX2V4dGVuZF9j aGFpbnMoc2VsZiwgQywgZiwgZnVuZGFtZW50YWxzPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9s aW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBGLCBmdW5kYW1lbnRhbHM9Kikgbm9leGNlcHQK Ky0gICAgY3BkZWYgbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoc2VsZiwgRj0qLCBzaW1wbGU9Kiwg ZnVuZGFtZW50YWxzPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGxpbmVhcl9jb2V4dGVuc2lvbl9j b2NoYWlucyhzZWxmLCBGPSosIGNvc2ltcGxlPSosIGZ1bmRhbWVudGFscz0qKSBub2V4Y2VwdAor LSAgICBjcGRlZiBsaW5lYXJfZXh0ZW5zaW9ucyhzZWxmLCBlbGVtZW50PSosIEY9Kiwgc2ltcGxl PSosIGZ1bmRhbWVudGFscz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaW5lYXJfY29leHRlbnNp b25zKHNlbGYsIGVsZW1lbnQ9KiwgRj0qLCBjb3NpbXBsZT0qLCBmdW5kYW1lbnRhbHM9Kikgbm9l eGNlcHQKKy0KKy0gICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlm aWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lzXzRjb25uZWN0ZWRfc2hpZnRpbmcoc2Vs ZiwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0KKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikg bm9leGNlcHQKKysgICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKQorKworKyAg ICBjcGRlZiBfbWlub3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpCisrICAgIGNwZGVm IGR1YWwoc2VsZikKKysgICAgY3BkZWYgaGFzX2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJsaW5l cz0qLCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBoYXNfZmllbGRfbWlub3Ioc2VsZiwgTikK KysKKysgICAgY3BkZWYgX2V4Y2hhbmdlX3ZhbHVlKHNlbGYsIGUsIGYpCisrICAgIGNwZGVmIGZ1 bmRhbWVudGFsX2N5Y2xlKHNlbGYsIEIsIGUpCisrICAgIGNwZGVmIGZ1bmRhbWVudGFsX2NvY3lj bGUoc2VsZiwgQiwgZSkKKysKKysgICAgY3BkZWYgX2xpbmVfcmF0aW9zKHNlbGYsIEYpCisrICAg IGNwZGVmIF9saW5lX2xlbmd0aChzZWxmLCBGKQorKworKyAgICBjcGRlZiBfbGluZV9jcm9zc19y YXRpb3Moc2VsZiwgRikKKysgICAgY3BkZWYgY3Jvc3NfcmF0aW9zKHNlbGYsIGh5cGVybGluZXM9 KikKKysgICAgY3BkZWYgY3Jvc3NfcmF0aW8oc2VsZiwgRiwgYSwgYiwgYywgZCkKKysgICAgY3Bk ZWYgX2xpbmVfY3Jvc3NfcmF0aW9fdGVzdChzZWxmLCBGLCB4LCBmdW5kYW1lbnRhbHMpCisrICAg IGNwZGVmIF9jcm9zc19yYXRpb190ZXN0KHNlbGYsIHgsIGZ1bmRhbWVudGFscywgaHlwZXJsaW5l cz0qKQorKworKyAgICBjcGRlZiBsaW5lYXJfZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQsIGNoYWlu PSosIGNvbD0qKQorKyAgICBjcGRlZiBsaW5lYXJfY29leHRlbnNpb24oc2VsZiwgZWxlbWVudCwg Y29jaGFpbj0qLCByb3c9KikKKysgICAgY3BkZWYgX2xpbmVhcl9leHRlbnNpb25zKHNlbGYsIGVs ZW1lbnQsIGNoYWlucykKKysgICAgY3BkZWYgX2xpbmVhcl9jb2V4dGVuc2lvbnMoc2VsZiwgZWxl bWVudCwgY29jaGFpbnMpCisrICAgIGNkZWYgX2V4dGVuZF9jaGFpbnMoc2VsZiwgQywgZiwgZnVu ZGFtZW50YWxzPSopCisrICAgIGNwZGVmIF9saW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBG LCBmdW5kYW1lbnRhbHM9KikKKysgICAgY3BkZWYgbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoc2Vs ZiwgRj0qLCBzaW1wbGU9KiwgZnVuZGFtZW50YWxzPSopCisrICAgIGNwZGVmIGxpbmVhcl9jb2V4 dGVuc2lvbl9jb2NoYWlucyhzZWxmLCBGPSosIGNvc2ltcGxlPSosIGZ1bmRhbWVudGFscz0qKQor KyAgICBjcGRlZiBsaW5lYXJfZXh0ZW5zaW9ucyhzZWxmLCBlbGVtZW50PSosIEY9Kiwgc2ltcGxl PSosIGZ1bmRhbWVudGFscz0qKQorKyAgICBjcGRlZiBsaW5lYXJfY29leHRlbnNpb25zKHNlbGYs IGVsZW1lbnQ9KiwgRj0qLCBjb3NpbXBsZT0qLCBmdW5kYW1lbnRhbHM9KikKKysKKysgICAgY3Bk ZWYgX2lzXzNjb25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9KikKKysgICAgY3Bk ZWYgX2lzXzRjb25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9KikKKysKKysgICAg Y3BkZWYgaXNfdmFsaWQoc2VsZikKKyAKKyBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFy TWF0cm9pZCk6CisgICAgIGNkZWYgdHVwbGUgX2JfaW52YXJpYW50LCBfYl9wYXJ0aXRpb24KKyAg ICAgY2RlZiBCaW5hcnlNYXRyaXggX2JfcHJvamVjdGlvbiwgX2VxX3BhcnQKKyAKKy0gICAgY3Bk ZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNl bGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKQorKyAgICBjcGRlZiBjaGFy YWN0ZXJpc3RpYyhzZWxmKQorIAorLSAgICBjcGRlZiBfY3VycmVudF9yb3dzX2NvbHMoc2VsZiwg Qj0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRhdGlv bihzZWxmLCBCPSopIG5vZXhjZXB0CistICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVw cmVzZW50YXRpb24oc2VsZiwgQj0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfY3VycmVudF9yb3dz X2NvbHMoc2VsZiwgQj0qKQorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRh dGlvbihzZWxmLCBCPSopCisrICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVwcmVzZW50 YXRpb24oc2VsZiwgQj0qKQorIAorLSAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChz ZWxmLCBiaXRzZXRfdCwgbG9uZyB4KSBub2V4Y2VwdAorKyAgICBjZGVmICBfX2Z1bmRhbWVudGFs X2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgbG9uZyB4KQorIAorLSAgICBjcGRlZiBfaXNfaXNv bW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKysgICAgY3BkZWYg X2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopCisgCistICAgIGNwZGVm IF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykgbm9leGNlcHQKKysgICAgY3Bk ZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKQorIAorLSAgICBjcGRlZiBf bWFrZV9pbnZhcmlhbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2ludmFyaWFudChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBiaWN5Y2xlX2RpbWVuc2lvbihzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBicm93bl9pbnZhcmlhbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3By aW5jaXBhbF90cmlwYXJ0aXRpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgQmluYXJ5TWF0 cml4IF9wcm9qZWN0aW9uKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIEJpbmFyeU1hdHJpeCBf cHJvamVjdGlvbl9wYXJ0aXRpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zhc3RfaXNv bV90ZXN0KHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfbWFrZV9pbnZhcmlhbnQo c2VsZikKKysgICAgY3BkZWYgX2ludmFyaWFudChzZWxmKQorKyAgICBjcGRlZiBiaWN5Y2xlX2Rp bWVuc2lvbihzZWxmKQorKyAgICBjcGRlZiBicm93bl9pbnZhcmlhbnQoc2VsZikKKysgICAgY3Bk ZWYgX3ByaW5jaXBhbF90cmlwYXJ0aXRpb24oc2VsZikKKysgICAgY3BkZWYgQmluYXJ5TWF0cml4 IF9wcm9qZWN0aW9uKHNlbGYpCisrICAgIGNwZGVmIEJpbmFyeU1hdHJpeCBfcHJvamVjdGlvbl9w YXJ0aXRpb24oc2VsZikKKysgICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKQor IAorLSAgICBjcGRlZiBpc19ncmFwaGljKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX3Zh bGlkKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGlzX2dyYXBoaWMoc2VsZikKKysgICAgY3Bk ZWYgaXNfdmFsaWQoc2VsZikKKyAKKyAKKyBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVh ck1hdHJvaWQpOgorQEAgLTk4LDc0ICs5OCw3NCBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lk KExpbmVhck1hdHJvaWQpOgorICAgICBjZGVmIHR1cGxlIF90X2ludmFyaWFudCwgX3RfcGFydGl0 aW9uCisgICAgIGNkZWYgVGVybmFyeU1hdHJpeCBfdF9wcm9qZWN0aW9uCisgCistICAgIGNwZGVm IGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxm KSBub2V4Y2VwdAorKyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikKKysgICAgY3BkZWYgY2hhcmFj dGVyaXN0aWMoc2VsZikKKyAKKy0gICAgY3BkZWYgX2N1cnJlbnRfcm93c19jb2xzKHNlbGYsIEI9 Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBfYmFzaWNfcmVwcmVzZW50YXRpb24o c2VsZiwgQj0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBMZWFuTWF0cml4IF9yZWR1Y2VkX3JlcHJl c2VudGF0aW9uKHNlbGYsIEI9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgX2N1cnJlbnRfcm93c19j b2xzKHNlbGYsIEI9KikKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfYmFzaWNfcmVwcmVzZW50YXRp b24oc2VsZiwgQj0qKQorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9yZWR1Y2VkX3JlcHJlc2VudGF0 aW9uKHNlbGYsIEI9KikKKyAKKy0gICAgY2RlZiAgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2Vs ZiwgYml0c2V0X3QsIGxvbmcgeCkgbm9leGNlcHQKKysgICAgY2RlZiAgX19mdW5kYW1lbnRhbF9j b2NpcmN1aXQoc2VsZiwgYml0c2V0X3QsIGxvbmcgeCkKKyAKKy0gICAgY3BkZWYgX2lzX2lzb21v cnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIF9p c19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKQorIAorLSAgICBjcGRlZiBf bWlub3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpIG5vZXhjZXB0CisrICAgIGNwZGVm IF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykKKyAKKy0gICAgY3BkZWYgX21h a2VfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZikg bm9leGNlcHQKKy0gICAgY3BkZWYgYmljeWNsZV9kaW1lbnNpb24oc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgY2hhcmFjdGVyKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9wcmluY2lwYWxf cXVhZHJpcGFydGl0aW9uKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIFRlcm5hcnlNYXRyaXgg X3Byb2plY3Rpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNl bGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfbWFrZV9pbnZhcmlhbnQoc2VsZikKKysg ICAgY3BkZWYgX2ludmFyaWFudChzZWxmKQorKyAgICBjcGRlZiBiaWN5Y2xlX2RpbWVuc2lvbihz ZWxmKQorKyAgICBjcGRlZiBjaGFyYWN0ZXIoc2VsZikKKysgICAgY3BkZWYgX3ByaW5jaXBhbF9x dWFkcmlwYXJ0aXRpb24oc2VsZikKKysgICAgY3BkZWYgVGVybmFyeU1hdHJpeCBfcHJvamVjdGlv bihzZWxmKQorKyAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpCisgCistICAg IGNwZGVmIGlzX3ZhbGlkKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGlzX3ZhbGlkKHNlbGYp CisgCisgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAg Y2RlZiBvYmplY3QgX3hfemVybywgX3hfb25lCisgICAgIGNkZWYgdHVwbGUgX3FfaW52YXJpYW50 LCBfcV9wYXJ0aXRpb24KKyAgICAgY2RlZiBRdWF0ZXJuYXJ5TWF0cml4IF9xX3Byb2plY3Rpb24K KyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNoYXJh Y3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKQorKyAg ICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKQorIAorLSAgICBjcGRlZiBfY3VycmVudF9yb3dz X2NvbHMoc2VsZiwgQj0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19y ZXByZXNlbnRhdGlvbihzZWxmLCBCPSopIG5vZXhjZXB0CistICAgIGNwZGVmIExlYW5NYXRyaXgg X3JlZHVjZWRfcmVwcmVzZW50YXRpb24oc2VsZiwgQj0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBf Y3VycmVudF9yb3dzX2NvbHMoc2VsZiwgQj0qKQorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNp Y19yZXByZXNlbnRhdGlvbihzZWxmLCBCPSopCisrICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVj ZWRfcmVwcmVzZW50YXRpb24oc2VsZiwgQj0qKQorIAorLSAgICBjZGVmICBfX2Z1bmRhbWVudGFs X2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgbG9uZyB4KSBub2V4Y2VwdAorKyAgICBjZGVmICBf X2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgbG9uZyB4KQorIAorLSAgICBj cGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQK KysgICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopCisg CistICAgIGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykgbm9leGNl cHQKKysgICAgY3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKQorIAor LSAgICBjcGRlZiBfbWFrZV9pbnZhcmlhbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lu dmFyaWFudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBiaWN5Y2xlX2RpbWVuc2lvbihzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcHJpbmNpcGFsX3RyaXBhcnRpdGlvbihzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIF9tYWtlX2ludmFyaWFudChzZWxmKQorKyAgICBjcGRlZiBfaW52YXJpYW50KHNl bGYpCisrICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNlbGYpCisrICAgIGNwZGVmIF9wcmlu Y2lwYWxfdHJpcGFydGl0aW9uKHNlbGYpCisrICAgIGNwZGVmIF9mYXN0X2lzb21fdGVzdChzZWxm LCBvdGhlcikKKyAKKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikgbm9leGNlcHQKKysgICAgY3Bk ZWYgaXNfdmFsaWQoc2VsZikKKyAKKyBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1h dHJvaWQpOgorICAgICBjZGVmIF9iYXNlc19jb3VudCwgX3JfaW52YXJpYW50CisgICAgIGNkZWYg X3JfcHJvamVjdGlvbiwgX3JfaHlwZXJncmFwaAorICAgICBjZGVmIF9oeXBlcmdyYXBoX3ZlcnRl eF9wYXJ0aXRpb24sIF9oeXBlcmdyYXBoX3R1cGxlcworIAorLSAgICBjcGRlZiBiYXNlX3Jpbmco c2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikgbm9leGNlcHQK KysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpCisrICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNl bGYpCisgCistICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0 ZT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2Vy dGlmaWNhdGU9KikKKyAKKy0gICAgY3BkZWYgX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNwZGVm IF9pbnZhcmlhbnQoc2VsZikKKysgICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVy KQorIAorLSAgICBjcGRlZiBiYXNlc19jb3VudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf cHJvamVjdGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaHlwZXJncmFwaChzZWxmKSBu b2V4Y2VwdAorLSAgICBjZGVmIF9oeXBlcnRlc3Qoc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAg IGNwZGVmIGhhc19saW5lX21pbm9yKHNlbGYsIGssIGh5cGVybGluZXM9KiwgY2VydGlmaWNhdGU9 Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xpbmVhcl9leHRlbnNpb25fY2hhaW5zKHNlbGYsIEYs IGZ1bmRhbWVudGFscz0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBiYXNlc19jb3VudChzZWxmKQor KyAgICBjcGRlZiBfcHJvamVjdGlvbihzZWxmKQorKyAgICBjcGRlZiBfaHlwZXJncmFwaChzZWxm KQorKyAgICBjZGVmIF9oeXBlcnRlc3Qoc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIGhhc19saW5l X21pbm9yKHNlbGYsIGssIGh5cGVybGluZXM9KiwgY2VydGlmaWNhdGU9KikKKysgICAgY3BkZWYg X2xpbmVhcl9leHRlbnNpb25fY2hhaW5zKHNlbGYsIEYsIGZ1bmRhbWVudGFscz0qKQorIAorLSAg ICBjcGRlZiBpc19ncmFwaGljKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX3ZhbGlkKHNl bGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGlzX2dyYXBoaWMoc2VsZikKKysgICAgY3BkZWYgaXNf dmFsaWQoc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9p ZC5weXggYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weXgKK2luZGV4IGJkMjc3 ZDg5MWViLi43YjZlYjliYjcxMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVh cl9tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHl4 CitAQCAtMTQ4LDEwICsxNDgsMTAgQEAgY2RlZiBHRjMsIEdGM19vbmUsIEdGM196ZXJvLCBHRjNf bWludXNfb25lCisgIyAgICBwcm92aWRlIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucworICMg QmVsb3cgaXMgc29tZSBjb2RlLCBjb21tZW50ZWQgb3V0IGN1cnJlbnRseSwgdG8gZ2V0IHlvdSBn b2luZy4KKyAKKy1jZGVmIGlubGluZSBnYXVzc19qb3JkYW5fcmVkdWNlKExlYW5NYXRyaXggQSwg Y29sdW1ucykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgZ2F1c3Nfam9yZGFuX3JlZHVjZShMZWFu TWF0cml4IEEsIGNvbHVtbnMpOgorICAgICByZXR1cm4gQS5nYXVzc19qb3JkYW5fcmVkdWNlKGNv bHVtbnMpICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAKKy1jZGVmIGlubGluZSBj aGFyYWN0ZXJpc3RpYyhMZWFuTWF0cml4IEEpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGNoYXJh Y3RlcmlzdGljKExlYW5NYXRyaXggQSk6CisgICAgIHJldHVybiBBLmNoYXJhY3RlcmlzdGljKCkg ICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorICMgSW1wbGVtZW50YXRpb24gdXNp bmcgZGVmYXVsdCBTYWdlIG1hdHJpY2VzCitAQCAtMjk3LDcgKzI5Nyw3IEBAIGNkZWYgY2xhc3Mg TGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgc2lnX2Zy ZWUoc2VsZi5fcHJvdykKKyAgICAgICAgICAgICBzZWxmLl9wcm93ID0gTlVMTAorIAorLSAgICBj ZGVmIGxpc3QgX3NldHVwX2ludGVybmFsX3JlcHJlc2VudGF0aW9uKHNlbGYsIG1hdHJpeCwgcmVk dWNlZF9tYXRyaXgsIHJpbmcsIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbikgbm9leGNlcHQ6 CisrICAgIGNkZWYgbGlzdCBfc2V0dXBfaW50ZXJuYWxfcmVwcmVzZW50YXRpb24oc2VsZiwgbWF0 cml4LCByZWR1Y2VkX21hdHJpeCwgcmluZywga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uKToK KyAgICAgICAgICIiIgorICAgICAgICAgU2V0dXAgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9u IG1hdHJpeCBgYHNlbGYuX0FgYCBhbmQgdGhlIGFycmF5IG9mIHJvdy0gYW5kIGNvbHVtbiBpbmRp Y2VzIGBgc2VsZi5fcHJvd2BgLgorIAorQEAgLTM0NSw3ICszNDUsNyBAQCBjZGVmIGNsYXNzIExp bmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBzZWxm Ll9wcm93W3NlbGYuX0EubnJvd3MoKSArIHJdID0gcgorICAgICAgICAgcmV0dXJuIFAKKyAKKy0g ICAgY3BkZWYgX2ZvcmdldChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2ZvcmdldChzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVtb3ZlIHRoZSBpbnRlcm5hbCByZXByZXNlbnRh dGlvbiBtYXRyaXguCisgCitAQCAtMzY0LDcgKzM2NCw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0 cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHNlbGYu X3JlcHJlc2VudGF0aW9uID0gTm9uZQorIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBiYXNlIHJpbmcgb2YgdGhlIG1hdHJpeCByZXByZXNlbnRpbmcgdGhlIG1h dHJvaWQuCisgCitAQCAtMzc3LDcgKzM3Nyw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChC YXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxm Ll9BLmJhc2VfcmluZygpCisgCistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZiB0aGUgYmFzZSByaW5nIG9mIHRoZSBt YXRyaXggcmVwcmVzZW50aW5nCisgICAgICAgICB0aGUgbWF0cm9pZC4KK0BAIC00MjIsNyArNDIy LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAg ICAgICAgIHNlbGYuX3Byb3dbeF0gPSBweQorICAgICAgICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQu X2V4Y2hhbmdlKHNlbGYsIHgsIHkpCisgCistICAgIGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRl cm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSkgbm9leGNlcHQ6CisrICAgIGNkZWYgIF9leGNoYW5n ZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlICh4LCB5KSBlbnRyeSBvZiB0aGUgY3VycmVudCByZXByZXNlbnRh dGlvbi4KKyAgICAgICAgICIiIgorQEAgLTQ3MSw3ICs0NzEsNyBAQCBjZGVmIGNsYXNzIExpbmVh ck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorIAorICAgICAjIHJlcHJlc2VudGF0aW9u cworIAorLSAgICBjcGRlZiByZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUsIHJlZHVjZWQ9RmFs c2UsIGxhYmVscz1Ob25lLCBvcmRlcj1Ob25lLCBsaWZ0X21hcD1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgcmVwcmVzZW50YXRpb24oc2VsZiwgQj1Ob25lLCByZWR1Y2VkPUZhbHNlLCBsYWJl bHM9Tm9uZSwgb3JkZXI9Tm9uZSwgbGlmdF9tYXA9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gYSBtYXRyaXggcmVwcmVzZW50aW5nIHRoZSBtYXRyb2lkLgorIAorQEAgLTY0 OSw3ICs2NDksNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGxpZnRfY3Jvc3NfcmF0aW9zKEEuX21hdHJpeF8oKSwgbGlmdF9tYXApCisgCistICAgIGNwZGVm IF9jdXJyZW50X3Jvd3NfY29scyhzZWxmLCBCPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf Y3VycmVudF9yb3dzX2NvbHMoc2VsZiwgQj1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBjdXJyZW50IHJvdyBhbmQgY29sdW1uIGxhYmVscyBvZiBhIHJlZHVjZWQgbWF0 cml4LgorIAorQEAgLTY4Nyw3ICs2ODcsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFz aXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgIGNvbHNbc2VsZi5fcHJvd1tzZWxmLl9p ZHhbZV1dXSA9IGUKKyAgICAgICAgIHJldHVybiByb3dzLCBjb2xzCisgCistICAgIGNwZGVmIExl YW5NYXRyaXggX2Jhc2ljX3JlcHJlc2VudGF0aW9uKHNlbGYsIEI9Tm9uZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2VudGF0aW9uKHNlbGYsIEI9Tm9uZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGJhc2ljIG1hdHJpeCByZXByZXNlbnRh dGlvbiBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC03MzUsNyArNzM1LDcgQEAgY2RlZiBjbGFzcyBM aW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgaSAr PSAxCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjcGRlZiByZXByZXNlbnRhdGlvbl92ZWN0 b3JzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZXByZXNlbnRhdGlvbl92ZWN0b3JzKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IHRoYXQgYXNz b2NpYXRlcyBhIGNvbHVtbiB2ZWN0b3Igd2l0aCBlYWNoIGVsZW1lbnQKKyAgICAgICAgIG9mIHRo ZSBtYXRyb2lkLgorQEAgLTc1NSw3ICs3NTUsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQo QmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgUiA9IHNlbGYuX21hdHJpeF8oKS5jb2x1 bW5zKCkKKyAgICAgICAgIHJldHVybiB7ZTogUltzZWxmLl9pZHhbZV1dIGZvciBlIGluIHNlbGYu Z3JvdW5kc2V0KCl9CisgCistICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVwcmVzZW50 YXRpb24oc2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVk dWNlZF9yZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIGEgcmVkdWNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cm9pZCwgaS5lLiBh IG1hdHJpeCBgUmAgc3VjaAorICAgICAgICAgdGhhdCBgW0lcIFwgUl1gIHJlcHJlc2VudHMgdGhl IG1hdHJvaWQuCitAQCAtODc3LDcgKzg3Nyw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChC YXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIG5vcm1hbGl6YXRpb25bTi5w b3AoKV0gPSBzZWxmLl9vbmUKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIGlz X2ZpZWxkX2VxdWl2YWxlbnQoc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19m aWVsZF9lcXVpdmFsZW50KHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVz dCBmb3IgbWF0cm9pZCByZXByZXNlbnRhdGlvbiBlcXVhbGl0eS4KKyAKK0BAIC05NjQsNyArOTY0 LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAg ICAgICAgIG1vcnBoaXNtID0ge2U6IGUgZm9yIGUgaW4gc2VsZi5ncm91bmRzZXQoKX0KKyAgICAg ICAgIHJldHVybiBzZWxmLl9pc19maWVsZF9pc29tb3JwaGlzbShvdGhlciwgbW9ycGhpc20pCisg CistICAgIGNwZGVmIGlzX2ZpZWxkX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBtb3JwaGlzbSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2ZpZWxkX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBt b3JwaGlzbSk6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIGEgcHJvdmlkZWQgbW9y cGhpc20gaW5kdWNlcyBhIGJpamVjdGlvbiBiZXR3ZWVuIHJlcHJlc2VudGVkCisgICAgICAgICBt YXRyb2lkcy4KK0BAIC0xMDUwLDcgKzEwNTAsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQo QmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1 cm4gc2VsZi5faXNfZmllbGRfaXNvbW9ycGhpc20oY29weShvdGhlciksIG1mKQorIAorLSAgICBj cGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf ZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBGYXN0 IChmaWVsZCkgaXNvbW9ycGhpc20gdGVzdCBmb3Igc29tZSBzdWJjbGFzc2VzLgorIAorQEAgLTEy NzUsNyArMTI3NSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0 cm9pZCk6CisgCisgICAgICMgbWlub3JzLCBkdWFsCisgCistICAgIGNwZGVmIF9taW5vcihzZWxm LCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9taW5vcihz ZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucyk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gYSBtaW5vci4KKyAKK0BAIC0xMzE5LDcgKzEzMTksNyBAQCBjZGVmIGNsYXNzIExpbmVh ck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBNLnNldF91 bnNhZmUoaSwgaiwgc2VsZi5fZXhjaGFuZ2VfdmFsdWUocm93c1tpXSwgY29sc1tqXSkpCisgICAg ICAgICByZXR1cm4gdHlwZShzZWxmKShyZWR1Y2VkX21hdHJpeD1NLCBncm91bmRzZXQ9cm93cyAr IGNvbHMpCisgCistICAgIGNwZGVmIGR1YWwoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGR1 YWwoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGR1YWwgb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtMTM1MCw3ICsxMzUwLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRy b2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIHJvd3MsIGNvbHMgPSBzZWxmLl9j dXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShyZWR1Y2VkX21h dHJpeD1SLCBncm91bmRzZXQ9Y29scyArIHJvd3MpCisgCistICAgIGNwZGVmIGhhc19saW5lX21p bm9yKHNlbGYsIGssIGh5cGVybGluZXM9Tm9uZSwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzPU5vbmUsIGNl cnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhlIG1h dHJvaWQgaGFzIGEgYFVfezIsIGt9YC1taW5vci4KKyAKK0BAIC0xNDA0LDcgKzE0MDQsNyBAQCBj ZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAg ICAgIHBhc3MKKyAgICAgICAgIHJldHVybiBNYXRyb2lkLmhhc19saW5lX21pbm9yKHNlbGYsIGss IGh5cGVybGluZXMsIGNlcnRpZmljYXRlKQorIAorLSAgICBjcGRlZiBoYXNfZmllbGRfbWlub3Io c2VsZiwgTikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGhhc19maWVsZF9taW5vcihzZWxmLCBOKToK KyAgICAgICAgICIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBzZWxmYGAgaGFzIGEgbWlub3IgZmll bGQgaXNvbW9ycGhpYyB0byBgYE5gYC4KKyAKK0BAIC0xNDYyLDcgKzE0NjIsNyBAQCBjZGVmIGNs YXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorIAorICAgICAjIGN5Y2xl cywgY29jeWNsZXMgYW5kIGNyb3NzIHJhdGlvcworIAorLSAgICBjcGRlZiBfZXhjaGFuZ2VfdmFs dWUoc2VsZiwgZSwgZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9leGNoYW5nZV92YWx1ZShzZWxm LCBlLCBmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtYXRyaXggZW50cnkg aW5kZXhlZCBieSByb3cgYGVgIGFuZCBjb2x1bW4gYGZgLgorIAorQEAgLTE0OTAsNyArMTQ5MCw3 IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChz ZWxmLl9pZHhbZV0sIHNlbGYuX2lkeFtmXSkKKyAKKy0gICAgY3BkZWYgZnVuZGFtZW50YWxfY3lj bGUoc2VsZiwgQiwgZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGZ1bmRhbWVudGFsX2N5Y2xlKHNl bGYsIEIsIGUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGZ1bmRhbWVudGFs IGN5Y2xlLCByZWxhdGl2ZSB0byBgYEJgYCwgY29udGFpbmluZyBlbGVtZW50CisgICAgICAgICBg YGVgYC4KK0BAIC0xNTM2LDcgKzE1MzYsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFz aXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBjaGFpbltmXSA9IC14CisgICAg ICAgICByZXR1cm4gY2hhaW4KKyAKKy0gICAgY3BkZWYgZnVuZGFtZW50YWxfY29jeWNsZShzZWxm LCBCLCBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZnVuZGFtZW50YWxfY29jeWNsZShzZWxmLCBC LCBlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBmdW5kYW1lbnRhbCBjeWNs ZSwgcmVsYXRpdmUgdG8gYGBCYGAsIGNvbnRhaW5pbmcgZWxlbWVudAorICAgICAgICAgYGBlYGAu CitAQCAtMTU4MSw3ICsxNTgxLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhj aGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgY29jaGFpbltmXSA9IHgKKyAgICAgICAg IHJldHVybiBjb2NoYWluCisgCistICAgIGNwZGVmIF9saW5lX3JhdGlvcyhzZWxmLCBGKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2xpbmVfcmF0aW9zKHNlbGYsIEYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHNldCBvZiBub256ZXJvIHJhdGlvcyBvZiBjb2x1bW4gZW50cmll cyBhZnRlciBjb250cmFjdGluZworICAgICAgICAgYSByYW5rLWByLTJgIGZsYXQgYGBGYGAuCitA QCAtMTYxMiw3ICsxNjEyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFu Z2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgICAgIHJhdC5hZGQocyAqICh0ICoqICgtMSkp KQorICAgICAgICAgcmV0dXJuIHJhdAorIAorLSAgICBjcGRlZiBfbGluZV9sZW5ndGgoc2VsZiwg Rikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9saW5lX2xlbmd0aChzZWxmLCBGKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIGBgbGVuKE0uY29udHJhY3QoRikuc2ltcGxpZnkoKSlgYCwg d2hlcmUgYGBGYGAgaXMgYXNzdW1lZCB0byBiZQorICAgICAgICAgYSBmbGF0IG9mIHJhbmsgMiBs ZXNzIHRoYW4gdGhlIG1hdHJvaWQuCitAQCAtMTYzMiw3ICsxNjMyLDcgQEAgY2RlZiBjbGFzcyBM aW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIDIgKyBsZW4oc2VsZi5fbGluZV9yYXRpb3MoRikpCisgCistICAgIGNwZGVmIF9s aW5lX2Nyb3NzX3JhdGlvcyhzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xpbmVfY3Jv c3NfcmF0aW9zKHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHNl dCBvZiBjcm9zcyByYXRpb3Mgb2YgY29sdW1uIGVudHJpZXMgYWZ0ZXIgY29udHJhY3RpbmcgYQor ICAgICAgICAgcmFuay1gci0yYCBmbGF0IGBgRmBgLgorQEAgLTE2NjAsNyArMTY2MCw3IEBAIGNk ZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgIGNyLmFkZChyMiAvIHIxKQorICAgICAgICAgcmV0dXJuIGNyCisgCistICAgIGNwZGVm IGNyb3NzX3JhdGlvcyhzZWxmLCBoeXBlcmxpbmVzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBjcm9zc19yYXRpb3Moc2VsZiwgaHlwZXJsaW5lcz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgc2V0IG9mIGNyb3NzIHJhdGlvcyB0aGF0IG9jY3VyIGluIHRoaXMg bGluZWFyIG1hdHJvaWQuCisgCitAQCAtMTcxOCw3ICsxNzE4LDcgQEAgY2RlZiBjbGFzcyBMaW5l YXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBDUi5kaWZmZXJl bmNlX3VwZGF0ZShhc2MpCisgICAgICAgICByZXR1cm4gQ1IyCisgCistICAgIGNwZGVmIGNyb3Nz X3JhdGlvKHNlbGYsIEYsIGEsIGIsIGMsIGQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjcm9zc19y YXRpbyhzZWxmLCBGLCBhLCBiLCBjLCBkKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgY3Jvc3MgcmF0aW8gb2YgdGhlIGZvdXIgb3JkZXJlZCBwb2ludHMgYGBhLCBiLCBjLCBk YGAKKyAgICAgICAgIGFmdGVyIGNvbnRyYWN0aW5nIGEgZmxhdCBgYEZgYCBvZiBjb2RpbWVuc2lv biAyLgorQEAgLTE3NzUsNyArMTc3NSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNp c0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicG9pbnRz IGEsIGIsIGMsIGQgZG8gbm90IGZvcm0gYSA0LXBvaW50IGxpbmUgaW4gTS9GIikKKyAgICAgICAg IHJldHVybiBjcjEgLyBjcjIKKyAKKy0gICAgY3BkZWYgX2xpbmVfY3Jvc3NfcmF0aW9fdGVzdChz ZWxmLCBGLCB4LCBmdW5kYW1lbnRhbHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbGluZV9jcm9z c19yYXRpb190ZXN0KHNlbGYsIEYsIHgsIGZ1bmRhbWVudGFscyk6CisgICAgICAgICByIiIiCisg ICAgICAgICBDaGVjayB3aGV0aGVyIHRoZSBjcm9zcyByYXRpb3MgaW52b2x2aW5nIGEgZml4ZWQg ZWxlbWVudCBpbiBhIGZpeGVkCisgICAgICAgICByYW5rLTIgbWlub3IgYXJlIGluIGEgc3BlY2lm aWVkIHN1YnNldC4KK0BAIC0xODM1LDcgKzE4MzUsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJv aWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg ICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgX2Nyb3NzX3JhdGlvX3Rlc3Qoc2VsZiwg eCwgZnVuZGFtZW50YWxzLCBoeXBlcmxpbmVzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf Y3Jvc3NfcmF0aW9fdGVzdChzZWxmLCB4LCBmdW5kYW1lbnRhbHMsIGh5cGVybGluZXM9Tm9uZSk6 CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBjcm9zcyByYXRpb3MgdXNpbmcg YSBnaXZlbiBlbGVtZW50IG9mIHRoaXMgbGluZWFyIG1hdHJvaWQKKyAgICAgICAgIGFyZSBjb250 YWluZWQgaW4gYSBnaXZlbiBzZXQgb2YgZnVuZGFtZW50YWxzLgorQEAgLTE4ODMsNyArMTg4Myw3 IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAg ICAgICByZXR1cm4gVHJ1ZQorIAorICAgICAjIGxpbmVhciBleHRlbnNpb24KKy0gICAgY3BkZWYg bGluZWFyX2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBjaGFpbj1Ob25lLCBjb2w9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGxpbmVhcl9leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgY2hhaW49 Tm9uZSwgY29sPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbGluZWFy IGV4dGVuc2lvbiBvZiB0aGlzIG1hdHJvaWQuCisgCitAQCAtMTk1MSw3ICsxOTUxLDcgQEAgY2Rl ZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAg ICAgICAgcmFpc2UgVHlwZUVycm9yKCJjaGFpbiBhcmd1bWVudCBuZWVkcyB0byBiZSBhIGRpY3Rp b25hcnkiKQorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9saW5lYXJfZXh0ZW5zaW9ucyhlbGVt ZW50LCBbY2hhaW5dKVswXQorIAorLSAgICBjcGRlZiBsaW5lYXJfY29leHRlbnNpb24oc2VsZiwg ZWxlbWVudCwgY29jaGFpbj1Ob25lLCByb3c9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxp bmVhcl9jb2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBjb2NoYWluPU5vbmUsIHJvdz1Ob25lKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGxpbmVhciBjb2V4dGVuc2lvbiBvZiB0 aGlzIG1hdHJvaWQuCisgCitAQCAtMjA1Miw3ICsyMDUyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJN YXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVHlw ZUVycm9yKCJjb2NoYWluIGFyZ3VtZW50IG5lZWRzIHRvIGJlIGEgZGljdGlvbmFyeSIpCisgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX2xpbmVhcl9jb2V4dGVuc2lvbnMoZWxlbWVudCwgW2NvY2hh aW5dKVswXQorIAorLSAgICBjcGRlZiBfbGluZWFyX2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVudCwg Y2hhaW5zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xpbmVhcl9leHRlbnNpb25zKHNlbGYsIGVs ZW1lbnQsIGNoYWlucyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpbmVh ciBleHRlbnNpb25zIG9mIHRoaXMgbWF0cm9pZCByZXByZXNlbnRhdGlvbiBzcGVjaWZpZWQKKyAg ICAgICAgIGJ5IHRoZSBnaXZlbiBjaGFpbnMuCitAQCAtMjEwMCw3ICsyMTAwLDcgQEAgY2RlZiBj bGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBl eHQuYXBwZW5kKHR5cGUoc2VsZikobWF0cml4PU0sIGdyb3VuZHNldD1FKSkKKyAgICAgICAgIHJl dHVybiBleHQKKyAKKy0gICAgY3BkZWYgX2xpbmVhcl9jb2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVu dCwgY29jaGFpbnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbGluZWFyX2NvZXh0ZW5zaW9ucyhz ZWxmLCBlbGVtZW50LCBjb2NoYWlucyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g dGhlIGxpbmVhciBjb2V4dGVuc2lvbnMgb2YgdGhpcyBtYXRyb2lkIHJlcHJlc2VudGF0aW9uCisg ICAgICAgICBzcGVjaWZpZWQgYnkgdGhlIGdpdmVuIGNvY2hhaW5zLgorQEAgLTIxNDgsNyArMjE0 OCw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6Cisg ICAgICAgICAgICAgY29leHQuYXBwZW5kKHR5cGUoc2VsZikobWF0cml4PU0sIGdyb3VuZHNldD1F KSkKKyAgICAgICAgIHJldHVybiBjb2V4dAorIAorLSAgICBjZGVmIF9leHRlbmRfY2hhaW5zKHNl bGYsIEMsIGYsIGZ1bmRhbWVudGFscz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZXh0ZW5k X2NoYWlucyhzZWxmLCBDLCBmLCBmdW5kYW1lbnRhbHM9Tm9uZSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBFeHRlbmQgYSBsaXN0IG9mIGNoYWlucyBmb3IgYGBzZWxmIC8gZmBgIHRvIGEgbGlz dCBvZiBjaGFpbnMgZm9yCisgICAgICAgICBgYHNlbGZgYC4KK0BAIC0yMjEwLDcgKzIyMTAsNyBA QCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAg ICAgICAgIHJlcyA9IFtjaGFpbiBmb3IgY2hhaW4gaW4gcmVzIGlmIGxlbihjaGFpbikgPCAyIG9y IHNlbGYuX2xpbmVhcl9leHRlbnNpb25zKG5lLCBbY2hhaW5dKVswXS5fY3Jvc3NfcmF0aW9fdGVz dChuZSwgZnVuZGFtZW50YWxzLCBoeXBlcmxpbmVzKV0KKyAgICAgICAgIHJldHVybiByZXMKKyAK Ky0gICAgY3BkZWYgX2xpbmVhcl9leHRlbnNpb25fY2hhaW5zKHNlbGYsIEYsIGZ1bmRhbWVudGFs cz1Ob25lKSBub2V4Y2VwdDogICMgYXNzdW1lcyBpbmRlcGVuZGVudCBGCisrICAgIGNwZGVmIF9s aW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBGLCBmdW5kYW1lbnRhbHM9Tm9uZSk6ICAjIGFz c3VtZXMgaW5kZXBlbmRlbnQgRgorICAgICAgICAgciIiIgorICAgICAgICAgQ3JlYXRlIGEgbGlz dCBvZiBjaGFpbnMgdGhhdCBkZXRlcm1pbmUgc2luZ2xlLWVsZW1lbnQgZXh0ZW5zaW9ucyBvZgor ICAgICAgICAgdGhpcyBsaW5lYXIgbWF0cm9pZCByZXByZXNlbnRhdGlvbi4KK0BAIC0yMjg2LDcg KzIyODYsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQp OgorICAgICAgICAgICAgICAgICBjaGFpbnMgPSBuZXdfY2hhaW5zCisgICAgICAgICByZXR1cm4g Y2hhaW5zCisgCistICAgIGNwZGVmIGxpbmVhcl9leHRlbnNpb25fY2hhaW5zKHNlbGYsIEY9Tm9u ZSwgc2ltcGxlPUZhbHNlLCBmdW5kYW1lbnRhbHM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IGxpbmVhcl9leHRlbnNpb25fY2hhaW5zKHNlbGYsIEY9Tm9uZSwgc2ltcGxlPUZhbHNlLCBmdW5k YW1lbnRhbHM9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBDcmVhdGUgYSBsaXN0IG9m IGNoYWlucyB0aGF0IGRldGVybWluZSB0aGUgc2luZ2xlLWVsZW1lbnQgZXh0ZW5zaW9ucworICAg ICAgICAgb2YgdGhpcyBsaW5lYXIgbWF0cm9pZCByZXByZXNlbnRhdGlvbi4KK0BAIC0yMzg1LDcg KzIzODUsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQp OgorICAgICAgICAgICAgIGNoYWlucyA9IHNpbXBsZV9jaGFpbnMKKyAgICAgICAgIHJldHVybiBj aGFpbnMKKyAKKy0gICAgY3BkZWYgbGluZWFyX2NvZXh0ZW5zaW9uX2NvY2hhaW5zKHNlbGYsIEY9 Tm9uZSwgY29zaW1wbGU9RmFsc2UsIGZ1bmRhbWVudGFscz1Ob25lKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgbGluZWFyX2NvZXh0ZW5zaW9uX2NvY2hhaW5zKHNlbGYsIEY9Tm9uZSwgY29zaW1wbGU9 RmFsc2UsIGZ1bmRhbWVudGFscz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENyZWF0 ZSBhIGxpc3Qgb2YgY29jaGFpbnMgdGhhdCBkZXRlcm1pbmUgdGhlIHNpbmdsZS1lbGVtZW50Cisg ICAgICAgICBjb2V4dGVuc2lvbnMgb2YgdGhpcyBsaW5lYXIgbWF0cm9pZCByZXByZXNlbnRhdGlv bi4KK0BAIC0yNDQzLDcgKzI0NDMsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNF eGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5kdWFs KCkubGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoRj1GLCBzaW1wbGU9Y29zaW1wbGUsIGZ1bmRhbWVu dGFscz1mdW5kYW1lbnRhbHMpCisgCistICAgIGNwZGVmIGxpbmVhcl9leHRlbnNpb25zKHNlbGYs IGVsZW1lbnQ9Tm9uZSwgRj1Ob25lLCBzaW1wbGU9RmFsc2UsIGZ1bmRhbWVudGFscz1Ob25lKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgbGluZWFyX2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVudD1Ob25l LCBGPU5vbmUsIHNpbXBsZT1GYWxzZSwgZnVuZGFtZW50YWxzPU5vbmUpOgorICAgICAgICAgciIi IgorICAgICAgICAgQ3JlYXRlIGEgbGlzdCBvZiBsaW5lYXIgbWF0cm9pZHMgcmVwcmVzZW50ZWQg YnkgcmFuay1wcmVzZXJ2aW5nIHNpbmdsZS1lbGVtZW50CisgICAgICAgICBleHRlbnNpb25zIG9m IHRoaXMgbGluZWFyIG1hdHJvaWQgcmVwcmVzZW50YXRpb24uCitAQCAtMjUxMSw3ICsyNTExLDcg QEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAg ICAgIGNoYWlucyA9IHNlbGYubGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoRiwgc2ltcGxlPXNpbXBs ZSwgZnVuZGFtZW50YWxzPWZ1bmRhbWVudGFscykKKyAgICAgICAgIHJldHVybiBzZWxmLl9saW5l YXJfZXh0ZW5zaW9ucyhlbGVtZW50LCBjaGFpbnMpCisgCistICAgIGNwZGVmIGxpbmVhcl9jb2V4 dGVuc2lvbnMoc2VsZiwgZWxlbWVudD1Ob25lLCBGPU5vbmUsIGNvc2ltcGxlPUZhbHNlLCBmdW5k YW1lbnRhbHM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpbmVhcl9jb2V4dGVuc2lvbnMo c2VsZiwgZWxlbWVudD1Ob25lLCBGPU5vbmUsIGNvc2ltcGxlPUZhbHNlLCBmdW5kYW1lbnRhbHM9 Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBDcmVhdGUgYSBsaXN0IG9mIGxpbmVhciBt YXRyb2lkcyByZXByZXNlbnRlZCBieSBjb3JhbmstcHJlc2VydmluZyBzaW5nbGUtZWxlbWVudAor ICAgICAgICAgY29leHRlbnNpb25zIG9mIHRoaXMgbGluZWFyIG1hdHJvaWQgcmVwcmVzZW50YXRp b24uCitAQCAtMjU4Miw3ICsyNTgyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lz RXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIGNvY2hhaW5zID0gc2VsZi5saW5lYXJfY29leHRl bnNpb25fY29jaGFpbnMoRiwgY29zaW1wbGU9Y29zaW1wbGUsIGZ1bmRhbWVudGFscz1mdW5kYW1l bnRhbHMpCisgICAgICAgICByZXR1cm4gc2VsZi5fbGluZWFyX2NvZXh0ZW5zaW9ucyhlbGVtZW50 LCBjb2NoYWlucykKKyAKKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGlzX3ZhbGlkKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgVGVzdCBpZiB0 aGUgZGF0YSByZXByZXNlbnQgYW4gYWN0dWFsIG1hdHJvaWQuCisgCitAQCAtMjYzMyw3ICsyNjMz LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAK KyAgICAgIyBjb25uZWN0aXZpdHkKKyAKKy0gICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRfc2hpZnRp bmcoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfM2Nv bm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIG1hdHJvaWQgaXMgNC1jb25uZWN0ZWQs IGBgRmFsc2VgYCBvdGhlcndpc2UuIEl0IGNhbgorICAgICAgICAgb3B0aW9uYWxseSByZXR1cm4g YSBzZXBhcmF0b3IgYXMgYSB3aXRuZXNzLgorQEAgLTI3MTIsNyArMjcxMiw3IEBAIGNkZWYgY2xh c3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgcmV0 dXJuIFRydWUsIE5vbmUKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIF9pc180 Y29ubmVjdGVkX3NoaWZ0aW5nKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2lzXzRjb25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2Up OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBtYXRyb2lk IGlzIDQtY29ubmVjdGVkLCBgYEZhbHNlYGAgb3RoZXJ3aXNlLiBJdCBjYW4KKyAgICAgICAgIG9w dGlvbmFsbHkgcmV0dXJuIGEgc2VwYXJhdG9yIGFzIGEgd2l0bmVzcy4KK0BAIC0zMTE2LDcgKzMx MTYsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAg ICBzZWxmLl96ZXJvID0gR0YyX3plcm8KKyAgICAgICAgIHNlbGYuX29uZSA9IEdGMl9vbmUKKyAK Ky0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlX3Jp bmcoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJhc2UgcmluZyBv ZiB0aGUgbWF0cml4IHJlcHJlc2VudGluZyB0aGUgbWF0cm9pZCwKKyAgICAgICAgIGluIHRoaXMg Y2FzZSBgXEdGezJ9YC4KK0BAIC0zMTMwLDcgKzMxMzAsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICBnbG9iYWwgR0YyCisgICAgICAgICByZXR1 cm4gR0YyCisgCistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZiB0aGUgYmFzZSByaW5nIG9mIHRoZSBtYXRyaXggcmVw cmVzZW50aW5nCisgICAgICAgICB0aGUgbWF0cm9pZCwgaW4gdGhpcyBjYXNlIGAyYC4KK0BAIC0z MTU4LDEzICszMTU4LDEzIEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lk KToKKyAgICAgICAgIHNlbGYuX3Byb3dbeV0gPSBwCisgICAgICAgICBCYXNpc0V4Y2hhbmdlTWF0 cm9pZC5fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKyAKKy0gICAgY2RlZiAgX19mdW5kYW1lbnRhbF9j b2NpcmN1aXQoc2VsZiwgYml0c2V0X3QgQywgbG9uZyB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiAg X19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3QgQywgbG9uZyB4KToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIEZpbGwgYml0c2V0IGBDYCB3aXRoIHRoZSBpbmNpZGVuY2UgdmVj dG9yIG9mIHRoZSBgQmAtZnVuZGFtZW50YWwgY29jaXJjdWl0IHVzaW5nIGBgeGBgLiBJbnRlcm5h bCBtZXRob2QgdXNpbmcgcGFja2VkIGVsZW1lbnRzLgorICAgICAgICAgIiIiCisgICAgICAgICBi aXRzZXRfY29weShDLCAoPEJpbmFyeU1hdHJpeD5zZWxmLl9BKS5fTVtzZWxmLl9wcm93W3hdXSkK KyAKKy0gICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNl dF90IEYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0 c2V0X3QgUiwgYml0c2V0X3QgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2 ZXJzaW9uIG9mIGBgY29jbG9zdXJlYGAuCisgCitAQCAtMzE4Nyw3ICszMTg3LDcgQEAgY2RlZiBj bGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBiaXRz ZXRfYWRkKFIsIHkpCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX2luc2lkZSwg eSArIDEpCisgCistICAgIGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25n IHgsIGxvbmcgeSkgbm9leGNlcHQ6CisrICAgIGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5h bChzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g dGhlICh4LCB5KSBlbnRyeSBvZiB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbi4KKyAgICAgICAg ICIiIgorQEAgLTMyMTMsNyArMzIxMyw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgIFMgPSAiQmluYXJ5IG1hdHJvaWQgb2YgcmFuayAiICsgc3Ry KHNlbGYucmFuaygpKSArICIgb24gIiArIHN0cihzZWxmLnNpemUoKSkgKyAiIGVsZW1lbnRzLCB0 eXBlICgiICsgc3RyKHNlbGYuYmljeWNsZV9kaW1lbnNpb24oKSkgKyAnLCAnICsgc3RyKHNlbGYu YnJvd25faW52YXJpYW50KCkpICsgJyknCisgICAgICAgICByZXR1cm4gUworIAorLSAgICBjcGRl ZiBfY3VycmVudF9yb3dzX2NvbHMoc2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2N1cnJlbnRfcm93c19jb2xzKHNlbGYsIEI9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgY3VycmVudCByb3cgYW5kIGNvbHVtbiBsYWJlbHMgb2YgYSByZWR1Y2VkIG1h dHJpeC4KKyAKK0BAIC0zMjU0LDcgKzMyNTQsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQo TGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIGMgKz0gMQorICAgICAgICAgcmV0dXJu IHJvd3MsIGNvbHMKKyAKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBfYmFzaWNfcmVwcmVzZW50YXRp b24oc2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfYmFzaWNf cmVwcmVzZW50YXRpb24oc2VsZiwgQj1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIGEgYmFzaWMgbWF0cml4IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyb2lkLgorIAorQEAg LTMyOTMsNyArMzI5Myw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lk KToKKyAgICAgICAgICAgICBzZWxmLl9tb3ZlX2N1cnJlbnRfYmFzaXMoQiwgc2V0KCkpCisgICAg ICAgICByZXR1cm4gc2VsZi5fQS5jb3B5KCkgICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCisgCistICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVwcmVzZW50YXRpb24o c2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9y ZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIGEgcmVkdWNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cm9pZCwgaS5lLiBhIG1hdHJp eCBgUmAgc3VjaAorICAgICAgICAgdGhhdCBgW0lcIFwgUl1gIHJlcHJlc2VudHMgdGhlIG1hdHJv aWQuCitAQCAtMzMzNSw3ICszMzM1LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVh ck1hdHJvaWQpOgorIAorICAgICAjIGlzb21vcnBoaXNtCisgCistICAgIGNwZGVmIF9pc19pc29t b3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgYGBzZWxmYGAgaXMgaXNvbW9ycGhpYyB0byBgYG90 aGVyYGAuCisgCitAQCAtMzM4Myw3ICszMzgzLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lk KExpbmVhck1hdHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gTGlu ZWFyTWF0cm9pZC5faXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlcikKKyAKKy0gICAgY3BkZWYgX2lz X2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBtb3JwaGlzbSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9pc19pc29tb3JwaGlzbShzZWxmLCBvdGhlciwgbW9ycGhpc20pOgorICAgICAgICAgciIiIgor ICAgICAgICAgVGVzdCBpZiBhIGdpdmVuIGJpamVjdGlvbiBpcyBhbiBpc29tb3JwaGlzbS4KKyAK K0BAIC0zNDE0LDcgKzM0MTQsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0 cm9pZCk6CisgICAgICAgICAgICAgcmV0dXJuIExpbmVhck1hdHJvaWQuX2lzX2lzb21vcnBoaXNt KHNlbGYsIG90aGVyLCBtb3JwaGlzbSkKKyAKKyAgICAgIyBpbnZhcmlhbnRzCistICAgIGNwZGVm IF9tYWtlX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21ha2VfaW52YXJp YW50KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUgYW4gaW52YXJpYW50Lgor IAorQEAgLTM1MDQsNyArMzUwNCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJN YXRyb2lkKToKKyAgICAgICAgIHNlbGYuX2JfaW52YXJpYW50ID0gdHVwbGUoW2QsIGIyLCBsZW4o Rm0pLCBsZW4oRjApLCBsZW4oRnApLCBwWzBdLCBwWzFdLCBwWzJdXSkKKyAgICAgICAgIHNlbGYu X2JfcGFydGl0aW9uID0gdHVwbGUoW0ZtLCBGMCwgRnBdKQorIAorLSAgICBjcGRlZiBfaW52YXJp YW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaW52YXJpYW50KHNlbGYpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbWF0cm9pZCBpbnZhcmlhbnQuCisgCitAQCAtMzUz Myw3ICszNTMzLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgor ICAgICAgICAgICAgIHNlbGYuX21ha2VfaW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxm Ll9iX2ludmFyaWFudAorIAorLSAgICBjcGRlZiBiaWN5Y2xlX2RpbWVuc2lvbihzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgYmljeWNsZV9kaW1lbnNpb24oc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGJpY3ljbGUgZGltZW5zaW9uIG9mIHRoZSBiaW5hcnkgbWF0 cm9pZC4KKyAKK0BAIC0zNTU2LDcgKzM1NTYsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQo TGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VsZi5fbWFrZV9pbnZhcmlhbnQoKQorICAg ICAgICAgcmV0dXJuIHNlbGYuX2JfaW52YXJpYW50WzBdCisgCistICAgIGNwZGVmIGJyb3duX2lu dmFyaWFudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYnJvd25faW52YXJpYW50KHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBCcm93bidzIGlu dmFyaWFudCBmb3IgdGhlIGJpbmFyeSBtYXRyb2lkLgorIAorQEAgLTM1OTMsNyArMzU5Myw3IEBA IGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBz ZWxmLl9tYWtlX2ludmFyaWFudCgpCisgICAgICAgICByZXR1cm4gc2VsZi5fYl9pbnZhcmlhbnRb MV0KKyAKKy0gICAgY3BkZWYgX3ByaW5jaXBhbF90cmlwYXJ0aXRpb24oc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9wcmluY2lwYWxfdHJpcGFydGl0aW9uKHNlbGYpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBwcmluY2lwYWwgdHJpcGFydGl0aW9uIG9mIHRoZSBiaW5h cnkgbWF0cm9pZC4KKyAKK0BAIC0zNjMxLDcgKzM2MzEsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICBQID0gc2VsZi5fYl9wYXJ0aXRpb24KKyAg ICAgICAgIHJldHVybiBmcm96ZW5zZXQoW3NlbGYuX0VbZV0gZm9yIGUgaW4gUFswXV0pLCBmcm96 ZW5zZXQoW3NlbGYuX0VbZV0gZm9yIGUgaW4gUFsxXV0pLCBmcm96ZW5zZXQoW3NlbGYuX0VbZV0g Zm9yIGUgaW4gUFsyXV0pCisgCistICAgIGNwZGVmIEJpbmFyeU1hdHJpeCBfcHJvamVjdGlvbihz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgQmluYXJ5TWF0cml4IF9wcm9qZWN0aW9uKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2plY3Rpb24gbWF0cml4IG9u dG8gdGhlIHJvdyBzcGFjZS4KKyAKK0BAIC0zNjcyLDcgKzM2NzIsNyBAQCBjZGVmIGNsYXNzIEJp bmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VsZi5fbWFrZV9pbnZh cmlhbnQoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2JfcHJvamVjdGlvbgorIAorLSAgICBjcGRl ZiBCaW5hcnlNYXRyaXggX3Byb2plY3Rpb25fcGFydGl0aW9uKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBCaW5hcnlNYXRyaXggX3Byb2plY3Rpb25fcGFydGl0aW9uKHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGVxdWl0YWJsZSBwYXJ0aXRpb24gb2YgdGhlIGdy YXBoIHdob3NlIGluY2lkZW5jZSBtYXRyaXggaXMKKyAgICAgICAgIHRoZSBwcm9qZWN0aW9uIG1h dHJpeCBvZiB0aGlzIG1hdHJvaWQuCitAQCAtMzcwNCw3ICszNzA0LDcgQEAgY2RlZiBjbGFzcyBC aW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX2VxX3BhcnQg PSBzZWxmLl9iX3Byb2plY3Rpb24uZXF1aXRhYmxlX3BhcnRpdGlvbigpICAgIyBOb3QgYSBTYWdl IG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIHJldHVybiBzZWxmLl9lcV9wYXJ0CisgCistICAg IGNwZGVmIF9mYXN0X2lzb21fdGVzdChzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9mYXN0X2lzb21fdGVzdChzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBS dW4gYSBxdWljayB0ZXN0IHRvIHNlZSBpZiB0d28gYmluYXJ5IG1hdHJvaWRzIGFyZSBpc29tb3Jw aGljLgorIAorQEAgLTM3MzgsNyArMzczOCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChM aW5lYXJNYXRyb2lkKToKKyAKKyAgICAgIyBtaW5vcnMsIGR1YWwKKyAKKy0gICAgY3BkZWYgX21p bm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiBhIG1pbm9yLgorIAorQEAgLTM3ODEsNyArMzc4MSw3IEBAIGNkZWYgY2xh c3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbj1GYWxzZSkKKyAKKyAgICAgIyBncmFw aGljbmVzcyB0ZXN0CistICAgIGNwZGVmIGlzX2dyYXBoaWMoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGlzX2dyYXBoaWMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYg dGhlIGJpbmFyeSBtYXRyb2lkIGlzIGdyYXBoaWMuCisgCitAQCAtMzg1Miw3ICszODUyLDcgQEAg Y2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIyBub3cg c2VsZiBpcyBncmFwaGljIGlmZiB0aGVyZSBpcyBhIGJpbmFyeSB2ZWN0b3IgeCBzbyB0aGF0IE0q eCA9IDAgYW5kIHhfMCA9IDEsIHNvOgorICAgICAgICAgcmV0dXJuIEJpbmFyeU1hdHJvaWQobSku Y29yYW5rKGZyb3plbnNldChbMF0pKSA+IDAKKyAKKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX3ZhbGlkKHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgVGVzdCBpZiB0aGUgZGF0YSBvYmV5IHRoZSBtYXRyb2lkIGF4aW9tcy4KKyAKK0BAIC0z ODczLDcgKzM4NzMsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6 CisgCisgICAgICMgcmVwcmVzZW50YWJpbGl0eQorIAorLSAgICBjcGRlZiBiaW5hcnlfbWF0cm9p ZChzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEsIHZlcmlmeSA9IFRydWUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBiaW5hcnlfbWF0cm9pZChzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEsIHZlcmlmeSA9 IFRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgYmluYXJ5IG1hdHJvaWQg cmVwcmVzZW50aW5nIGBgc2VsZmBgLgorIAorQEAgLTM5MDMsNyArMzkwMyw3IEBAIGNkZWYgY2xh c3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYgaXNfYmluYXJ5KHNlbGYsIHJhbmRvbWl6ZWRfdGVz dHM9MSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2JpbmFyeShzZWxmLCByYW5kb21pemVkX3Rl c3RzPTEpOgorICAgICAgICAgciIiIgorICAgICAgICAgRGVjaWRlIGlmIGBgc2VsZmBgIGlzIGEg YmluYXJ5IG1hdHJvaWQuCisgCitAQCAtNDE4MSw3ICs0MTgxLDcgQEAgY2RlZiBjbGFzcyBUZXJu YXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX29uZSA9IEdGM19vbmUK KyAgICAgICAgIHNlbGYuX3R3byA9IEdGM19taW51c19vbmUKKyAKKy0gICAgY3BkZWYgYmFzZV9y aW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJhc2UgcmluZyBvZiB0aGUgbWF0cml4IHJlcHJl c2VudGluZyB0aGUgbWF0cm9pZCwgaW4gdGhpcworICAgICAgICAgY2FzZSBgXEdGezN9YC4KK0BA IC00MTk1LDcgKzQxOTUsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgZ2xvYmFsIEdGMworICAgICAgICAgcmV0dXJuIEdGMworIAorLSAgICBj cGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hhcmFjdGVy aXN0aWMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY2hhcmFjdGVy aXN0aWMgb2YgdGhlIGJhc2UgcmluZyBvZiB0aGUgbWF0cml4IHJlcHJlc2VudGluZworICAgICAg ICAgdGhlIG1hdHJvaWQsIGluIHRoaXMgY2FzZSBgM2AuCitAQCAtNDIyMywxMyArNDIyMywxMyBA QCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgc2Vs Zi5fcHJvd1t5XSA9IHAKKyAgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShz ZWxmLCB4LCB5KQorIAorLSAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBi aXRzZXRfdCBDLCBsb25nIHgpIG5vZXhjZXB0OgorKyAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2Nv Y2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAgciIiIgorICAgICAg ICAgRmlsbCBiaXRzZXQgYENgIHdpdGggdGhlIGluY2lkZW5jZSB2ZWN0b3Igb2YgdGhlIGBCYC1m dW5kYW1lbnRhbCBjb2NpcmN1aXQgdXNpbmcgYGB4YGAuIEludGVybmFsIG1ldGhvZCB1c2luZyBw YWNrZWQgZWxlbWVudHMuCisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9jb3B5KEMsICg8 VGVybmFyeU1hdHJpeD5zZWxmLl9BKS5fTTBbc2VsZi5fcHJvd1t4XV0pCisgCistICAgIGNkZWYg X2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNl dF90IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYGNv Y2xvc3VyZWBgLgorIAorQEAgLTQyNTIsNyArNDI1Miw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoUiwgeSkK KyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5faW5zaWRlLCB5ICsgMSkKKyAKKy0g ICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBu b2V4Y2VwdDoKKysgICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcg eCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgKHgsIHkpIGVu dHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgIiIiCitAQCAtNDI4 NCw3ICs0Mjg0LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgICAgICAgICBTID0gUyArICctJworICAgICAgICAgcmV0dXJuIFMKKyAKKy0gICAgY3Bk ZWYgX2N1cnJlbnRfcm93c19jb2xzKHNlbGYsIEI9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9jdXJyZW50X3Jvd3NfY29scyhzZWxmLCBCPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGN1cnJlbnQgcm93IGFuZCBjb2x1bW4gbGFiZWxzIG9mIGEgcmVkdWNlZCBt YXRyaXguCisgCitAQCAtNDMyNSw3ICs0MzI1LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9p ZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgYyArPSAxCisgICAgICAgICByZXR1 cm4gcm93cywgY29scworIAorLSAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRh dGlvbihzZWxmLCBCPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNp Y19yZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gYSBiYXNpYyBtYXRyaXggcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJvaWQuCisgCitA QCAtNDM2NCw3ICs0MzY0LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRy b2lkKToKKyAgICAgICAgICAgICBzZWxmLl9tb3ZlX2N1cnJlbnRfYmFzaXMoQiwgc2V0KCkpCisg ICAgICAgICByZXR1cm4gc2VsZi5fQS5jb3B5KCkgICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXgg b3BlcmF0aW9uCisgCistICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVwcmVzZW50YXRp b24oc2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNl ZF9yZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIGEgcmVkdWNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cm9pZCwgaS5lLiBhIG1h dHJpeCBgUmAKKyAgICAgICAgIHN1Y2ggdGhhdCBgW0lcIFwgUl1gIHJlcHJlc2VudHMgdGhlIG1h dHJvaWQuCitAQCAtNDQwNiw3ICs0NDA2LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChM aW5lYXJNYXRyb2lkKToKKyAKKyAgICAgIyBpc29tb3JwaGlzbQorIAorLSAgICBjcGRlZiBfaXNf aXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpOgor ICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIGBgc2VsZmBgIGlzIGlzb21vcnBoaWMgdG8g YGBvdGhlcmBgLiBJbnRlcm5hbCB2ZXJzaW9uIHRoYXQKKyAgICAgICAgIHBlcmZvcm1zIG5vIGNo ZWNrcyBvbiBpbnB1dC4KK0BAIC00NDQ1LDcgKzQ0NDUsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlN YXRyb2lkKExpbmVhck1hdHJvaWQpOgorIAorICAgICAjIGludmFyaWFudHMKKyAKKy0gICAgY3Bk ZWYgX21ha2VfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWFrZV9pbnZh cmlhbnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZSBhbiBpbnZhcmlhbnQu CisgCitAQCAtNDUxNyw3ICs0NTE3LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX3RfcGFydGl0aW9uID0gdHVwbGUoW0YsIEZhLCBG YiwgRmNdKQorICAgICAgICAgc2VsZi5fdF9pbnZhcmlhbnQgPSB0dXBsZShbZCwgYywgbGVuKEYp LCBsZW4oRmEpLCBsZW4oRmIpLCBsZW4oRmMpLCBwWzBdLCBwWzFdLCBwWzJdLCBwWzNdLCBwWzRd LCBwWzVdXSkKKyAKKy0gICAgY3BkZWYgX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2ludmFyaWFudChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBh IG1hdHJvaWQgaW52YXJpYW50LgorIAorQEAgLTQ1NDYsNyArNDU0Niw3IEBAIGNkZWYgY2xhc3Mg VGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VsZi5fbWFrZV9p bnZhcmlhbnQoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX3RfaW52YXJpYW50CisgCistICAgIGNw ZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiaWN5Y2xl X2RpbWVuc2lvbihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYmlj eWNsZSBkaW1lbnNpb24gb2YgdGhlIHRlcm5hcnkgbWF0cm9pZC4KKyAKK0BAIC00NTY5LDcgKzQ1 NjksNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAg ICAgICAgIHNlbGYuX21ha2VfaW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl90X2lu dmFyaWFudFswXQorIAorLSAgICBjcGRlZiBjaGFyYWN0ZXIoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGNoYXJhY3RlcihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgY2hhcmFjdGVyIG9mIHRoZSB0ZXJuYXJ5IG1hdHJvaWQuCisgCitAQCAtNDU5NSw3ICs0NTk1 LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAg ICAgICBzZWxmLl9tYWtlX2ludmFyaWFudCgpCisgICAgICAgICByZXR1cm4gc2VsZi5fdF9pbnZh cmlhbnRbMV0KKyAKKy0gICAgY3BkZWYgX3ByaW5jaXBhbF9xdWFkcmlwYXJ0aXRpb24oc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9wcmluY2lwYWxfcXVhZHJpcGFydGl0aW9uKHNlbGYpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIG9yZGVyZWQgcGFydGl0aW9uIG9mIHRo ZSBncm91bmQgc2V0LgorIAorQEAgLTQ2MjgsNyArNDYyOCw3IEBAIGNkZWYgY2xhc3MgVGVybmFy eU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VsZi5fbWFrZV9pbnZhcmlh bnQoKQorICAgICAgICAgcmV0dXJuIHR1cGxlKFtbc2VsZi5fRVtqXSBmb3IgaiBpbiBzZWxmLl90 X3BhcnRpdGlvblswXV0sIFtzZWxmLl9FW2pdIGZvciBqIGluIHNlbGYuX3RfcGFydGl0aW9uWzFd XSwgW3NlbGYuX0Vbal0gZm9yIGogaW4gc2VsZi5fdF9wYXJ0aXRpb25bMl1dLCBbc2VsZi5fRVtq XSBmb3IgaiBpbiBzZWxmLl90X3BhcnRpdGlvblszXV1dKQorIAorLSAgICBjcGRlZiBUZXJuYXJ5 TWF0cml4IF9wcm9qZWN0aW9uKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBUZXJuYXJ5TWF0 cml4IF9wcm9qZWN0aW9uKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IHByb2plY3Rpb24gbWF0cml4IG9udG8gdGhlIHJvdyBzcGFjZS4KKyAKK0BAIC00NjY5LDcgKzQ2 NjksNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAg ICAgICAgIHNlbGYuX21ha2VfaW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl90X3By b2plY3Rpb24KKyAKKy0gICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgICAgIFJ1biBhIHF1aWNrIHRlc3QgdG8gc2VlIGlmIHR3byB0ZXJuYXJ5 IG1hdHJvaWRzIGFyZSBpc29tb3JwaGljLgorIAorQEAgLTQ3MDAsNyArNDcwMCw3IEBAIGNkZWYg Y2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgCisgICAgICMgbWlub3JzLCBk dWFsCisgCistICAgIGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9u cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBtaW5vci4KKyAKK0BAIC00NzQy LDcgKzQ3NDIsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzaXM9YmFzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uPUZhbHNlKQorIAorLSAg ICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfdmFsaWQoc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBkYXRhIG9iZXkgdGhlIG1h dHJvaWQgYXhpb21zLgorIAorQEAgLTQ3NjMsNyArNDc2Myw3IEBAIGNkZWYgY2xhc3MgVGVybmFy eU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgCisgICAgICMgcmVwcmVzZW50YWJpbGl0eQorIAor LSAgICBjcGRlZiB0ZXJuYXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xLCB2ZXJp ZnkgPSBUcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdGVybmFyeV9tYXRyb2lkKHNlbGYsIHJh bmRvbWl6ZWRfdGVzdHM9MSwgdmVyaWZ5ID0gVHJ1ZSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gYSB0ZXJuYXJ5IG1hdHJvaWQgcmVwcmVzZW50aW5nIGBgc2VsZmBgLgorIAorQEAg LTQ3OTMsNyArNDc5Myw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9p ZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmCisgCistICAgIGNwZGVmIGlz X3Rlcm5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg aXNfdGVybmFyeShzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEpOgorICAgICAgICAgciIiIgorICAg ICAgICAgRGVjaWRlIGlmIGBgc2VsZmBgIGlzIGEgYmluYXJ5IG1hdHJvaWQuCisgCitAQCAtNTA3 OCw3ICs1MDc4LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lk KToKKyAgICAgICAgIHNlbGYuX3hfemVybyA9ICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5f eF96ZXJvCisgICAgICAgICBzZWxmLl94X29uZSA9ICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9B KS5feF9vbmUKKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGJhc2UgcmluZyBvZiB0aGUgbWF0cml4IHJlcHJlc2VudGluZyB0aGUgbWF0cm9pZCwgaW4gdGhp cworICAgICAgICAgY2FzZSBgXEdGezR9YC4KK0BAIC01MDkyLDcgKzUwOTIsNyBAQCBjZGVmIGNs YXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gKDxRdWF0ZXJuYXJ5TWF0cml4PnNlbGYuX0EpLmJhc2VfcmluZygpCisgCist ICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGFy YWN0ZXJpc3RpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFy YWN0ZXJpc3RpYyBvZiB0aGUgYmFzZSByaW5nIG9mIHRoZSBtYXRyaXggcmVwcmVzZW50aW5nCisg ICAgICAgICB0aGUgbWF0cm9pZCwgaW4gdGhpcyBjYXNlIGAyYC4KK0BAIC01MTIxLDEzICs1MTIx LDEzIEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAg ICAgICBzZWxmLl9wcm93W3ldID0gcAorICAgICAgICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQuX2V4 Y2hhbmdlKHNlbGYsIHgsIHkpCisgCistICAgIGNkZWYgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0 KHNlbGYsIGJpdHNldF90IEMsIGxvbmcgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgIF9fZnVuZGFt ZW50YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMsIGxvbmcgeCk6CisgICAgICAgICByIiIi CisgICAgICAgICBGaWxsIGJpdHNldCBgQ2Agd2l0aCB0aGUgaW5jaWRlbmNlIHZlY3RvciBvZiB0 aGUgYEJgLWZ1bmRhbWVudGFsIGNvY2lyY3VpdCB1c2luZyBgYHhgYC4gSW50ZXJuYWwgbWV0aG9k IHVzaW5nIHBhY2tlZCBlbGVtZW50cy4KKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X3Vu aW9uKEMsICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5fTTBbc2VsZi5fcHJvd1t4XV0sICg8 UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5fTTFbc2VsZi5fcHJvd1t4XV0pCisgCistICAgIGNk ZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJp dHNldF90IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBg YGNvY2xvc3VyZWBgLgorIAorQEAgLTUxNTAsNyArNTE1MCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVy bmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQo UiwgeSkKKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5faW5zaWRlLCB5ICsgMSkK KyAKKy0gICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9u ZyB5KSBub2V4Y2VwdDoKKysgICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYs IGxvbmcgeCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgKHgs IHkpIGVudHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgIiIiCitA QCAtNTE3MCw3ICs1MTcwLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJN YXRyb2lkKToKKyAgICAgICAgIFMgPSAiUXVhdGVybmFyeSBtYXRyb2lkIG9mIHJhbmsgIiArIHN0 cihzZWxmLnJhbmsoKSkgKyAiIG9uICIgKyBzdHIoc2VsZi5zaXplKCkpICsgIiBlbGVtZW50cyIK KyAgICAgICAgIHJldHVybiBTCisgCistICAgIGNwZGVmIF9jdXJyZW50X3Jvd3NfY29scyhzZWxm LCBCPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY3VycmVudF9yb3dzX2NvbHMoc2VsZiwg Qj1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjdXJyZW50IHJvdyBh bmQgY29sdW1uIGxhYmVscyBvZiBhIHJlZHVjZWQgbWF0cml4LgorIAorQEAgLTUyMTIsNyArNTIx Miw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAg ICAgICAgICAgICAgIGMgKz0gMQorICAgICAgICAgcmV0dXJuIHJvd3MsIGNvbHMKKyAKKy0gICAg Y3BkZWYgTGVhbk1hdHJpeCBfYmFzaWNfcmVwcmVzZW50YXRpb24oc2VsZiwgQj1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfYmFzaWNfcmVwcmVzZW50YXRpb24oc2VsZiwg Qj1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgYmFzaWMgbWF0cml4IHJl cHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTUyNTUsNyArNTI1NSw3IEBAIGNk ZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAg c2VsZi5fbW92ZV9jdXJyZW50X2Jhc2lzKEIsIHNldCgpKQorICAgICAgICAgcmV0dXJuIHNlbGYu X0EuY29weSgpICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorLSAgICBj cGRlZiBMZWFuTWF0cml4IF9yZWR1Y2VkX3JlcHJlc2VudGF0aW9uKHNlbGYsIEI9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVwcmVzZW50YXRpb24oc2Vs ZiwgQj1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIHJlZHVjZWQgcmVw cmVzZW50YXRpb24gb2YgdGhlIG1hdHJvaWQsIGkuZS4gYSBtYXRyaXggYFJgIHN1Y2gKKyAgICAg ICAgIHRoYXQgYFtJXCBcIFJdYCByZXByZXNlbnRzIHRoZSBtYXRyb2lkLgorQEAgLTUyOTksNyAr NTI5OSw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6Cisg ICAgICAgICBfLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgcmV0 dXJuIHNlbGYuX0EubWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1ucyhyYW5nZShzZWxmLmZ1bGxf cmFuaygpKSwgW3NlbGYuX2lkeFtlXSBmb3IgZSBpbiBjb2xzXSkKKyAKKy0gICAgY3BkZWYgX21h a2VfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWFrZV9pbnZhcmlhbnQo c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZSBhbiBpbnZhcmlhbnQuCisgCitA QCAtNTM2Niw3ICs1MzY2LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJN YXRyb2lkKToKKyAgICAgICAgIHNlbGYuX3FfcGFydGl0aW9uID0gdHVwbGUoW0YsIEZhLCBGYl0p CisgICAgICAgICBzZWxmLl9xX2ludmFyaWFudCA9IHR1cGxlKFtkLCBsZW4oRiksIGxlbihGYSks IGxlbihGYiksIHBbMF0sIHBbMV0sIHBbMl1dKQorIAorLSAgICBjcGRlZiBfaW52YXJpYW50KHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaW52YXJpYW50KHNlbGYpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIGEgbWF0cm9pZCBpbnZhcmlhbnQuCisgCitAQCAtNTM5NCw3ICs1 Mzk0LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAg ICAgICAgICAgICBzZWxmLl9tYWtlX2ludmFyaWFudCgpCisgICAgICAgICByZXR1cm4gc2VsZi5f cV9pbnZhcmlhbnQKKyAKKy0gICAgY3BkZWYgYmljeWNsZV9kaW1lbnNpb24oc2VsZikgbm9leGNl cHQ6CisrICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNlbGYpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBiaWN5Y2xlIGRpbWVuc2lvbiBvZiB0aGUgcXVhdGVybmFyeSBt YXRyb2lkLgorIAorQEAgLTU0MjEsNyArNTQyMSw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VsZi5fbWFrZV9pbnZhcmlhbnQo KQorICAgICAgICAgcmV0dXJuIHNlbGYuX3FfaW52YXJpYW50WzBdCisgCistICAgIGNwZGVmIF9w cmluY2lwYWxfdHJpcGFydGl0aW9uKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcHJpbmNp cGFsX3RyaXBhcnRpdGlvbihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgcHJpbmNpcGFsIHRyaXBhcnRpdGlvbiBvZiB0aGUgcXVhdGVybmFyeSBtYXRyb2lkLgorIAor QEAgLTU0NjAsNyArNTQ2MCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFy TWF0cm9pZCk6CisgICAgICAgICBQID0gc2VsZi5fcV9wYXJ0aXRpb24KKyAgICAgICAgIHJldHVy biBmcm96ZW5zZXQoW3NlbGYuX0VbZV0gZm9yIGUgaW4gUFswXV0pLCBmcm96ZW5zZXQoW3NlbGYu X0VbZV0gZm9yIGUgaW4gUFsxXV0pLCBmcm96ZW5zZXQoW3NlbGYuX0VbZV0gZm9yIGUgaW4gUFsy XV0pCisgCistICAgIGNwZGVmIF9mYXN0X2lzb21fdGVzdChzZWxmLCBvdGhlcikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9mYXN0X2lzb21fdGVzdChzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIi CisgICAgICAgICBSdW4gYSBxdWljayB0ZXN0IHRvIHNlZSBpZiB0d28gcXVhdGVybmFyeSBtYXRy b2lkcyBhcmUgaXNvbW9ycGhpYy4KKyAKK0BAIC01NDg5LDcgKzU0ODksNyBAQCBjZGVmIGNsYXNz IFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorIAorICAgICAjIG1pbm9ycywgZHVh bAorIAorLSAgICBjcGRlZiBfbWlub3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfbWlub3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbWlub3IuCisgCitAQCAtNTUzMSw3 ICs1NTMxLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2lzPWJhcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbj1GYWxzZSkKKyAKKy0g ICAgY3BkZWYgaXNfdmFsaWQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX3ZhbGlkKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgVGVzdCBpZiB0aGUgZGF0YSBvYmV5IHRoZSBt YXRyb2lkIGF4aW9tcy4KKyAKK0BAIC01NzUxLDcgKzU3NTEsNyBAQCBjZGVmIGNsYXNzIFJlZ3Vs YXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBMaW5lYXJN YXRyb2lkLl9faW5pdF9fKHNlbGYsIG1hdHJpeCwgZ3JvdW5kc2V0LCByZWR1Y2VkX21hdHJpeCwg cmluZz1aWiwga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uPWtlZXBfaW5pdGlhbF9yZXByZXNl bnRhdGlvbikKKyAKKy0gICAgY2RlZiBsaXN0IF9zZXR1cF9pbnRlcm5hbF9yZXByZXNlbnRhdGlv bihzZWxmLCBtYXRyaXgsIHJlZHVjZWRfbWF0cml4LCByaW5nLCBrZWVwX2luaXRpYWxfcmVwcmVz ZW50YXRpb24pIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3QgX3NldHVwX2ludGVybmFsX3JlcHJl c2VudGF0aW9uKHNlbGYsIG1hdHJpeCwgcmVkdWNlZF9tYXRyaXgsIHJpbmcsIGtlZXBfaW5pdGlh bF9yZXByZXNlbnRhdGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldHVwIHRoZSBpbnRl cm5hbCByZXByZXNlbnRhdGlvbiBtYXRyaXggYGBzZWxmLl9BYGAgYW5kIHRoZSBhcnJheSBvZgor ICAgICAgICAgcm93LSBhbmQgY29sdW1uIGluZGljZXMgYGBzZWxmLl9wcm93YGAuCitAQCAtNTc5 NCw3ICs1Nzk0LDcgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgICAgICAgICAgICAgc2VsZi5fcHJvd1tzZWxmLl9BLm5yb3dzKCkgKyByXSA9IHIKKyAg ICAgICAgIHJldHVybiBQCisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBiYXNlIHJpbmcgb2YgdGhlIG1hdHJpeCByZXByZXNlbnRpbmcgdGhlIG1hdHJvaWQs IGluIHRoaXMKKyAgICAgICAgIGNhc2UgYFxaWmAuCitAQCAtNTgwNyw3ICs1ODA3LDcgQEAgY2Rl ZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmV0dXJuIFpaCisgCistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZiB0aGUgYmFzZSByaW5nIG9mIHRoZSBt YXRyaXggcmVwcmVzZW50aW5nCisgICAgICAgICB0aGUgbWF0cm9pZCwgaW4gdGhpcyBjYXNlIGAw YC4KK0BAIC01ODUxLDcgKzU4NTEsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVh ck1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fcHJvd1t4XSA9IHB5CisgICAgICAgICBCYXNpc0V4 Y2hhbmdlTWF0cm9pZC5fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKyAKKy0gICAgY2RlZiAgX2V4Y2hh bmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBub2V4Y2VwdDoKKysgICAg Y2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgKHgsIHkpIGVudHJ5IG9mIHRoZSBjdXJy ZW50IHJlcHJlc2VudGF0aW9uLgorIAorQEAgLTU4NzgsNyArNTg3OCw3IEBAIGNkZWYgY2xhc3Mg UmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICBTID0gIlJlZ3VsYXIgbWF0 cm9pZCBvZiByYW5rICIgKyBzdHIoc2VsZi5yYW5rKCkpICsgIiBvbiAiICsgc3RyKHNlbGYuc2l6 ZSgpKSArICIgZWxlbWVudHMgd2l0aCAiICsgc3RyKHNlbGYuYmFzZXNfY291bnQoKSkgKyAiIGJh c2VzIgorICAgICAgICAgcmV0dXJuIFMKKyAKKy0gICAgY3BkZWYgYmFzZXNfY291bnQoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBDb3VudCB0aGUgbnVtYmVyIG9mIGJhc2VzLgorIAorQEAgLTU4OTgsNyArNTg5OCw3 IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAg ICAgc2VsZi5fYmFzZXNfY291bnQgPSAoUiAqIFIudHJhbnNwb3NlKCkpLmRldCgpCisgICAgICAg ICByZXR1cm4gc2VsZi5fYmFzZXNfY291bnQKKyAKKy0gICAgY3BkZWYgX3Byb2plY3Rpb24oc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9wcm9qZWN0aW9uKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIHByb2plY3Rpb24gbWF0cml4IG9udG8gdGhlIHJvdyBzcGFj ZS4KKyAKK0BAIC01OTM4LDcgKzU5MzgsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExp bmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX3JfcHJvamVjdGlvbiA9IFIudHJhbnNw b3NlKCkgKiAoUiAqIFIudHJhbnNwb3NlKCkpLmFkanVnYXRlKCkgKiBSCisgICAgICAgICByZXR1 cm4gc2VsZi5fcl9wcm9qZWN0aW9uCisgCistICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIENvbXB1dGUgYSByZWd1bGFyIG1hdHJvaWQgaW52YXJpYW50LgorIAorQEAgLTU5ODgsNyAr NTk4OCw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAg ICAgICBzZWxmLl9yX2ludmFyaWFudCA9IGhhc2godHVwbGUoW3R1cGxlKFsodywgQVt3XSkgZm9y IHcgaW4gc29ydGVkKEEpXSksIHR1cGxlKFsodywgQlt3XSkgZm9yIHcgaW4gc29ydGVkKEIpXSks IE5dKSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9yX2ludmFyaWFudAorIAorLSAgICBjcGRlZiBf aHlwZXJncmFwaChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2h5cGVyZ3JhcGgoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZSBhIGJpcGFydGl0ZSBkaWdyYXBoIGFuZCBh IHZlcnRleCBwYXJ0aXRpb24uCisgCitAQCAtNjA3MSw3ICs2MDcxLDcgQEAgY2RlZiBjbGFzcyBS ZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICMgICAgIHNlbGYuX3JfaHlw ZXJncmFwaCA9IHNlbGYuX3JfaHlwZXJncmFwaC5tYXhfcmVmaW5lZCgpCisgICAgICAgICAjIHJl dHVybiBzZWxmLl9yX2h5cGVyZ3JhcGgKKyAKKy0gICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2Vs Ziwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2lz b21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgICIiIgor ICAgICAgICAgVGVzdCBpZiBgYHNlbGZgYCBpcyBpc29tb3JwaGljIHRvIGBgb3RoZXJgYC4KKyAK K0BAIC02MTM5LDcgKzYxMzksNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1h dHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gTGluZWFyTWF0cm9p ZC5faXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlcikKKyAKKy0gICAgY3BkZWYgX2Zhc3RfaXNvbV90 ZXN0KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNl bGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJ1biBhIHF1aWNrIHRlc3QgdG8g c2VlIGlmIHR3byByZWd1bGFyIG1hdHJvaWRzIGFyZSBpc29tb3JwaGljLgorIAorQEAgLTYxODAs NyArNjE4MCw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6Cisg ICAgICAgICAgICAgaWYgc2VsZi5faXNfZmllbGRfaXNvbW9ycGhpc20ob3RoZXIsIG0pOgorICAg ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjZGVmIF9oeXBlcnRlc3Qoc2VsZiwg b3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9oeXBlcnRlc3Qoc2VsZiwgb3RoZXIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBoeXBlcmdyYXBocyBhc3NvY2lhdGVkIHdp dGggYGBzZWxmYGAgYW5kIGBgb3RoZXJgYCBhcmUKKyAgICAgICAgIGlzb21vcnBoaWMsIGFuZCBp ZiBzbyByZXR1cm4gYW4gaXNvbW9ycGhpc20uCitAQCAtNjIxMyw3ICs2MjEzLDcgQEAgY2RlZiBj bGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBpZHg9e3N0 cihmKTpmIGZvciBmIGluIG90aGVyLmdyb3VuZHNldCgpfQorICAgICAgICAgICAgIHJldHVybiB7 ZTppZHhbbVtzdHIoZSldXSBmb3IgZSBpbiBzZWxmLmdyb3VuZHNldCgpIGlmIHN0cihlKSBpbiBt fQorIAorLSAgICBjcGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzPU5vbmUs IGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaGFzX2xpbmVfbWlub3Io c2VsZiwgaywgaHlwZXJsaW5lcz1Ob25lLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBtYXRyb2lkIGhhcyBhIGBVX3syLCBrfWAtbWlub3Iu CisgCitAQCAtNjI2Niw3ICs2MjY2LDcgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBN YXRyb2lkLmhhc19saW5lX21pbm9yKHNlbGYsIGssIGh5cGVybGluZXMsIGNlcnRpZmljYXRlKQor IAorLSAgICBjcGRlZiBfbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoc2VsZiwgRiwgZnVuZGFtZW50 YWxzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMo c2VsZiwgRiwgZnVuZGFtZW50YWxzPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ3Jl YXRlIGEgbGlzdCBvZiBjaGFpbnMgdGhhdCBkZXRlcm1pbmUgc2luZ2xlLWVsZW1lbnQgZXh0ZW5z aW9ucyBvZgorICAgICAgICAgdGhpcyBsaW5lYXIgbWF0cm9pZCByZXByZXNlbnRhdGlvbi4KK0BA IC02MzAzLDcgKzYzMDMsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgICAgIGZ1bmRhbWVudGFscyA9IHNldChbMV0pCisgICAgICAgICByZXR1 cm4gTGluZWFyTWF0cm9pZC5fbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoc2VsZiwgRiwgZnVuZGFt ZW50YWxzKQorIAorLSAgICBjcGRlZiBpc19ncmFwaGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBpc19ncmFwaGljKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIHRo ZSByZWd1bGFyIG1hdHJvaWQgaXMgZ3JhcGhpYy4KKyAKK0BAIC02MzM2LDcgKzYzMzYsNyBAQCBj ZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gQmluYXJ5TWF0cm9pZChyZWR1Y2VkX21hdHJpeD1zZWxmLl9yZWR1Y2Vk X3JlcHJlc2VudGF0aW9uKCkpLmlzX2dyYXBoaWMoKQorIAorLSAgICBjcGRlZiBpc192YWxpZChz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfdmFsaWQoc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBUZXN0IGlmIHRoZSBkYXRhIG9iZXkgdGhlIG1hdHJvaWQgYXhpb21zLgorIAor QEAgLTYzNjcsNyArNjM2Nyw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0 cm9pZCk6CisgCisgICAgICMgcmVwcmVzZW50YXRpb24KKyAKKy0gICAgY3BkZWYgYmluYXJ5X21h dHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xLCB2ZXJpZnkgPSBUcnVlKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYmluYXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xLCB2ZXJp ZnkgPSBUcnVlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGJpbmFyeSBtYXRy b2lkIHJlcHJlc2VudGluZyBgYHNlbGZgYC4KKyAKK0BAIC02Mzk4LDcgKzYzOTgsNyBAQCBjZGVm IGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgQSwgRSA9IHNl bGYucmVwcmVzZW50YXRpb24oQiA9IHNlbGYuYmFzaXMoKSwgcmVkdWNlZCA9IEZhbHNlLCBsYWJl bHMgPSBUcnVlKQorICAgICAgICAgcmV0dXJuIEJpbmFyeU1hdHJvaWQobWF0cml4ID0gQSwgZ3Jv dW5kc2V0ID0gRSkKKyAKKy0gICAgY3BkZWYgaXNfYmluYXJ5KHNlbGYsIHJhbmRvbWl6ZWRfdGVz dHM9MSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2JpbmFyeShzZWxmLCByYW5kb21pemVkX3Rl c3RzPTEpOgorICAgICAgICAgciIiIgorICAgICAgICAgRGVjaWRlIGlmIGBgc2VsZmBgIGlzIGEg YmluYXJ5IG1hdHJvaWQuCisgCitAQCAtNjQyNiw3ICs2NDI2LDcgQEAgY2RlZiBjbGFzcyBSZWd1 bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IFRydWUKKyAKKy0gICAgY3BkZWYgdGVybmFyeV9tYXRyb2lkKHNlbGYsIHJhbmRvbWl6ZWRfdGVz dHM9MSwgdmVyaWZ5ID0gVHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHRlcm5hcnlfbWF0cm9p ZChzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEsIHZlcmlmeSA9IFRydWUpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIGEgdGVybmFyeSBtYXRyb2lkIHJlcHJlc2VudGluZyBgYHNlbGZg YC4KKyAKK0BAIC02NDU3LDcgKzY0NTcsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExp bmVhck1hdHJvaWQpOgorICAgICAgICAgQSwgRSA9IHNlbGYucmVwcmVzZW50YXRpb24oQiA9IHNl bGYuYmFzaXMoKSwgcmVkdWNlZCA9IEZhbHNlLCBsYWJlbHMgPSBUcnVlKQorICAgICAgICAgcmV0 dXJuIFRlcm5hcnlNYXRyb2lkKG1hdHJpeCA9IEEsIGdyb3VuZHNldCA9IEUpCisgCistICAgIGNw ZGVmIGlzX3Rlcm5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgaXNfdGVybmFyeShzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEpOgorICAgICAgICAgciIi IgorICAgICAgICAgRGVjaWRlIGlmIGBgc2VsZmBgIGlzIGEgdGVybmFyeSBtYXRyb2lkLgorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHhkIGIvc3JjL3NhZ2UvbWF0 cm9pZHMvbWF0cm9pZC5weGQKK2luZGV4IDdkMmJjNjAwNzhkLi40ZTJkNjg3N2FjNyAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHhkCisrKysgYi9zcmMvc2FnZS9tYXRy b2lkcy9tYXRyb2lkLnB4ZAorQEAgLTcsMzYgKzcsMzYgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICBjZGVmIGludCBfc3RvcmVkX3NpemUKKyAKKyAgICAgIyB2aXJ0dWFs IG1ldGhvZHMKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVm IF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0CisrICAgIGNwZGVmIGdyb3VuZHNldChzZWxmKQorKyAg ICBjcGRlZiBfcmFuayhzZWxmLCBYKQorIAorICAgICAjIGludGVybmFsIG1ldGhvZHMsIGFzc3Vt aW5nIHZlcmlmaWVkIGlucHV0CistICAgIGNwZGVmIF9tYXhfaW5kZXBlbmRlbnQoc2VsZiwgWCkg bm9leGNlcHQKKy0gICAgY3BkZWYgX2NpcmN1aXQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQKKy0gICAgY3BkZWYg X2Nsb3N1cmUoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NvcmFuayhzZWxmLCBYKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2NvY2lyY3VpdChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZnVu ZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIEIsIGUpIG5vZXhjZXB0CistICAgIGNwZGVmIF9jb2Ns b3N1cmUoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2F1Z21lbnQoc2VsZiwgWCwgWSkg bm9leGNlcHQKKy0KKy0gICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9pc19iYXNpcyhzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNf Y2lyY3VpdChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNfY2xvc2VkKHNlbGYsIFgp IG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19jb2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9pc19jb2Jhc2lzKHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIF9p c19jb2NpcmN1aXQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lzX2NvY2xvc2VkKHNl bGYsIFgpIG5vZXhjZXB0CistCistICAgIGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMs IGRlbGV0aW9ucykgbm9leGNlcHQKKy0gICAgY3BkZWYgX2hhc19taW5vcihzZWxmLCBOLCBiaW50 IGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9saW5lX2xlbmd0aChzZWxmLCBG KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQsIGh5cGVycGxh bmVzKSBub2V4Y2VwdAorLQorLSAgICBjZGVmIGlubGluZSBfc3Vic2V0X2ludGVybmFsKHNlbGYs IFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50KHNlbGYsIFgpCisrICAg IGNwZGVmIF9jaXJjdWl0KHNlbGYsIFgpCisrICAgIGNwZGVmIF9mdW5kYW1lbnRhbF9jaXJjdWl0 KHNlbGYsIEIsIGUpCisrICAgIGNwZGVmIF9jbG9zdXJlKHNlbGYsIFgpCisrICAgIGNwZGVmIF9j b3Jhbmsoc2VsZiwgWCkKKysgICAgY3BkZWYgX21heF9jb2luZGVwZW5kZW50KHNlbGYsIFgpCisr ICAgIGNwZGVmIF9jb2NpcmN1aXQoc2VsZiwgWCkKKysgICAgY3BkZWYgX2Z1bmRhbWVudGFsX2Nv Y2lyY3VpdChzZWxmLCBCLCBlKQorKyAgICBjcGRlZiBfY29jbG9zdXJlKHNlbGYsIFgpCisrICAg IGNwZGVmIF9hdWdtZW50KHNlbGYsIFgsIFkpCisrCisrICAgIGNwZGVmIF9pc19pbmRlcGVuZGVu dChzZWxmLCBYKQorKyAgICBjcGRlZiBfaXNfYmFzaXMoc2VsZiwgWCkKKysgICAgY3BkZWYgX2lz X2NpcmN1aXQoc2VsZiwgWCkKKysgICAgY3BkZWYgX2lzX2Nsb3NlZChzZWxmLCBYKQorKyAgICBj cGRlZiBfaXNfY29pbmRlcGVuZGVudChzZWxmLCBYKQorKyAgICBjcGRlZiBfaXNfY29iYXNpcyhz ZWxmLCBYKQorKyAgICBjcGRlZiBfaXNfY29jaXJjdWl0KHNlbGYsIFgpCisrICAgIGNwZGVmIF9p c19jb2Nsb3NlZChzZWxmLCBYKQorKworKyAgICBjcGRlZiBfbWlub3Ioc2VsZiwgY29udHJhY3Rp b25zLCBkZWxldGlvbnMpCisrICAgIGNwZGVmIF9oYXNfbWlub3Ioc2VsZiwgTiwgYmludCBjZXJ0 aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBfbGluZV9sZW5ndGgoc2VsZiwgRikKKysgICAgY3BkZWYg X2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBoeXBlcnBsYW5lcykKKysKKysgICAgY2RlZiBpbmxp bmUgX3N1YnNldF9pbnRlcm5hbChzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29u dmVydCBgYFhgYCB0byBhIGBgZnJvemVuc2V0YGAgYW5kIGNoZWNrIHRoYXQgaXQgaXMgYSBzdWJz ZXQKKyAgICAgICAgIG9mIHRoZSBncm91bmRzZXQuCitAQCAtNDgsNyArNDgsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihm IntYIXJ9IGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0IikKKyAgICAgICAgIHJldHVy biBTCisgCistICAgIGNkZWYgaW5saW5lIF9fc3Vic2V0X2FsbChzZWxmLCBYKSBub2V4Y2VwdDoK KysgICAgY2RlZiBpbmxpbmUgX19zdWJzZXRfYWxsKHNlbGYsIFgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBJZiBgYFhgYCBpcyBgYE5vbmVgYCwgcmV0dXJuIHRoZSBncm91bmRzZXQuCisgCitA QCAtNjYsMTYxICs2NiwxNjEgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAg ICAgICAgcmV0dXJuIFMKKyAKKyAgICAgIyAqKiB1c2VyLWZhY2luZyBtZXRob2RzICoqCistICAg IGNwZGVmIHNpemUoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgc2l6ZShzZWxmKQorIAorICAg ICAjIG1hdHJvaWQgb3JhY2xlCistICAgIGNwZGVmIHJhbmsoc2VsZiwgWD0qKSBub2V4Y2VwdAor LSAgICBjcGRlZiBmdWxsX3Jhbmsoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgYmFzaXMoc2Vs Zikgbm9leGNlcHQKKy0gICAgY3BkZWYgbWF4X2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0 CistICAgIGNwZGVmIGNpcmN1aXQoc2VsZiwgWD0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBmdW5k YW1lbnRhbF9jaXJjdWl0KHNlbGYsIEIsIGUpIG5vZXhjZXB0CistICAgIGNwZGVmIGNsb3N1cmUo c2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYga19jbG9zdXJlKHNlbGYsIFgsIGspIG5vZXhj ZXB0CistCistICAgIGNwZGVmIGF1Z21lbnQoc2VsZiwgWCwgWT0qKSBub2V4Y2VwdAorLQorLSAg ICBjcGRlZiBjb3Jhbmsoc2VsZiwgWD0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBmdWxsX2NvcmFu ayhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjb2Jhc2lzKHNlbGYpIG5vZXhjZXB0CistICAg IGNwZGVmIG1heF9jb2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIGNv Y2lyY3VpdChzZWxmLCBYPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGZ1bmRhbWVudGFsX2NvY2ly Y3VpdChzZWxmLCBCLCBlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjb2Nsb3N1cmUoc2VsZiwgWCkg bm9leGNlcHQKKy0KKy0gICAgY3BkZWYgbG9vcHMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg aXNfaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfZGVwZW5kZW50 KHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2Jhc2lzKHNlbGYsIFgpIG5vZXhjZXB0 CistICAgIGNwZGVmIGlzX2NpcmN1aXQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNf Y2xvc2VkKHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX3N1YnNldF9rX2Nsb3NlZChz ZWxmLCBYLCBpbnQgaykgbm9leGNlcHQKKy0KKy0gICAgY3BkZWYgY29sb29wcyhzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBpc19jb2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0CistICAg IGNwZGVmIGlzX2NvZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2Nv YmFzaXMoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfY29jaXJjdWl0KHNlbGYsIFgp IG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2NvY2xvc2VkKHNlbGYsIFgpIG5vZXhjZXB0CisrICAg IGNwZGVmIHJhbmsoc2VsZiwgWD0qKQorKyAgICBjcGRlZiBmdWxsX3Jhbmsoc2VsZikKKysgICAg Y3BkZWYgYmFzaXMoc2VsZikKKysgICAgY3BkZWYgbWF4X2luZGVwZW5kZW50KHNlbGYsIFgpCisr ICAgIGNwZGVmIGNpcmN1aXQoc2VsZiwgWD0qKQorKyAgICBjcGRlZiBmdW5kYW1lbnRhbF9jaXJj dWl0KHNlbGYsIEIsIGUpCisrICAgIGNwZGVmIGNsb3N1cmUoc2VsZiwgWCkKKysgICAgY3BkZWYg a19jbG9zdXJlKHNlbGYsIFgsIGspCisrCisrICAgIGNwZGVmIGF1Z21lbnQoc2VsZiwgWCwgWT0q KQorKworKyAgICBjcGRlZiBjb3Jhbmsoc2VsZiwgWD0qKQorKyAgICBjcGRlZiBmdWxsX2NvcmFu ayhzZWxmKQorKyAgICBjcGRlZiBjb2Jhc2lzKHNlbGYpCisrICAgIGNwZGVmIG1heF9jb2luZGVw ZW5kZW50KHNlbGYsIFgpCisrICAgIGNwZGVmIGNvY2lyY3VpdChzZWxmLCBYPSopCisrICAgIGNw ZGVmIGZ1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBCLCBlKQorKyAgICBjcGRlZiBjb2Nsb3N1 cmUoc2VsZiwgWCkKKysKKysgICAgY3BkZWYgbG9vcHMoc2VsZikKKysgICAgY3BkZWYgaXNfaW5k ZXBlbmRlbnQoc2VsZiwgWCkKKysgICAgY3BkZWYgaXNfZGVwZW5kZW50KHNlbGYsIFgpCisrICAg IGNwZGVmIGlzX2Jhc2lzKHNlbGYsIFgpCisrICAgIGNwZGVmIGlzX2NpcmN1aXQoc2VsZiwgWCkK KysgICAgY3BkZWYgaXNfY2xvc2VkKHNlbGYsIFgpCisrICAgIGNwZGVmIGlzX3N1YnNldF9rX2Ns b3NlZChzZWxmLCBYLCBpbnQgaykKKysKKysgICAgY3BkZWYgY29sb29wcyhzZWxmKQorKyAgICBj cGRlZiBpc19jb2luZGVwZW5kZW50KHNlbGYsIFgpCisrICAgIGNwZGVmIGlzX2NvZGVwZW5kZW50 KHNlbGYsIFgpCisrICAgIGNwZGVmIGlzX2NvYmFzaXMoc2VsZiwgWCkKKysgICAgY3BkZWYgaXNf Y29jaXJjdWl0KHNlbGYsIFgpCisrICAgIGNwZGVmIGlzX2NvY2xvc2VkKHNlbGYsIFgpCisgCisg ICAgICMgdmVyaWZpY2F0aW9uCistICAgIGNwZGVmIGlzX3ZhbGlkKHNlbGYpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIGlzX3ZhbGlkKHNlbGYpCisgCisgICAgICMgZW51bWVyYXRpb24KKy0gICAgY3Bk ZWYgY2lyY3VpdHMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbm9uc3Bhbm5pbmdfY2lyY3Vp dHMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY29jaXJjdWl0cyhzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBub25jb3NwYW5uaW5nX2NvY2lyY3VpdHMoc2VsZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgY2lyY3VpdF9jbG9zdXJlcyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBub25zcGFu bmluZ19jaXJjdWl0X2Nsb3N1cmVzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGJhc2VzKHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGluZGVwZW5kZW50X3NldHMoc2VsZikgbm9leGNlcHQK Ky0gICAgY3BkZWYgaW5kZXBlbmRlbnRfcl9zZXRzKHNlbGYsIGxvbmcgcikgbm9leGNlcHQKKy0g ICAgY3BkZWYgbm9uYmFzZXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGVwZW5kZW50X3Jf c2V0cyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9leHRlbmRfZmxhZ3Moc2Vs ZiwgZmxhZ3MpIG5vZXhjZXB0CistICAgIGNwZGVmIF9mbGFncyhzZWxmLCByKSBub2V4Y2VwdAor LSAgICBjcGRlZiBmbGF0cyhzZWxmLCByKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjb2ZsYXRzKHNl bGYsIHIpIG5vZXhjZXB0CistICAgIGNwZGVmIGh5cGVycGxhbmVzKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIGZfdmVjdG9yKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGJyb2tlbl9jaXJj dWl0cyhzZWxmLCBvcmRlcmluZz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBub19icm9rZW5fY2ly Y3VpdHNfc2V0cyhzZWxmLCBvcmRlcmluZz0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBjaXJjdWl0 cyhzZWxmKQorKyAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKQorKyAgICBjcGRl ZiBjb2NpcmN1aXRzKHNlbGYpCisrICAgIGNwZGVmIG5vbmNvc3Bhbm5pbmdfY29jaXJjdWl0cyhz ZWxmKQorKyAgICBjcGRlZiBjaXJjdWl0X2Nsb3N1cmVzKHNlbGYpCisrICAgIGNwZGVmIG5vbnNw YW5uaW5nX2NpcmN1aXRfY2xvc3VyZXMoc2VsZikKKysgICAgY3BkZWYgYmFzZXMoc2VsZikKKysg ICAgY3BkZWYgaW5kZXBlbmRlbnRfc2V0cyhzZWxmKQorKyAgICBjcGRlZiBpbmRlcGVuZGVudF9y X3NldHMoc2VsZiwgbG9uZyByKQorKyAgICBjcGRlZiBub25iYXNlcyhzZWxmKQorKyAgICBjcGRl ZiBkZXBlbmRlbnRfcl9zZXRzKHNlbGYsIGxvbmcgcikKKysgICAgY3BkZWYgX2V4dGVuZF9mbGFn cyhzZWxmLCBmbGFncykKKysgICAgY3BkZWYgX2ZsYWdzKHNlbGYsIHIpCisrICAgIGNwZGVmIGZs YXRzKHNlbGYsIHIpCisrICAgIGNwZGVmIGNvZmxhdHMoc2VsZiwgcikKKysgICAgY3BkZWYgaHlw ZXJwbGFuZXMoc2VsZikKKysgICAgY3BkZWYgZl92ZWN0b3Ioc2VsZikKKysgICAgY3BkZWYgYnJv a2VuX2NpcmN1aXRzKHNlbGYsIG9yZGVyaW5nPSopCisrICAgIGNwZGVmIG5vX2Jyb2tlbl9jaXJj dWl0c19zZXRzKHNlbGYsIG9yZGVyaW5nPSopCisgCisgICAgICMgaXNvbW9ycGhpc20KKy0gICAg Y3BkZWYgaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopIG5v ZXhjZXB0CistICAgIGNwZGVmIGlzb21vcnBoaXNtKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIGVx dWFscyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfaXNvbW9ycGhpc20oc2Vs Ziwgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpc20o c2VsZiwgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2VwdAorKyAgICBjcGRlZiBpc19pc29tb3JwaGlj KHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhz ZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9KikKKysgICAgY3BkZWYgaXNvbW9ycGhpc20oc2VsZiwg b3RoZXIpCisrICAgIGNwZGVmIF9pc29tb3JwaGlzbShzZWxmLCBvdGhlcikKKysgICAgY3BkZWYg ZXF1YWxzKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBpc19pc29tb3JwaGlzbShzZWxmLCBvdGhl ciwgbW9ycGhpc20pCisrICAgIGNwZGVmIF9pc19pc29tb3JwaGlzbShzZWxmLCBvdGhlciwgbW9y cGhpc20pCisgCisgICAgICMgbWlub3JzLCBkdWFsLCB0cnVuY2F0aW9uCistICAgIGNwZGVmIG1p bm9yKHNlbGYsIGNvbnRyYWN0aW9ucz0qLCBkZWxldGlvbnM9Kikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgY29udHJhY3Qoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgZGVsZXRlKHNlbGYsIFgp IG5vZXhjZXB0CistICAgIGNwZGVmIF9iYWNrc2xhc2hfKHNlbGYsIFgpIG5vZXhjZXB0CistICAg IGNwZGVmIGR1YWwoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgdHJ1bmNhdGlvbihzZWxmKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBoYXNfbWlub3Ioc2VsZiwgTiwgYmludCBjZXJ0aWZpY2F0ZT0q KSBub2V4Y2VwdAorLSAgICBjcGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVz PSosIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9oYXNfbGluZV9taW5vcihz ZWxmLCBrLCBoeXBlcmxpbmVzLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBt aW5vcihzZWxmLCBjb250cmFjdGlvbnM9KiwgZGVsZXRpb25zPSopCisrICAgIGNwZGVmIGNvbnRy YWN0KHNlbGYsIFgpCisrICAgIGNwZGVmIGRlbGV0ZShzZWxmLCBYKQorKyAgICBjcGRlZiBfYmFj a3NsYXNoXyhzZWxmLCBYKQorKyAgICBjcGRlZiBkdWFsKHNlbGYpCisrICAgIGNwZGVmIHRydW5j YXRpb24oc2VsZikKKysgICAgY3BkZWYgaGFzX21pbm9yKHNlbGYsIE4sIGJpbnQgY2VydGlmaWNh dGU9KikKKysgICAgY3BkZWYgaGFzX2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJsaW5lcz0qLCBj ZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBfaGFzX2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJs aW5lcywgY2VydGlmaWNhdGU9KikKKyAKKyAgICAgIyBleHRlbnNpb24KKy0gICAgY3BkZWYgZXh0 ZW5zaW9uKHNlbGYsIGVsZW1lbnQ9Kiwgc3Vic2V0cz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBj b2V4dGVuc2lvbihzZWxmLCBlbGVtZW50PSosIHN1YnNldHM9Kikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgbW9kdWxhcl9jdXQoc2VsZiwgc3Vic2V0cykgbm9leGNlcHQKKy0gICAgY3BkZWYgbGluZWFy X3N1YmNsYXNzZXMoc2VsZiwgbGluZV9sZW5ndGg9Kiwgc3Vic2V0cz0qKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBleHRlbnNpb25zKHNlbGYsIGVsZW1lbnQ9KiwgbGluZV9sZW5ndGg9Kiwgc3Vic2V0 cz0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBleHRlbnNpb24oc2VsZiwgZWxlbWVudD0qLCBzdWJz ZXRzPSopCisrICAgIGNwZGVmIGNvZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQ9Kiwgc3Vic2V0cz0q KQorKyAgICBjcGRlZiBtb2R1bGFyX2N1dChzZWxmLCBzdWJzZXRzKQorKyAgICBjcGRlZiBsaW5l YXJfc3ViY2xhc3NlcyhzZWxmLCBsaW5lX2xlbmd0aD0qLCBzdWJzZXRzPSopCisrICAgIGNwZGVm IGV4dGVuc2lvbnMoc2VsZiwgZWxlbWVudD0qLCBsaW5lX2xlbmd0aD0qLCBzdWJzZXRzPSopCisg CisgICAgICMgY29ubmVjdGl2aXR5CistICAgIGNwZGVmIHNpbXBsaWZ5KHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGNvc2ltcGxpZnkoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfc2lt cGxlKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2Nvc2ltcGxlKHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGNvbXBvbmVudHMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfY29u bmVjdGVkKHNlbGYsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGNvbm5lY3Rp dml0eShzZWxmLCBTLCBUPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9jb25uZWN0aXZpdHkoc2Vs ZiwgUywgVCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfa2Nvbm5lY3RlZChzZWxmLCBrLCBjZXJ0 aWZpY2F0ZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaW5rKHNlbGYsIFMsIFQpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9saW5rKHNlbGYsIFMsIFQpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc18z Y29ubmVjdGVkX3NoaWZ0aW5nKHNlbGYsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CistICAgIGNw ZGVmIF9pc180Y29ubmVjdGVkX3NoaWZ0aW5nKHNlbGYsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0 CistICAgIGNwZGVmIF9zaGlmdGluZ19hbGwoc2VsZiwgWCwgUF9yb3dzLCBQX2NvbHMsIFFfcm93 cywgUV9jb2xzLCBtKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfc2hpZnRpbmcoc2VsZiwgWCwgWF8x LCBZXzIsIFhfMiwgWV8xLCBtKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc18zY29ubmVjdGVkKHNl bGYsIGNlcnRpZmljYXRlPSosIGFsZ29yaXRobT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc180 Y29ubmVjdGVkKHNlbGYsIGNlcnRpZmljYXRlPSosIGFsZ29yaXRobT0qKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9DRShzZWxmLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9CQyhzZWxmLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9CQ19yZWN1cnNpb24oc2VsZiwgYmFzaXMsIGZ1 bmRfY29jaXJjdWl0cykgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfcGF2aW5nKHNlbGYpIG5vZXhj ZXB0CistICAgIGNwZGVmIGlzX3NwYXJzZV9wYXZpbmcoc2VsZikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgZ2lydGgoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgc2ltcGxpZnkoc2VsZikKKysgICAg Y3BkZWYgY29zaW1wbGlmeShzZWxmKQorKyAgICBjcGRlZiBpc19zaW1wbGUoc2VsZikKKysgICAg Y3BkZWYgaXNfY29zaW1wbGUoc2VsZikKKysgICAgY3BkZWYgY29tcG9uZW50cyhzZWxmKQorKyAg ICBjcGRlZiBpc19jb25uZWN0ZWQoc2VsZiwgY2VydGlmaWNhdGU9KikKKysgICAgY3BkZWYgY29u bmVjdGl2aXR5KHNlbGYsIFMsIFQ9KikKKysgICAgY3BkZWYgX2Nvbm5lY3Rpdml0eShzZWxmLCBT LCBUKQorKyAgICBjcGRlZiBpc19rY29ubmVjdGVkKHNlbGYsIGssIGNlcnRpZmljYXRlPSopCisr ICAgIGNwZGVmIGxpbmsoc2VsZiwgUywgVCkKKysgICAgY3BkZWYgX2xpbmsoc2VsZiwgUywgVCkK KysgICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9KikK KysgICAgY3BkZWYgX2lzXzRjb25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9KikK KysgICAgY3BkZWYgX3NoaWZ0aW5nX2FsbChzZWxmLCBYLCBQX3Jvd3MsIFBfY29scywgUV9yb3dz LCBRX2NvbHMsIG0pCisrICAgIGNwZGVmIF9zaGlmdGluZyhzZWxmLCBYLCBYXzEsIFlfMiwgWF8y LCBZXzEsIG0pCisrICAgIGNwZGVmIGlzXzNjb25uZWN0ZWQoc2VsZiwgY2VydGlmaWNhdGU9Kiwg YWxnb3JpdGhtPSopCisrICAgIGNwZGVmIGlzXzRjb25uZWN0ZWQoc2VsZiwgY2VydGlmaWNhdGU9 KiwgYWxnb3JpdGhtPSopCisrICAgIGNwZGVmIF9pc18zY29ubmVjdGVkX0NFKHNlbGYsIGNlcnRp ZmljYXRlPSopCisrICAgIGNwZGVmIF9pc18zY29ubmVjdGVkX0JDKHNlbGYsIGNlcnRpZmljYXRl PSopCisrICAgIGNwZGVmIF9pc18zY29ubmVjdGVkX0JDX3JlY3Vyc2lvbihzZWxmLCBiYXNpcywg ZnVuZF9jb2NpcmN1aXRzKQorKyAgICBjcGRlZiBpc19wYXZpbmcoc2VsZikKKysgICAgY3BkZWYg aXNfc3BhcnNlX3BhdmluZyhzZWxmKQorKyAgICBjcGRlZiBnaXJ0aChzZWxmKQorIAorICAgICAj IHJlcHJlc2VudGFiaWxpdHkKKy0gICAgY3BkZWYgX2xvY2FsX2JpbmFyeV9tYXRyb2lkKHNlbGYs IGJhc2lzPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGJpbmFyeV9tYXRyb2lkKHNlbGYsIHJhbmRv bWl6ZWRfdGVzdHM9KiwgdmVyaWZ5PSopIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2JpbmFyeShz ZWxmLCByYW5kb21pemVkX3Rlc3RzPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9sb2NhbF90ZXJu YXJ5X21hdHJvaWQoc2VsZiwgYmFzaXM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgdGVybmFyeV9t YXRyb2lkKHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9KiwgdmVyaWZ5PSopIG5vZXhjZXB0CistICAg IGNwZGVmIGlzX3Rlcm5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0qKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBfbG9jYWxfYmluYXJ5X21hdHJvaWQoc2VsZiwgYmFzaXM9KikKKysgICAgY3BkZWYg YmluYXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0qLCB2ZXJpZnk9KikKKysgICAg Y3BkZWYgaXNfYmluYXJ5KHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9KikKKysgICAgY3BkZWYgX2xv Y2FsX3Rlcm5hcnlfbWF0cm9pZChzZWxmLCBiYXNpcz0qKQorKyAgICBjcGRlZiB0ZXJuYXJ5X21h dHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0qLCB2ZXJpZnk9KikKKysgICAgY3BkZWYgaXNf dGVybmFyeShzZWxmLCByYW5kb21pemVkX3Rlc3RzPSopCisgCisgICAgICMgbWF0cm9pZCBrLWNs b3NlZAorLSAgICBjcGRlZiBpc19rX2Nsb3NlZChzZWxmLCBpbnQgaykgbm9leGNlcHQKKysgICAg Y3BkZWYgaXNfa19jbG9zZWQoc2VsZiwgaW50IGspCisgCisgICAgICMgbWF0cm9pZCBjaG9yZGFs aXR5CistICAgIGNwZGVmIF9pc19jaXJjdWl0X2Nob3JkYWwoc2VsZiwgZnJvemVuc2V0IEMsIGJp bnQgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfY2lyY3VpdF9jaG9yZGFs KHNlbGYsIEMsIGJpbnQgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfY2hv cmRhbChzZWxmLCBrMT0qLCBrMj0qLCBiaW50IGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CistICAg IGNwZGVmIGNob3JkYWxpdHkoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgX2lzX2NpcmN1aXRf Y2hvcmRhbChzZWxmLCBmcm96ZW5zZXQgQywgYmludCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRl ZiBpc19jaXJjdWl0X2Nob3JkYWwoc2VsZiwgQywgYmludCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBj cGRlZiBpc19jaG9yZGFsKHNlbGYsIGsxPSosIGsyPSosIGJpbnQgY2VydGlmaWNhdGU9KikKKysg ICAgY3BkZWYgY2hvcmRhbGl0eShzZWxmKQorIAorICAgICAjIG9wdGltaXphdGlvbgorLSAgICBj cGRlZiBtYXhfd2VpZ2h0X2luZGVwZW5kZW50KHNlbGYsIFg9Kiwgd2VpZ2h0cz0qKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBtYXhfd2VpZ2h0X2NvaW5kZXBlbmRlbnQoc2VsZiwgWD0qLCB3ZWlnaHRz PSopIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX21heF93ZWlnaHRfaW5kZXBlbmRlbnRfZ2VuZXJp YyhzZWxmLCBYPSosIHdlaWdodHM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfbWF4X3dlaWdo dF9jb2luZGVwZW5kZW50X2dlbmVyaWMoc2VsZiwgWD0qLCB3ZWlnaHRzPSopIG5vZXhjZXB0Cist ICAgIGNwZGVmIGludGVyc2VjdGlvbihzZWxmLCBvdGhlciwgd2VpZ2h0cz0qKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfaW50ZXJzZWN0aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfaW50ZXJzZWN0aW9uX2F1Z21lbnRhdGlvbihzZWxmLCBvdGhlciwgd2VpZ2h0 cywgWSkgbm9leGNlcHQKKy0gICAgY3BkZWYgaW50ZXJzZWN0aW9uX3Vud2VpZ2h0ZWQoc2VsZiwg b3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pbnRlcnNlY3Rpb25fdW53ZWlnaHRlZChzZWxm LCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2ludGVyc2VjdGlvbl9hdWdtZW50YXRpb25f dW53ZWlnaHRlZChzZWxmLCBvdGhlciwgWSkgbm9leGNlcHQKKy0gICAgY3BkZWYgcGFydGl0aW9u KHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIG1heF93ZWlnaHRfaW5kZXBlbmRlbnQoc2VsZiwg WD0qLCB3ZWlnaHRzPSopCisrICAgIGNwZGVmIG1heF93ZWlnaHRfY29pbmRlcGVuZGVudChzZWxm LCBYPSosIHdlaWdodHM9KikKKysgICAgY3BkZWYgaXNfbWF4X3dlaWdodF9pbmRlcGVuZGVudF9n ZW5lcmljKHNlbGYsIFg9Kiwgd2VpZ2h0cz0qKQorKyAgICBjcGRlZiBpc19tYXhfd2VpZ2h0X2Nv aW5kZXBlbmRlbnRfZ2VuZXJpYyhzZWxmLCBYPSosIHdlaWdodHM9KikKKysgICAgY3BkZWYgaW50 ZXJzZWN0aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzPSopCisrICAgIGNwZGVmIF9pbnRlcnNlY3Rp b24oc2VsZiwgb3RoZXIsIHdlaWdodHMpCisrICAgIGNwZGVmIF9pbnRlcnNlY3Rpb25fYXVnbWVu dGF0aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzLCBZKQorKyAgICBjcGRlZiBpbnRlcnNlY3Rpb25f dW53ZWlnaHRlZChzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX2ludGVyc2VjdGlvbl91bndlaWdo dGVkKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfaW50ZXJzZWN0aW9uX2F1Z21lbnRhdGlvbl91 bndlaWdodGVkKHNlbGYsIG90aGVyLCBZKQorKyAgICBjcGRlZiBwYXJ0aXRpb24oc2VsZikKKyAK KyAgICAgIyBpbnZhcmlhbnRzCistICAgIGNwZGVmIF9pbnRlcm5hbChzZWxmLCBCKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfZXh0ZXJuYWwoc2VsZiwgQikgbm9leGNlcHQKKy0gICAgY3BkZWYgdHV0 dGVfcG9seW5vbWlhbChzZWxmLCB4PSosIHk9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgZmxhdF9j b3ZlcihzZWxmLCBzb2x2ZXI9KiwgdmVyYm9zZT0qLCBpbnRlZ3JhbGl0eV90b2xlcmFuY2U9Kikg bm9leGNlcHQKKysgICAgY3BkZWYgX2ludGVybmFsKHNlbGYsIEIpCisrICAgIGNwZGVmIF9leHRl cm5hbChzZWxmLCBCKQorKyAgICBjcGRlZiB0dXR0ZV9wb2x5bm9taWFsKHNlbGYsIHg9KiwgeT0q KQorKyAgICBjcGRlZiBmbGF0X2NvdmVyKHNlbGYsIHNvbHZlcj0qLCB2ZXJib3NlPSosIGludGVn cmFsaXR5X3RvbGVyYW5jZT0qKQorIAorICAgICAjIG1pc2MKKy0gICAgY3BkZWYgYXV0b21vcnBo aXNtX2dyb3VwKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGJlcmdtYW5fY29tcGxleChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBhdWdtZW50ZWRfYmVyZ21hbl9jb21wbGV4KHNlbGYpIG5v ZXhjZXB0CisrICAgIGNwZGVmIGF1dG9tb3JwaGlzbV9ncm91cChzZWxmKQorKyAgICBjcGRlZiBi ZXJnbWFuX2NvbXBsZXgoc2VsZikKKysgICAgY3BkZWYgYXVnbWVudGVkX2JlcmdtYW5fY29tcGxl eChzZWxmKQorIAorICAgICAjIHZpc3VhbGl6YXRpb24KKy0gICAgY3BkZWYgcGxvdChzZWxmLEI9 KixsaW5lb3JkZXJzPSoscG9zX21ldGhvZD0qLHBvc19kaWN0PSosc2F2ZV9wb3M9Kikgbm9leGNl cHQKKy0gICAgY3BkZWYgc2hvdyhzZWxmLEI9KixsaW5lb3JkZXJzPSoscG9zX21ldGhvZD0qLHBv c19kaWN0PSosc2F2ZV9wb3M9KixsaW1zPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9maXhfcG9z aXRpb25zKHNlbGYscG9zX2RpY3Q9KixsaW5lb3JkZXJzPSopIG5vZXhjZXB0CisrICAgIGNwZGVm IHBsb3Qoc2VsZixCPSosbGluZW9yZGVycz0qLHBvc19tZXRob2Q9Kixwb3NfZGljdD0qLHNhdmVf cG9zPSopCisrICAgIGNwZGVmIHNob3coc2VsZixCPSosbGluZW9yZGVycz0qLHBvc19tZXRob2Q9 Kixwb3NfZGljdD0qLHNhdmVfcG9zPSosbGltcz0qKQorKyAgICBjcGRlZiBfZml4X3Bvc2l0aW9u cyhzZWxmLHBvc19kaWN0PSosbGluZW9yZGVycz0qKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21h dHJvaWRzL21hdHJvaWQucHl4IGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weXgKK2luZGV4 IDJkYTc0M2QzNWM5Li5hNjQ1MDFiYmI5YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRz L21hdHJvaWQucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB5eAorQEAgLTQ2 Myw3ICs0NjMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgCisgICAgICMg dmlydHVhbCBtZXRob2RzCisgCistICAgIGNwZGVmIGdyb3VuZHNldChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGdyb3VuZHNldCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00ODgsNyArNDg4LDcgQEAg Y2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBy YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG5lZWQgdG8gaW1wbGVtZW50IHRo aXMuIikKKyAKKy0gICAgY3BkZWYgX3Jhbmsoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9yYW5rKHNlbGYsIFgpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByYW5r IG9mIGEgc2V0IGBgWGBgLgorIAorQEAgLTUyMiw3ICs1MjIsNyBAQCBjZGVmIGNsYXNzIE1hdHJv aWQoU2FnZU9iamVjdCk6CisgICAgICMgZm9yIGJldHRlciBlZmZpY2llbmN5LCBpdHMgYmVzdCB0 byBvdmVycmlkZSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgaW4KKyAgICAgIyBlYWNoIGRlcml2ZWQg Y2xhc3MKKyAKKy0gICAgY3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBYKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQ29tcHV0ZSBhIG1heGltYWwgaW5kZXBlbmRlbnQgc3Vic2V0LgorIAorQEAgLTU1NCw3 ICs1NTQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAg ICAgIHJlcy5kaXNjYXJkKGUpCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KHJlcykKKyAKKy0g ICAgY3BkZWYgX2NpcmN1aXQoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jaXJjdWl0 KHNlbGYsIFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBtaW5pbWFsIGRlcGVu ZGVudCBzdWJzZXQuCisgCitAQCAtNTkyLDcgKzU5Miw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChT YWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgbCAtPSAxCisgICAgICAgICByZXR1cm4gZnJv emVuc2V0KFopCisgCistICAgIGNwZGVmIF9mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYsIEIsIGUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBCLCBlKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYEJgLWZ1bmRhbWVudGFsIGNpcmN1 aXQgdXNpbmcgYGVgLgorIAorQEAgLTYxNSw3ICs2MTUsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQo U2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9jaXJjdWl0 KEIudW5pb24oW2VdKSkKKyAKKy0gICAgY3BkZWYgX2Nsb3N1cmUoc2VsZiwgWCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9jbG9zdXJlKHNlbGYsIFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGNsb3N1cmUgb2YgYSBzZXQuCisgCitAQCAtNjQzLDcgKzY0Myw3IEBAIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgWC5kaXNjYXJkKHkp CisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KFgpCisgCistICAgIGNwZGVmIF9jb3Jhbmsoc2Vs ZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb3Jhbmsoc2VsZiwgWCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiB0aGUgY29yYW5rIG9mIGEgc2V0LgorIAorQEAgLTY2NCw3ICs2 NjQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBsZW4oWCkgKyBzZWxmLl9yYW5rKHNlbGYuZ3JvdW5kc2V0KCkuZGlmZmVy ZW5jZShYKSkgLSBzZWxmLmZ1bGxfcmFuaygpCisgCistICAgIGNwZGVmIF9tYXhfY29pbmRlcGVu ZGVudChzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21heF9jb2luZGVwZW5kZW50KHNl bGYsIFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIGEgbWF4aW1hbCBjb2luZGVw ZW5kZW50IHN1YnNldC4KKyAKK0BAIC02OTYsNyArNjk2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICByZXMuZGlzY2FyZChlKQorICAgICAgICAg cmV0dXJuIGZyb3plbnNldChyZXMpCisgCistICAgIGNwZGVmIF9jb2NpcmN1aXQoc2VsZiwgWCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2NpcmN1aXQoc2VsZiwgWCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBhIG1pbmltYWwgY29kZXBlbmRlbnQgc3Vic2V0LgorIAorQEAgLTcz NCw3ICs3MzQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgICAgIGwgLT0gMQorICAgICAgICAgcmV0dXJuIGZyb3plbnNldChaKQorIAorLSAgICBjcGRl ZiBfZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIEIsIGUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIEIsIGUpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBgQmAtZnVuZGFtZW50YWwgY2lyY3VpdCB1c2luZyBgZWAuCisgCitA QCAtNzU3LDcgKzc1Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2NvY2lyY3VpdChzZWxmLmdyb3VuZHNldCgp LmRpZmZlcmVuY2UoQikudW5pb24oW2VdKSkKKyAKKy0gICAgY3BkZWYgX2NvY2xvc3VyZShzZWxm LCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvY2xvc3VyZShzZWxmLCBYKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2Nsb3N1cmUgb2YgYSBzZXQuCisgCitAQCAtNzg1 LDcgKzc4NSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAg ICAgICAgWC5kaXNjYXJkKHkpCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KFgpCisgCistICAg IGNwZGVmIF9hdWdtZW50KHNlbGYsIFgsIFkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYXVnbWVu dChzZWxmLCBYLCBZKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG1heGltYWwg c3Vic2V0IGBJYCBvZiBgWWAgc3VjaCB0aGF0IGByKFggKyBJKT1yKFgpICsgcihJKWAuCisgCitA QCAtODI1LDcgKzgyNSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAKKyAg ICAgIyBvdmVycmlkZSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgZm9yIGV2ZW4gYmV0dGVyIGVmZmlj aWVuY3kKKyAKKy0gICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFRlc3QgaWYgaW5wdXQgaXMgaW5kZXBlbmRlbnQuCisgCitAQCAtODQ4LDcgKzg0OCw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIGxlbihYKSA9PSBzZWxmLl9yYW5rKFgpCisgCistICAgIGNwZGVmIF9pc19iYXNpcyhz ZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2Jhc2lzKHNlbGYsIFgpOgorICAgICAg ICAgIiIiCisgICAgICAgICBUZXN0IGlmIGlucHV0IGlzIGEgYmFzaXMuCisgCitAQCAtODgzLDcg Kzg4Myw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2luZGVwZW5kZW50KFgpCisgCistICAgIGNwZGVmIF9p c19jaXJjdWl0KHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfY2lyY3VpdChzZWxm LCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiBpbnB1dCBpcyBhIGNpcmN1aXQu CisgCitAQCAtOTE3LDcgKzkxNyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToK KyAgICAgICAgICAgICBaLmFkZCh4KQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3Bk ZWYgX2lzX2Nsb3NlZChzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2Nsb3NlZChz ZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiBpbnB1dCBpcyBhIGNsb3Nl ZCBzZXQuCisgCitAQCAtOTQ4LDcgKzk0OCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2Jq ZWN0KToKKyAgICAgICAgICAgICBYLmRpc2NhcmQoeSkKKyAgICAgICAgIHJldHVybiBUcnVlCisg CistICAgIGNwZGVmIF9pc19jb2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfaXNfY29pbmRlcGVuZGVudChzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAg VGVzdCBpZiBpbnB1dCBpcyBjb2luZGVwZW5kZW50LgorIAorQEAgLTk3MSw3ICs5NzEsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLl9jb3JhbmsoWCkgPT0gbGVuKFgpCisgCistICAgIGNwZGVmIF9pc19jb2Jhc2lz KHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfY29iYXNpcyhzZWxmLCBYKToKKyAg ICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiBpbnB1dCBpcyBhIGNvYmFzaXMuCisgCitAQCAt MTAwMSw3ICsxMDAxLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5faXNfYmFzaXMoc2VsZi5ncm91bmRzZXQoKS5k aWZmZXJlbmNlKFgpKQorIAorLSAgICBjcGRlZiBfaXNfY29jaXJjdWl0KHNlbGYsIFgpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfaXNfY29jaXJjdWl0KHNlbGYsIFgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBUZXN0IGlmIGlucHV0IGlzIGEgY29jaXJjdWl0LgorIAorQEAgLTEwMzUsNyArMTAz NSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBaLmFk ZCh4KQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgX2lzX2NvY2xvc2VkKHNl bGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfY29jbG9zZWQoc2VsZiwgWCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgaW5wdXQgaXMgYSBjb2Nsb3NlZCBzZXQuCisgCitA QCAtMTA2Niw3ICsxMDY2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAg ICAgICAgICAgIFguZGlzY2FyZCh5KQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3Bk ZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiBhIG1pbm9yLgorIAorQEAgLTExMDUsNyArMTEwNSw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIGZyb20gc2FnZS5tYXRyb2lk cyBpbXBvcnQgbWlub3JfbWF0cm9pZAorICAgICAgICAgcmV0dXJuIG1pbm9yX21hdHJvaWQuTWlu b3JNYXRyb2lkKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKQorIAorLSAgICBjcGRlZiBf aGFzX21pbm9yKHNlbGYsIE4sIGJpbnQgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfaGFzX21pbm9yKHNlbGYsIE4sIGJpbnQgY2VydGlmaWNhdGU9RmFsc2UpOgorICAg ICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIG1hdHJvaWQgaGFzIHRoZSBzcGVjaWZpZWQgbWlu b3IsCisgICAgICAgICBhbmQgb3B0aW9uYWxseSByZXR1cm4gZnJvemVuc2V0cyBgYFhgYCBhbmQg YGBZYGAgc28gdGhhdCBgYE5gYCBpcyBpc29tb3JwaGljIHRvIGBgc2VsZi5taW5vcihYLCBZKWBg LgorQEAgLTExNjEsNyArMTE2MSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToK KyAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIE5vbmUKKyAgICAgICAgIHJldHVybiBGYWxzZQor IAorLSAgICBjcGRlZiBfbGluZV9sZW5ndGgoc2VsZiwgRikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9saW5lX2xlbmd0aChzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSB0 aGUgbGVuZ3RoIG9mIHRoZSBsaW5lIHNwZWNpZmllZCB0aHJvdWdoIGZsYXQgYGBGYGAuCisgCitA QCAtMTE4Nyw3ICsxMTg3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gbGVuKHNlbGYubWlub3IoY29udHJhY3Rpb25zPUYp LnNpbXBsaWZ5KCkpCisgCistICAgIGNwZGVmIF9leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgaHlw ZXJwbGFuZXMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQs IGh5cGVycGxhbmVzKToKKyAgICAgICAgICIiIgorICAgICAgICAgRXh0ZW5kIHRoZSBtYXRyb2lk IGJ5IGEgbmV3IGVsZW1lbnQuCisgCitAQCAtMTI1NSw3ICsxMjU1LDcgQEAgY2RlZiBjbGFzcyBN YXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5z aXplKCkKKyAKKy0gICAgY3BkZWYgc2l6ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2l6 ZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzaXplIG9mIHRoZSBn cm91bmRzZXQuCisgCitAQCAtMTMzMiw3ICsxMzMyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorIAorICAgICAjIFVzZXItdmlzaWJsZSBtZXRob2RzCisgCistICAgIGNwZGVm IHJhbmsoc2VsZiwgWD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmFuayhzZWxmLCBYPU5v bmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByYW5rIG9mIGBgWGBgLgor IAorQEAgLTEzNjYsNyArMTM2Niw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5mdWxsX3JhbmsoKQorICAgICAgICAgcmV0dXJuIHNl bGYuX3Jhbmsoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorLSAgICBjcGRlZiBmdWxsX3Jh bmsoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmFuayBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0x Mzg5LDcgKzEzODksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAg ICAgICAgc2VsZi5fc3RvcmVkX2Z1bGxfcmFuayA9IHNlbGYuX3Jhbmsoc2VsZi5ncm91bmRzZXQo KSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9zdG9yZWRfZnVsbF9yYW5rCisgCistICAgIGNwZGVm IGJhc2lzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNpcyhzZWxmKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBhcmJpdHJhcnkgYmFzaXMgb2YgdGhlIG1hdHJvaWQu CisgCitAQCAtMTQxOCw3ICsxNDE4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3Qp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbWF4X2luZGVwZW5kZW50KHNl bGYuZ3JvdW5kc2V0KCkpCisgCistICAgIGNwZGVmIG1heF9pbmRlcGVuZGVudChzZWxmLCBYKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgbWF4X2luZGVwZW5kZW50KHNlbGYsIFgpOgorICAgICAgICAg IiIiCisgICAgICAgICBDb21wdXRlIGEgbWF4aW1hbCBpbmRlcGVuZGVudCBzdWJzZXQgb2YgYGBY YGAuCisgCitAQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmpl Y3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbWF4X2luZGVwZW5kZW50 KHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKy0gICAgY3BkZWYgY2lyY3VpdChzZWxmLCBY PU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaXJjdWl0KHNlbGYsIFg9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGNpcmN1aXQuCisgCitAQCAtMTQ4Nyw3ICsxNDg3 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5fY2lyY3VpdChzZWxmLl9fc3Vic2V0X2FsbChYKSkKKyAKKy0gICAg Y3BkZWYgZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBCLCBlKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBCLCBlKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgYEJgLWZ1bmRhbWVudGFsIGNpcmN1aXQgdXNpbmcgYGVgLgorIAorQEAg LTE1MjIsNyArMTUyMiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnB1dCBlIGlzIG5vdCBhbiBlbGVtZW50IG9mIHRo ZSBncm91bmRzZXQuIikKKyAgICAgICAgIHJldHVybiBzZWxmLl9mdW5kYW1lbnRhbF9jaXJjdWl0 KEIsIGUpCisgCistICAgIGNwZGVmIGNsb3N1cmUoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGNsb3N1cmUoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg Y2xvc3VyZSBvZiBhIHNldCBgYFhgYC4KKyAKK0BAIC0xNTUwLDcgKzE1NTAsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLl9jbG9zdXJlKHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKy0gICAgY3BkZWYga19j bG9zdXJlKHNlbGYsIFgsIGspIG5vZXhjZXB0OgorKyAgICBjcGRlZiBrX2Nsb3N1cmUoc2VsZiwg WCwgayk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBga2BgLWNsb3N1cmUg b2YgYGBYYGAuCisgCitAQCAtMTYwMCw3ICsxNjAwLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICAgICAgICAgIFMgPSBjbAorICAgICAgICAgcmV0dXJuIFMKKyAKKy0g ICAgY3BkZWYgYXVnbWVudChzZWxmLCBYLCBZPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBh dWdtZW50KHNlbGYsIFgsIFk9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g YSBtYXhpbWFsIHN1YnNldCBgSWAgb2YgYFkgLSBYYCBzdWNoIHRoYXQKKyAgICAgICAgIGByKFgg KyBJKSA9IHIoWCkgKyByKEkpYC4KK0BAIC0xNjM4LDcgKzE2MzgsNyBAQCBjZGVmIGNsYXNzIE1h dHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBZID0gc2VsZi5fX3N1YnNldF9hbGwoWSkKKyAg ICAgICAgIHJldHVybiBzZWxmLl9hdWdtZW50KFgsIFkuZGlmZmVyZW5jZShYKSkKKyAKKy0gICAg Y3BkZWYgY29yYW5rKHNlbGYsIFg9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvcmFuayhz ZWxmLCBYPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb3Jhbmsg b2YgYGBYYGAsIG9yIHRoZSBjb3Jhbmsgb2YgdGhlIGdyb3VuZHNldCBpZiBgYFhgYCBpcworICAg ICAgICAgYGBOb25lYGAuCitAQCAtMTY3NSw3ICsxNjc1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fY29yYW5r KHNlbGYuX19zdWJzZXRfYWxsKFgpKQorIAorLSAgICBjcGRlZiBmdWxsX2NvcmFuayhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZnVsbF9jb3Jhbmsoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgY29yYW5rIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTE2OTksNyAr MTY5OSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIHNlbGYuc2l6ZSgpIC0gc2VsZi5mdWxsX3JhbmsoKQorIAorLSAgICBj cGRlZiBjb2Jhc2lzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2Jhc2lzKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gYXJiaXRyYXJ5IGNvYmFzaXMgb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtMTczNCw3ICsxNzM0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5tYXhfY29pbmRl cGVuZGVudChzZWxmLmdyb3VuZHNldCgpKQorIAorLSAgICBjcGRlZiBtYXhfY29pbmRlcGVuZGVu dChzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwg WCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgYSBtYXhpbWFsIGNvaW5kZXBlbmRl bnQgc3Vic2V0IG9mIGBgWGBgLgorIAorQEAgLTE3NzIsNyArMTc3Miw3IEBAIGNkZWYgY2xhc3Mg TWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X21heF9jb2luZGVwZW5kZW50KHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKy0gICAgY3Bk ZWYgY29jbG9zdXJlKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2Nsb3N1cmUoc2Vs ZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29jbG9zdXJlIG9mIGEg c2V0IGBgWGBgLgorIAorQEAgLTE4MDQsNyArMTgwNCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChT YWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2NvY2xvc3Vy ZShzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVmIGNvY2lyY3VpdChzZWxm LCBYPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2NpcmN1aXQoc2VsZiwgWD1Ob25lKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgY29jaXJjdWl0LgorIAorQEAgLTE4NTIs NyArMTg1Miw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuX2NvY2lyY3VpdChzZWxmLl9fc3Vic2V0X2FsbChYKSkK KyAKKy0gICAgY3BkZWYgZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIEIsIGUpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBmdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgQiwgZSk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBCYC1mdW5kYW1lbnRhbCBjb2NpcmN1aXQgdXNp bmcgYGVgLgorIAorQEAgLTE4OTEsNyArMTg5MSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdl T2JqZWN0KToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnB1dCBlIGlzIG5vdCBh biBlbGVtZW50IG9mIEIuIikKKyAgICAgICAgIHJldHVybiBzZWxmLl9mdW5kYW1lbnRhbF9jb2Np cmN1aXQoQiwgZSkKKyAKKy0gICAgY3BkZWYgbG9vcHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGxvb3BzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzZXQg b2YgbG9vcHMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTkxMiw3ICsxOTEyLDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZi5fY2xvc3VyZShzZXQoKSkKKyAKKy0gICAgY3BkZWYgaXNfaW5kZXBlbmRlbnQoc2VsZiwg WCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2luZGVwZW5kZW50KHNlbGYsIFgpOgorICAgICAg ICAgciIiIgorICAgICAgICAgQ2hlY2sgaWYgYSBzdWJzZXQgYGBYYGAgaXMgaW5kZXBlbmRlbnQg aW4gdGhlIG1hdHJvaWQuCisgCitAQCAtMTkzOCw3ICsxOTM4LDcgQEAgY2RlZiBjbGFzcyBNYXRy b2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5faXNf aW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorLSAgICBjcGRlZiBpc19k ZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2RlcGVuZGVudChzZWxm LCBYKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGEgc3Vic2V0IGBgWGBgIGlz IGRlcGVuZGVudCBpbiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xOTY0LDcgKzE5NjQsNyBAQCBjZGVm IGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBub3Qgc2VsZi5faXNfaW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAor LSAgICBjcGRlZiBpc19iYXNpcyhzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfYmFz aXMoc2VsZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGVjayBpZiBhIHN1YnNldCBp cyBhIGJhc2lzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTE5OTMsNyArMTk5Myw3IEBAIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg ICAgICAgIHJldHVybiBzZWxmLl9pc19iYXNpcyhYKQorIAorLSAgICBjcGRlZiBpc19jbG9zZWQo c2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2Nsb3NlZChzZWxmLCBYKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgYSBzdWJzZXQgaXMgYSBjbG9zZWQgc2V0IG9mIHRo ZSBtYXRyb2lkLgorIAorQEAgLTIwMjYsNyArMjAyNiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChT YWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2Nsb3Nl ZChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVmIGlzX3N1YnNldF9rX2Ns b3NlZChzZWxmLCBYLCBpbnQgaykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX3N1YnNldF9rX2Ns b3NlZChzZWxmLCBYLCBpbnQgayk6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIGBg WGBgIGlzIGEgYGBrYGAtY2xvc2VkIHNldCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0yMDgxLDcg KzIwODEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAg ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgaXNf Y2lyY3VpdChzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfY2lyY3VpdChzZWxmLCBY KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgYSBzdWJzZXQgaXMgYSBjaXJjdWl0 IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTIxMDksNyArMjEwOSw3IEBAIGNkZWYgY2xhc3MgTWF0 cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2lz X2NpcmN1aXQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorLSAgICBjcGRlZiBjb2xvb3Bz KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xvb3BzKHNlbGYpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBzZXQgb2YgY29sb29wcyBvZiB0aGUgbWF0cm9pZC4KKyAK K0BAIC0yMTM2LDcgKzIxMzYsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9jb2Nsb3N1cmUoc2V0KCkpCisgCist ICAgIGNwZGVmIGlzX2NvaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IGlzX2NvaW5kZXBlbmRlbnQoc2VsZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGVj ayBpZiBhIHN1YnNldCBpcyBjb2luZGVwZW5kZW50IGluIHRoZSBtYXRyb2lkLgorIAorQEAgLTIx NjksNyArMjE2OSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NvaW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0 X2ludGVybmFsKFgpKQorIAorLSAgICBjcGRlZiBpc19jb2RlcGVuZGVudChzZWxmLCBYKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgaXNfY29kZXBlbmRlbnQoc2VsZiwgWCk6CisgICAgICAgICByIiIi CisgICAgICAgICBDaGVjayBpZiBhIHN1YnNldCBpcyBjb2RlcGVuZGVudCBpbiB0aGUgbWF0cm9p ZC4KKyAKK0BAIC0yMjAyLDcgKzIyMDIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBub3Qgc2VsZi5faXNfY29pbmRlcGVu ZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVmIGlzX2NvYmFzaXMo c2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2NvYmFzaXMoc2VsZiwgWCk6CisgICAg ICAgICByIiIiCisgICAgICAgICBDaGVjayBpZiBhIHN1YnNldCBpcyBhIGNvYmFzaXMgb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtMjIzOSw3ICsyMjM5LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIHNl bGYuX2lzX2NvYmFzaXMoWCkKKyAKKy0gICAgY3BkZWYgaXNfY29jaXJjdWl0KHNlbGYsIFgpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBpc19jb2NpcmN1aXQoc2VsZiwgWCk6CisgICAgICAgICByIiIi CisgICAgICAgICBUZXN0IGlmIGEgc3Vic2V0IGlzIGEgY29jaXJjdWl0IG9mIHRoZSBtYXRyb2lk LgorIAorQEAgLTIyNzMsNyArMjI3Myw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NvY2lyY3VpdChzZWxm Ll9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVmIGlzX2NvY2xvc2VkKHNlbGYsIFgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19jb2Nsb3NlZChzZWxmLCBYKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFRlc3QgaWYgYSBzdWJzZXQgaXMgYSBjb2Nsb3NlZCBzZXQgb2YgdGhlIG1h dHJvaWQuCisgCitAQCAtMjMwOCw3ICsyMzA4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VP YmplY3QpOgorIAorICAgICAjIHZlcmlmaWNhdGlvbgorIAorLSAgICBjcGRlZiBpc192YWxpZChz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfdmFsaWQoc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBUZXN0IGlmIHRoZSBkYXRhIG9iZXkgdGhlIG1hdHJvaWQgYXhpb21zLgorIAor QEAgLTIzNjAsNyArMjM2MCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAK KyAgICAgIyBlbnVtZXJhdGlvbgorIAorLSAgICBjcGRlZiBjaXJjdWl0cyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgY2lyY3VpdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgbGlzdCBvZiBjaXJjdWl0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0yMzg4LDcg KzIzODgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAg ICAgICAgICAgIGZvciBlIGluIHNlbGYuZ3JvdW5kc2V0KCkuZGlmZmVyZW5jZShCKV0pCisgICAg ICAgICByZXR1cm4gbGlzdChDKQorIAorLSAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9uc3Bhbm5pbmdfY2lyY3VpdHMoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBub25zcGFubmluZyBjaXJj dWl0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0yNDE4LDcgKzI0MTgsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIEMuYWRkKHNlbGYuX2NpcmN1 aXQoTikpCisgICAgICAgICByZXR1cm4gbGlzdChDKQorIAorLSAgICBjcGRlZiBjb2NpcmN1aXRz KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2NpcmN1aXRzKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgY29jaXJjdWl0cyBvZiB0aGUgbWF0cm9p ZC4KKyAKK0BAIC0yNDQzLDcgKzI0NDMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgQy51cGRhdGUoW3NlbGYuX2NvY2lyY3VpdChzZWxmLmdyb3VuZHNl dCgpLmRpZmZlcmVuY2UoQikudW5pb24oc2V0KFtlXSkpKSBmb3IgZSBpbiBCXSkKKyAgICAgICAg IHJldHVybiBsaXN0KEMpCisgCistICAgIGNwZGVmIG5vbmNvc3Bhbm5pbmdfY29jaXJjdWl0cyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9uY29zcGFubmluZ19jb2NpcmN1aXRzKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2Ygbm9uY29zcGFubmlu ZyBjb2NpcmN1aXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTI0NjksNyArMjQ2OSw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuZHVhbCgpLm5vbnNwYW5uaW5nX2NpcmN1aXRzKCkKKyAKKy0gICAgY3BkZWYgY2ly Y3VpdF9jbG9zdXJlcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2lyY3VpdF9jbG9zdXJl cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGNsb3N1 cmVzIG9mIGNpcmN1aXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTI1MDUsNyArMjUwNSw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBDQ1tsZW4oQykg LSAxXS5hZGQoc2VsZi5jbG9zdXJlKEMpKQorICAgICAgICAgcmV0dXJuIHtyOiBDQ1tyXSBmb3Ig ciBpbiByYW5nZShzZWxmLnJhbmsoKSArIDEpIGlmIENDW3JdfQorIAorLSAgICBjcGRlZiBub25z cGFubmluZ19jaXJjdWl0X2Nsb3N1cmVzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBub25z cGFubmluZ19jaXJjdWl0X2Nsb3N1cmVzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGxpc3Qgb2YgY2xvc3VyZXMgb2Ygbm9uc3Bhbm5pbmcgY2lyY3VpdHMgb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtMjUzOCw3ICsyNTM4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICAgICAgICAgIENDW2xlbihDKSAtIDFdLmFkZChzZWxmLmNsb3N1cmUo QykpCisgICAgICAgICByZXR1cm4ge3I6IENDW3JdIGZvciByIGluIHJhbmdlKHNlbGYucmFuaygp ICsgMSkgaWYgQ0Nbcl19CisgCistICAgIGNwZGVmIG5vbmJhc2VzKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBub25iYXNlcyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgbGlzdCBvZiBub25iYXNlcyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0yNTcyLDcgKzI1 NzIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAg IHJlcy5hcHBlbmQoWCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgZGVwZW5k ZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkZXBlbmRlbnRf cl9zZXRzKHNlbGYsIGxvbmcgcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGxpc3Qgb2YgZGVwZW5kZW50IHN1YnNldHMgb2YgZml4ZWQgc2l6ZS4KKyAKK0BAIC0yNjA1LDcg KzI2MDUsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAg ICAgIHJlcy5hcHBlbmQoWCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgYmFz ZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VzKHNlbGYpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGJhc2VzIG9mIHRoZSBtYXRyb2lkLgorIAor QEAgLTI2MzYsNyArMjYzNiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICAgICAgcmVzLmFwcGVuZChYKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAg ICBjcGRlZiBpbmRlcGVuZGVudF9zZXRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbmRl cGVuZGVudF9zZXRzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBs aXN0IG9mIGluZGVwZW5kZW50IHN1YnNldHMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMjY3OSw3 ICsyNjc5LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg ICAgICByIC09IDEKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgaW5kZXBlbmRl bnRfcl9zZXRzKHNlbGYsIGxvbmcgcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGluZGVwZW5kZW50 X3Jfc2V0cyhzZWxmLCBsb25nIHIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBsaXN0IG9mIHNpemUtYGByYGAgaW5kZXBlbmRlbnQgc3Vic2V0cyBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC0yNzE5LDcgKzI3MTksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoWCkKKyAgICAgICAgIHJldHVybiByZXMKKyAK Ky0gICAgY3BkZWYgX2V4dGVuZF9mbGFncyhzZWxmLCBmbGFncykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9leHRlbmRfZmxhZ3Moc2VsZiwgZmxhZ3MpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmVjdXJzaW9uIGZvciB0aGUgYGBzZWxmLl9mbGFncyhyKWBgIG1ldGhvZC4KKyAKK0BAIC0yNzQ1 LDcgKzI3NDUsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgICAgIFggPSBuZXdYCisgICAgICAgICByZXR1cm4gbmV3ZmxhZ3MKKyAKKy0gICAgY3BkZWYg X2ZsYWdzKHNlbGYsIHIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmxhZ3Moc2VsZiwgcik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlIHJhbmstYGByYGAgZmxhdHMsIHdpdGggZXh0 cmEgaW5mb3JtYXRpb24gZm9yIG1vcmUgc3BlZWQuCisgCitAQCAtMjc4Myw3ICsyNzgzLDcgQEAg Y2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIGZsYWdzID0gc2Vs Zi5fZXh0ZW5kX2ZsYWdzKGZsYWdzKQorICAgICAgICAgcmV0dXJuIGZsYWdzCisgCistICAgIGNw ZGVmIGZsYXRzKHNlbGYsIHIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmbGF0cyhzZWxmLCByKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29sbGVjdGlvbiBvZiBmbGF0cyBv ZiB0aGUgbWF0cm9pZCBvZiBzcGVjaWZpZWQgcmFuay4KKyAKK0BAIC0yODEyLDcgKzI4MTIsNyBA QCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICByZXR1cm4gU2V0U3lz dGVtKGxpc3Qoc2VsZi5ncm91bmRzZXQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN1 YnNldHM9W2ZbMF0gZm9yIGYgaW4gc2VsZi5fZmxhZ3MocildKQorIAorLSAgICBjcGRlZiBjb2Zs YXRzKHNlbGYsIHIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2ZsYXRzKHNlbGYsIHIpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIGNvZmxhdHMgb2Yg dGhlIG1hdHJvaWQgb2Ygc3BlY2lmaWVkIGNvcmFuay4KKyAKK0BAIC0yODU1LDcgKzI4NTUsNyBA QCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgIGZvciBYIGlu IHNlbGYuZmxhdHMoaSldCisgICAgICAgICByZXR1cm4gTGF0dGljZVBvc2V0KChGLCBsYW1iZGEg eCwgeTogeCA8IHkpKQorIAorLSAgICBjcGRlZiBoeXBlcnBsYW5lcyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgaHlwZXJwbGFuZXMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgc2V0IG9mIGh5cGVycGxhbmVzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTI4Nzgs NyArMjg3OCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuZmxhdHMoc2VsZi5mdWxsX3JhbmsoKSAtIDEpCisgCist ICAgIGNwZGVmIGZfdmVjdG9yKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmX3ZlY3Rvcihz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGZgLXZlY3RvciBvZiB0 aGUgbWF0cm9pZC4KKyAKK0BAIC0yOTAzLDcgKzI5MDMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQo U2FnZU9iamVjdCk6CisgICAgICAgICAgICAgZl92ZWMuYXBwZW5kKGxlbihmbGFncykpCisgICAg ICAgICByZXR1cm4gZl92ZWMKKyAKKy0gICAgY3BkZWYgYnJva2VuX2NpcmN1aXRzKHNlbGYsIG9y ZGVyaW5nPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBicm9rZW5fY2lyY3VpdHMoc2VsZiwg b3JkZXJpbmc9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qg b2YgYnJva2VuIGNpcmN1aXRzIG9mIGBgc2VsZmBgLgorIAorQEAgLTI5NDUsNyArMjk0NSw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgICAgIGJy ZWFrCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KHJldCkKKyAKKy0gICAgY3BkZWYgbm9fYnJv a2VuX2NpcmN1aXRzX3NldHMoc2VsZiwgb3JkZXJpbmc9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIG5vX2Jyb2tlbl9jaXJjdWl0c19zZXRzKHNlbGYsIG9yZGVyaW5nPU5vbmUpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBubyBicm9rZW4gY2lyY3VpdHMgKE5CQykgc2V0 cyBvZiBgYHNlbGZgYC4KKyAKK0BAIC0zMTgzLDcgKzMxODMsNyBAQCBjZGVmIGNsYXNzIE1hdHJv aWQoU2FnZU9iamVjdCk6CisgCisgICAgICMgaXNvbW9ycGhpc20gYW5kIGVxdWFsaXR5CisgCist ICAgIGNwZGVmIGlzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNh dGU9RmFsc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgVGVzdCBtYXRyb2lkIGlzb21vcnBo aXNtLgorIAorQEAgLTMyMjcsNyArMzIyNyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2Jq ZWN0KToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImNhbiBvbmx5IHRlc3QgZm9yIGlz b21vcnBoaXNtIGJldHdlZW4gbWF0cm9pZHMuIikKKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19p c29tb3JwaGljKG90aGVyLCBjZXJ0aWZpY2F0ZSkKKyAKKy0gICAgY3BkZWYgX2lzX2lzb21vcnBo aWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAg ICIiIgorICAgICAgICAgVGVzdCBpZiBgYHNlbGZgYCBpcyBpc29tb3JwaGljIHRvIGBgb3RoZXJg YC4KKyAKK0BAIC0zMjY3LDcgKzMyNjcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgIHJldHVybiAoc2VsZi5mdWxs X3JhbmsoKSA9PSBvdGhlci5mdWxsX3JhbmsoKSBhbmQgc2VsZi5ub25iYXNlcygpLl9pc29tb3Jw aGlzbShvdGhlci5ub25iYXNlcygpKSBpcyBub3QgTm9uZSkKKyAKKy0gICAgY3BkZWYgaXNvbW9y cGhpc20oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc29tb3JwaGlzbShzZWxm LCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBtYXRyb2lkIGlzb21v cnBoaXNtLgorIAorQEAgLTMzMDYsNyArMzMwNiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdl T2JqZWN0KToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImNhbiBvbmx5IGdpdmUgaXNv bW9ycGhpc20gYmV0d2VlbiBtYXRyb2lkcy4iKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzb21v cnBoaXNtKG90aGVyKQorIAorLSAgICBjcGRlZiBfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gaXNvbW9ycGhpc20gZnJvbSBgYHNlbGZgYCB0byBgYG90aGVy YGAsIGlmIHN1Y2ggYW4gaXNvbW9ycGhpc20gZXhpc3RzLgorIAorQEAgLTMzMzksNyArMzMzOSw3 IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgZXF1YWxzKHNlbGYsIG90aGVyKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZXF1YWxzKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgor ICAgICAgICAgVGVzdCBmb3IgbWF0cm9pZCBlcXVhbGl0eS4KKyAKK0BAIC0zNDI2LDcgKzM0MjYs NyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBtb3JwaGlzbSA9 IHtlOiBlIGZvciBlIGluIHNlbGYuZ3JvdW5kc2V0KCl9CisgICAgICAgICByZXR1cm4gc2VsZi5f aXNfaXNvbW9ycGhpc20ob3RoZXIsIG1vcnBoaXNtKQorIAorLSAgICBjcGRlZiBpc19pc29tb3Jw aGlzbShzZWxmLCBvdGhlciwgbW9ycGhpc20pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19pc29t b3JwaGlzbShzZWxmLCBvdGhlciwgbW9ycGhpc20pOgorICAgICAgICAgciIiIgorICAgICAgICAg VGVzdCBpZiBhIHByb3ZpZGVkIG1vcnBoaXNtIGluZHVjZXMgYSBtYXRyb2lkIGlzb21vcnBoaXNt LgorIAorQEAgLTM1NjUsNyArMzU2NSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0 KToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19p c29tb3JwaGlzbShvdGhlciwgbWYpCisgCistICAgIGNwZGVmIF9pc19pc29tb3JwaGlzbShzZWxm LCBvdGhlciwgbW9ycGhpc20pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpc20o c2VsZiwgb3RoZXIsIG1vcnBoaXNtKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFZlcnNpb24g b2YgOm1ldGg6YGlzX2lzb21vcnBoaXNtYCB0aGF0IGRvZXMgbm8gdHlwZSBjaGVja2luZy4KKyAK K0BAIC0zNjg0LDcgKzM2ODQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg CisgICAgICMgTWlub3JzIGFuZCBkdWFsaXR5CisgCistICAgIGNwZGVmIG1pbm9yKHNlbGYsIGNv bnRyYWN0aW9ucz1Ob25lLCBkZWxldGlvbnM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG1p bm9yKHNlbGYsIGNvbnRyYWN0aW9ucz1Ob25lLCBkZWxldGlvbnM9Tm9uZSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1pbm9yIG9mIGBgc2VsZmBgIG9idGFpbmVkIGJ5IGNv bnRyYWN0aW5nLCByZXNwZWN0aXZlbHkKKyAgICAgICAgIGRlbGV0aW5nLCB0aGUgZWxlbWVudChz KSBvZiBgYGNvbnRyYWN0aW9uc2BgIGFuZCBgYGRlbGV0aW9uc2BgLgorQEAgLTM4MDAsNyArMzgw MCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIGNvbnNldCwg ZGVsc2V0ID0gc2FuaXRpemVfY29udHJhY3Rpb25zX2RlbGV0aW9ucyhzZWxmLCBjb250cmFjdGlv bnMsIGRlbGV0aW9ucykKKyAgICAgICAgIHJldHVybiBzZWxmLl9taW5vcihjb25zZXQsIGRlbHNl dCkKKyAKKy0gICAgY3BkZWYgY29udHJhY3Qoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IGNvbnRyYWN0KHNlbGYsIFgpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29udHJhY3QgZWxl bWVudHMuCisgCitAQCAtMzg4MCw3ICszODgwLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VP YmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5jb250cmFjdChYKQor IAorLSAgICBjcGRlZiBkZWxldGUoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRlbGV0 ZShzZWxmLCBYKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERlbGV0ZSBlbGVtZW50cy4KKyAK K0BAIC0zOTQ2LDcgKzM5NDYsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm1pbm9yKGRlbGV0aW9ucz1YKQorIAor LSAgICBjcGRlZiBfYmFja3NsYXNoXyhzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Jh Y2tzbGFzaF8oc2VsZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBTaG9ydGhhbmQgZm9y IGBgc2VsZi5kZWxldGUoWClgYC4KKyAKK0BAIC0zOTYzLDcgKzM5NjMsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBkZXByZWNhdGlvbigzNjM5NCwgJ3RoZSBi YWNrc2xhc2ggb3BlcmF0b3IgaGFzIGJlZW4gZGVwcmVjYXRlZDsgdXNlIE0uZGVsZXRlKFgpIGlu c3RlYWQnKQorICAgICAgICAgcmV0dXJuIHNlbGYuZGVsZXRlKFgpCisgCistICAgIGNwZGVmIGR1 YWwoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGR1YWwoc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGR1YWwgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMzk5Miw3 ICszOTkyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZnJv bSBzYWdlLm1hdHJvaWRzIGltcG9ydCBkdWFsX21hdHJvaWQKKyAgICAgICAgIHJldHVybiBkdWFs X21hdHJvaWQuRHVhbE1hdHJvaWQoc2VsZikKKyAKKy0gICAgY3BkZWYgdHJ1bmNhdGlvbihzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdHJ1bmNhdGlvbihzZWxmKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIGEgcmFuay0xIHRydW5jYXRpb24gb2YgdGhlIG1hdHJvaWQuCisgCitA QCAtNDAyMyw3ICs0MDIzLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAg ICAgICAgcmV0dXJuIHNlbGYuX2V4dGVuc2lvbihsLCBbXSkuX21pbm9yKGNvbnRyYWN0aW9ucz1m cm96ZW5zZXQoW2xdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZWxldGlvbnM9ZnJvemVuc2V0KFtdKSkKKyAKKy0gICAgY3BkZWYgaGFzX21pbm9yKHNl bGYsIE4sIGJpbnQgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBoYXNf bWlub3Ioc2VsZiwgTiwgYmludCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIENoZWNrIGlmIGBgc2VsZmBgIGhhcyBhIG1pbm9yIGlzb21vcnBoaWMgdG8gYGBOYGAs CisgICAgICAgICBhbmQgb3B0aW9uYWxseSByZXR1cm4gZnJvemVuc2V0cyBgYFhgYCBhbmQgYGBZ YGAgc28gdGhhdCBgYE5gYCBpcyBpc29tb3JwaGljIHRvIGBgc2VsZi5taW5vcihYLCBZKWBgLgor QEAgLTQwNzAsNyArNDA3MCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJOIG11c3QgYmUgYSBtYXRyb2lkLiIpCisgICAg ICAgICByZXR1cm4gc2VsZi5faGFzX21pbm9yKE4sIGNlcnRpZmljYXRlKQorIAorLSAgICBjcGRl ZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzPU5vbmUsIGNlcnRpZmljYXRlPUZh bHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaGFzX2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJs aW5lcz1Ob25lLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBU ZXN0IGlmIHRoZSBtYXRyb2lkIGhhcyBhIGBVX3syLCBrfWAtbWlub3IuCisgCitAQCAtNDE0MCw3 ICs0MTQwLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg ICMgZ2V0IHNpbXBsaWZpZWQgYXdheSBhbnl3YXkuCisgICAgICAgICByZXR1cm4gc2VsZi5faGFz X2xpbmVfbWlub3IoaywgaHlwZXJsaW5lcywgY2VydGlmaWNhdGUpCisgCistICAgIGNwZGVmIF9o YXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9oYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzLCBj ZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBt YXRyb2lkIGhhcyBhIGBVX3syLCBrfWAtbWlub3IuCisgCitAQCAtNDE4Nyw3ICs0MTg3LDcgQEAg Y2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorIAorICAgICAjIGV4dGVuc2lvbnMKKyAK Ky0gICAgY3BkZWYgZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQ9Tm9uZSwgc3Vic2V0cz1Ob25lKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQ9Tm9uZSwgc3Vic2V0 cz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBleHRlbnNpb24gb2Yg dGhlIG1hdHJvaWQuCisgCitAQCAtNDI2NCw3ICs0MjY0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIGh5cGVycGxhbmVzID0gW0ggZm9yIEggaW4gc2Vs Zi5tb2R1bGFyX2N1dChzdWJzZXRzKSBpZiBzZWxmLl9yYW5rKEgpID09IHJdCisgICAgICAgICBy ZXR1cm4gc2VsZi5fZXh0ZW5zaW9uKGVsZW1lbnQsIGh5cGVycGxhbmVzKQorIAorLSAgICBjcGRl ZiBjb2V4dGVuc2lvbihzZWxmLCBlbGVtZW50PU5vbmUsIHN1YnNldHM9Tm9uZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGNvZXh0ZW5zaW9uKHNlbGYsIGVsZW1lbnQ9Tm9uZSwgc3Vic2V0cz1Ob25l KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGNvZXh0ZW5zaW9uIG9mIHRoZSBt YXRyb2lkLgorIAorQEAgLTQzMjgsNyArNDMyOCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdl T2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuZHVhbCgpLmV4dGVu c2lvbihlbGVtZW50LCBzdWJzZXRzKS5kdWFsKCkKKyAKKy0gICAgY3BkZWYgbW9kdWxhcl9jdXQo c2VsZiwgc3Vic2V0cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIG1vZHVsYXJfY3V0KHNlbGYsIHN1 YnNldHMpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgbW9kdWxhciBjdXQg Z2VuZXJhdGVkIGJ5IGBgc3Vic2V0c2BgLgorIAorQEAgLTQ0MTgsNyArNDQxOCw3IEBAIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBmaW5hbF9saXN0LmFkZChG KQorICAgICAgICAgcmV0dXJuIGZpbmFsX2xpc3QKKyAKKy0gICAgY3BkZWYgbGluZWFyX3N1YmNs YXNzZXMoc2VsZiwgbGluZV9sZW5ndGg9Tm9uZSwgc3Vic2V0cz1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbGluZWFyX3N1YmNsYXNzZXMoc2VsZiwgbGluZV9sZW5ndGg9Tm9uZSwgc3Vic2V0 cz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBpdGVyYWJsZSBzZXQg b2YgbGluZWFyIHN1YmNsYXNzZXMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtNDQ4Nyw3ICs0NDg3 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZnJvbSBzYWdl Lm1hdHJvaWRzIGltcG9ydCBleHRlbnNpb24KKyAgICAgICAgIHJldHVybiBleHRlbnNpb24uTGlu ZWFyU3ViY2xhc3NlcyhzZWxmLCBsaW5lX2xlbmd0aD1saW5lX2xlbmd0aCwgc3Vic2V0cz1zdWJz ZXRzKQorIAorLSAgICBjcGRlZiBleHRlbnNpb25zKHNlbGYsIGVsZW1lbnQ9Tm9uZSwgbGluZV9s ZW5ndGg9Tm9uZSwgc3Vic2V0cz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZXh0ZW5zaW9u cyhzZWxmLCBlbGVtZW50PU5vbmUsIGxpbmVfbGVuZ3RoPU5vbmUsIHN1YnNldHM9Tm9uZSk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYW4gaXRlcmFibGUgc2V0IG9mIHNpbmdsZS1l bGVtZW50IGV4dGVuc2lvbnMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtNDYxNiw3ICs0NjE2LDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorIAorICAgICAjIGNvbm5lY3Rpdml0 eQorIAorLSAgICBjcGRlZiBzaW1wbGlmeShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2lt cGxpZnkoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHNpbXBsaWZp Y2F0aW9uIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTQ2NTQsNyArNDY1NCw3IEBAIGNkZWYgY2xh c3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIHJldHVybiBzZWxmLl9taW5vcihjb250 cmFjdGlvbnM9ZnJvemVuc2V0KFtdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxl dGlvbnM9c2VsZi5ncm91bmRzZXQoKS5kaWZmZXJlbmNlKHJlcykpCisgCistICAgIGNwZGVmIGNv c2ltcGxpZnkoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvc2ltcGxpZnkoc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvc2ltcGxpZmljYXRpb24gb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtNDY5Miw3ICs0NjkyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX21pbm9yKGNvbnRyYWN0aW9ucz1zZWxm Lmdyb3VuZHNldCgpLmRpZmZlcmVuY2UocmVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZWxldGlvbnM9ZnJvemVuc2V0KFtdKSkKKyAKKy0gICAgY3BkZWYgaXNfc2ltcGxlKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19zaW1wbGUoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFRlc3QgaWYgdGhlIG1hdHJvaWQgaXMgc2ltcGxlLgorIAorQEAgLTQ3MjUsNyArNDcy NSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAg cmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBpc19jb3Np bXBsZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfY29zaW1wbGUoc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBtYXRyb2lkIGlzIGNvc2ltcGxlLgorIAor QEAgLTQ3NjEsNyArNDc2MSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAg ICBjcGRlZiBjb21wb25lbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb21wb25lbnRz KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIHRoZSBjb21w b25lbnRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTQ4MDIsNyArNDgwMiw3IEBAIGNkZWYgY2xh c3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBjb21wb25lbnRzID0gY29tcG9u ZW50czIKKyAgICAgICAgIHJldHVybiBjb21wb25lbnRzCisgCistICAgIGNwZGVmIGlzX2Nvbm5l Y3RlZChzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2Nv bm5lY3RlZChzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBUZXN0IGlmIHRoZSBtYXRyb2lkIGlzIGNvbm5lY3RlZC4KKyAKK0BAIC00ODQxLDcgKzQ4NDEs NyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgCistICAgIGNwZGVmIGNvbm5lY3Rpdml0 eShzZWxmLCBTLCBUPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb25uZWN0aXZpdHkoc2Vs ZiwgUywgVD1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEV2YWx1YXRlIHRoZSBjb25u ZWN0aXZpdHkgZnVuY3Rpb24gb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtNDg4Miw3ICs0ODgyLDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoIlMgYW5kIFQgYXJlIG5vdCBkaXNqb2ludCIpCisgICAgICAgICByZXR1cm4gbGVu KHNlbGYuX2xpbmsoUywgVClbMF0pIC0gc2VsZi5mdWxsX3JhbmsoKSArIHNlbGYuX3JhbmsoUykg KyBzZWxmLl9yYW5rKFQpCisgCistICAgIGNwZGVmIF9jb25uZWN0aXZpdHkoc2VsZiwgUywgVCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb25uZWN0aXZpdHkoc2VsZiwgUywgVCk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvbm5lY3Rpdml0eSBvZiB0d28gc3Vic2V0cyBg YFNgYCBhbmQgYGBUYGAgaW4gdGhlIG1hdHJvaWQuCisgCitAQCAtNDkyMSw3ICs0OTIxLDcgQEAg Y2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gbGVuKHNlbGYuX2xpbmsoUyxUKVswXSkgLSBzZWxmLmZ1bGxfcmFuaygpICsgc2VsZi5y YW5rKFMpICsgc2VsZi5yYW5rKFQpCisgCistICAgIGNwZGVmIGxpbmsoc2VsZiwgUywgVCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGxpbmsoc2VsZiwgUywgVCk6CisgICAgICAgICByIiIiCisgICAg ICAgICBHaXZlbiBkaXNqb2ludCBzdWJzZXRzIGBTYCBhbmQgYFRgLCByZXR1cm4gYSBjb25uZWN0 b3IgYElgIGFuZCBhIHNlcGFyYXRpb24gYFhgLAorICAgICAgICAgd2hpY2ggYXJlIG9wdGltYWwg ZHVhbCBzb2x1dGlvbnMgaW4gVHV0dGUncyBMaW5raW5nIFRoZW9yZW06CitAQCAtNDk2OCw3ICs0 OTY4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoIlMgYW5kIFQgYXJlIG5vdCBkaXNqb2ludCIpCisgICAgICAgICByZXR1 cm4gc2VsZi5fbGluayhTLCBUKQorIAorLSAgICBjcGRlZiBfbGluayhzZWxmLCBTLCBUKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2xpbmsoc2VsZiwgUywgVCk6CisgICAgICAgICByIiIiCisgICAg ICAgICBHaXZlbiBkaXNqb2ludCBzdWJzZXRzIGBTYCBhbmQgYFRgLCByZXR1cm4gYSBjb25uZWN0 b3IgYElgIGFuZCBhIHNlcGFyYXRpb24gYFhgLAorICAgICAgICAgd2hpY2ggYXJlIG9wdGltYWwg ZHVhbCBzb2x1dGlvbnMgaW4gVHV0dGUncyBMaW5raW5nIFRoZW9yZW06CitAQCAtNTA1MSw3ICs1 MDUxLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAg ICBJID0gSS5zeW1tZXRyaWNfZGlmZmVyZW5jZShwYXRoKQorICAgICAgICAgcmV0dXJuIGZyb3pl bnNldChJKSwgZnJvemVuc2V0KHByZWRlY2Vzc29yKXxTCisgCistICAgIGNwZGVmIGlzX2tjb25u ZWN0ZWQoc2VsZiwgaywgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBp c19rY29ubmVjdGVkKHNlbGYsIGssIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgbWF0cm9pZCBpcyBga2AtY29ubmVjdGVk LCBgYEZhbHNlYGAgb3RoZXJ3aXNlLiAgSXQgY2FuCisgICAgICAgICBvcHRpb25hbGx5IHJldHVy biBhIHNlcGFyYXRvciBhcyBhIHdpdG5lc3MuCitAQCAtNTE3Nyw3ICs1MTc3LDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBUcnVlLCBOb25l CisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBpc18zY29ubmVjdGVkKHNlbGYs IGNlcnRpZmljYXRlPUZhbHNlLCBhbGdvcml0aG09Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IGlzXzNjb25uZWN0ZWQoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2UsIGFsZ29yaXRobT1Ob25lKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgbWF0cm9pZCBp cyAzLWNvbm5lY3RlZCwgYGBGYWxzZWBgIG90aGVyd2lzZS4gSXQgY2FuCisgICAgICAgICBvcHRp b25hbGx5IHJldHVybiBhIHNlcGFyYXRvciBhcyBhIHdpdG5lc3MuCitAQCAtNTI1Nyw3ICs1MjU3 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJldHVy biBzZWxmLl9pc18zY29ubmVjdGVkX3NoaWZ0aW5nKGNlcnRpZmljYXRlKQorICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigiTm90IGEgdmFsaWQgYWxnb3JpdGhtLiIpCisgCistICAgIGNwZGVmIGlz XzRjb25uZWN0ZWQoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2UsIGFsZ29yaXRobT1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgaXNfNGNvbm5lY3RlZChzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSwg YWxnb3JpdGhtPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBg IGlmIHRoZSBtYXRyb2lkIGlzIDQtY29ubmVjdGVkLCBgYEZhbHNlYGAgb3RoZXJ3aXNlLiBJdCBj YW4KKyAgICAgICAgIG9wdGlvbmFsbHkgcmV0dXJuIGEgc2VwYXJhdG9yIGFzIGEgd2l0bmVzcy4K K0BAIC01MzA5LDcgKzUzMDksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lzXzRjb25uZWN0ZWRfc2hpZnRpbmcoY2VydGlmaWNh dGUpCisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJOb3QgYSB2YWxpZCBhbGdvcml0aG0uIikK KyAKKy0gICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRfQ0Uoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2Up IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9DRShzZWxmLCBjZXJ0aWZpY2F0 ZT1GYWxzZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhl IG1hdHJvaWQgaXMgMy1jb25uZWN0ZWQsIGBgRmFsc2VgYCBvdGhlcndpc2UuCisgCitAQCAtNTQz Nyw3ICs1NDM3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfaXNfM2Nvbm5l Y3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9pc18zY29ubmVjdGVkX3NoaWZ0aW5nKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgbWF0cm9pZCBpcyAz LWNvbm5lY3RlZCwgYGBGYWxzZWBgIG90aGVyd2lzZS4gSXQgY2FuCisgICAgICAgICBvcHRpb25h bGx5IHJldHVybiBhIHNlcGFyYXRvciBhcyBhIHdpdG5lc3MuCitAQCAtNTUxNSw3ICs1NTE1LDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBU cnVlLCBOb25lCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfaXNfNGNvbm5l Y3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9pc180Y29ubmVjdGVkX3NoaWZ0aW5nKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgbWF0cm9pZCBpcyA0 LWNvbm5lY3RlZCwgYGBGYWxzZWBgIG90aGVyd2lzZS4gSXQgY2FuCisgICAgICAgICBvcHRpb25h bGx5IHJldHVybiBhIHNlcGFyYXRvciBhcyBhIHdpdG5lc3MuCitAQCAtNTYxOSw3ICs1NjE5LDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBU cnVlLCBOb25lCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfc2hpZnRpbmdf YWxsKHNlbGYsIFgsIFBfcm93cywgUF9jb2xzLCBRX3Jvd3MsIFFfY29scywgbSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9zaGlmdGluZ19hbGwoc2VsZiwgWCwgUF9yb3dzLCBQX2NvbHMsIFFfcm93 cywgUV9jb2xzLCBtKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVuIGEgYmFzaXMgYGBY YGAuIElmIHRoZSBzdWJtYXRyaXggb2YgdGhlIHBhcnRpYWwgbWF0cml4IHVzaW5nIHJvd3MKKyAg ICAgICAgIGBQX3Jvd3NgIGNvbHVtbnMgYFBfY29sc2AgYW5kIHN1Ym1hdHJpeCB1c2luZyByb3dz IGBRX3Jvd3NgIGNvbHVtbnMKK0BAIC01NjgwLDcgKzU2ODAsNyBAQCBjZGVmIGNsYXNzIE1hdHJv aWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlLCBjZXJ0CisgICAg ICAgICByZXR1cm4gRmFsc2UsIE5vbmUKKyAKKy0gICAgY3BkZWYgX3NoaWZ0aW5nKHNlbGYsIFgs IFhfMSwgWV8yLCBYXzIsIFlfMSwgbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zaGlmdGluZyhz ZWxmLCBYLCBYXzEsIFlfMiwgWF8yLCBZXzEsIG0pOgorICAgICAgICAgciIiIgorICAgICAgICAg R2l2ZW4gYSBiYXNpcyBgYFhgYC4gSWYgdGhlIHN1Ym1hdHJpeCBvZiB0aGUgcGFydGlhbCBtYXRy aXggdXNpbmcgcm93cworICAgICAgICAgYFhfMWAgY29sdW1ucyBgWV8yYCBhbmQgc3VibWF0cml4 IHVzaW5nIHJvd3MgYFhfMmAgY29sdW1ucworQEAgLTU3NzIsNyArNTc3Miw3IEBAIGNkZWYgY2xh c3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIE5vbmUK KyAgICAgICAgIHJldHVybiBUcnVlLCBTXzIKKyAKKy0gICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRf QkMoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfM2Nv bm5lY3RlZF9CQyhzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIG1hdHJvaWQgaXMgMy1jb25uZWN0ZWQsIGBgRmFs c2VgYCBvdGhlcndpc2UuCisgCitAQCAtNTgyOCw3ICs1ODI4LDcgQEAgY2RlZiBjbGFzcyBNYXRy b2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZnVuZF9jb2NpcmN1aXRzID0gc2V0KFtzZWxmLl9m dW5kYW1lbnRhbF9jb2NpcmN1aXQoYmFzaXMsIGUpIGZvciBlIGluIGJhc2lzXSkKKyAgICAgICAg IHJldHVybiBzZWxmLl9pc18zY29ubmVjdGVkX0JDX3JlY3Vyc2lvbihzZWxmLmJhc2lzKCksIGZ1 bmRfY29jaXJjdWl0cykKKyAKKy0gICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRfQkNfcmVjdXJzaW9u KHNlbGYsIGJhc2lzLCBmdW5kX2NvY2lyY3VpdHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNf M2Nvbm5lY3RlZF9CQ19yZWN1cnNpb24oc2VsZiwgYmFzaXMsIGZ1bmRfY29jaXJjdWl0cyk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBBIGhlbHBlciBmdW5jdGlvbiBmb3IgYGBfaXNfM2Nvbm5l Y3RlZF9CQ2BgLiBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoZQorICAgICAgICAgbWF0cm9pZCBpcyBi b3RoIHNpbXBsZSBhbmQgY29zaW1wbGUuIFVuZGVyIHRoZSBhc3N1bXB0aW9uLCBpdCByZXR1cm4K K0BAIC01OTI2LDcgKzU5MjYsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0g ICAgY3BkZWYgaXNfcGF2aW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19wYXZpbmco c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBpZiBgYHNlbGZgYCBpcyBwYXZp bmcuCisgCitAQCAtNTk0Nyw3ICs1OTQ3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmpl Y3QpOgorICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBUcnVl CisgCistICAgIGNwZGVmIGlzX3NwYXJzZV9wYXZpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGlzX3NwYXJzZV9wYXZpbmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biBpZiBgYHNlbGZgYCBpcyBzcGFyc2UtcGF2aW5nLgorIAorQEAgLTU5NzUsNyArNTk3NSw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgcmV0dXJu IEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBnaXJ0aChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZ2lydGgoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGdpcnRoIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTYwMDUsNyArNjAwNSw3 IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAKKyAgICAgIyByZXByZXNlbnRh YmlsaXR5CisgCistICAgIGNwZGVmIF9sb2NhbF9iaW5hcnlfbWF0cm9pZChzZWxmLCBiYXNpcz1O b25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xvY2FsX2JpbmFyeV9tYXRyb2lkKHNlbGYsIGJh c2lzPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgYmluYXJ5IG1hdHJv aWQgYE1gIHNvIHRoYXQgcmVsYXRpdmUgdG8gYSBmaXhlZCBiYXNpcyBgQmAsCisgICAgICAgICBg WGAgaXMgYSBiYXNpcyBvZiBgYHNlbGZgYCBpZiBhbmQgb25seSBpZiBgWGAgaXMgYSBiYXNpcyBv ZiBgTWAKK0BAIC02MDQ2LDcgKzYwNDYsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICBmcm9tIHNhZ2UubWF0cm9pZHMubGluZWFyX21hdHJvaWQgaW1wb3J0IEJp bmFyeU1hdHJvaWQKKyAgICAgICAgIHJldHVybiBCaW5hcnlNYXRyb2lkKGdyb3VuZHNldD1FLCBt YXRyaXg9QSwgYmFzaXM9YmFzaXMsIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbj1GYWxzZSkK KyAKKy0gICAgY3BkZWYgYmluYXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xLCB2 ZXJpZnkgPSBUcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmluYXJ5X21hdHJvaWQoc2VsZiwg cmFuZG9taXplZF90ZXN0cz0xLCB2ZXJpZnkgPSBUcnVlKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiBhIGJpbmFyeSBtYXRyb2lkIHJlcHJlc2VudGluZyBgYHNlbGZgYCwgaWYgc3Vj aCBhCisgICAgICAgICByZXByZXNlbnRhdGlvbiBleGlzdHMuCitAQCAtNjEwMyw3ICs2MTAzLDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBpc19iaW5hcnkoc2VsZiwgcmFuZG9t aXplZF90ZXN0cz0xKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfYmluYXJ5KHNlbGYsIHJhbmRv bWl6ZWRfdGVzdHM9MSk6CisgICAgICAgICByIiIiCisgICAgICAgICBEZWNpZGUgaWYgYGBzZWxm YGAgaXMgYSBiaW5hcnkgbWF0cm9pZC4KKyAKK0BAIC02MTQwLDcgKzYxNDAsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLmJpbmFyeV9tYXRyb2lkKHJhbmRvbWl6ZWRfdGVzdHM9cmFuZG9taXplZF90ZXN0cywgdmVy aWZ5PVRydWUpIGlzIG5vdCBOb25lCisgCistICAgIGNwZGVmIF9sb2NhbF90ZXJuYXJ5X21hdHJv aWQoc2VsZiwgYmFzaXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sb2NhbF90ZXJuYXJ5 X21hdHJvaWQoc2VsZiwgYmFzaXM9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gYSB0ZXJuYXJ5IG1hdHJvaWQgYE1gIHNvIHRoYXQgaWYgYGBzZWxmYGAgaXMgdGVybmFyeSwg dGhlbiBgTWAgaXMgZmllbGQKKyAgICAgICAgIGlzb21vcnBoaWMgdG8gYGBzZWxmYGAuCitAQCAt NjIzMSw3ICs2MjMxLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAg ICAgZnJvbSBzYWdlLm1hdHJvaWRzLmxpbmVhcl9tYXRyb2lkIGltcG9ydCBUZXJuYXJ5TWF0cm9p ZAorICAgICAgICAgcmV0dXJuIFRlcm5hcnlNYXRyb2lkKGdyb3VuZHNldD1FLCBtYXRyaXg9QSwg YmFzaXM9YmFzaXMsIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbj1GYWxzZSkKKyAKKy0gICAg Y3BkZWYgdGVybmFyeV9tYXRyb2lkKHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9MSwgdmVyaWZ5ID0g VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHRlcm5hcnlfbWF0cm9pZChzZWxmLCByYW5kb21p emVkX3Rlc3RzPTEsIHZlcmlmeSA9IFRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIGEgdGVybmFyeSBtYXRyb2lkIHJlcHJlc2VudGluZyBgYHNlbGZgYCwgaWYgc3VjaCBhCisg ICAgICAgICByZXByZXNlbnRhdGlvbiBleGlzdHMuCitAQCAtNjI4OCw3ICs2Mjg4LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBpc190ZXJuYXJ5KHNlbGYsIHJhbmRvbWl6ZWRf dGVzdHM9MSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX3Rlcm5hcnkoc2VsZiwgcmFuZG9taXpl ZF90ZXN0cz0xKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERlY2lkZSBpZiBgYHNlbGZgYCBp cyBhIHRlcm5hcnkgbWF0cm9pZC4KKyAKK0BAIC02MzI3LDcgKzYzMjcsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgCisgICAgICMgbWF0cm9pZCBrLWNsb3NlZAorIAorLSAg ICBjcGRlZiBpc19rX2Nsb3NlZChzZWxmLCBpbnQgaykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlz X2tfY2xvc2VkKHNlbGYsIGludCBrKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBp ZiBgYHNlbGZgYCBpcyBhIGBga2BgLWNsb3NlZCBtYXRyb2lkLgorIAorQEAgLTYzNjQsNyArNjM2 NCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAKKyAgICAgIyBtYXRyb2lk IGNob3JkYWxpdHkKKyAKKy0gICAgY3BkZWYgX2lzX2NpcmN1aXRfY2hvcmRhbChzZWxmLCBmcm96 ZW5zZXQgQywgYmludCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9p c19jaXJjdWl0X2Nob3JkYWwoc2VsZiwgZnJvemVuc2V0IEMsIGJpbnQgY2VydGlmaWNhdGU9RmFs c2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBDaGVjayBpZiB0aGUgY2lyY3VpdCBgYENgYCBo YXMgYSBjaG9yZC4KKyAKK0BAIC02NDEyLDcgKzY0MTIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQo U2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBOb25lCisgICAgICAgICBy ZXR1cm4gRmFsc2UKKyAKKy0gICAgY3BkZWYgaXNfY2lyY3VpdF9jaG9yZGFsKHNlbGYsIEMsIGJp bnQgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19jaXJjdWl0X2No b3JkYWwoc2VsZiwgQywgYmludCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBDaGVjayBpZiB0aGUgY2lyY3VpdCBgYENgYCBoYXMgYSBjaG9yZC4KKyAKK0BAIC02 NDU0LDcgKzY0NTQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW5wdXQgQyBpcyBub3QgYSBjaXJjdWl0IikKKyAgICAg ICAgIHJldHVybiBzZWxmLl9pc19jaXJjdWl0X2Nob3JkYWwoZnJvemVuc2V0KEMpLCBjZXJ0aWZp Y2F0ZSkKKyAKKy0gICAgY3BkZWYgaXNfY2hvcmRhbChzZWxmLCBrMT00LCBrMj1Ob25lLCBiaW50 IGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfY2hvcmRhbChzZWxm LCBrMT00LCBrMj1Ob25lLCBiaW50IGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiBpZiBhIG1hdHJvaWQgaXMgYGBbazEsIGsyXWBgLWNob3JkYWwuCisg CitAQCAtNjUwOSw3ICs2NTA5LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgor ICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBUcnVlCisgCist ICAgIGNwZGVmIGNob3JkYWxpdHkoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNob3JkYWxp dHkoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1pbmltYWwgYGtg IHN1Y2ggdGhhdCB0aGUgbWF0cm9pZCBgYE1gYCBpcyBga2AtY2hvcmRhbC4KKyAKK0BAIC02NTQx LDcgKzY1NDEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgCisgICAgICMg b3B0aW1pemF0aW9uCisgCistICAgIGNwZGVmIG1heF93ZWlnaHRfaW5kZXBlbmRlbnQoc2VsZiwg WD1Ob25lLCB3ZWlnaHRzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBtYXhfd2VpZ2h0X2lu ZGVwZW5kZW50KHNlbGYsIFg9Tm9uZSwgd2VpZ2h0cz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiBhIG1heGltdW0td2VpZ2h0IGluZGVwZW5kZW50IHNldCBjb250YWluZWQg aW4gYSBzdWJzZXQuCisgCitAQCAtNjYyOCw3ICs2NjI4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICByZXMuZGlzY2FyZChlKQorICAgICAgICAg cmV0dXJuIGZyb3plbnNldChyZXMpCisgCistICAgIGNwZGVmIG1heF93ZWlnaHRfY29pbmRlcGVu ZGVudChzZWxmLCBYPU5vbmUsIHdlaWdodHM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG1h eF93ZWlnaHRfY29pbmRlcGVuZGVudChzZWxmLCBYPU5vbmUsIHdlaWdodHM9Tm9uZSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBtYXhpbXVtLXdlaWdodCBjb2luZGVwZW5kZW50 IHNldCBjb250YWluZWQgaW4gYGBYYGAuCisgCitAQCAtNjcyMCw3ICs2NzIwLDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICByZXMuZGlzY2FyZChl KQorICAgICAgICAgcmV0dXJuIGZyb3plbnNldChyZXMpCisgCistICAgIGNwZGVmIGlzX21heF93 ZWlnaHRfaW5kZXBlbmRlbnRfZ2VuZXJpYyhzZWxmLCBYPU5vbmUsIHdlaWdodHM9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGlzX21heF93ZWlnaHRfaW5kZXBlbmRlbnRfZ2VuZXJpYyhzZWxm LCBYPU5vbmUsIHdlaWdodHM9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlm IG9ubHkgb25lIGJhc2lzIG9mIHRoZSBzdWJzZXQgYGBYYGAgaGFzIG1heGltYWwKKyAgICAgICAg IHdlaWdodC4KK0BAIC02ODY5LDcgKzY4NjksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9i amVjdCk6CisgICAgICAgICAgICAgICAgIGRlbCByZXNbLTFdCisgICAgICAgICByZXR1cm4gVHJ1 ZQorIAorLSAgICBjcGRlZiBpc19tYXhfd2VpZ2h0X2NvaW5kZXBlbmRlbnRfZ2VuZXJpYyhzZWxm LCBYPU5vbmUsIHdlaWdodHM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX21heF93ZWln aHRfY29pbmRlcGVuZGVudF9nZW5lcmljKHNlbGYsIFg9Tm9uZSwgd2VpZ2h0cz1Ob25lKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgb25seSBvbmUgY29iYXNpcyBvZiB0aGUgc3Vi c2V0IGBgWGBgIGhhcyBtYXhpbWFsCisgICAgICAgICB3ZWlnaHQuCitAQCAtNzAyNiw3ICs3MDI2 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBk ZWwgcmVzWy0xXQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgaW50ZXJzZWN0 aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbnRl cnNlY3Rpb24oc2VsZiwgb3RoZXIsIHdlaWdodHM9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gYSBtYXhpbXVtLXdlaWdodCBjb21tb24gaW5kZXBlbmRlbnQgc2V0LgorIAor QEAgLTcwODQsNyArNzA4NCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigidGhlIHdlaWdodHMgYXJndW1lbnQg ZG9lcyBub3Qgc2VlbSB0byBiZSBhIGNvbGxlY3Rpb24gb2Ygd2VpZ2h0cyBmb3IgdGhlIGdyb3Vu ZHNldC4iKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2ludGVyc2VjdGlvbihvdGhlciwgd3QpCisg CistICAgIGNwZGVmIF9pbnRlcnNlY3Rpb24oc2VsZiwgb3RoZXIsIHdlaWdodHMpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfaW50ZXJzZWN0aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG1heGltdW0td2VpZ2h0IGNvbW1vbiBpbmRlcGVu ZGVudC4KKyAKK0BAIC03MTI0LDcgKzcxMjQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9i amVjdCk6CisgICAgICAgICAgICAgVSA9IHNlbGYuX2ludGVyc2VjdGlvbl9hdWdtZW50YXRpb24o b3RoZXIsIHdlaWdodHMsIFkpCisgICAgICAgICByZXR1cm4gWQorIAorLSAgICBjcGRlZiBfaW50 ZXJzZWN0aW9uX2F1Z21lbnRhdGlvbihzZWxmLCBvdGhlciwgd2VpZ2h0cywgWSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9pbnRlcnNlY3Rpb25fYXVnbWVudGF0aW9uKHNlbGYsIG90aGVyLCB3ZWln aHRzLCBZKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBhdWdtZW50aW5nIHNl dCBmb3IgdGhlIG1hdHJvaWQgaW50ZXJzZWN0aW9uIHByb2JsZW0uCisgCitAQCAtNzIxNSw3ICs3 MjE1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAg ICBwYXRoLmFkZCh1KQorICAgICAgICAgICAgIHJldHVybiBUcnVlLCBmcm96ZW5zZXQocGF0aCkK KyAKKy0gICAgY3BkZWYgaW50ZXJzZWN0aW9uX3Vud2VpZ2h0ZWQoc2VsZiwgb3RoZXIpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBpbnRlcnNlY3Rpb25fdW53ZWlnaHRlZChzZWxmLCBvdGhlcik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBtYXhpbXVtLWNhcmRpbmFsaXR5IGNvbW1v biBpbmRlcGVuZGVudCBzZXQuCisgCitAQCAtNzI1MSw3ICs3MjUxLDcgQEAgY2RlZiBjbGFzcyBN YXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm1hdHJv aWQgaW50ZXJzZWN0aW9uIHJlcXVpcmVzIGVxdWFsIGdyb3VuZHNldHMuIikKKyAgICAgICAgIHJl dHVybiBzZWxmLl9pbnRlcnNlY3Rpb25fdW53ZWlnaHRlZChvdGhlcikKKyAKKy0gICAgY3BkZWYg X2ludGVyc2VjdGlvbl91bndlaWdodGVkKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2ludGVyc2VjdGlvbl91bndlaWdodGVkKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiBhIG1heGltdW0gY29tbW9uIGluZGVwZW5kZW50LgorIAorQEAgLTcy ODcsNyArNzI4Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAg ICAgICBVID0gc2VsZi5faW50ZXJzZWN0aW9uX2F1Z21lbnRhdGlvbl91bndlaWdodGVkKG90aGVy LCBZKQorICAgICAgICAgcmV0dXJuIFkKKyAKKy0gICAgY3BkZWYgX2ludGVyc2VjdGlvbl9hdWdt ZW50YXRpb25fdW53ZWlnaHRlZChzZWxmLCBvdGhlciwgWSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9pbnRlcnNlY3Rpb25fYXVnbWVudGF0aW9uX3Vud2VpZ2h0ZWQoc2VsZiwgb3RoZXIsIFkpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgY29tbW9uIGluZGVwZW5kZW50IHNldCBs YXJnZXIgdGhhbiBgWWAgb3IgcmVwb3J0IGZhaWx1cmUuCisgCitAQCAtNzQyMyw3ICs3NDIzLDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcmVkZWNlc3Nvclt2XSA9IHUKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgWQor IAorLSAgICBjcGRlZiBwYXJ0aXRpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBhcnRp dGlvbihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG1pbmltdW0gbnVt YmVyIG9mIGRpc2pvaW50IGluZGVwZW5kZW50IHNldHMgdGhhdCBjb3ZlcnMgdGhlCisgICAgICAg ICBncm91bmRzZXQuCitAQCAtNzQ4OSw3ICs3NDg5LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorIAorICAgICAjIGludmFyaWFudHMKKyAKKy0gICAgY3BkZWYgX2ludGVybmFs KHNlbGYsIEIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaW50ZXJuYWwoc2VsZiwgQik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc2V0IG9mIGludGVybmFsbHkgYWN0aXZlIGVs ZW1lbnRzIG9mIGEgYmFzaXMgYEJgLgorIAorQEAgLTc1MjgsNyArNzUyOCw3IEBAIGNkZWYgY2xh c3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgQS5hZGQoZSkKKyAgICAg ICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIF9leHRlcm5hbChzZWxmLCBCKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2V4dGVybmFsKHNlbGYsIEIpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIHNldCBvZiBleHRlcm5hbGx5IGFjdGl2ZSBlbGVtZW50cyBvZiBhIGJhc2lzIGBC YC4KKyAKK0BAIC03NTY3LDcgKzc1NjcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgICAgIEEuYWRkKGUpCisgICAgICAgICByZXR1cm4gQQorIAorLSAg ICBjcGRlZiB0dXR0ZV9wb2x5bm9taWFsKHNlbGYsIHg9Tm9uZSwgeT1Ob25lKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgdHV0dGVfcG9seW5vbWlhbChzZWxmLCB4PU5vbmUsIHk9Tm9uZSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIFR1dHRlIHBvbHlub21pYWwgb2YgdGhlIG1h dHJvaWQuCisgCitAQCAtNzYyOCw3ICs3NjI4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VP YmplY3QpOgorICAgICAgICAgICAgIFQgPSBUKGEsIGIpCisgICAgICAgICByZXR1cm4gVAorIAor LSAgICBjcGRlZiBmbGF0X2NvdmVyKHNlbGYsIHNvbHZlcj1Ob25lLCB2ZXJib3NlPTAsIGludGVn cmFsaXR5X3RvbGVyYW5jZT0xZS0zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZmxhdF9jb3Zlcihz ZWxmLCBzb2x2ZXI9Tm9uZSwgdmVyYm9zZT0wLCBpbnRlZ3JhbGl0eV90b2xlcmFuY2U9MWUtMyk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG1pbmltdW0tc2l6ZSBjb3ZlciBvZiB0 aGUgbm9uYmFzZXMgYnkgbm9uLXNwYW5uaW5nIGZsYXRzLgorIAorQEAgLTc3ODIsNyArNzc4Miw3 IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIHJldC5yZW5hbWUo IkNob3cgcmluZyBvZiB7fSBvdmVyIHt9Ii5mb3JtYXQoc2VsZiwgUikpCisgICAgICAgICByZXR1 cm4gcmV0CisgCistICAgIGNwZGVmIHBsb3Qoc2VsZiwgQj1Ob25lLCBsaW5lb3JkZXJzPU5vbmUs IHBvc19tZXRob2Q9Tm9uZSxwb3NfZGljdD1Ob25lLHNhdmVfcG9zPUZhbHNlKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcGxvdChzZWxmLCBCPU5vbmUsIGxpbmVvcmRlcnM9Tm9uZSwgcG9zX21ldGhv ZD1Ob25lLHBvc19kaWN0PU5vbmUsc2F2ZV9wb3M9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gZ2VvbWV0cmljIHJlcHJlc2VudGF0aW9uIGFzIGEgc2FnZSBncmFwaGljcyBv YmplY3QuCisgCitAQCAtNzg0Miw3ICs3ODQyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VP YmplY3QpOgorICAgICAgICAgbGluZW9yZGVyczI9bWF0cm9pZHNfcGxvdF9oZWxwZXJzLmxpbmVv cmRlcnNfdW5pb24oc2VsZi5fY2FjaGVkX2luZm9bJ2xpbmVvcmRlcnMnXSxsaW5lb3JkZXJzKQor ICAgICAgICAgcmV0dXJuIG1hdHJvaWRzX3Bsb3RfaGVscGVycy5nZW9tcmVwKHNlbGYsQixsaW5l b3JkZXJzMixwZD1wb3NfZGljdCwgc3A9c2F2ZV9wb3MpCisgCistICAgIGNwZGVmIHNob3coc2Vs ZixCPU5vbmUsbGluZW9yZGVycz1Ob25lLHBvc19tZXRob2Q9Tm9uZSxwb3NfZGljdD1Ob25lLHNh dmVfcG9zPUZhbHNlLGxpbXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNob3coc2VsZixC PU5vbmUsbGluZW9yZGVycz1Ob25lLHBvc19tZXRob2Q9Tm9uZSxwb3NfZGljdD1Ob25lLHNhdmVf cG9zPUZhbHNlLGxpbXM9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNob3cgdGhlIGdl b21ldHJpYyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC03ODkxLDcgKzc4 OTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgRy5z aG93KHhtaW49bGltc1swXSwgeG1heD1saW1zWzFdLCB5bWluPWxpbXNbMl0sIHltYXg9bGltc1sz XSkKKyAgICAgICAgIHJldHVybgorIAorLSAgICBjcGRlZiBfZml4X3Bvc2l0aW9ucyhzZWxmLHBv c19kaWN0PU5vbmUsbGluZW9yZGVycz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2ZpeF9w b3NpdGlvbnMoc2VsZixwb3NfZGljdD1Ob25lLGxpbmVvcmRlcnM9Tm9uZSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIENhY2hlIHBvaW50IHBvc2l0aW9ucyBhbmQgbGluZSBvcmRlcnMgd2l0aG91 dCBhY3R1YWxseSBwbG90dGluZworIAorQEAgLTc5NTksNyArNzk1OSw3IEBAIGNkZWYgY2xhc3Mg TWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIGZyb20gc2FnZS50b3BvbG9neS5zaW1wbGlj aWFsX2NvbXBsZXggaW1wb3J0IFNpbXBsaWNpYWxDb21wbGV4CisgICAgICAgICByZXR1cm4gU2lt cGxpY2lhbENvbXBsZXgoc2VsZi5ub19icm9rZW5fY2lyY3VpdHNfc2V0cyhvcmRlcmluZykpCisg CistICAgIGNwZGVmIGF1dG9tb3JwaGlzbV9ncm91cChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgYXV0b21vcnBoaXNtX2dyb3VwKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBhdXRvbW9ycGhpc20gZ3JvdXAgb2YgYGBzZWxmYGAuCisgCitAQCAtNzk5NCw3ICs3 OTk0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZnJvbSBz YWdlLnRvcG9sb2d5LnNpbXBsaWNpYWxfY29tcGxleCBpbXBvcnQgU2ltcGxpY2lhbENvbXBsZXgK KyAgICAgICAgIHJldHVybiBTaW1wbGljaWFsQ29tcGxleChzZWxmLmJhc2VzKCkpLmF1dG9tb3Jw aGlzbV9ncm91cCgpCisgCistICAgIGNwZGVmIGJlcmdtYW5fY29tcGxleChzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgYmVyZ21hbl9jb21wbGV4KHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBCZXJnbWFuIGNvbXBsZXggb2YgYGBzZWxmYGAuCisgCitAQCAtODAx OSw3ICs4MDE5LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAg TCA9IHNlbGYubGF0dGljZV9vZl9mbGF0cygpCisgICAgICAgICByZXR1cm4gTC5zdWJwb3NldChM Lmxpc3QoKVsxOiAtMV0pLm9yZGVyX2NvbXBsZXgoKQorIAorLSAgICBjcGRlZiBhdWdtZW50ZWRf YmVyZ21hbl9jb21wbGV4KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhdWdtZW50ZWRfYmVy Z21hbl9jb21wbGV4KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBh dWdtZW50ZWQgQmVyZ21hbiBjb21wbGV4IG9mIGBgc2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21hdHJvaWRzL3NldF9zeXN0ZW0ucHhkIGIvc3JjL3NhZ2UvbWF0cm9pZHMvc2V0X3N5 c3RlbS5weGQKK2luZGV4IDY5YTRiYzg0NDNjLi5hMjgzMjQ0YjUzYiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21hdHJvaWRzL3NldF9zeXN0ZW0ucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9z ZXRfc3lzdGVtLnB4ZAorQEAgLTgsMjkgKzgsMjkgQEAgY2RlZiBjbGFzcyBTZXRTeXN0ZW06Cisg ICAgIGNkZWYgbG9uZyBfbGVuLCBfY2FwYWNpdHkKKyAgICAgY2RlZiBiaXRzZXRfdCBfdGVtcAor IAorLSAgICBjZGVmIGNvcHkoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfcmVsYWJlbChzZWxm LCBsKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY29tcGxlbWVudHMoc2VsZikgbm9leGNlcHQKKysg ICAgY2RlZiBjb3B5KHNlbGYpCisrICAgIGNkZWYgX3JlbGFiZWwoc2VsZiwgbCkKKysgICAgY3Bk ZWYgX2NvbXBsZW1lbnRzKHNlbGYpCisgCistICAgIGNkZWYgcmVzaXplKHNlbGYsIGs9Kikgbm9l eGNlcHQKKy0gICAgY2RlZiBfYXBwZW5kKHNlbGYsIGJpdHNldF90IFgpIG5vZXhjZXB0CistICAg IGNkZWYgYXBwZW5kKHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNkZWYgX3N1YnNldChzZWxmLCBs b25nIGspIG5vZXhjZXB0CistICAgIGNkZWYgc3Vic2V0KHNlbGYsIGspIG5vZXhjZXB0CistICAg IGNwZGVmIF9nZXRfZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgcmVzaXplKHNl bGYsIGs9KikKKysgICAgY2RlZiBfYXBwZW5kKHNlbGYsIGJpdHNldF90IFgpCisrICAgIGNkZWYg YXBwZW5kKHNlbGYsIFgpCisrICAgIGNkZWYgX3N1YnNldChzZWxmLCBsb25nIGspCisrICAgIGNk ZWYgc3Vic2V0KHNlbGYsIGspCisrICAgIGNwZGVmIF9nZXRfZ3JvdW5kc2V0KHNlbGYpCisgCist ICAgIGNkZWYgbGlzdCBfaW5jaWRlbmNlX2NvdW50KHNlbGYsIEUpIG5vZXhjZXB0CistICAgIGNk ZWYgU2V0U3lzdGVtIF9ncm91bmRzZXRfcGFydGl0aW9uKHNlbGYsIFNldFN5c3RlbSBQLCBsaXN0 IGNudCkgbm9leGNlcHQKKysgICAgY2RlZiBsaXN0IF9pbmNpZGVuY2VfY291bnQoc2VsZiwgRSkK KysgICAgY2RlZiBTZXRTeXN0ZW0gX2dyb3VuZHNldF9wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVt IFAsIGxpc3QgY250KQorICAgICBjZGVmIGxvbmcgc3Vic2V0X2NoYXJhY3RlcmlzdGljKHNlbGYs IFNldFN5c3RlbSBQLCBsb25nIGUpIG5vZXhjZXB0CistICAgIGNkZWYgc3Vic2V0c19wYXJ0aXRp b24oc2VsZiwgU2V0U3lzdGVtIFA9KiwgRT0qKSBub2V4Y2VwdAorLSAgICBjZGVmIF9kaXN0aW5n dWlzaChzZWxmLCBQeV9zc2l6ZV90IHYpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2Nvbm5lY3Rl ZChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIHN1YnNldHNfcGFydGl0aW9uKHNlbGYsIFNldFN5 c3RlbSBQPSosIEU9KikKKysgICAgY2RlZiBfZGlzdGluZ3Vpc2goc2VsZiwgUHlfc3NpemVfdCB2 KQorKyAgICBjcGRlZiBpc19jb25uZWN0ZWQoc2VsZikKKyAKKy0gICAgY2RlZiBpbml0aWFsX3Bh cnRpdGlvbihzZWxmLCBTZXRTeXN0ZW0gUD0qLCBFPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9l cXVpdGFibGVfcGFydGl0aW9uKHNlbGYsIFNldFN5c3RlbSBQPSosIEVQPSopIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9oZXVyaXN0aWNfcGFydGl0aW9uKHNlbGYsIFNldFN5c3RlbSBQPSosIEVQPSop IG5vZXhjZXB0CistICAgIGNwZGVmIF9pc29tb3JwaGlzbShzZWxmLCBTZXRTeXN0ZW0gb3RoZXIs IFNldFN5c3RlbSBTUD0qLCBTZXRTeXN0ZW0gT1A9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Vx dWl2YWxlbmNlKHNlbGYsIGlzX2VxdWl2LCBTZXRTeXN0ZW0gb3RoZXIsIFNldFN5c3RlbSBTUD0q LCBTZXRTeXN0ZW0gT1A9Kikgbm9leGNlcHQKKysgICAgY2RlZiBpbml0aWFsX3BhcnRpdGlvbihz ZWxmLCBTZXRTeXN0ZW0gUD0qLCBFPSopCisrICAgIGNwZGVmIF9lcXVpdGFibGVfcGFydGl0aW9u KHNlbGYsIFNldFN5c3RlbSBQPSosIEVQPSopCisrICAgIGNwZGVmIF9oZXVyaXN0aWNfcGFydGl0 aW9uKHNlbGYsIFNldFN5c3RlbSBQPSosIEVQPSopCisrICAgIGNwZGVmIF9pc29tb3JwaGlzbShz ZWxmLCBTZXRTeXN0ZW0gb3RoZXIsIFNldFN5c3RlbSBTUD0qLCBTZXRTeXN0ZW0gT1A9KikKKysg ICAgY3BkZWYgX2VxdWl2YWxlbmNlKHNlbGYsIGlzX2VxdWl2LCBTZXRTeXN0ZW0gb3RoZXIsIFNl dFN5c3RlbSBTUD0qLCBTZXRTeXN0ZW0gT1A9KikKKyAKKyBjZGVmIGNsYXNzIFNldFN5c3RlbUl0 ZXJhdG9yOgorICAgICBjZGVmIFNldFN5c3RlbSBfSAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21h dHJvaWRzL3NldF9zeXN0ZW0ucHl4IGIvc3JjL3NhZ2UvbWF0cm9pZHMvc2V0X3N5c3RlbS5weXgK K2luZGV4IGIwMjMyNmVlYTU1Li42MDYyMzFhMTczNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21h dHJvaWRzL3NldF9zeXN0ZW0ucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9zZXRfc3lzdGVt LnB5eAorQEAgLTIwMCwxNCArMjAwLDE0IEBAIGNkZWYgY2xhc3MgU2V0U3lzdGVtOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gIkl0ZXJhdG9yIG92ZXIgYSBzeXN0ZW0gb2Ygc3Vic2V0 cyIKKyAKKy0gICAgY2RlZiBjb3B5KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGNvcHkoc2Vs Zik6CisgICAgICAgICBjZGVmIFNldFN5c3RlbSBTCisgICAgICAgICBTID0gU2V0U3lzdGVtKHNl bGYuX2dyb3VuZHNldCwgY2FwYWNpdHk9bGVuKHNlbGYpKQorICAgICAgICAgZm9yIGkgaW4gcmFu Z2UobGVuKHNlbGYpKToKKyAgICAgICAgICAgICBTLl9hcHBlbmQoc2VsZi5fc3Vic2V0c1tpXSkK KyAgICAgICAgIHJldHVybiBTCisgCistICAgIGNkZWYgX3JlbGFiZWwoc2VsZiwgbCkgbm9leGNl cHQ6CisrICAgIGNkZWYgX3JlbGFiZWwoc2VsZiwgbCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJlbGFiZWwgZWFjaCBlbGVtZW50IGBlYCBvZiB0aGUgZ3JvdW5kIHNldCBhcyBgbChlKWAsIHdo ZXJlIGBsYCBpcyBhCisgICAgICAgICBnaXZlbiBpbmplY3RpdmUgbWFwLgorQEAgLTIzMiw3ICsy MzIsNyBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgIGZvciBpIGluIHJhbmdlKHNl bGYuX2dyb3VuZHNldF9zaXplKToKKyAgICAgICAgICAgICBzZWxmLl9pZHhbc2VsZi5fZ3JvdW5k c2V0W2ldXSA9IGkKKyAKKy0gICAgY3BkZWYgX2NvbXBsZW1lbnRzKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfY29tcGxlbWVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBhIFNldFN5c3RlbSBjb250YWluaW5nIHRoZSBjb21wbGVtZW50cyBvZiBlYWNoIGVsZW1l bnQgaW4gdGhlCisgICAgICAgICBncm91bmRzZXQuCitAQCAtMjU2LDcgKzI1Niw3IEBAIGNkZWYg Y2xhc3MgU2V0U3lzdGVtOgorICAgICAgICAgICAgIFMuX2FwcGVuZChzZWxmLl90ZW1wKQorICAg ICAgICAgcmV0dXJuIFMKKyAKKy0gICAgY2RlZiBpbmxpbmUgcmVzaXplKHNlbGYsIGs9Tm9uZSkg bm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIHJlc2l6ZShzZWxmLCBrPU5vbmUpOgorICAgICAg ICAgIiIiCisgICAgICAgICBDaGFuZ2UgdGhlIGNhcGFjaXR5IG9mIHRoZSBTZXRTeXN0ZW0uCisg ICAgICAgICAiIiIKK0BAIC0yNjksNyArMjY5LDcgQEAgY2RlZiBjbGFzcyBTZXRTeXN0ZW06Cisg ICAgICAgICBzZWxmLl9zdWJzZXRzID0gPGJpdHNldF90Kj5jaGVja19yZWFsbG9jYXJyYXkoc2Vs Zi5fc3Vic2V0cywgazIsIHNpemVvZihiaXRzZXRfdCkpCisgICAgICAgICBzZWxmLl9jYXBhY2l0 eSA9IGsyCisgCistICAgIGNkZWYgaW5saW5lIF9hcHBlbmQoc2VsZiwgYml0c2V0X3QgWCkgbm9l eGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIF9hcHBlbmQoc2VsZiwgYml0c2V0X3QgWCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEFwcGVuZCBzdWJzZXQgaW4gaW50ZXJuYWwsIGJpdHNldCBmb3Jt YXQKKyAgICAgICAgICIiIgorQEAgLTI3OSw3ICsyNzksNyBAQCBjZGVmIGNsYXNzIFNldFN5c3Rl bToKKyAgICAgICAgIGJpdHNldF9jb3B5KHNlbGYuX3N1YnNldHNbc2VsZi5fbGVuXSwgWCkKKyAg ICAgICAgIHNlbGYuX2xlbiArPSAxCisgCistICAgIGNkZWYgaW5saW5lIGFwcGVuZChzZWxmLCBY KSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgYXBwZW5kKHNlbGYsIFgpOgorICAgICAgICAg IiIiCisgICAgICAgICBBcHBlbmQgc3Vic2V0LgorICAgICAgICAgIiIiCitAQCAtMjkxLDEzICsy OTEsMTMgQEAgY2RlZiBjbGFzcyBTZXRTeXN0ZW06CisgICAgICAgICAgICAgYml0c2V0X2FkZChz ZWxmLl9zdWJzZXRzW3NlbGYuX2xlbl0sIDxtcF9iaXRjbnRfdD4gc2VsZi5faWR4W3hdKQorICAg ICAgICAgc2VsZi5fbGVuICs9IDEKKyAKKy0gICAgY2RlZiBpbmxpbmUgX3N1YnNldChzZWxmLCBs b25nIGspIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBfc3Vic2V0KHNlbGYsIGxvbmcgayk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgay10aCBzdWJzZXQsIGluIGluZGV4 IGZvcm1hdC4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGJpdHNldF9saXN0KHNlbGYu X3N1YnNldHNba10pCisgCistICAgIGNkZWYgc3Vic2V0KHNlbGYsIGspIG5vZXhjZXB0OgorKyAg ICBjZGVmIHN1YnNldChzZWxmLCBrKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBrLXRoIHN1YnNldC4KKyAgICAgICAgICIiIgorQEAgLTMwOSw3ICszMDksNyBAQCBjZGVmIGNs YXNzIFNldFN5c3RlbToKKyAgICAgICAgICAgICBpID0gYml0c2V0X25leHQoc2VsZi5fc3Vic2V0 c1trXSwgaSArIDEpCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KEYpCisgCistICAgIGNwZGVm IF9nZXRfZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2V0X2dyb3VuZHNl dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBncm91bmQgc2V0IG9m IHRoaXMgU2V0U3lzdGVtLgorIAorQEAgLTMyMiw3ICszMjIsNyBAQCBjZGVmIGNsYXNzIFNldFN5 c3RlbToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGZyb3plbnNldChzZWxmLl9ncm91 bmRzZXQpCisgCistICAgIGNwZGVmIGlzX2Nvbm5lY3RlZChzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgaXNfY29ubmVjdGVkKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGlm IHRoZSA6Y2xhc3M6YFNldFN5c3RlbWAgaXMgY29ubmVjdGVkLgorIAorQEAgLTM3Niw3ICszNzYs NyBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAKKyAgICAgIyBpc29tb3JwaGlzbQorIAorLSAg ICBjZGVmIGxpc3QgX2luY2lkZW5jZV9jb3VudChzZWxmLCBFKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBsaXN0IF9pbmNpZGVuY2VfY291bnQoc2VsZiwgRSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEZvciB0aGUgc3ViLWNvbGxlY3Rpb24gaW5kZXhlZCBieSBgYEVgYCwgY291bnQgaG93IG9mdGVu IGVhY2ggZWxlbWVudAorICAgICAgICAgb2NjdXJzLgorQEAgLTM5MSw3ICszOTEsNyBAQCBjZGVm IGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgICAgICAgICAgaSA9IGJpdHNldF9uZXh0KHNlbGYu X3N1YnNldHNbZV0sIGkgKyAxKQorICAgICAgICAgcmV0dXJuIGNudAorIAorLSAgICBjZGVmIFNl dFN5c3RlbSBfZ3JvdW5kc2V0X3BhcnRpdGlvbihzZWxmLCBTZXRTeXN0ZW0gUCwgbGlzdCBjbnQp IG5vZXhjZXB0OgorKyAgICBjZGVmIFNldFN5c3RlbSBfZ3JvdW5kc2V0X3BhcnRpdGlvbihzZWxm LCBTZXRTeXN0ZW0gUCwgbGlzdCBjbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIg bWV0aG9kIGZvciBwYXJ0aXRpb24gbWV0aG9kcyBiZWxvdy4KKyAgICAgICAgICIiIgorQEAgLTQ0 NCw3ICs0NDQsNyBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgICAgICBjICs9IGJp dHNldF9sZW4oc2VsZi5fdGVtcCkKKyAgICAgICAgIHJldHVybiBjCisgCistICAgIGNkZWYgc3Vi c2V0c19wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9Tm9uZSwgRT1Ob25lKSBub2V4Y2VwdDoK KysgICAgY2RlZiBzdWJzZXRzX3BhcnRpdGlvbihzZWxmLCBTZXRTeXN0ZW0gUD1Ob25lLCBFPU5v bmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgbWV0aG9kIGZvciBwYXJ0aXRpb24g bWV0aG9kcyBiZWxvdy4KKyAgICAgICAgICIiIgorQEAgLTQ3Myw3ICs0NzMsNyBAQCBjZGVmIGNs YXNzIFNldFN5c3RlbToKKyAgICAgICAgIEVQLmFwcGVuZChlcCkKKyAgICAgICAgIHJldHVybiBF UCwgaGFzaCh0dXBsZShlaCkpCisgCistICAgIGNkZWYgX2Rpc3Rpbmd1aXNoKHNlbGYsIFB5X3Nz aXplX3Qgdikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2Rpc3Rpbmd1aXNoKHNlbGYsIFB5X3NzaXpl X3Qgdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBtZXRob2QgZm9yIHBhcnRpdGlv biBtZXRob2RzIGJlbG93LgorICAgICAgICAgIiIiCitAQCAtNDg4LDcgKzQ4OCw3IEBAIGNkZWYg Y2xhc3MgU2V0U3lzdGVtOgorICAgICAgICAgcmV0dXJuIFMKKyAKKyAgICAgIyBwYXJ0aXRpb24g ZnVuY3Rpb25zCistICAgIGNkZWYgaW5pdGlhbF9wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9 Tm9uZSwgRT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbml0aWFsX3BhcnRpdGlvbihzZWxm LCBTZXRTeXN0ZW0gUD1Ob25lLCBFPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxw ZXIgbWV0aG9kIGZvciBwYXJ0aXRpb24gbWV0aG9kcyBiZWxvdy4KKyAgICAgICAgICIiIgorQEAg LTUwMyw3ICs1MDMsNyBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgIHNlbGYuX2dy b3VuZHNldF9wYXJ0aXRpb24oUCwgY250KQorICAgICAgICAgcmV0dXJuIFAKKyAKKy0gICAgY3Bk ZWYgX2VxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9Tm9uZSwgRVA9Tm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9lcXVpdGFibGVfcGFydGl0aW9uKHNlbGYsIFNldFN5c3Rl bSBQPU5vbmUsIEVQPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGVx dWl0YWJsZSBvcmRlcmVkIHBhcnRpdGlvbiBvZiB0aGUgZ3JvdW5kIHNldCBvZiB0aGUKKyAgICAg ICAgIGh5cGVyZ3JhcGggd2hvc2UgZWRnZXMgYXJlIHRoZSBzdWJzZXRzIGluIHRoaXMgU2V0U3lz dGVtLgorQEAgLTU4NCw3ICs1ODQsNyBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAKKyAgICAg ICAgIHJldHVybiBQLCBFUCwgaAorIAorLSAgICBjcGRlZiBfaGV1cmlzdGljX3BhcnRpdGlvbihz ZWxmLCBTZXRTeXN0ZW0gUD1Ob25lLCBFUD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2hl dXJpc3RpY19wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9Tm9uZSwgRVA9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGhldXJpc3RpYyBvcmRlcmVkIHBhcnRpdGlvbiBp bnRvIHNpbmdsZXRvbnMgb2YgdGhlIGdyb3VuZAorICAgICAgICAgc2V0IG9mIHRoZSBoeXBlcmdy YXBoIHdob3NlIGVkZ2VzIGFyZSB0aGUgc3Vic2V0cyBpbiB0aGlzIFNldFN5c3RlbS4KK0BAIC02 MzIsNyArNjMyLDcgQEAgY2RlZiBjbGFzcyBTZXRTeXN0ZW06CisgICAgICAgICAgICAgICAgIHJl dHVybiBzZWxmLl9oZXVyaXN0aWNfcGFydGl0aW9uKFAuX2Rpc3Rpbmd1aXNoKGJpdHNldF9maXJz dChQLl9zdWJzZXRzW2ldKSksIEVQKQorICAgICAgICAgcmV0dXJuIFAsIEVQLCBoCisgCistICAg IGNwZGVmIF9pc29tb3JwaGlzbShzZWxmLCBTZXRTeXN0ZW0gb3RoZXIsIFNldFN5c3RlbSBTUD1O b25lLCBTZXRTeXN0ZW0gT1A9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc29tb3JwaGlz bShzZWxmLCBTZXRTeXN0ZW0gb3RoZXIsIFNldFN5c3RlbSBTUD1Ob25lLCBTZXRTeXN0ZW0gT1A9 Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGdyb3VuZHNldCBpc29tb3Jw aGlzbSBiZXR3ZWVuIHRoaXMgU2V0U3lzdGVtIGFuZCBhbiBvdGhlci4KKyAKK0BAIC02OTIsNyAr NjkyLDcgQEAgY2RlZiBjbGFzcyBTZXRTeXN0ZW06CisgICAgICAgICAgICAgcmV0dXJuIE5vbmUK KyAgICAgICAgIHJldHVybiBkaWN0KFsoc2VsZi5fZ3JvdW5kc2V0W2JpdHNldF9maXJzdChTUC5f c3Vic2V0c1tpXSldLCBvdGhlci5fZ3JvdW5kc2V0W2JpdHNldF9maXJzdChPUC5fc3Vic2V0c1tp XSldKSBmb3IgaSBpbiByYW5nZShsZW4oU1ApKV0pCisgCistICAgIGNwZGVmIF9lcXVpdmFsZW5j ZShzZWxmLCBpc19lcXVpdiwgU2V0U3lzdGVtIG90aGVyLCBTZXRTeXN0ZW0gU1A9Tm9uZSwgU2V0 U3lzdGVtIE9QPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZXF1aXZhbGVuY2Uoc2VsZiwg aXNfZXF1aXYsIFNldFN5c3RlbSBvdGhlciwgU2V0U3lzdGVtIFNQPU5vbmUsIFNldFN5c3RlbSBP UD1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgZ3JvdW5kc2V0IGlzb21v cnBoaXNtIHRoYXQgaXMgYW4gZXF1aXZhbGVuY2UgYmV0d2VlbiB0aGlzCisgICAgICAgICBTZXRT eXN0ZW0gYW5kIGFuIG90aGVyLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL3VuaW9u X21hdHJvaWQucHhkIGIvc3JjL3NhZ2UvbWF0cm9pZHMvdW5pb25fbWF0cm9pZC5weGQKK2luZGV4 IGEzNzhjZmU5MTBkLi5kMDNhZTQ3NmJkYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRz L3VuaW9uX21hdHJvaWQucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy91bmlvbl9tYXRyb2lk LnB4ZAorQEAgLTQsMTcgKzQsMTcgQEAgZnJvbSBzYWdlLm1hdHJvaWRzLm1hdHJvaWQgY2ltcG9y dCBNYXRyb2lkCisgY2RlZiBjbGFzcyBNYXRyb2lkVW5pb24oTWF0cm9pZCk6CisgICAgIGNkZWYg bGlzdCBtYXRyb2lkcworICAgICBjZGVmIGZyb3plbnNldCBfZ3JvdW5kc2V0CistICAgIGNwZGVm IGdyb3VuZHNldChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBYKSBub2V4 Y2VwdAorKyAgICBjcGRlZiBncm91bmRzZXQoc2VsZikKKysgICAgY3BkZWYgX3Jhbmsoc2VsZiwg WCkKKyAKKyBjZGVmIGNsYXNzIE1hdHJvaWRTdW0oTWF0cm9pZCk6CisgICAgIGNkZWYgbGlzdCBz dW1tYW5kcworICAgICBjZGVmIGZyb3plbnNldCBfZ3JvdW5kc2V0CistICAgIGNwZGVmIGdyb3Vu ZHNldChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBYKSBub2V4Y2VwdAor KyAgICBjcGRlZiBncm91bmRzZXQoc2VsZikKKysgICAgY3BkZWYgX3Jhbmsoc2VsZiwgWCkKKyAK KyBjZGVmIGNsYXNzIFBhcnRpdGlvbk1hdHJvaWQoTWF0cm9pZCk6CisgICAgIGNkZWYgZGljdCBw CisgICAgIGNkZWYgZnJvemVuc2V0IF9ncm91bmRzZXQKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0CisrICAgIGNw ZGVmIGdyb3VuZHNldChzZWxmKQorKyAgICBjcGRlZiBfcmFuayhzZWxmLCBYKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL21hdHJvaWRzL3VuaW9uX21hdHJvaWQucHl4IGIvc3JjL3NhZ2UvbWF0cm9p ZHMvdW5pb25fbWF0cm9pZC5weXgKK2luZGV4IDA0ZjdlZWU0NDAyLi40ZTRkOGU0ZWIwYSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL3VuaW9uX21hdHJvaWQucHl4CisrKysgYi9zcmMv c2FnZS9tYXRyb2lkcy91bmlvbl9tYXRyb2lkLnB5eAorQEAgLTUzLDcgKzUzLDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkVW5pb24oTWF0cm9pZCk6CisgICAgICAgICAgICAgRS51cGRhdGUoTS5ncm91 bmRzZXQoKSkKKyAgICAgICAgIHNlbGYuX2dyb3VuZHNldCA9IGZyb3plbnNldChFKQorIAorLSAg ICBjcGRlZiBncm91bmRzZXQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdyb3VuZHNldChz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBncm91bmRzZXQgb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtNzIsNyArNzIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWRVbmlvbihN YXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VuZHNldAor IAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Jhbmso c2VsZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2YgYSBz ZXQgYGBYYGAuCisgCitAQCAtMTg2LDcgKzE4Niw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZFN1bShN YXRyb2lkKToKKyAgICAgICAgICAgICBTID0gUyArIE0uX3JlcHJfKCkgKyJcbiIKKyAgICAgICAg IHJldHVybiBTWzotMV0KKyAKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBncm91bmRzZXQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgZ3JvdW5kc2V0IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTIwNSw3ICsyMDUsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWRTdW0oTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLl9ncm91bmRzZXQKKyAKKy0gICAgY3BkZWYgX3Jhbmsoc2VsZiwgWCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSByYW5rIG9mIGEgc2V0IGBgWGBgLgorIAorQEAgLTI4NSw3ICsyODUsNyBAQCBj ZGVmIGNsYXNzIFBhcnRpdGlvbk1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgRS51cGRh dGUoUCkKKyAgICAgICAgIHNlbGYuX2dyb3VuZHNldCA9IGZyb3plbnNldChFKQorIAorLSAgICBj cGRlZiBncm91bmRzZXQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdyb3VuZHNldChzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBncm91bmRzZXQgb2YgdGhlIG1h dHJvaWQuCisgCitAQCAtMzA0LDcgKzMwNCw3IEBAIGNkZWYgY2xhc3MgUGFydGl0aW9uTWF0cm9p ZChNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VuZHNl dAorIAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Jh bmsoc2VsZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2Yg YSBzZXQgYGBYYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9hbGxvY2F0b3IucHhk IGIvc3JjL3NhZ2UvbWlzYy9hbGxvY2F0b3IucHhkCitpbmRleCBiYTQzMjFjZjcxYy4uNzk0NWE3 NTI0MWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2FsbG9jYXRvci5weGQKKysrKyBiL3Ny Yy9zYWdlL21pc2MvYWxsb2NhdG9yLnB4ZAorQEAgLTEsNSArMSw1IEBACisgZnJvbSBjcHl0aG9u Lm9iamVjdCBjaW1wb3J0ICoKKyAKKy1jZGVmIGhvb2tfdHBfZnVuY3Rpb25zX3R5cGUob2JqZWN0 IHQsIG5ld2Z1bmMgdHBfbmV3LCBkZXN0cnVjdG9yIHRwX2RlYWxsb2MsIGJpbnQgdXNlR0MpIG5v ZXhjZXB0CisrY2RlZiBob29rX3RwX2Z1bmN0aW9uc190eXBlKG9iamVjdCB0LCBuZXdmdW5jIHRw X25ldywgZGVzdHJ1Y3RvciB0cF9kZWFsbG9jLCBiaW50IHVzZUdDKQorIAorLWNkZWYgaG9va190 cF9mdW5jdGlvbnMob2JqZWN0IGdsb2JhbF9kdW1teSwgbmV3ZnVuYyB0cF9uZXcsIGRlc3RydWN0 b3IgdHBfZGVhbGxvYywgYmludCB1c2VHQykgbm9leGNlcHQKKytjZGVmIGhvb2tfdHBfZnVuY3Rp b25zKG9iamVjdCBnbG9iYWxfZHVtbXksIG5ld2Z1bmMgdHBfbmV3LCBkZXN0cnVjdG9yIHRwX2Rl YWxsb2MsIGJpbnQgdXNlR0MpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9hbGxvY2F0b3Iu cHl4IGIvc3JjL3NhZ2UvbWlzYy9hbGxvY2F0b3IucHl4CitpbmRleCBiNmQ4NjViMDBlNi4uYjdm YWZkY2UyODYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2FsbG9jYXRvci5weXgKKysrKyBi L3NyYy9zYWdlL21pc2MvYWxsb2NhdG9yLnB5eAorQEAgLTEsNiArMSw2IEBACisgZnJvbSBjcHl0 aG9uLnJlZiBjaW1wb3J0IFB5X0lOQ1JFRgorIAorLWNkZWYgX2hvb2tfdHBfZnVuY3Rpb25zX3R5 cGUoUHlUeXBlT2JqZWN0ICp0LCBuZXdmdW5jIHRwX25ldywgZGVzdHJ1Y3RvciB0cF9kZWFsbG9j LCBiaW50IHVzZUdDKSBub2V4Y2VwdDoKKytjZGVmIF9ob29rX3RwX2Z1bmN0aW9uc190eXBlKFB5 VHlwZU9iamVjdCAqdCwgbmV3ZnVuYyB0cF9uZXcsIGRlc3RydWN0b3IgdHBfZGVhbGxvYywgYmlu dCB1c2VHQyk6CisgICAgICIiIgorICAgICBJbml0aWFsaXplIHRoZSBmYXN0IGludGVnZXIgY3Jl YXRpb24gZnVuY3Rpb25zLgorICAgICAiIiIKK0BAIC0yNSwxMiArMjUsMTIgQEAgY2RlZiBfaG9v a190cF9mdW5jdGlvbnNfdHlwZShQeVR5cGVPYmplY3QgKnQsIG5ld2Z1bmMgdHBfbmV3LCBkZXN0 cnVjdG9yIHRwX2RlYWwKKyAgICAgdC50cF9kZWFsbG9jID0gdHBfZGVhbGxvYworIAorIAorLWNk ZWYgaG9va190cF9mdW5jdGlvbnNfdHlwZShvYmplY3QgdHAsIG5ld2Z1bmMgdHBfbmV3LCBkZXN0 cnVjdG9yIHRwX2RlYWxsb2MsIGJpbnQgdXNlR0MpIG5vZXhjZXB0OgorK2NkZWYgaG9va190cF9m dW5jdGlvbnNfdHlwZShvYmplY3QgdHAsIG5ld2Z1bmMgdHBfbmV3LCBkZXN0cnVjdG9yIHRwX2Rl YWxsb2MsIGJpbnQgdXNlR0MpOgorICAgICBjZGVmIFB5VHlwZU9iamVjdCAqdCA9IDxQeVR5cGVP YmplY3QgKj50cAorICAgICBfaG9va190cF9mdW5jdGlvbnNfdHlwZSh0LCB0cF9uZXcsIHRwX2Rl YWxsb2MsIHVzZUdDKQorIAorIAorLWNkZWYgaG9va190cF9mdW5jdGlvbnMob2JqZWN0IGdsb2Jh bF9kdW1teSwgbmV3ZnVuYyB0cF9uZXcsIGRlc3RydWN0b3IgdHBfZGVhbGxvYywgYmludCB1c2VH Qykgbm9leGNlcHQ6CisrY2RlZiBob29rX3RwX2Z1bmN0aW9ucyhvYmplY3QgZ2xvYmFsX2R1bW15 LCBuZXdmdW5jIHRwX25ldywgZGVzdHJ1Y3RvciB0cF9kZWFsbG9jLCBiaW50IHVzZUdDKToKKyAg ICAgIiIiCisgICAgIEluaXRpYWxpemUgdGhlIGZhc3QgaW50ZWdlciBjcmVhdGlvbiBmdW5jdGlv bnMuCisgICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvYmluYXJ5X3RyZWUucHl4 IGIvc3JjL3NhZ2UvbWlzYy9iaW5hcnlfdHJlZS5weXgKK2luZGV4IGE1NjZjMTdkNzUyLi44NDUx ZTBiMWUwNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvYmluYXJ5X3RyZWUucHl4CisrKysg Yi9zcmMvc2FnZS9taXNjL2JpbmFyeV90cmVlLnB5eAorQEAgLTQ2LDcgKzQ2LDcgQEAgY2RlZiB2 b2lkIGJpbmFyeV90cmVlX2luc2VydChiaW5hcnlfdHJlZV9ub2RlICpzZWxmLCBpbnQga2V5LCBv YmplY3QgdmFsdWUpIG5vZXgKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgYmluYXJ5X3Ry ZWVfaW5zZXJ0KHNlbGYucmlnaHQsIGtleSwgdmFsdWUpCisgCistY2RlZiBvYmplY3QgYmluYXJ5 X3RyZWVfZ2V0KGJpbmFyeV90cmVlX25vZGUgKnNlbGYsIGludCBrZXkpIG5vZXhjZXB0OgorK2Nk ZWYgb2JqZWN0IGJpbmFyeV90cmVlX2dldChiaW5hcnlfdHJlZV9ub2RlICpzZWxmLCBpbnQga2V5 KToKKyAgICAgaWYgc2VsZi5rZXkgPT0ga2V5OgorICAgICAgICAgcmV0dXJuIDxvYmplY3Q+c2Vs Zi52YWx1ZQorICAgICBlbGlmIHNlbGYua2V5ID4ga2V5OgorQEAgLTYwLDcgKzYwLDcgQEAgY2Rl ZiBvYmplY3QgYmluYXJ5X3RyZWVfZ2V0KGJpbmFyeV90cmVlX25vZGUgKnNlbGYsIGludCBrZXkp IG5vZXhjZXB0OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gYmluYXJ5X3Ry ZWVfZ2V0KHNlbGYucmlnaHQsIGtleSkKKyAKKy1jZGVmIG9iamVjdCBiaW5hcnlfdHJlZV9kZWxl dGUoYmluYXJ5X3RyZWVfbm9kZSAqc2VsZiwgaW50IGtleSkgbm9leGNlcHQ6CisrY2RlZiBvYmpl Y3QgYmluYXJ5X3RyZWVfZGVsZXRlKGJpbmFyeV90cmVlX25vZGUgKnNlbGYsIGludCBrZXkpOgor ICAgICBjZGVmIG9iamVjdCB0CisgICAgIGlmIHNlbGYua2V5ID4ga2V5OgorICAgICAgICAgaWYg c2VsZi5sZWZ0ID09IE5VTEw6CitAQCAtMTUyLDcgKzE1Miw3IEBAIExJU1RfUE9TVE9SREVSID0g NAorIExJU1RfS0VZUyA9IDgKKyBMSVNUX1ZBTFVFUyA9IDE2CisgCistY2RlZiBvYmplY3QgYmlu YXJ5X3RyZWVfbGlzdChiaW5hcnlfdHJlZV9ub2RlICpjdXIsIGludCBiZWhhdmlvcikgbm9leGNl cHQ6CisrY2RlZiBvYmplY3QgYmluYXJ5X3RyZWVfbGlzdChiaW5hcnlfdHJlZV9ub2RlICpjdXIs IGludCBiZWhhdmlvcik6CisgICAgIGlmIGJlaGF2aW9yICYgTElTVF9LRVlTOgorICAgICAgICAg aXRlbSA9IGludChjdXIua2V5KQorICAgICBlbHNlOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21p c2MvYzMucHl4IGIvc3JjL3NhZ2UvbWlzYy9jMy5weXgKK2luZGV4IGJhYjI5NjQxMTE1Li5hM2Yz NzM4MGZhZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvYzMucHl4CisrKysgYi9zcmMvc2Fn ZS9taXNjL2MzLnB5eAorQEAgLTIxLDcgKzIxLDcgQEAgQVVUSE9SOgorICMgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorIAorIAorLWNwZGVmIGxpc3QgQzNfYWxnb3JpdGhtKG9iamVjdCBzdGFydCwgc3Ry IGJhc2VzLCBzdHIgYXR0cmlidXRlLCBiaW50IHByb3Blcikgbm9leGNlcHQ6CisrY3BkZWYgbGlz dCBDM19hbGdvcml0aG0ob2JqZWN0IHN0YXJ0LCBzdHIgYmFzZXMsIHN0ciBhdHRyaWJ1dGUsIGJp bnQgcHJvcGVyKToKKyAgICAgIiIiCisgICAgIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDMyBh bGdvcml0aG0uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9jM19jb250cm9sbGVkLnB4 ZCBiL3NyYy9zYWdlL21pc2MvYzNfY29udHJvbGxlZC5weGQKK2luZGV4IDczODNiMGNmOTk5Li5k NWRkNWMyMzE4MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvYzNfY29udHJvbGxlZC5weGQK KysrKyBiL3NyYy9zYWdlL21pc2MvYzNfY29udHJvbGxlZC5weGQKK0BAIC0xICsxIEBACistY3Bk ZWYgdHVwbGUgQzNfc29ydGVkX21lcmdlKGxpc3QgbGlzdHMsIGtleT0/KSBub2V4Y2VwdAorK2Nw ZGVmIHR1cGxlIEMzX3NvcnRlZF9tZXJnZShsaXN0IGxpc3RzLCBrZXk9PykKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9taXNjL2MzX2NvbnRyb2xsZWQucHl4IGIvc3JjL3NhZ2UvbWlzYy9jM19jb250 cm9sbGVkLnB5eAoraW5kZXggMmIzMzQ1NjVmZGMuLmJlZmFhN2I1YjMyIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWlzYy9jM19jb250cm9sbGVkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9jM19j b250cm9sbGVkLnB5eAorQEAgLTY1OSw3ICs2NTksNyBAQCBkZWYgQzNfbWVyZ2UobGlzdCBsaXN0 cyk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ2Fubm90IG1lcmdlIHRoZSBpdGVt cyAlcy4iJScsICcuam9pbihyZXByKGhlYWQpIGZvciBoZWFkIGluIGhlYWRzKSkKKyAgICAgcmV0 dXJuIG91dAorIAorLWNwZGVmIGlkZW50aXR5KHgpIG5vZXhjZXB0OgorK2NwZGVmIGlkZW50aXR5 KHgpOgorICAgICByIiIiCisgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC02NjksNyArNjY5LDcgQEAg Y3BkZWYgaWRlbnRpdHkoeCkgbm9leGNlcHQ6CisgICAgICIiIgorICAgICByZXR1cm4geAorIAor LWNwZGVmIHR1cGxlIEMzX3NvcnRlZF9tZXJnZShsaXN0IGxpc3RzLCBrZXk9aWRlbnRpdHkpIG5v ZXhjZXB0OgorK2NwZGVmIHR1cGxlIEMzX3NvcnRlZF9tZXJnZShsaXN0IGxpc3RzLCBrZXk9aWRl bnRpdHkpOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgc29ydGVkIGlucHV0IGxpc3RzIG1l cmdlZCB1c2luZyB0aGUgYGBDM2BgIGFsZ29yaXRobSwgd2l0aCBhIHR3aXN0LgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB4ZCBiL3NyYy9zYWdlL21pc2MvY2FjaGVm dW5jLnB4ZAoraW5kZXggNTU5MGM0MWY0ZDMuLjFlYmQ2ZjI1YTlkIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHhkCisrKysgYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5w eGQKK0BAIC0xLDcgKzEsNyBAQAorIGZyb20gc2FnZS5taXNjLmZ1bmN0aW9uX21hbmdsaW5nIGNp bXBvcnQgQXJndW1lbnRGaXhlcgorIAorLWNwZGVmIGRpY3Rfa2V5KG8pIG5vZXhjZXB0CistY3Bk ZWYgY2FjaGVfa2V5KG8pIG5vZXhjZXB0CisrY3BkZWYgZGljdF9rZXkobykKKytjcGRlZiBjYWNo ZV9rZXkobykKKyAKKyBjZGVmIGNsYXNzIENhY2hlZEZ1bmN0aW9uKCk6CisgICAgIGNkZWYgcHVi bGljIHN0ciBfX25hbWVfXworQEAgLTExLDggKzExLDggQEAgY2RlZiBjbGFzcyBDYWNoZWRGdW5j dGlvbigpOgorICAgICBjZGVmIHB1YmxpYyBjYWNoZSAgIyBub3QgYWx3YXlzIG9mIHR5cGUgPGRp Y3Q+CisgICAgIGNkZWYgYmludCBpc19jbGFzc21ldGhvZAorICAgICBjZGVmIGludCBhcmdmaXhf aW5pdChzZWxmKSBleGNlcHQgLTEKKy0gICAgY2RlZiBnZXRfa2V5X2FyZ3Nfa3dkcyhzZWxmLCB0 dXBsZSBhcmdzLCBkaWN0IGt3ZHMpIG5vZXhjZXB0CistICAgIGNkZWYgZml4X2FyZ3Nfa3dkcyhz ZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpIG5vZXhjZXB0CisrICAgIGNkZWYgZ2V0X2tleV9h cmdzX2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKQorKyAgICBjZGVmIGZpeF9hcmdz X2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKQorICAgICBjZGVmIGVtcHR5X2tleQor ICAgICBjZGVmIGtleQorICAgICBjZGVmIGJpbnQgZG9fcGlja2xlCitAQCAtMjMsNyArMjMsNyBA QCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZCgpOgorICAgICBjZGVmIHB1YmxpYyBzdHIgX19jYWNo ZWRfbW9kdWxlX18KKyAgICAgY2RlZiBDYWNoZWRGdW5jdGlvbiBfY2FjaGVkZnVuYworICAgICBj ZGVmIFB5X3NzaXplX3QgbmFyZ3MKKy0gICAgY3BkZWYgX2dldF9pbnN0YW5jZV9jYWNoZShzZWxm LCBpbnN0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfZ2V0X2luc3RhbmNlX2NhY2hlKHNlbGYsIGlu c3QpCisgCisgY2RlZiBjbGFzcyBDYWNoZURpY3QoZGljdCk6CisgICAgIHBhc3MKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXggYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVu Yy5weXgKK2luZGV4IGVkMGVmNTE4ZGRhLi43Yjk1Y2UyNjc3OSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL21pc2MvY2FjaGVmdW5jLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4 CitAQCAtNTM1LDcgKzUzNSw3IEBAIGNkZWYgY2xhc3MgTm9ucGlja2xpbmdEaWN0KGRpY3QpOgor IAorIGNkZWYgdW5oYXNoYWJsZV9rZXkgPSBvYmplY3QoKQorIAorLWNwZGVmIGlubGluZSBkaWN0 X2tleShvKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgZGljdF9rZXkobyk6CisgICAgICIiIgor ICAgICBSZXR1cm4gYSBrZXkgdG8gY2FjaGUgb2JqZWN0IGBgb2BgIGluIGEgZGljdC4KKyAKK0BA IC01NjAsNyArNTYwLDcgQEAgY3BkZWYgaW5saW5lIGRpY3Rfa2V5KG8pIG5vZXhjZXB0OgorICAg ICByZXR1cm4gbworIAorIAorLWNwZGVmIGlubGluZSBjYWNoZV9rZXkobykgbm9leGNlcHQ6Cisr Y3BkZWYgaW5saW5lIGNhY2hlX2tleShvKToKKyAgICAgciIiIgorICAgICBIZWxwZXIgZnVuY3Rp b24gdG8gcmV0dXJuIGEgaGFzaGFibGUga2V5IGZvciBgYG9gYCB3aGljaCBjYW4gYmUgdXNlZCBm b3IKKyAgICAgY2FjaGluZy4KK0BAIC02MDAsNyArNjAwLDcgQEAgY3BkZWYgaW5saW5lIGNhY2hl X2tleShvKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIG8KKyAKKyAKKy1jZGVmIGNhY2hlX2tleV91 bmhhc2hhYmxlKG8pIG5vZXhjZXB0OgorK2NkZWYgY2FjaGVfa2V5X3VuaGFzaGFibGUobyk6Cisg ICAgICIiIgorICAgICBSZXR1cm4gYSBrZXkgZm9yIGNhY2hpbmcgYW4gaXRlbSB3aGljaCBpcyB1 bmhhc2hhYmxlLgorICAgICAiIiIKK0BAIC03ODYsNyArNzg2LDcgQEAgY2RlZiBjbGFzcyBDYWNo ZWRGdW5jdGlvbigpOgorICAgICBkZWYgX19tb2R1bGVfXyhzZWxmKToKKyAgICAgICAgIHJldHVy biBzZWxmLl9fY2FjaGVkX21vZHVsZV9fCisgCistICAgIGNkZWYgZ2V0X2tleV9hcmdzX2t3ZHMo c2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfa2V5 X2FyZ3Nfa3dkcyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGtleSBpbiB0aGUgY2FjaGUgdG8gYmUgdXNlZCB3aGVuIGBgYXJn c2BgIGFuZAorICAgICAgICAgYGBrd2RzYGAgYXJlIHBhc3NlZCBpbiBhcyBwYXJhbWV0ZXJzLgor QEAgLTgxNCw3ICs4MTQsNyBAQCBjZGVmIGNsYXNzIENhY2hlZEZ1bmN0aW9uKCk6CisgICAgICAg ICBzZWxmLl9hcmd1bWVudF9maXhlciA9IEFyZ3VtZW50Rml4ZXIoc2VsZi5mLAorICAgICAgICAg ICAgICAgICBjbGFzc21ldGhvZD1zZWxmLmlzX2NsYXNzbWV0aG9kKQorIAorLSAgICBjZGVmIGZp eF9hcmdzX2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBmaXhfYXJnc19rd2RzKHNlbGYsIHR1cGxlIGFyZ3MsIGRpY3Qga3dkcyk6CisgICAgICAg ICByIiIiCisgICAgICAgICBOb3JtYWxpemUgcGFyYW1ldGVycyB0byBvYnRhaW4gYSBrZXkgZm9y IHRoZSBjYWNoZS4KKyAKK0BAIC0xODQxLDcgKzE4NDEsNyBAQCBjZGVmIGNsYXNzIENhY2hlZE1l dGhvZENhbGxlcihDYWNoZWRGdW5jdGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLmYoc2VsZi5faW5zdGFuY2UsICphcmdzLCAqKmt3ZHMpCisgCistICAgIGNkZWYgZml4 X2FyZ3Nfa3dkcyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGZpeF9hcmdzX2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIE5vcm1hbGl6ZSBwYXJhbWV0ZXJzIHRvIG9idGFpbiBhIGtleSBmb3Ig dGhlIGNhY2hlLgorIAorQEAgLTI1MDUsNyArMjUwNSw3IEBAIGNkZWYgY2xhc3MgR2xvYmFsbHlD YWNoZWRNZXRob2RDYWxsZXIoQ2FjaGVkTWV0aG9kQ2FsbGVyKToKKyAgICAgVGhlIG9ubHkgZGlm ZmVyZW5jZSBpcyB0aGF0IHRoZSBpbnN0YW5jZSBpcyB1c2VkIGFzIHBhcnQgb2YgdGhlCisgICAg IGtleS4KKyAgICAgIiIiCistICAgIGNkZWYgZ2V0X2tleV9hcmdzX2t3ZHMoc2VsZiwgdHVwbGUg YXJncywgZGljdCBrd2RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfa2V5X2FyZ3Nfa3dkcyhz ZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGtleSBpbiB0aGUgY2FjaGUgdG8gYmUgdXNlZCB3aGVuIGBgYXJnc2BgIGFuZAorICAg ICAgICAgYGBrd2RzYGAgYXJlIHBhc3NlZCBpbiBhcyBwYXJhbWV0ZXJzLgorQEAgLTI3NTAsNyAr Mjc1MCw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kKCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLl9fZ2V0X18oaW5zdCkoKmFyZ3MsICoqa3dkcykKKyAKKy0gICAgY3Bk ZWYgX2dldF9pbnN0YW5jZV9jYWNoZShzZWxmLCBpbnN0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2dldF9pbnN0YW5jZV9jYWNoZShzZWxmLCBpbnN0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBjYWNoZSBkaWN0aW9uYXJ5LgorIAorQEAgLTMyMzgsNyArMzIzOCw3IEBAIGNk ZWYgY2xhc3MgQ2FjaGVkSW5QYXJlbnRNZXRob2QoQ2FjaGVkTWV0aG9kKToKKyAgICAgICAgIHNl bGYuX2NhY2hlX25hbWUgPSAnX2NhY2hlX18nICsgJ2VsZW1lbnRfJyArIChuYW1lIG9yIGYuX19u YW1lX18pCisgICAgICAgICBzZWxmLl9jYWNoZWRmdW5jID0gQ2FjaGVkRnVuY3Rpb24oZiwgY2xh c3NtZXRob2Q9VHJ1ZSwgbmFtZT1uYW1lLCBrZXk9a2V5LCBkb19waWNrbGU9ZG9fcGlja2xlKQor IAorLSAgICBjcGRlZiBfZ2V0X2luc3RhbmNlX2NhY2hlKHNlbGYsIGluc3QpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfZ2V0X2luc3RhbmNlX2NhY2hlKHNlbGYsIGluc3QpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGNhY2hlIGRpY3Rpb25hcnksIHdoaWNoIGlzIHN0b3JlZCBp biB0aGUgcGFyZW50LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvY3l0aG9uLnB5IGIv c3JjL3NhZ2UvbWlzYy9jeXRob24ucHkKK2luZGV4IDc1OTAxNThiMjc5Li45M2NlOTk0YzUzNyAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvY3l0aG9uLnB5CisrKysgYi9zcmMvc2FnZS9taXNj L2N5dGhvbi5weQorQEAgLTIzNiw3ICsyMzYsNyBAQCBkZWYgY3l0aG9uKGZpbGVuYW1lLCB2ZXJi b3NlPTAsIGNvbXBpbGVfbWVzc2FnZT1GYWxzZSwKKyAgICAgICAgIC4uLgorICAgICAgICAgUnVu dGltZUVycm9yOiBFcnJvciBjb21waWxpbmcgQ3l0aG9uIGZpbGU6CisgICAgICAgICAuLi4KKy0g ICAgICAgIC4uLjogJ3NhZ2UvbWlzYy5weGQnIG5vdCBmb3VuZC4uLgorKyAgICAgICAgLi4uOiAn c2FnZS9taXNjLnB4ZCcgbm90IGZvdW5kCisgICAgICIiIgorICAgICBpZiBub3QgZmlsZW5hbWUu ZW5kc3dpdGgoJ3B5eCcpOgorICAgICAgICAgcHJpbnQoIldhcm5pbmc6IGZpbGUgKD17fSkgc2hv dWxkIGhhdmUgZXh0ZW5zaW9uIC5weXgiLmZvcm1hdChmaWxlbmFtZSksIGZpbGU9c3lzLnN0ZGVy cikKK0BAIC0zODIsMTIgKzM4Miw2IEBAIGRlZiBjeXRob24oZmlsZW5hbWUsIHZlcmJvc2U9MCwg Y29tcGlsZV9tZXNzYWdlPUZhbHNlLAorICAgICAgICAgICAgICJQbGFjaW5nIGl0IGJlZm9yZSAn ZXhjZXB0JyBvciAnbm9leGNlcHQnIHdpbGwgYmUgZGlzYWxsb3dlZCBpbiBhIGZ1dHVyZSB2ZXJz aW9uIG9mIEN5dGhvbi5cbiIsCisgICAgICAgICAgICAgIiIsIGN5dGhvbl9tZXNzYWdlcywgMCwg cmUuTVVMVElMSU5FKQorIAorLSAgICAgICAgIyB3b3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1 Yi5jb20vc2FnZW1hdGgvc2FnZS9pc3N1ZXMvMzc1NjAKKy0gICAgICAgICMgdHJpZ2dlcmVkIGJ5 IEN5dGhvbiAzLjAuOQorLSAgICAgICAgY3l0aG9uX21lc3NhZ2VzID0gcmUuc3ViKAorLSAgICAg ICAgICAgICJed2FybmluZzogLipub2V4Y2VwdCBjbGF1c2UgaXMgaWdub3JlZCBmb3IgZnVuY3Rp b24gcmV0dXJuaW5nIFB5dGhvbiBvYmplY3RcbiIsCistICAgICAgICAgICAgIiIsIGN5dGhvbl9t ZXNzYWdlcywgMCwgcmUuTVVMVElMSU5FKQorLQorICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShj eXRob25fbWVzc2FnZXMpCisgICAgICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9taXNjL2Z1bmN0aW9uX21hbmdsaW5nLnB4ZCBiL3NyYy9zYWdlL21pc2Mv ZnVuY3Rpb25fbWFuZ2xpbmcucHhkCitpbmRleCA3NGYxYTZlMjI4Mi4uMDE2MDQwODhhZGMgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2Z1bmN0aW9uX21hbmdsaW5nLnB4ZAorKysrIGIvc3Jj L3NhZ2UvbWlzYy9mdW5jdGlvbl9tYW5nbGluZy5weGQKK0BAIC03LDQgKzcsNCBAQCBjZGVmIGNs YXNzIEFyZ3VtZW50Rml4ZXI6CisgICAgIGNkZWYgZGljdCBfZGVmYXVsdHMKKyAgICAgY2RlZiBw dWJsaWMgdHVwbGUgX2RlZmF1bHRfdHVwbGUKKyAKKy0gICAgY2RlZiBmaXhfdG9fcG9zX2FyZ3Nf a3dkcyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3YXJncykgbm9leGNlcHQKKysgICAgY2RlZiBm aXhfdG9fcG9zX2FyZ3Nfa3dkcyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3YXJncykKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9taXNjL2Z1bmN0aW9uX21hbmdsaW5nLnB5eCBiL3NyYy9zYWdlL21p c2MvZnVuY3Rpb25fbWFuZ2xpbmcucHl4CitpbmRleCBjNjE0Zjk3ZTlkZi4uMTM5MmZjNGYyZmQg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2Z1bmN0aW9uX21hbmdsaW5nLnB5eAorKysrIGIv c3JjL3NhZ2UvbWlzYy9mdW5jdGlvbl9tYW5nbGluZy5weXgKK0BAIC0yODQsNyArMjg0LDcgQEAg Y2RlZiBjbGFzcyBBcmd1bWVudEZpeGVyOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZi5maXhfdG9fcG9zX2FyZ3Nfa3dkcyhhcmdzLCBrd2RzKQorIAorLSAgICBjZGVmIGZpeF90 b19wb3NfYXJnc19rd2RzKHNlbGYsIHR1cGxlIGFyZ3MsIGRpY3Qga3dkcykgbm9leGNlcHQ6Cisr ICAgIGNkZWYgZml4X3RvX3Bvc19hcmdzX2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2Rz KToKKyAgICAgICAgICIiIgorICAgICAgICAgRmFzdCBDeXRob24gaW1wbGVtZW50YXRpb24gb2Yg Om1ldGg6YGZpeF90b19wb3NgLgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bWlzYy9sYXp5X2ltcG9ydC5weXggYi9zcmMvc2FnZS9taXNjL2xhenlfaW1wb3J0LnB5eAoraW5k ZXggNzBhOTE0NTI4YjkuLjUyNzg2OTNkNjU5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9s YXp5X2ltcG9ydC5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvbGF6eV9pbXBvcnQucHl4CitAQCAt NzksNyArNzksNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgIEZlYXR1cmVOb3RQcmVzZW50 RXJyb3IgPSAoKQorIAorIAorLWNkZWYgaW5saW5lIG9iaih4KSBub2V4Y2VwdDoKKytjZGVmIGlu bGluZSBvYmooeCk6CisgICAgIGlmIHR5cGUoeCkgaXMgTGF6eUltcG9ydDoKKyAgICAgICAgIHJl dHVybiAoPExhenlJbXBvcnQ+eCkuZ2V0X29iamVjdCgpCisgICAgIGVsc2U6CitAQCAtOTIsNyAr OTIsNyBAQCBjZGVmIGJpbnQgc3RhcnR1cF9ndWFyZCA9IFRydWUKKyBjZGVmIGJpbnQgZmluaXNo X3N0YXJ0dXBfY2FsbGVkID0gRmFsc2UKKyAKKyAKKy1jcGRlZiBmaW5pc2hfc3RhcnR1cCgpIG5v ZXhjZXB0OgorK2NwZGVmIGZpbmlzaF9zdGFydHVwKCk6CisgICAgICIiIgorICAgICBGaW5pc2gg dGhlIHN0YXJ0dXAgcGhhc2UuCisgCitAQCAtMTEzLDcgKzExMyw3IEBAIGNwZGVmIGZpbmlzaF9z dGFydHVwKCkgbm9leGNlcHQ6CisgICAgIGZpbmlzaF9zdGFydHVwX2NhbGxlZCA9IFRydWUKKyAK KyAKKy1jcGRlZiBlbnN1cmVfc3RhcnR1cF9maW5pc2hlZCgpIG5vZXhjZXB0OgorK2NwZGVmIGVu c3VyZV9zdGFydHVwX2ZpbmlzaGVkKCk6CisgICAgICIiIgorICAgICBNYWtlIHN1cmUgdGhhdCB0 aGUgc3RhcnR1cCBwaGFzZSBpcyBmaW5pc2hlZC4KKyAKK0BAIC0xNDcsNyArMTQ3LDcgQEAgY3Bk ZWYgYmludCBpc19kdXJpbmdfc3RhcnR1cCgpIG5vZXhjZXB0OgorICAgICByZXR1cm4gc3RhcnR1 cF9ndWFyZAorIAorIAorLWNwZGVmIHRlc3RfZmFrZV9zdGFydHVwKCkgbm9leGNlcHQ6CisrY3Bk ZWYgdGVzdF9mYWtlX3N0YXJ0dXAoKToKKyAgICAgIiIiCisgICAgIEZvciB0ZXN0aW5nIHB1cnBv c2VzIG9ubHkuCisgCitAQCAtMjE2LDcgKzIxNiw3IEBAIGNkZWYgY2xhc3MgTGF6eUltcG9ydCgp OgorICAgICAgICAgc2VsZi5fZGVwcmVjYXRpb24gPSBkZXByZWNhdGlvbgorICAgICAgICAgc2Vs Zi5fZmVhdHVyZSA9IGZlYXR1cmUKKyAKKy0gICAgY2RlZiBpbmxpbmUgZ2V0X29iamVjdChzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgZ2V0X29iamVjdChzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgRmFzdGVyLCBDeXRob24tb25seSBwYXJ0aWFsbHktaW5saW5lZCB2ZXJz aW9uIG9mIGBgX2dldF9vYmplY3RgYC4KKyAgICAgICAgICIiIgorQEAgLTIyNCw3ICsyMjQsNyBA QCBjZGVmIGNsYXNzIExhenlJbXBvcnQoKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fb2Jq ZWN0CisgICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X29iamVjdCgpCisgCistICAgIGNwZGVmIF9n ZXRfb2JqZWN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2V0X29iamVjdChzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB3cmFwcGVkIG9iamVjdCwgaW1wb3J0 aW5nIGl0IGlmIG5lY2Vzc2FyeS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlf bGlzdC5weGQgYi9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5weGQKK2luZGV4IGQ1MTJjZmI2OWY0 Li5mOGI1MWI0NzgzNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB4ZAor KysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHhkCitAQCAtMywxMCArMywxMCBAQCBjZGVm IGNsYXNzIGxhenlfbGlzdF9nZW5lcmljKCk6CisgICAgIGNkZWYgbGF6eV9saXN0X2dlbmVyaWMg bWFzdGVyICAgIyBhIHJlZmVyZW5jZSBpZiBzZWxmIGlzIGEgc2xpY2UKKyAgICAgY2RlZiBQeV9z c2l6ZV90IHN0YXJ0LCBzdG9wLCBzdGVwCisgCistICAgIGNwZGVmIGdldChzZWxmLCBQeV9zc2l6 ZV90IGkpIG5vZXhjZXB0CisrICAgIGNwZGVmIGdldChzZWxmLCBQeV9zc2l6ZV90IGkpCisgICAg IGNwZGVmIGludCBfZml0KHNlbGYsIFB5X3NzaXplX3QgbikgZXhjZXB0IC0xCisgICAgIGNwZGVm IGludCBfdXBkYXRlX2NhY2hlX3VwX3RvKHNlbGYsIFB5X3NzaXplX3QgaSkgZXhjZXB0IC0xCist ICAgIGNwZGVmIGxpc3QgX2dldF9jYWNoZV8oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgbGlz dCBfZ2V0X2NhY2hlXyhzZWxmKQorIAorIGNkZWYgY2xhc3MgbGF6eV9saXN0X2Zyb21faXRlcmF0 b3IobGF6eV9saXN0X2dlbmVyaWMpOgorICAgICBjZGVmIG9iamVjdCBpdGVyYXRvcgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB5eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9s aXN0LnB5eAoraW5kZXggNzE4NDdlNTY2YWQuLmNkNzUwOTMzODYwIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5w eXgKK0BAIC02MTAsNyArNjEwLDcgQEAgY2RlZiBjbGFzcyBsYXp5X2xpc3RfZ2VuZXJpYygpOgor ICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjcGRlZiBn ZXQoc2VsZiwgUHlfc3NpemVfdCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0KHNlbGYsIFB5 X3NzaXplX3QgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGVsZW1lbnQg YXQgcG9zaXRpb24gYGBpYGAuCisgCitAQCAtODgwLDcgKzg4MCw3IEBAIGNkZWYgY2xhc3MgbGF6 eV9saXN0X2dlbmVyaWMoKToKKyAgICAgICAgICAgICBzZWxmLmNhY2hlLmV4dGVuZChsKQorICAg ICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY3BkZWYgbGlzdCBfZ2V0X2NhY2hlXyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBfZ2V0X2NhY2hlXyhzZWxmKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgaW50ZXJuYWwgY2FjaGUuCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbWlzYy9sYXp5X3N0cmluZy5weGQgYi9zcmMvc2FnZS9taXNjL2xhenlfc3RyaW5nLnB4 ZAoraW5kZXggZDc0YTE4NzYzYTIuLjdmNzM1NGUwM2NhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bWlzYy9sYXp5X3N0cmluZy5weGQKKysrKyBiL3NyYy9zYWdlL21pc2MvbGF6eV9zdHJpbmcucHhk CitAQCAtMiw1ICsyLDUgQEAgY2RlZiBjbGFzcyBfTGF6eVN0cmluZygpOgorICAgICBjZGVmIGZ1 bmMKKyAgICAgY2RlZiBhcmdzCisgICAgIGNkZWYga3dhcmdzCistICAgIGNkZWYgdmFsKHNlbGYp IG5vZXhjZXB0CistICAgIGNwZGVmIHVwZGF0ZV9sYXp5X3N0cmluZyhzZWxmLCBhcmdzLCBrd2Rz KSBub2V4Y2VwdAorKyAgICBjZGVmIHZhbChzZWxmKQorKyAgICBjcGRlZiB1cGRhdGVfbGF6eV9z dHJpbmcoc2VsZiwgYXJncywga3dkcykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlf c3RyaW5nLnB5eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9zdHJpbmcucHl4CitpbmRleCAwNDA5OTlj ODRkNi4uYTBlZmJiMTg2YmYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xhenlfc3RyaW5n LnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X3N0cmluZy5weXgKK0BAIC0yMDMsNyArMjAz LDcgQEAgY2RlZiBjbGFzcyBfTGF6eVN0cmluZygpOgorICAgICAgICAgc2VsZi5hcmdzID0gPHR1 cGxlPz5hcmdzCisgICAgICAgICBzZWxmLmt3YXJncyA9IDxkaWN0Pz5rd2FyZ3MKKyAKKy0gICAg Y2RlZiB2YWwoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgdmFsKHNlbGYpOgorICAgICAgICAg Y2RlZiBmID0gc2VsZi5mdW5jCisgICAgICAgICBpZiBpc2luc3RhbmNlKGYsIHN0cik6CisgICAg ICAgICAgICAgcmV0dXJuIGYgJSBzZWxmLmFyZ3MKK0BAIC01MDMsNyArNTAzLDcgQEAgY2RlZiBj bGFzcyBfTGF6eVN0cmluZygpOgorICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg ICAgICByZXR1cm4gJzwlcyBicm9rZW4+JyAlIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fCisgCist ICAgIGNwZGVmIHVwZGF0ZV9sYXp5X3N0cmluZyhzZWxmLCBhcmdzLCBrd2RzKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgdXBkYXRlX2xhenlfc3RyaW5nKHNlbGYsIGFyZ3MsIGt3ZHMpOgorICAgICAg ICAgIiIiCisgICAgICAgICBDaGFuZ2UgdGhpcyBsYXp5IHN0cmluZyBpbi1wbGFjZS4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL21pc2NfYy5weGQgYi9zcmMvc2FnZS9taXNjL21pc2Nf Yy5weGQKK2luZGV4IDE3ZWY0Njc5MTFhLi5hY2IzNmFiNmQ5OSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL21pc2MvbWlzY19jLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWlzYy9taXNjX2MucHhkCitAQCAt MSwyICsxLDIgQEAKKyAKKy1jcGRlZiBsaXN0IG5vcm1hbGl6ZV9pbmRleChvYmplY3Qga2V5LCBp bnQgc2l6ZSkgbm9leGNlcHQKKytjcGRlZiBsaXN0IG5vcm1hbGl6ZV9pbmRleChvYmplY3Qga2V5 LCBpbnQgc2l6ZSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL21pc2NfYy5weXggYi9zcmMv c2FnZS9taXNjL21pc2NfYy5weXgKK2luZGV4IGU1Y2ViM2UxYWQzLi41NmU3YTMyMzI1OCAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvbWlzY19jLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9t aXNjX2MucHl4CitAQCAtMTQ3LDcgKzE0Nyw3IEBAIGRlZiBwcm9kKHgsIHo9Tm9uZSwgUHlfc3Np emVfdCByZWN1cnNpb25fY3V0b2ZmPTUpOgorICAgICByZXR1cm4gcHJvZAorIAorIAorLWNkZWYg YmFsYW5jZWRfbGlzdF9wcm9kKEwsIFB5X3NzaXplX3Qgb2Zmc2V0LCBQeV9zc2l6ZV90IGNvdW50 LCBQeV9zc2l6ZV90IGN1dG9mZikgbm9leGNlcHQ6CisrY2RlZiBiYWxhbmNlZF9saXN0X3Byb2Qo TCwgUHlfc3NpemVfdCBvZmZzZXQsIFB5X3NzaXplX3QgY291bnQsIFB5X3NzaXplX3QgY3V0b2Zm KToKKyAgICAgIiIiCisgICAgIElOUFVUOgorIAorQEAgLTE4Miw3ICsxODIsNyBAQCBjZGVmIGJh bGFuY2VkX2xpc3RfcHJvZChMLCBQeV9zc2l6ZV90IG9mZnNldCwgUHlfc3NpemVfdCBjb3VudCwg UHlfc3NpemVfdCBjdXRvZgorICAgICAgICAgcmV0dXJuIGJhbGFuY2VkX2xpc3RfcHJvZChMLCBv ZmZzZXQsIGssIGN1dG9mZikgKiBiYWxhbmNlZF9saXN0X3Byb2QoTCwgb2Zmc2V0ICsgaywgY291 bnQgLSBrLCBjdXRvZmYpCisgCisgCistY3BkZWYgaXRlcmF0b3JfcHJvZChMLCB6PU5vbmUpIG5v ZXhjZXB0OgorK2NwZGVmIGl0ZXJhdG9yX3Byb2QoTCwgej1Ob25lKToKKyAgICAgIiIiCisgICAg IEF0dGVtcHQgdG8gZG8gYSBiYWxhbmNlZCBwcm9kdWN0IG9mIGFuIGFyYml0cmFyeSBhbmQgdW5r bm93biBsZW5ndGgKKyAgICAgc2VxdWVuY2UgKHN1Y2ggYXMgYSBnZW5lcmF0b3IpLiBJbnRlcm1l ZGlhdGUgbXVsdGlwbGljYXRpb25zIGFyZSBhbHdheXMKK0BAIC0zOTcsNyArMzk3LDcgQEAgZGVm IGJhbGFuY2VkX3N1bSh4LCB6PU5vbmUsIFB5X3NzaXplX3QgcmVjdXJzaW9uX2N1dG9mZj01KToK KyAKKyAgICAgcmV0dXJuIHN1bQorIAorLWNkZWYgYmFsYW5jZWRfbGlzdF9zdW0oTCwgUHlfc3Np emVfdCBvZmZzZXQsIFB5X3NzaXplX3QgY291bnQsIFB5X3NzaXplX3QgY3V0b2ZmKSBub2V4Y2Vw dDoKKytjZGVmIGJhbGFuY2VkX2xpc3Rfc3VtKEwsIFB5X3NzaXplX3Qgb2Zmc2V0LCBQeV9zc2l6 ZV90IGNvdW50LCBQeV9zc2l6ZV90IGN1dG9mZik6CisgICAgICIiIgorICAgICBJTlBVVDoKKyAK K0BAIC00MzIsNyArNDMyLDcgQEAgY2RlZiBiYWxhbmNlZF9saXN0X3N1bShMLCBQeV9zc2l6ZV90 IG9mZnNldCwgUHlfc3NpemVfdCBjb3VudCwgUHlfc3NpemVfdCBjdXRvZmYKKyAgICAgICAgIHJl dHVybiBiYWxhbmNlZF9saXN0X3N1bShMLCBvZmZzZXQsIGssIGN1dG9mZikgKyBiYWxhbmNlZF9s aXN0X3N1bShMLCBvZmZzZXQgKyBrLCBjb3VudCAtIGssIGN1dG9mZikKKyAKKyAKKy1jcGRlZiBs aXN0IG5vcm1hbGl6ZV9pbmRleChvYmplY3Qga2V5LCBpbnQgc2l6ZSkgbm9leGNlcHQ6CisrY3Bk ZWYgbGlzdCBub3JtYWxpemVfaW5kZXgob2JqZWN0IGtleSwgaW50IHNpemUpOgorICAgICAiIiIK KyAgICAgTm9ybWFsaXplIGFuIGluZGV4IGtleSBhbmQgcmV0dXJuIGEgdmFsaWQgaW5kZXggb3Ig bGlzdCBvZiBpbmRpY2VzCisgICAgIHdpdGhpbiB0aGUgcmFuZ2UoMCwgc2l6ZSkuCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvbWlzYy9uZXN0ZWRfY2xhc3MucHl4IGIvc3JjL3NhZ2UvbWlzYy9uZXN0 ZWRfY2xhc3MucHl4CitpbmRleCBhMjYyNWMwMzllZi4uOTdlZDMxMmIwOGMgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9taXNjL25lc3RlZF9jbGFzcy5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvbmVz dGVkX2NsYXNzLnB5eAorQEAgLTkzLDcgKzkzLDcgQEAgX19hbGxfXyA9IFsnbW9kaWZ5X2Zvcl9u ZXN0ZWRfcGlja2xlJywgJ25lc3RlZF9waWNrbGUnLAorICAgICAgICAgICAgIywgJ1N1YkNsYXNz JywgJ0NvcGllZENsYXNzJywgJ0ExJworICAgICAgICAgICAgXQorIAorLWNwZGVmIG1vZGlmeV9m b3JfbmVzdGVkX3BpY2tsZShjbHMsIHN0ciBuYW1lX3ByZWZpeCwgbW9kdWxlLCBmaXJzdF9ydW49 VHJ1ZSkgbm9leGNlcHQ6CisrY3BkZWYgbW9kaWZ5X2Zvcl9uZXN0ZWRfcGlja2xlKGNscywgc3Ry IG5hbWVfcHJlZml4LCBtb2R1bGUsIGZpcnN0X3J1bj1UcnVlKToKKyAgICAgciIiIgorICAgICBN b2RpZnkgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIGdpdmVuIGNsYXNzIHRvIGJlIHBpY2tsYWJsZSwg YnkKKyAgICAgZ2l2aW5nIHRoZW0gYSBtYW5nbGVkIG5hbWUgYW5kIHB1dHRpbmcgdGhlIG1hbmds ZWQgbmFtZSBpbiB0aGUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL3BhcnNlci5weXggYi9z cmMvc2FnZS9taXNjL3BhcnNlci5weXgKK2luZGV4IDE0ODk2Y2U3NjNjLi5hMDI4ZTk1M2Y5MCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvcGFyc2VyLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlz Yy9wYXJzZXIucHl4CitAQCAtMjAzLDcgKzIwMyw3IEBAIGNkZWYgY2xhc3MgVG9rZW5pemVyOgor ICAgICAgICAgICAgIHRva2VuID0gc2VsZi5uZXh0KCkKKyAgICAgICAgIHJldHVybiBhbGwKKyAK Ky0gICAgY3BkZWYgcmVzZXQoc2VsZiwgaW50IHBvcyA9IDApIG5vZXhjZXB0OgorKyAgICBjcGRl ZiByZXNldChzZWxmLCBpbnQgcG9zID0gMCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlc2V0 IHRoZSB0b2tlbml6ZXIgdG8gYSBnaXZlbiBwb3NpdGlvbi4KKyAKK0BAIC00MjAsNyArNDIwLDcg QEAgY2RlZiBjbGFzcyBUb2tlbml6ZXI6CisgICAgICAgICAgICAgc2VsZi5wb3MgPSBzZWxmLmxh c3RfcG9zCisgICAgICAgICAgICAgc2VsZi50b2tlbiA9IDAKKyAKKy0gICAgY3BkZWYgbGFzdF90 b2tlbl9zdHJpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxhc3RfdG9rZW5fc3RyaW5n KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdHVhbCBjb250ZW50 cyBvZiB0aGUgbGFzdCB0b2tlbi4KKyAKK0BAIC01MzAsNyArNTMwLDcgQEAgY2RlZiBjbGFzcyBQ YXJzZXI6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmNhbGxhYmxlX2NvbnN0 cnVjdG9yCisgCistICAgIGNwZGVmIHBhcnNlKHNlbGYsIHMsIGJpbnQgYWNjZXB0X2Vxbj1UcnVl KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcGFyc2Uoc2VsZiwgcywgYmludCBhY2NlcHRfZXFuPVRy dWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBQYXJzZSB0aGUgZ2l2ZW4gc3RyaW5nLgorIAor QEAgLTU1Miw3ICs1NTIsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgICAgICBzZWxm LnBhcnNlX2Vycm9yKHRva2VucykKKyAgICAgICAgIHJldHVybiBleHByCisgCistICAgIGNwZGVm IHBhcnNlX2V4cHJlc3Npb24oc2VsZiwgcykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBhcnNlX2V4 cHJlc3Npb24oc2VsZiwgcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBhcnNlIGFuIGV4cHJl c3Npb24uCisgCitAQCAtNTY5LDcgKzU2OSw3IEBAIGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAg ICAgICAgIHNlbGYucGFyc2VfZXJyb3IodG9rZW5zKQorICAgICAgICAgcmV0dXJuIGV4cHIKKyAK Ky0gICAgY3BkZWYgcGFyc2Vfc2VxdWVuY2Uoc2VsZiwgcykgbm9leGNlcHQ6CisrICAgIGNwZGVm IHBhcnNlX3NlcXVlbmNlKHNlbGYsIHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBQYXJzZSBh IChwb3NzaWJseSBuZXN0ZWQpIHNldCBvZiBsaXN0cyBhbmQgdHVwbGVzLgorIAorQEAgLTU5Myw3 ICs1OTMsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgICAgICBhbGwgPSBhbGxbMF0K KyAgICAgICAgIHJldHVybiBhbGwKKyAKKy0gICAgY3BkZWYgcF9tYXRyaXgoc2VsZiwgVG9rZW5p emVyIHRva2Vucykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBfbWF0cml4KHNlbGYsIFRva2VuaXpl ciB0b2tlbnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBQYXJzZSBhIG1hdHJpeAorIAorQEAg LTYyMSw3ICs2MjEsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgc2VsZi5wYXJzZV9lcnJvcih0b2tlbnMsICJNYWxmb3JtZWQgbWF0cml4IikKKyAK Ky0gICAgY3BkZWYgcF9zZXF1ZW5jZShzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcF9zZXF1ZW5jZShzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUGFyc2UgYSAocG9zc2libHkgbmVzdGVkKSBzZXQgb2YgbGlzdHMgYW5k IHR1cGxlcy4KKyAKK0BAIC02NjYsNyArNjY2LDcgQEAgY2RlZiBjbGFzcyBQYXJzZXI6CisgICAg ICAgICB0b2tlbnMuYmFja3RyYWNrKCkKKyAgICAgICAgIHJldHVybiBhbGwKKyAKKy0gICAgY3Bk ZWYgcF9saXN0KHNlbGYsIFRva2VuaXplciB0b2tlbnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBw X2xpc3Qoc2VsZiwgVG9rZW5pemVyIHRva2Vucyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBh cnNlIGEgbGlzdCBvZiBpdGVtcy4KKyAKK0BAIC02ODgsNyArNjg4LDcgQEAgY2RlZiBjbGFzcyBQ YXJzZXI6CisgICAgICAgICAgICAgc2VsZi5wYXJzZV9lcnJvcih0b2tlbnMsICJNYWxmb3JtZWQg bGlzdCIpCisgICAgICAgICByZXR1cm4gYWxsCisgCistICAgIGNwZGVmIHBfdHVwbGUoc2VsZiwg VG9rZW5pemVyIHRva2Vucykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBfdHVwbGUoc2VsZiwgVG9r ZW5pemVyIHRva2Vucyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBhcnNlIGEgdHVwbGUgb2Yg aXRlbXMuCisgCitAQCAtNzIzLDcgKzcyMyw3IEBAIGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAg ICAgICAgICAgICByZXR1cm4gc2VsZi5wX2Vxbih0b2tlbnMpCisgCisgIyBlcW4gOjo9IGV4cHIg b3AgZXhwciB8IGV4cHIKKy0gICAgY3BkZWYgcF9lcW4oc2VsZiwgVG9rZW5pemVyIHRva2Vucykg bm9leGNlcHQ6CisrICAgIGNwZGVmIHBfZXFuKHNlbGYsIFRva2VuaXplciB0b2tlbnMpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUGFyc2UgYW4gZXF1YXRpb24gb3IgZXhwcmVzc2lvbi4KKyAK K0BAIC03NjksNyArNzY5LDcgQEAgY2RlZiBjbGFzcyBQYXJzZXI6CisgICAgICAgICAgICAgcmV0 dXJuIGxocworIAorICMgZXhwciA6Oj0gIHRlcm0gfCBleHByICcrJyB0ZXJtIHwgZXhwciAnLScg dGVybQorLSAgICBjcGRlZiBwX2V4cHIoc2VsZiwgVG9rZW5pemVyIHRva2Vucykgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHBfZXhwcihzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKToKKyAgICAgICAgICIi IgorICAgICAgICAgUGFyc2UgYSBsaXN0IG9mIG9uZSBvciBtb3JlIHRlcm1zLgorIAorQEAgLTgw NCw3ICs4MDQsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgIHJldHVybiBvcGVyYW5k MQorIAorICMgdGVybSA6Oj0gIGZhY3RvciB8IHRlcm0gJyonIGZhY3RvciB8IHRlcm0gJy8nIGZh Y3RvcgorLSAgICBjcGRlZiBwX3Rlcm0oc2VsZiwgVG9rZW5pemVyIHRva2Vucykgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHBfdGVybShzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKToKKyAgICAgICAgICIi IgorICAgICAgICAgUGFyc2UgYSBzaW5nbGUgdGVybSAoY29uc2lzdGluZyBvZiBvbmUgb3IgbW9y ZSBmYWN0b3JzKS4KKyAKK0BAIC04NDUsNyArODQ1LDcgQEAgY2RlZiBjbGFzcyBQYXJzZXI6Cisg ICAgICAgICByZXR1cm4gb3BlcmFuZDEKKyAKKyAjIGZhY3RvciA6Oj0gICcrJyBmYWN0b3IgfCAn LScgZmFjdG9yIHwgcG93ZXIKKy0gICAgY3BkZWYgcF9mYWN0b3Ioc2VsZiwgVG9rZW5pemVyIHRv a2Vucykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBfZmFjdG9yKHNlbGYsIFRva2VuaXplciB0b2tl bnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBQYXJzZSBhIHNpbmdsZSBmYWN0b3IsIHdoaWNo IGNvbnNpc3RzIG9mIGFueSBudW1iZXIgb2YgdW5hcnkgKy8tCisgICAgICAgICBhbmQgYSBwb3dl ci4KK0BAIC04NzIsNyArODcyLDcgQEAgY2RlZiBjbGFzcyBQYXJzZXI6CisgICAgICAgICAgICAg cmV0dXJuIHNlbGYucF9wb3dlcih0b2tlbnMpCisgCisgIyBwb3dlciA6Oj0gIChhdG9tIHwgYXRv bSEpIF4gZmFjdG9yIHwgYXRvbSB8IGF0b20hCistICAgIGNwZGVmIHBfcG93ZXIoc2VsZiwgVG9r ZW5pemVyIHRva2Vucykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBfcG93ZXIoc2VsZiwgVG9rZW5p emVyIHRva2Vucyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBhcnNlcyBhIHBvd2VyLiBOb3Rl IHRoYXQgZXhwb25lbnRpYXRpb24gZ3JvdXBzIHJpZ2h0IHRvIGxlZnQuCisgCitAQCAtOTE3LDcg KzkxNyw3IEBAIGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAgICAgICAgIHJldHVybiBvcGVyYW5k MQorIAorICMgYXRvbSA6Oj0gaW50IHwgZmxvYXQgfCBuYW1lIHwgJygnIGV4cHIgJyknIHwgbmFt ZSAnKCcgYXJncyAnKScKKy0gICAgY3BkZWYgcF9hdG9tKHNlbGYsIFRva2VuaXplciB0b2tlbnMp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBwX2F0b20oc2VsZiwgVG9rZW5pemVyIHRva2Vucyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFBhcnNlIGFuIGF0b20uIFRoaXMgaXMgZWl0aGVyIGEgcGFy ZW50aGVzaXplZCBleHByZXNzaW9uLCBhIGZ1bmN0aW9uIGNhbGwsIG9yIGEgbGl0ZXJhbCBuYW1l L2ludC9mbG9hdC4KKyAKK0BAIC05NzMsNyArOTczLDcgQEAgY2RlZiBjbGFzcyBQYXJzZXI6Cisg ICAgICAgICAgICAgc2VsZi5wYXJzZV9lcnJvcih0b2tlbnMpCisgCisgIyBhcmdzID0gYXJnICgn LCcgYXJnKSogfCBFTVBUWQorLSAgICBjcGRlZiBwX2FyZ3Moc2VsZiwgVG9rZW5pemVyIHRva2Vu cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBfYXJncyhzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIGxpc3QsIGRpY3QgcGFpci4KKyAKK0BA IC0xMDAzLDcgKzEwMDMsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgIHJldHVybiBh cmdzLCBrd2RzCisgCisgIyBhcmcgPSBleHByIHwgbmFtZSAnPScgZXhwcgorLSAgICBjcGRlZiBw X2FyZyhzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcF9hcmco c2VsZiwgVG9rZW5pemVyIHRva2Vucyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMg YW4gZXhwciwgb3IgYSAobmFtZSwgZXhwcikgdHVwbGUgY29ycmVzcG9uZGluZyB0byBhIHNpbmds ZQorICAgICAgICAgZnVuY3Rpb24gY2FsbCBhcmd1bWVudC4KK0BAIC0xMDQ0LDcgKzEwNDQsNyBA QCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgICAgICB0b2tlbnMuYmFja3RyYWNrKCkKKyAg ICAgICAgICAgICByZXR1cm4gc2VsZi5wX2V4cHIodG9rZW5zKQorIAorLSAgICBjZGVmIHBhcnNl X2Vycm9yKHNlbGYsIFRva2VuaXplciB0b2tlbnMsIG1zZz0iTWFsZm9ybWVkIGV4cHJlc3Npb24i KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwYXJzZV9lcnJvcihzZWxmLCBUb2tlbml6ZXIgdG9rZW5z LCBtc2c9Ik1hbGZvcm1lZCBleHByZXNzaW9uIik6CisgICAgICAgICByYWlzZSBTeW50YXhFcnJv cihtc2csIHRva2Vucy5zLCB0b2tlbnMucG9zKQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L21pc2MvcGVyc2lzdC5weXggYi9zcmMvc2FnZS9taXNjL3BlcnNpc3QucHl4CitpbmRleCBiNmY0 YmIyMjBmNy4uM2U1NmUyNDlkNDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3BlcnNpc3Qu cHl4CisrKysgYi9zcmMvc2FnZS9taXNjL3BlcnNpc3QucHl4CitAQCAtNzUsNyArNzUsNyBAQCBh bHJlYWR5X3BpY2tsZWQgPSB7IH0KKyBhbHJlYWR5X3VucGlja2xlZCA9IHsgfQorIAorIAorLWNk ZWYgX25vcm1hbGl6ZV9maWxlbmFtZShzKSBub2V4Y2VwdDoKKytjZGVmIF9ub3JtYWxpemVfZmls ZW5hbWUocyk6CisgICAgICIiIgorICAgICBBcHBlbmQgdGhlIC5zb2JqIGV4dGVuc2lvbiB0byBh IGZpbGVuYW1lIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGl0LgorICAgICAiIiIKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9taXNjL3JhbmRzdGF0ZS5weGQgYi9zcmMvc2FnZS9taXNjL3JhbmRz dGF0ZS5weGQKK2luZGV4IGM4Mzg3M2E3Yzk5Li5mYzVlOTU1ZWI3OSAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21pc2MvcmFuZHN0YXRlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWlzYy9yYW5kc3RhdGUu cHhkCitAQCAtMTYsMTQgKzE2LDE0IEBAIGNkZWYgY2xhc3MgcmFuZHN0YXRlOgorIAorICAgICBj ZGVmIG9iamVjdCBfZ3Bfc2F2ZWRfc2VlZHMKKyAKKy0gICAgY3BkZWYgc2V0X3NlZWRfbGliYyhz ZWxmLCBiaW50IGZvcmNlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRfc2VlZF9udGwoc2VsZiwg YmludCBmb3JjZSkgbm9leGNlcHQKKysgICAgY3BkZWYgc2V0X3NlZWRfbGliYyhzZWxmLCBiaW50 IGZvcmNlKQorKyAgICBjcGRlZiBzZXRfc2VlZF9udGwoc2VsZiwgYmludCBmb3JjZSkKKyAKKyAg ICAgY3BkZWYgaW50IGNfcmFuZG9tKHNlbGYpIG5vZXhjZXB0CisgICAgIGNwZGVmIGRvdWJsZSBj X3JhbmRfZG91YmxlKHNlbGYpIG5vZXhjZXB0CisgCistICAgIGNwZGVmIFpaX3NlZWQoc2VsZikg bm9leGNlcHQKKy0gICAgY3BkZWYgbG9uZ19zZWVkKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVm IFpaX3NlZWQoc2VsZikKKysgICAgY3BkZWYgbG9uZ19zZWVkKHNlbGYpCisgCistY3BkZWYgcmFu ZHN0YXRlIGN1cnJlbnRfcmFuZHN0YXRlKCkgbm9leGNlcHQKKytjcGRlZiByYW5kc3RhdGUgY3Vy cmVudF9yYW5kc3RhdGUoKQorIGNwZGVmIGludCByYW5kb20oKSBub2V4Y2VwdAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL21pc2MvcmFuZHN0YXRlLnB5eCBiL3NyYy9zYWdlL21pc2MvcmFuZHN0YXRl LnB5eAoraW5kZXggYjkxOGIxNTM4ODMuLmZkM2VjMmNhZDYwIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbWlzYy9yYW5kc3RhdGUucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL3JhbmRzdGF0ZS5weXgK K0BAIC00NDMsNyArNDQzLDcgQEAgY2RlZiByYW5kc3RhdGUgX3Bhcmlfc2VlZF9yYW5kc3RhdGUK KyAjIHJhbmRzdGF0ZSBvYmplY3Qgd2FzIHRoZSBtb3N0IHJlY2VudCBvbmUgdG8gc2VlZCBpdC4K KyBfZ3Bfc2VlZF9yYW5kc3RhdGVzID0gd2Vha3JlZi5XZWFrS2V5RGljdGlvbmFyeSgpCisgCist Y3BkZWYgcmFuZHN0YXRlIGN1cnJlbnRfcmFuZHN0YXRlKCkgbm9leGNlcHQ6CisrY3BkZWYgcmFu ZHN0YXRlIGN1cnJlbnRfcmFuZHN0YXRlKCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBj dXJyZW50IHJhbmRvbSBudW1iZXIgc3RhdGUuCisgCitAQCAtNjEwLDcgKzYxMCw3IEBAIGNkZWYg Y2xhc3MgcmFuZHN0YXRlOgorICAgICAgICAgc2VsZi5fcHl0aG9uX3JhbmRvbSA9IHJhbmQKKyAg ICAgICAgIHJldHVybiByYW5kCisgCistICAgIGNwZGVmIFpaX3NlZWQoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIFpaX3NlZWQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBXaGVu IGNhbGxlZCBvbiB0aGUgY3VycmVudCA6Y2xhc3M6YHJhbmRzdGF0ZWAsIHJldHVybnMgYSAxMjgt Yml0CisgICAgICAgICA6bW9kOmBJbnRlZ2VyIDxzYWdlLnJpbmdzLmludGVnZXJfcmluZz5gIHN1 aXRhYmxlIGZvciBzZWVkaW5nIGFub3RoZXIKK0BAIC02MjUsNyArNjI1LDcgQEAgY2RlZiBjbGFz cyByYW5kc3RhdGU6CisgICAgICAgICBmcm9tIHNhZ2UucmluZ3MuaW50ZWdlcl9yaW5nIGltcG9y dCBaWgorICAgICAgICAgcmV0dXJuIFpaLnJhbmRvbV9lbGVtZW50KGxvbmcoMSk8PDEyOCkKKyAK Ky0gICAgY3BkZWYgbG9uZ19zZWVkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsb25nX3Nl ZWQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBXaGVuIGNhbGxlZCBvbiB0aGUgY3Vy cmVudCA6Y2xhc3M6YHJhbmRzdGF0ZWAsIHJldHVybnMgYSAxMjgtYml0CisgICAgICAgICBQeXRo b24gbG9uZyBzdWl0YWJsZSBmb3Igc2VlZGluZyBhbm90aGVyIHJhbmRvbSBudW1iZXIgZ2VuZXJh dG9yLgorQEAgLTYzOSw3ICs2MzksNyBAQCBjZGVmIGNsYXNzIHJhbmRzdGF0ZToKKyAgICAgICAg IGZyb20gc2FnZS5yaW5ncy5pbnRlZ2VyX3JpbmcgaW1wb3J0IFpaCisgICAgICAgICByZXR1cm4g bG9uZyhaWi5yYW5kb21fZWxlbWVudChsb25nKDEpPDwxMjgpKQorIAorLSAgICBjcGRlZiBzZXRf c2VlZF9saWJjKHNlbGYsIGJpbnQgZm9yY2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfc2Vl ZF9saWJjKHNlbGYsIGJpbnQgZm9yY2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ2hlY2tz IHRvIHNlZSBpZiBgYHNlbGZgYCB3YXMgdGhlIG1vc3QgcmVjZW50IDpjbGFzczpgcmFuZHN0YXRl YAorICAgICAgICAgdG8gc2VlZCB0aGUgbGliYyByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4gIElm IG5vdCwgc2VlZHMgdGhlCitAQCAtNjY0LDcgKzY2NCw3IEBAIGNkZWYgY2xhc3MgcmFuZHN0YXRl OgorICAgICAgICAgICAgIGNfbGliY19zcmFuZG9tKGdtcF91cmFuZG9tYl91aShzZWxmLmdtcF9z dGF0ZSwgc2l6ZW9mKGludCkqOCkpCisgICAgICAgICAgICAgX2xpYmNfc2VlZF9yYW5kc3RhdGUg PSBzZWxmCisgCistICAgIGNwZGVmIHNldF9zZWVkX250bChzZWxmLCBiaW50IGZvcmNlKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgc2V0X3NlZWRfbnRsKHNlbGYsIGJpbnQgZm9yY2UpOgorICAgICAg ICAgciIiIgorICAgICAgICAgQ2hlY2tzIHRvIHNlZSBpZiBgYHNlbGZgYCB3YXMgdGhlIG1vc3Qg cmVjZW50IDpjbGFzczpgcmFuZHN0YXRlYAorICAgICAgICAgdG8gc2VlZCB0aGUgTlRMIHJhbmRv bSBudW1iZXIgZ2VuZXJhdG9yLiAgSWYgbm90LCBzZWVkcworQEAgLTkyMiw3ICs5MjIsNyBAQCBj ZGVmIGNsYXNzIHJhbmRzdGF0ZToKKyAgICAgICAgIHJldHVybiBGYWxzZQorIAorIAorLWNwZGVm IHNldF9yYW5kb21fc2VlZChzZWVkPU5vbmUpIG5vZXhjZXB0OgorK2NwZGVmIHNldF9yYW5kb21f c2VlZChzZWVkPU5vbmUpOgorICAgICByIiIiCisgICAgIFNldCB0aGUgY3VycmVudCByYW5kb20g bnVtYmVyIHNlZWQgZnJvbSB0aGUgZ2l2ZW4gYGBzZWVkYGAKKyAgICAgKHdoaWNoIG11c3QgYmUg Y29lcmNpYmxlIHRvIGEgUHl0aG9uIGxvbmcpLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2Mv c2FnZV9vc3Rvb2xzLnB5eCBiL3NyYy9zYWdlL21pc2Mvc2FnZV9vc3Rvb2xzLnB5eAoraW5kZXgg NjRlOWM0MjgwOWIuLjhhOTFhZmU1NGMyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9zYWdl X29zdG9vbHMucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL3NhZ2Vfb3N0b29scy5weXgKK0BAIC04 MCw3ICs4MCw3IEBAIGRlZiByZXN0b3JlX2N3ZChjaGRpcj1Ob25lKToKKyAgICAgICAgIG9zLmNo ZGlyKG9yaWdfY3dkKQorIAorIAorLWNkZWYgZmlsZV9hbmRfZmQoeCwgaW50KiBmZCkgbm9leGNl cHQ6CisrY2RlZiBmaWxlX2FuZF9mZCh4LCBpbnQqIGZkKToKKyAgICAgIiIiCisgICAgIElmIGBg eGBgIGlzIGEgZmlsZSwgcmV0dXJuIGBgeGBgIGFuZCBzZXQgYGAqZmRgYCB0byBpdHMgZmlsZQor ICAgICBkZXNjcmlwdG9yLiBJZiBgYHhgYCBpcyBhbiBpbnRlZ2VyLCByZXR1cm4gYGBOb25lYGAg YW5kIHNldAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkgYi9zcmMv c2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitpbmRleCBhZmY0N2VmOTZiYi4uMzcxNzk2NWMwYjkg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CisrKysgYi9zcmMvc2Fn ZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitAQCAtMjM5NSw3ICsyMzk1LDcgQEAgZGVmIHNhZ2VfZ2V0 c291cmNlbGluZXMob2JqKToKKyAgICAgICAgICAnXG4nLAorICAgICAgICAgICcgICAgY2RlZiBH RXggX2dvYmpcbicsCisgICAgICAgICAgJ1xuJywKKy0gICAgICAgICAnICAgIGNwZGVmIG9iamVj dCBweW9iamVjdChzZWxmKSBub2V4Y2VwdDpcbiddCisrICAgICAgICAgJyAgICBjcGRlZiBvYmpl Y3QgcHlvYmplY3Qoc2VsZik6XG4nXQorICAgICAgICAgc2FnZTogbGluZXNbLTFdICAgICMgbGFz dCBsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IG5lZWRzIHNhZ2Uuc3ltYm9saWMKKyAgICAgICAgICcgICAgICAgIHJldHVybiBTXG4nCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zZWFyY2gucHhkIGIvc3JjL3NhZ2UvbWlzYy9zZWFy Y2gucHhkCitpbmRleCAwOTg2ZjI3YzUxZC4uOGNjNDNiYTFiMGYgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9taXNjL3NlYXJjaC5weGQKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2VhcmNoLnB4ZAorQEAg LTEgKzEgQEAKKy1jcGRlZiBzZWFyY2gob2JqZWN0IHYsIG9iamVjdCB4KSBub2V4Y2VwdAorXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisrY3BkZWYgc2VhcmNoKG9iamVjdCB2LCBvYmplY3Qg eCkKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21p c2Mvc2VhcmNoLnB5eCBiL3NyYy9zYWdlL21pc2Mvc2VhcmNoLnB5eAoraW5kZXggMzk5MWJiYzhm M2UuLmE5ZTcxNDkxMTNlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9zZWFyY2gucHl4Cisr KysgYi9zcmMvc2FnZS9taXNjL3NlYXJjaC5weXgKK0BAIC0yNSw3ICsyNSw3IEBAIGV4dHJhIGNv bXBhcmlzb24uIEFsc28sIHRoZSBmdW5jdGlvbiBuYW1lcyBtYWtlIG1vcmUgc2Vuc2UuCisgaW1w b3J0IGJpc2VjdAorIAorIAorLWNwZGVmIHNlYXJjaChvYmplY3Qgdiwgb2JqZWN0IHgpIG5vZXhj ZXB0OgorK2NwZGVmIHNlYXJjaChvYmplY3Qgdiwgb2JqZWN0IHgpOgorICAgICAiIiIKKyAgICAg UmV0dXJuIChUcnVlLGkpIHdoZXJlIGkgaXMgc3VjaCB0aGF0IHZbaV0gPT0geCBpZiB0aGVyZSBp cyBzdWNoIGFuIGksCisgICAgIG9yIChGYWxzZSxqKSBvdGhlcndpc2UsIHdoZXJlIGogaXMgdGhl IHBvc2l0aW9uIHdoZXJlIHggc2hvdWxkIGJlIGluc2VydGVkCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbW9kdWxhci9hcml0aGdyb3VwL2FyaXRoZ3JvdXBfZWxlbWVudC5weXggYi9zcmMvc2FnZS9t b2R1bGFyL2FyaXRoZ3JvdXAvYXJpdGhncm91cF9lbGVtZW50LnB5eAoraW5kZXggNTJjNmE2OTI4 NjYuLjFiM2RiMzRhMDRjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9hcml0aGdyb3Vw L2FyaXRoZ3JvdXBfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsYXIvYXJpdGhncm91 cC9hcml0aGdyb3VwX2VsZW1lbnQucHl4CitAQCAtMTU4LDcgKzE1OCw3IEBAIGNkZWYgY2xhc3Mg QXJpdGhtZXRpY1N1Ymdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAnJXMnICUgc2VsZi5fX3guX2xhdGV4XygpCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodF9yLCBpbnQgb3ApIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHRfciwgaW50IG9wKToKKyAgICAgICAgICIi IgorICAgICAgICAgQ29tcGFyZSBzZWxmIHRvIHJpZ2h0LCB3aGVyZSByaWdodCBpcyBndWFyYW50 ZWVkIHRvIGhhdmUgdGhlIHNhbWUKKyAgICAgICAgIHBhcmVudCBhcyBzZWxmLgorQEAgLTIwNCw3 ICsyMDQsNyBAQCBjZGVmIGNsYXNzIEFyaXRobWV0aWNTdWJncm91cEVsZW1lbnQoTXVsdGlwbGlj YXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gVHJ1ZQor IAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9t dWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHNlbGYgKiBy aWdodC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL2FyaXRoZ3JvdXAvZmFyZXlf c3ltYm9sLnB5eCBiL3NyYy9zYWdlL21vZHVsYXIvYXJpdGhncm91cC9mYXJleV9zeW1ib2wucHl4 CitpbmRleCAzNDU0NmMwODJkYS4uZGQ3M2U4ZDRhYzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9t b2R1bGFyL2FyaXRoZ3JvdXAvZmFyZXlfc3ltYm9sLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxh ci9hcml0aGdyb3VwL2ZhcmV5X3N5bWJvbC5weXgKK0BAIC0xMDM4LDI2ICsxMDM4LDI2IEBAIGNk ZWYgcHVibGljIGxvbmcgY29udmVydF90b19sb25nKG4pIG5vZXhjZXB0OgorICAgICBjZGVmIGxv bmcgbSA9IG4KKyAgICAgcmV0dXJuIG0KKyAKKy1jZGVmIHB1YmxpYyBvYmplY3QgY29udmVydF90 b19JbnRlZ2VyKG1wel9jbGFzcyBhKSBub2V4Y2VwdDoKKytjZGVmIHB1YmxpYyBvYmplY3QgY29u dmVydF90b19JbnRlZ2VyKG1wel9jbGFzcyBhKToKKyAgICAgQSA9IEludGVnZXIoKQorICAgICBB LnNldF9mcm9tX21weihhLmdldF9tcHpfdCgpKQorICAgICByZXR1cm4gQQorIAorLWNkZWYgcHVi bGljIG9iamVjdCBjb252ZXJ0X3RvX3JhdGlvbmFsKG1wcV9jbGFzcyByKSBub2V4Y2VwdDoKKytj ZGVmIHB1YmxpYyBvYmplY3QgY29udmVydF90b19yYXRpb25hbChtcHFfY2xhc3Mgcik6CisgICAg IGEgPSBJbnRlZ2VyKCkKKyAgICAgYS5zZXRfZnJvbV9tcHooci5nZXRfbnVtX21wel90KCkpCisg ICAgIGIgPSBJbnRlZ2VyKCkKKyAgICAgYi5zZXRfZnJvbV9tcHooci5nZXRfZGVuX21wel90KCkp CisgICAgIHJldHVybiBhL2IKKyAKKy1jZGVmIHB1YmxpYyBvYmplY3QgY29udmVydF90b19jdXNw KG1wcV9jbGFzcyByKSBub2V4Y2VwdDoKKytjZGVmIHB1YmxpYyBvYmplY3QgY29udmVydF90b19j dXNwKG1wcV9jbGFzcyByKToKKyAgICAgYSA9IEludGVnZXIoKQorICAgICBhLnNldF9mcm9tX21w eihyLmdldF9udW1fbXB6X3QoKSkKKyAgICAgYiA9IEludGVnZXIoKQorICAgICBiLnNldF9mcm9t X21weihyLmdldF9kZW5fbXB6X3QoKSkKKyAgICAgcmV0dXJuIEN1c3AoYS9iKQorIAorLWNkZWYg cHVibGljIG9iamVjdCBjb252ZXJ0X3RvX1NMMlooY3BwX1NMMlogTSkgbm9leGNlcHQ6CisrY2Rl ZiBwdWJsaWMgb2JqZWN0IGNvbnZlcnRfdG9fU0wyWihjcHBfU0wyWiBNKToKKyAgICAgYSA9IGNv bnZlcnRfdG9fSW50ZWdlcihNLmEoKSkKKyAgICAgYiA9IGNvbnZlcnRfdG9fSW50ZWdlcihNLmIo KSkKKyAgICAgYyA9IGNvbnZlcnRfdG9fSW50ZWdlcihNLmMoKSkKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9tb2R1bGFyL2h5cGVyZ2VvbWV0cmljX21pc2MucHhkIGIvc3JjL3NhZ2UvbW9kdWxhci9o eXBlcmdlb21ldHJpY19taXNjLnB4ZAoraW5kZXggNDE5OGNhODg0OGIuLjAwYmY5YTk3ZTlhIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9oeXBlcmdlb21ldHJpY19taXNjLnB4ZAorKysr IGIvc3JjL3NhZ2UvbW9kdWxhci9oeXBlcmdlb21ldHJpY19taXNjLnB4ZAorQEAgLTEsMiArMSwy IEBACisgY3BkZWYgaGdtX2NvZWZmcyhsb25nIGxvbmcgcCwgaW50IGYsIGludCBwcmVjLCBnYW1t YSwgbSwgaW50IEQsCistICAgICAgICAgICAgICAgICBndGFibGUsIGludCBndGFibGVfcHJlYywg YmludCB1c2VfbG9uZ3MpIG5vZXhjZXB0CisrICAgICAgICAgICAgICAgICBndGFibGUsIGludCBn dGFibGVfcHJlYywgYmludCB1c2VfbG9uZ3MpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxh ci9oeXBlcmdlb21ldHJpY19taXNjLnB5eCBiL3NyYy9zYWdlL21vZHVsYXIvaHlwZXJnZW9tZXRy aWNfbWlzYy5weXgKK2luZGV4IGJhYzU3ZmEwMWQyLi5iOGMzOWFlZWZhNyAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL21vZHVsYXIvaHlwZXJnZW9tZXRyaWNfbWlzYy5weXgKKysrKyBiL3NyYy9zYWdl L21vZHVsYXIvaHlwZXJnZW9tZXRyaWNfbWlzYy5weXgKK0BAIC03LDcgKzcsNyBAQCBmcm9tIGN5 c2lnbmFscy5zaWduYWxzIGNpbXBvcnQgc2lnX2NoZWNrCisgCisgCisgY3BkZWYgaGdtX2NvZWZm cyhsb25nIGxvbmcgcCwgaW50IGYsIGludCBwcmVjLCBnYW1tYSwgbSwgaW50IEQsCistICAgICAg ICAgICAgICAgICBndGFibGUsIGludCBndGFibGVfcHJlYywgYmludCB1c2VfbG9uZ3MpIG5vZXhj ZXB0OgorKyAgICAgICAgICAgICAgICAgZ3RhYmxlLCBpbnQgZ3RhYmxlX3ByZWMsIGJpbnQgdXNl X2xvbmdzKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIGNvZWZmaWNpZW50cyBmb3IgdGhlIGh5 cGVyZ2VvbWV0cmljIHRyYWNlIGZvcm11bGEuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9k dWxhci9tb2Rmb3JtL2Vpc19zZXJpZXNfY3l0aG9uLnB5eCBiL3NyYy9zYWdlL21vZHVsYXIvbW9k Zm9ybS9laXNfc2VyaWVzX2N5dGhvbi5weXgKK2luZGV4IGZiODUwMTYyMmY2Li4xOGQxOGY3ODUy YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvbW9kZm9ybS9laXNfc2VyaWVzX2N5dGhv bi5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsYXIvbW9kZm9ybS9laXNfc2VyaWVzX2N5dGhvbi5w eXgKK0BAIC0xNCw3ICsxNCw3IEBAIGZyb20gc2FnZS5saWJzLmZsaW50LmZtcHpfcG9seSBjaW1w b3J0ICoKKyBmcm9tIHNhZ2UubGlicy5nbXAubXB6IGNpbXBvcnQgKgorIGZyb20gc2FnZS5saWJz LmZsaW50LmZtcHpfcG9seV9zYWdlIGNpbXBvcnQgRm1wel9wb2x5LCBmbXB6X3BvbHlfc2V0X2Nv ZWZmX21weiwgZm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6CisgCistY3BkZWYgRWtfWlooaW50IGss IGludCBwcmVjPTEwKSBub2V4Y2VwdDoKKytjcGRlZiBFa19aWihpbnQgaywgaW50IHByZWM9MTAp OgorICAgICAiIiIKKyAgICAgUmV0dXJuIGxpc3Qgb2YgcHJlYyBpbnRlZ2VyIGNvZWZmaWNpZW50 cyBvZiB0aGUgd2VpZ2h0IGsKKyAgICAgRWlzZW5zdGVpbiBzZXJpZXMgb2YgbGV2ZWwgMSwgbm9y bWFsaXplZCBzbyB0aGUgY29lZmZpY2llbnQgb2YgcQorQEAgLTE0MCw3ICsxNDAsNyBAQCBjcGRl ZiBFa19aWihpbnQgaywgaW50IHByZWM9MTApIG5vZXhjZXB0OgorICAgICByZXR1cm4gdmFsCisg CisgCistY3BkZWYgZWlzZW5zdGVpbl9zZXJpZXNfcG9seShpbnQgaywgaW50IHByZWMgPSAxMCkg IG5vZXhjZXB0OgorK2NwZGVmIGVpc2Vuc3RlaW5fc2VyaWVzX3BvbHkoaW50IGssIGludCBwcmVj ID0gMTApIDoKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHEtZXhwYW5zaW9uIHVwIHRvIHBy ZWNpc2lvbiBgYHByZWNgYCBvZiB0aGUgd2VpZ2h0IGBrYAorICAgICBFaXNlbnN0ZWluIHNlcmll cywgYXMgYSBGTElOVCA6Y2xhc3M6YH5zYWdlLmxpYnMuZmxpbnQuZm1wel9wb2x5LkZtcHpfcG9s eWAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL21vZGZvcm0vbF9zZXJpZXNfZ3Jvc3Nf emFnaWVyX2NvZWZmcy5weXggYi9zcmMvc2FnZS9tb2R1bGFyL21vZGZvcm0vbF9zZXJpZXNfZ3Jv c3NfemFnaWVyX2NvZWZmcy5weXgKK2luZGV4IGZmZWJlODEzYzkyLi5mOTFhM2UyNTZmMCAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvbW9kZm9ybS9sX3Nlcmllc19ncm9zc196YWdpZXJf Y29lZmZzLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9tb2Rmb3JtL2xfc2VyaWVzX2dyb3Nz X3phZ2llcl9jb2VmZnMucHl4CitAQCAtMTIsNyArMTIsNyBAQCBmcm9tIGxpYmMubWF0aCBjaW1w b3J0IGNlaWwsIGZsb29yLCBzcXJ0CisgZnJvbSBsaWJjLnN0cmluZyBjaW1wb3J0IG1lbWNweQor IAorIAorLWNwZGVmIHRvX3NlcmllcyhMLCB2YXIpIG5vZXhjZXB0OgorK2NwZGVmIHRvX3Nlcmll cyhMLCB2YXIpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGEgcG93ZXIgc2VyaWVzIGVsZW1lbnQg b3V0IG9mIGEgbGlzdCBgYExgYCBpbiB0aGUgdmFyaWFibGVgYCB2YXJgYC4KKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9oZWlsYnJvbm4ucHl4IGIvc3JjL3NhZ2UvbW9k dWxhci9tb2RzeW0vaGVpbGJyb25uLnB5eAoraW5kZXggN2ZjOGVkMjgwNTUuLmQyZGIzNWRkN2Vl IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vaGVpbGJyb25uLnB5eAorKysr IGIvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vaGVpbGJyb25uLnB5eAorQEAgLTE3MCw3ICsxNzAs NyBAQCBjZGVmIGNsYXNzIEhlaWxicm9ubjoKKyAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5s aXN0LnZbNCppKzJdLCBzZWxmLmxpc3Qudls0KmkrM11dKQorICAgICAgICAgcmV0dXJuIEwKKyAK Ky0gICAgY2RlZiBhcHBseV9vbmx5KHNlbGYsIGludCB1LCBpbnQgdiwgaW50IE4sIGludCogYSwg aW50KiBiKSBub2V4Y2VwdDoKKysgICAgY2RlZiBhcHBseV9vbmx5KHNlbGYsIGludCB1LCBpbnQg diwgaW50IE4sIGludCogYSwgaW50KiBiKToKKyAgICAgICAgICIiIgorICAgICAgICAgSU5QVVQ6 CisgCitAQCAtMjEwLDcgKzIxMCw3IEBAIGNkZWYgY2xhc3MgSGVpbGJyb25uOgorICAgICAgICAg ICAgICAgICBiW2ldID0gbGxvbmdfcHJvZF9tb2QodSxzZWxmLmxpc3Qudls0KmkrMV0sTikgKyBs bG9uZ19wcm9kX21vZCh2LHNlbGYubGlzdC52WzQqaSszXSwgTikKKyAgICAgICAgIHNpZ19vZmYo KQorIAorLSAgICBjZGVmIGFwcGx5X3RvX3BvbHlwYXJ0KHNlbGYsIGZtcHpfcG9seV90KiBhbnMs IGludCBpLCBpbnQgaykgbm9leGNlcHQ6CisrICAgIGNkZWYgYXBwbHlfdG9fcG9seXBhcnQoc2Vs ZiwgZm1wel9wb2x5X3QqIGFucywgaW50IGksIGludCBrKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIElOUFVUOgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL21hbmlu X3N5bWJvbC5weXggYi9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9tYW5pbl9zeW1ib2wucHl4Citp bmRleCBhNzE1MzNlMWI3My4uNmRhNzllMjFiMmQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1 bGFyL21vZHN5bS9tYW5pbl9zeW1ib2wucHl4CisrKysgYi9zcmMvc2FnZS9tb2R1bGFyL21vZHN5 bS9tYW5pbl9zeW1ib2wucHl4CitAQCAtMTk5LDcgKzE5OSw3IEBAIGNkZWYgY2xhc3MgTWFuaW5T eW1ib2woRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9yZXBy XygpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9wKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAg IiIiCisgICAgICAgICBDb21wYXJpc29uIGZ1bmN0aW9uIGZvciBNYW5pblN5bWJvbHMuCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB4ZCBiL3NyYy9zYWdl L21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKK2luZGV4IDE3MjU0ZDRhOGZiLi5iNjZmMjhiOGFk NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKKysrKyBi L3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKK0BAIC0yNCw1ICsyNCw1IEBAIGNk ZWYgY2xhc3MgUDFMaXN0OgorICAgICBjZGVmIGludCAoKl9ub3JtYWxpemUpKGludCBOLCBpbnQg dSwgaW50IHYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogdXUsIGludCogdnYs IGludCogc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wdXRlX3MpIGV4 Y2VwdCAtMQorLSAgICBjcGRlZiBpbmRleChzZWxmLCBpbnQgdSwgaW50IHYpIG5vZXhjZXB0Cist ICAgIGNkZWYgaW5kZXhfYW5kX3NjYWxhcihzZWxmLCBpbnQgdSwgaW50IHYsIGludCogaSwgaW50 KiBzKSBub2V4Y2VwdAorKyAgICBjcGRlZiBpbmRleChzZWxmLCBpbnQgdSwgaW50IHYpCisrICAg IGNkZWYgaW5kZXhfYW5kX3NjYWxhcihzZWxmLCBpbnQgdSwgaW50IHYsIGludCogaSwgaW50KiBz KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weXggYi9zcmMv c2FnZS9tb2R1bGFyL21vZHN5bS9wMWxpc3QucHl4CitpbmRleCA5MTA0MTgxZGEwNS4uMTYxM2Q5 MDcyOWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9wMWxpc3QucHl4Cisr KysgYi9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9wMWxpc3QucHl4CitAQCAtOTkxLDcgKzk5MSw3 IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAgICBfLCBqID0gc2VhcmNoKHNlbGYuX19s aXN0LCAodXUsdnYpKQorICAgICAgICAgcmV0dXJuIGoKKyAKKy0gICAgY3BkZWYgaW5kZXgoc2Vs ZiwgaW50IHUsIGludCB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW5kZXgoc2VsZiwgaW50IHUs IGludCB2KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW5kZXggb2YgdGhl IGNsYXNzIG9mIGAodSx2KWAgaW4gdGhlIGZpeGVkIGxpc3QKKyAgICAgICAgIG9mIHJlcHJlc2Vu dGF0aXZlcyBvZgorQEAgLTEwMzQsNyArMTAzNCw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6Cisg ICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgcmV0dXJuIC0xCisgCistICAg IGNkZWYgaW5kZXhfYW5kX3NjYWxhcihzZWxmLCBpbnQgdSwgaW50IHYsIGludCogaSwgaW50KiBz KSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmRleF9hbmRfc2NhbGFyKHNlbGYsIGludCB1LCBpbnQg diwgaW50KiBpLCBpbnQqIHMpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUg aW5kZXggb2YgdGhlIGNsYXNzIG9mIGAodSx2KWAgaW4gdGhlIGZpeGVkIGxpc3QKKyAgICAgICAg IG9mIHJlcHJlc2VudGF0aXZlcyBvZiBgXG1hdGhiYntQfV4xKFxaWi9OXFpaKWAgYW5kIHNjYWxh ciBzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxhci9wb2xsYWNrX3N0ZXZlbnMvZGlzdC5w eGQgYi9zcmMvc2FnZS9tb2R1bGFyL3BvbGxhY2tfc3RldmVucy9kaXN0LnB4ZAoraW5kZXggMGEz ODU1MWQ4YTYuLjRmMGU2M2E1NTlkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9wb2xs YWNrX3N0ZXZlbnMvZGlzdC5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsYXIvcG9sbGFja19zdGV2 ZW5zL2Rpc3QucHhkCitAQCAtNSwxNyArNSwxNyBAQCBmcm9tIHNhZ2UucmluZ3MucGFkaWNzLnBv d19jb21wdXRlciBjaW1wb3J0IFBvd0NvbXB1dGVyX2NsYXNzCisgCisgCisgY2RlZiBjbGFzcyBE aXN0KE1vZHVsZUVsZW1lbnQpOgorLSAgICBjcGRlZiBub3JtYWxpemUoc2VsZiwgaW5jbHVkZV96 ZXJvdGhfbW9tZW50PSopIG5vZXhjZXB0CisrICAgIGNwZGVmIG5vcm1hbGl6ZShzZWxmLCBpbmNs dWRlX3plcm90aF9tb21lbnQ9KikKKyAgICAgY2RlZiBsb25nIG9yZHAKKyAgICAgY3BkZWYgbG9u ZyBfb3JkX3Aoc2VsZikgbm9leGNlcHQKKyAgICAgY2RlZiBsb25nIF9yZWxwcmVjKHNlbGYpIG5v ZXhjZXB0CistICAgIGNkZWYgX3Vuc2NhbGVkX21vbWVudChzZWxmLCBsb25nIGkpIG5vZXhjZXB0 CisrICAgIGNkZWYgX3Vuc2NhbGVkX21vbWVudChzZWxmLCBsb25nIGkpCisgCisgY2RlZiBjbGFz cyBEaXN0X3ZlY3RvcihEaXN0KToKKyAgICAgY2RlZiBwdWJsaWMgX21vbWVudHMKKy0gICAgY2Rl ZiBEaXN0X3ZlY3RvciBfbmV3X2Moc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBEaXN0X3ZlY3Rv ciBfYWRkc3ViKHNlbGYsIERpc3RfdmVjdG9yIHJpZ2h0LCBiaW50IG5lZ2F0ZSkgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNkZWYgRGlzdF92 ZWN0b3IgX25ld19jKHNlbGYpCisrICAgIGNkZWYgRGlzdF92ZWN0b3IgX2FkZHN1YihzZWxmLCBE aXN0X3ZlY3RvciByaWdodCwgYmludCBuZWdhdGUpCisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90 aGVyKQorIAorIAorIGNkZWYgY2xhc3MgV2VpZ2h0S0FjdGlvbihBY3Rpb24pOgorQEAgLTMwLDgg KzMwLDggQEAgY2RlZiBjbGFzcyBXZWlnaHRLQWN0aW9uKEFjdGlvbik6CisgICAgIGNkZWYgcHVi bGljIF9kZXR0d2lzdAorICAgICBjZGVmIHB1YmxpYyBfU2lnbWEwCisgCistICAgIGNwZGVmIGFj dGluZ19tYXRyaXgoc2VsZiwgZywgTSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NvbXB1dGVfYWN0 aW5nX21hdHJpeChzZWxmLCBnLCBNKSBub2V4Y2VwdAorKyAgICBjcGRlZiBhY3RpbmdfbWF0cml4 KHNlbGYsIGcsIE0pCisrICAgIGNwZGVmIF9jb21wdXRlX2FjdGluZ19tYXRyaXgoc2VsZiwgZywg TSkKKyAKKyBjZGVmIGNsYXNzIFdlaWdodEtBY3Rpb25fdmVjdG9yKFdlaWdodEtBY3Rpb24pOgor ICAgICBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxhci9wb2xsYWNrX3N0ZXZlbnMv ZGlzdC5weXggYi9zcmMvc2FnZS9tb2R1bGFyL3BvbGxhY2tfc3RldmVucy9kaXN0LnB5eAoraW5k ZXggZTk4MzMzYzlhNDAuLjFmNzkxMzNmMmY1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxh ci9wb2xsYWNrX3N0ZXZlbnMvZGlzdC5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsYXIvcG9sbGFj a19zdGV2ZW5zL2Rpc3QucHl4CitAQCAtMTM4LDcgKzEzOCw3IEBAIGNkZWYgY2xhc3MgRGlzdChN b2R1bGVFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50 KCkucHJpbWUoKSAqKiAoc2VsZi5vcmRwKSAqIHNlbGYuX21vbWVudHMKKyAKKy0gICAgY3BkZWYg bm9ybWFsaXplKHNlbGYsIGluY2x1ZGVfemVyb3RoX21vbWVudD1UcnVlKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbm9ybWFsaXplKHNlbGYsIGluY2x1ZGVfemVyb3RoX21vbWVudD1UcnVlKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIE5vcm1hbGl6ZSBzbyB0aGF0IHRoZSBwcmVjaXNpb24gb2Yg dGhlIGBpYC10aCBtb21lbnQgaXMgYG4taWAsCisgICAgICAgICB3aGVyZSBgbmAgaXMgdGhlIG51 bWJlciBvZiBtb21lbnRzLgorQEAgLTE2MSw3ICsxNjEsNyBAQCBjZGVmIGNsYXNzIERpc3QoTW9k dWxlRWxlbWVudCk6CisgICAgIGNkZWYgbG9uZyBfcmVscHJlYyhzZWxmKSBub2V4Y2VwdDoKKyAg ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBfdW5zY2FsZWRf bW9tZW50KHNlbGYsIGxvbmcgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3Vuc2NhbGVkX21vbWVu dChzZWxmLCBsb25nIGkpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAor ICAgICBjcGRlZiBsb25nIF9vcmRfcChzZWxmKSBub2V4Y2VwdDoKK0BAIC00ODEsNyArNDgxLDcg QEAgY2RlZiBjbGFzcyBEaXN0KE1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBwYXNz CisgICAgICAgICByZXR1cm4gYWxwaGEKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKF9sZWZ0LCBf cmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhfbGVmdCwgX3Jp Z2h0LCBpbnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcGFyaXNvbi4KKyAKK0BA IC04MDAsNyArODAwLDcgQEAgY2RlZiBjbGFzcyBEaXN0X3ZlY3RvcihEaXN0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIChzZWxmLl9fY2xhc3NfXywgKHNlbGYuX21vbWVudHMsIHNl bGYucGFyZW50KCksIHNlbGYub3JkcCwgRmFsc2UpKQorIAorLSAgICBjZGVmIERpc3RfdmVjdG9y IF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBEaXN0X3ZlY3RvciBfbmV3X2Moc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBDcmVhdGVzIGFuIGVtcHR5IGRpc3RyaWJ1dGlv bi4KKyAKK0BAIC04ODAsNyArODgwLDcgQEAgY2RlZiBjbGFzcyBEaXN0X3ZlY3RvcihEaXN0KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9tb21lbnRzKQorIAorLSAg ICBjZGVmIF91bnNjYWxlZF9tb21lbnQoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfdW5zY2FsZWRfbW9tZW50KHNlbGYsIGxvbmcgbik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGBuYC10aCBtb21lbnQsIHVuc2NhbGVkIGJ5IHRoZSBvdmVyYWxsIHBvd2Vy IG9mIGBwYAorICAgICAgICAgc3RvcmVkIGluIGBgc2VsZi5vcmRwYGAuCitAQCAtODk0LDcgKzg5 NCw3IEBAIGNkZWYgY2xhc3MgRGlzdF92ZWN0b3IoRGlzdCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLl9tb21lbnRzW25dCisgCistICAgIGNkZWYgRGlzdF92ZWN0b3IgX2Fk ZHN1YihzZWxmLCBEaXN0X3ZlY3RvciByaWdodCwgYmludCBuZWdhdGUpIG5vZXhjZXB0OgorKyAg ICBjZGVmIERpc3RfdmVjdG9yIF9hZGRzdWIoc2VsZiwgRGlzdF92ZWN0b3IgcmlnaHQsIGJpbnQg bmVnYXRlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbW1vbiBjb2RlIGZvciB0aGUgc3Vt IGFuZCB0aGUgZGlmZmVyZW5jZSBvZiB0d28gZGlzdHJpYnV0aW9ucworIAorQEAgLTkzNCw3ICs5 MzQsNyBAQCBjZGVmIGNsYXNzIERpc3RfdmVjdG9yKERpc3QpOgorICAgICAgICAgYW5zLl9tb21l bnRzID0gc21vbWVudHMgKyBybW9tZW50cworICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBj cGRlZiBfYWRkXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCBfcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgU3VtIG9mIHR3byBkaXN0cmlidXRp b25zLgorIAorQEAgLTk0Nyw3ICs5NDcsNyBAQCBjZGVmIGNsYXNzIERpc3RfdmVjdG9yKERpc3Qp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYWRkc3ViKDxEaXN0X3ZlY3Rv cj5fcmlnaHQsIEZhbHNlKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgciIiIgorICAg ICAgICAgRGlmZmVyZW5jZSBvZiB0d28gZGlzdHJpYnV0aW9ucy4KKyAKK0BAIC05NjAsNyArOTYw LDcgQEAgY2RlZiBjbGFzcyBEaXN0X3ZlY3RvcihEaXN0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIHNlbGYuX2FkZHN1Yig8RGlzdF92ZWN0b3I+X3JpZ2h0LCBUcnVlKQorIAorLSAg ICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFNj YWxhciBwcm9kdWN0IG9mIGEgZGlzdHJpYnV0aW9uIHdpdGggYSByaW5nIGVsZW1lbnQgdGhhdCBj b2VyY2VzIGludG8gdGhlIGJhc2UgcmluZy4KKyAKK0BAIC0xMDQ0LDcgKzEwNDQsNyBAQCBjZGVm IGNsYXNzIERpc3RfdmVjdG9yKERpc3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g SW50ZWdlcihsZW4oc2VsZi5fbW9tZW50cykgKyBzZWxmLm9yZHApCisgCistICAgIGNwZGVmIG5v cm1hbGl6ZShzZWxmLCBpbmNsdWRlX3plcm90aF9tb21lbnQ9VHJ1ZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIG5vcm1hbGl6ZShzZWxmLCBpbmNsdWRlX3plcm90aF9tb21lbnQ9VHJ1ZSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBOb3JtYWxpemUgYnkgcmVkdWNpbmcgbW9kdWxvIGBGaWxeTmAs IHdoZXJlIGBOYCBpcyB0aGUgbnVtYmVyIG9mIG1vbWVudHMuCisgCitAQCAtMTI3MCw3ICsxMjcw LDcgQEAgY2RlZiBjbGFzcyBXZWlnaHRLQWN0aW9uKEFjdGlvbik6CisgICAgICAgICBzZWxmLl9h Y3RtYXQgPSB7fQorICAgICAgICAgc2VsZi5fbWF4cHJlY3MgPSB7fQorIAorLSAgICBjcGRlZiBh Y3RpbmdfbWF0cml4KHNlbGYsIGcsIE0pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhY3RpbmdfbWF0 cml4KHNlbGYsIGcsIE0pOgorICAgICAgICAgciIiIgorICAgICAgICAgVGhlIG1hdHJpeCBkZWZp bmluZyB0aGUgYWN0aW9uIG9mIGBgZ2BgIGF0IHByZWNpc2lvbiBgYE1gYC4KKyAKK0BAIC0xMzI4 LDcgKzEzMjgsNyBAQCBjZGVmIGNsYXNzIFdlaWdodEtBY3Rpb24oQWN0aW9uKToKKyAgICAgICAg ICAgICBtYXRzW01dID0gQQorICAgICAgICAgICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIF9j b21wdXRlX2FjdGluZ19tYXRyaXgoc2VsZiwgZywgTSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9j b21wdXRlX2FjdGluZ19tYXRyaXgoc2VsZiwgZywgTSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBDb21wdXRlIHRoZSBtYXRyaXggZGVmaW5pbmcgdGhlIGFjdGlvbiBvZiBgYGdgYCBhdCBwcmVj aXNpb24gYGBNYGAuCisgCitAQCAtMTM1Nyw3ICsxMzU3LDcgQEAgY2RlZiBjbGFzcyBXZWlnaHRL QWN0aW9uKEFjdGlvbik6CisgCisgCisgY2RlZiBjbGFzcyBXZWlnaHRLQWN0aW9uX3ZlY3RvcihX ZWlnaHRLQWN0aW9uKToKKy0gICAgY3BkZWYgX2NvbXB1dGVfYWN0aW5nX21hdHJpeChzZWxmLCBn LCBNKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvbXB1dGVfYWN0aW5nX21hdHJpeChzZWxmLCBn LCBNKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXB1dGUgdGhlIG1hdHJpeCBkZWZpbmlu ZyB0aGUgYWN0aW9uIG9mIGBgZ2BgIGF0IHByZWNpc2lvbiBgYE1gYC4KKyAKK0BAIC0xNDE5LDcg KzE0MTksNyBAQCBjZGVmIGNsYXNzIFdlaWdodEtBY3Rpb25fdmVjdG9yKFdlaWdodEtBY3Rpb24p OgorICAgICAgICAgICAgIEIgKj0gKGEgKiBkIC0gYiAqIGMpICoqIChzZWxmLl9kZXR0d2lzdCkK KyAgICAgICAgIHJldHVybiBCCisgCistICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIF92KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgX3YpOgorICAgICAgICAgciIiIgorICAg ICAgICAgVGhlIHJpZ2h0IGFjdGlvbiBvZiBgYGdgYCBvbiBhIGRpc3RyaWJ1dGlvbi4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL2Zpbml0ZV9zdWJtb2R1bGVfaXRlci5weGQgYi9z cmMvc2FnZS9tb2R1bGVzL2Zpbml0ZV9zdWJtb2R1bGVfaXRlci5weGQKK2luZGV4IDkwMGYwNDFl M2EwLi44MTczZjI2NTY3MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvZmluaXRlX3N1 Ym1vZHVsZV9pdGVyLnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy9maW5pdGVfc3VibW9kdWxl X2l0ZXIucHhkCitAQCAtMTMsNyArMTMsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVpac3VibW9kdWxl X2l0ZXJhdG9yOgorICAgICBjZGVmIGludCBfY291bnQKKyAgICAgY2RlZiBpbnQgX29yZGVyCisg ICAgIGNkZWYgYmludCBfaW1tdXRhYmxlCistICAgIGNkZWYgTW9kdWxlRWxlbWVudCBfaXRlcmF0 aW9uKEZpbml0ZVpac3VibW9kdWxlX2l0ZXJhdG9yIHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYg TW9kdWxlRWxlbWVudCBfaXRlcmF0aW9uKEZpbml0ZVpac3VibW9kdWxlX2l0ZXJhdG9yIHNlbGYp CisgCisgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZHN1YnNwYWNlX2l0ZXJhdG9yKEZpbml0ZVpac3Vi bW9kdWxlX2l0ZXJhdG9yKToKKyAgICAgcGFzcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVs ZXMvZmluaXRlX3N1Ym1vZHVsZV9pdGVyLnB5eCBiL3NyYy9zYWdlL21vZHVsZXMvZmluaXRlX3N1 Ym1vZHVsZV9pdGVyLnB5eAoraW5kZXggNGYwZmJiZGNhM2IuLmYzZWYxNTJjYjg2IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy9maW5pdGVfc3VibW9kdWxlX2l0ZXIucHl4CisrKysgYi9z cmMvc2FnZS9tb2R1bGVzL2Zpbml0ZV9zdWJtb2R1bGVfaXRlci5weXgKK0BAIC0xOTAsNyArMTkw LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVaWnN1Ym1vZHVsZV9pdGVyYXRvcjoKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY2RlZiBNb2R1bGVFbGVtZW50IF9pdGVy YXRpb24oRmluaXRlWlpzdWJtb2R1bGVfaXRlcmF0b3Igc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgTW9kdWxlRWxlbWVudCBfaXRlcmF0aW9uKEZpbml0ZVpac3VibW9kdWxlX2l0ZXJhdG9yIHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGlzIHRoZSBjb3JlIGltcGxlbWVudGF0 aW9uIG9mIHRoZSBpdGVyYXRpb24uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy9m cmVlX21vZHVsZV9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxl bWVudC5weGQKK2luZGV4IGU1MjRhNDU4NDc0Li4wODQ0MjNhMjcxNCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL21v ZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVudC5weGQKK0BAIC0yLDcgKzIsNyBAQCBmcm9tIHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBWZWN0b3IKKyAKKyBjZGVmIGNsYXNzIEZyZWVNb2R1 bGVFbGVtZW50KFZlY3Rvcik6CisgICAgIGNkZWYgaW50IHNldF91bnNhZmUoc2VsZiwgUHlfc3Np emVfdCBpLCB2YWx1ZSkgZXhjZXB0IC0xCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9z c2l6ZV90IGkpIG5vZXhjZXB0CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90 IGkpCisgICAgIGNwZGVmIGludCBoYW1taW5nX3dlaWdodChzZWxmKSBub2V4Y2VwdAorIAorIGNk ZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVu dCk6CitAQCAtMTAsNyArMTAsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVy aWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICBjZGVmIGxpc3QgX2VudHJpZXMKKyAK KyAgICAgIyBjZGVmJ2QgbWV0aG9kcworLSAgICBjZGVmIF9uZXdfYyhzZWxmLCBvYmplY3Qgdikg bm9leGNlcHQKKysgICAgY2RlZiBfbmV3X2Moc2VsZiwgb2JqZWN0IHYpCisgCisgCisgY2RlZiBj bGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6 CitAQCAtMTgsNSArMTgsNSBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNf c3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgY2RlZiBkaWN0IF9lbnRyaWVzCisgCisg ICAgICMgY2RlZidkIG1ldGhvZHMKKy0gICAgY2RlZiBfbmV3X2Moc2VsZiwgb2JqZWN0IHYpIG5v ZXhjZXB0CisrICAgIGNkZWYgX25ld19jKHNlbGYsIG9iamVjdCB2KQorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVudC5weXggYi9zcmMvc2FnZS9tb2R1 bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4CitpbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2 OGYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4 CisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4CitAQCAtMTc2 Miw3ICsxNzYyLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudChWZWN0b3IpOiAgICMg YWJzdHJhY3QgYmFzZSBjbGFzcworICAgICAgICAgcyA9IHN1bShhICoqIHAgZm9yIGEgaW4gYWJz X3NlbGYpCisgICAgICAgICByZXR1cm4gcyoqKF9fb25lX18vcCkKKyAKKy0gICAgY3BkZWYgX3Jp Y2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNt cF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVT OjoKKyAKK0BAIC0xODQyLDcgKzE4NDIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50 KFZlY3Rvcik6ICAgIyBhYnN0cmFjdCBiYXNlIGNsYXNzCisgICAgICAgICAgICAgICAgIHJhaXNl IEluZGV4RXJyb3IoInZlY3RvciBpbmRleCBvdXQgb2YgcmFuZ2UiKQorICAgICAgICAgICAgIHJl dHVybiBzZWxmLmdldF91bnNhZmUobikKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5 X3NzaXplX3QgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6 ZV90IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBDeXRob24gZnVuY3Rpb24gdG8gZ2V0IHRo ZSBgaWAndGggZW50cnkgb2YgdGhpcyB2ZWN0b3IuCisgCitAQCAtMjQ4NCw3ICsyNDg0LDcgQEAg Y2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudChWZWN0b3IpOiAgICMgYWJzdHJhY3QgYmFzZSBj bGFzcworICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gcG9pbnRzKHYsICoqa3dk cykKKyAKKy0gICAgY3BkZWYgX2RvdF9wcm9kdWN0X2NvZXJjZV8obGVmdCwgVmVjdG9yIHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2RvdF9wcm9kdWN0X2NvZXJjZV8obGVmdCwgVmVjdG9y IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkb3QgcHJvZHVjdCBv ZiBsZWZ0IGFuZCByaWdodC4KKyAKK0BAIC00MjI5LDcgKzQyMjksNyBAQCBjZGVmIGNsYXNzIEZy ZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAg ICAgc2FnZTogaXNpbnN0YW5jZShoYXNoKHYpLCBpbnQpCisgICAgICAgICBUcnVlCisgICAgICIi IgorLSAgICBjZGVmIF9uZXdfYyhzZWxmLCBvYmplY3Qgdikgbm9leGNlcHQ6CisrICAgIGNkZWYg X25ld19jKHNlbGYsIG9iamVjdCB2KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGEg bmV3IGRlbnNlIGZyZWUgbW9kdWxlIGVsZW1lbnQgd2l0aCBtaW5pbWFsIG92ZXJoZWFkIGFuZAor ICAgICAgICAgbm8gdHlwZSBjaGVja2luZy4KK0BAIC00MzczLDcgKzQzNzMsNyBAQCBjZGVmIGNs YXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgor IAorICAgICBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQorICAgICBAY3l0aG9uLndyYXBhcm91 bmQoRmFsc2UpCistICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgbGVm dCBhbmQgcmlnaHQuCisgCitAQCAtNDM5MCw3ICs0MzkwLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9k dWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAKKyAgICAgQGN5 dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyAgICAgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQor LSAgICBjcGRlZiBfc3ViXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJf KGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3QgcmlnaHQgZnJv bSBsZWZ0LgorIAorQEAgLTQ0MDgsNyArNDQwOCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVs ZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICB2ID0gWyg8 UmluZ0VsZW1lbnQ+IGFbaV0pLl9zdWJfKDxSaW5nRWxlbWVudD4gYltpXSkgZm9yIGkgaW4gcmFu Z2UobGVmdC5fZGVncmVlKV0KKyAgICAgICAgIHJldHVybiBsZWZ0Ll9uZXdfYyh2KQorIAorLSAg ICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC00NDIyLDcgKzQ0MjIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVt ZW50X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIHYgPSBb bGVmdCAqIHggZm9yIHggaW4gc2VsZi5fZW50cmllc10KKyAgICAgICAgIHJldHVybiBzZWxmLl9u ZXdfYyh2KQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTQ0NDAsNyArNDQ0MCw3IEBAIGNkZWYgY2xh c3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6Cisg CisgICAgIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCisgICAgIEBjeXRob24ud3JhcGFyb3Vu ZChGYWxzZSkKKy0gICAgY3BkZWYgX3BhaXJ3aXNlX3Byb2R1Y3RfKGxlZnQsIFZlY3RvciByaWdo dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9wYWlyd2lzZV9wcm9kdWN0XyhsZWZ0LCBWZWN0b3Ig cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDQ3Miw3 ICs0NDcyLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZy ZWVNb2R1bGVFbGVtZW50KToKKyAKKyAgICAgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyAg ICAgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwg UHlfc3NpemVfdCBpKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3Nz aXplX3QgaSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00Njgw LDcgKzQ2ODAsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNl KEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgIHNhZ2U6IChiLWEpLmRpY3QoKQorICAgICAg ICAgezI6IC0xfQorICAgICAiIiIKKy0gICAgY2RlZiBfbmV3X2Moc2VsZiwgb2JqZWN0IHYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIF9uZXdfYyhzZWxmLCBvYmplY3Qgdik6CisgICAgICAgICAiIiIK KyAgICAgICAgIENyZWF0ZSBhIG5ldyBzcGFyc2UgZnJlZSBtb2R1bGUgZWxlbWVudCB3aXRoIG1p bmltYWwgb3ZlcmhlYWQgYW5kCisgICAgICAgICBubyB0eXBlIGNoZWNraW5nLgorQEAgLTQ4MzAs NyArNDgzMCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2Uo RnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBlbnRyaWVzX2RpY3QgPSBkaWN0 KGVudHJpZXNfZGljdCkgICMgbWFrZSBhIGNvcHkvY29udmVydCB0byBkaWN0CisgICAgICAgICBz ZWxmLl9lbnRyaWVzID0gZW50cmllc19kaWN0CisgCistICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpOgorICAgICAgICAg IiIiCisgICAgICAgICBBZGQgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAtNDg1Miw3ICs0ODUyLDcg QEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxl RWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHZbaV0gPSBhCisgICAgICAgICByZXR1cm4gbGVm dC5fbmV3X2ModikKKyAKKy0gICAgY3BkZWYgX3N1Yl8obGVmdCwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfc3ViXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC00ODcyLDcgKzQ4NzIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVF bGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICAg ICAgdltpXSA9IC1hCisgICAgICAgICByZXR1cm4gbGVmdC5fbmV3X2ModikKKyAKKy0gICAgY3Bk ZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11 bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVT OjoKKyAKK0BAIC00ODg4LDcgKzQ4ODgsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50 X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAg IHZbaV0gPSBwcm9kCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2ModikKKyAKKy0gICAgY3Bk ZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVs XyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6 CisgCitAQCAtNDkwNCw3ICs0OTA0LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9n ZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICB2 W2ldID0gcHJvZAorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHYpCisgCistICAgIGNwZGVm IF9kb3RfcHJvZHVjdF9jb2VyY2VfKGxlZnQsIFZlY3RvciByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9kb3RfcHJvZHVjdF9jb2VyY2VfKGxlZnQsIFZlY3RvciByaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZG90IHByb2R1Y3Qgb2YgbGVmdCBhbmQgcmlnaHQu CisgCitAQCAtNDk1Niw3ICs0OTU2LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9n ZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHogKz0g YSAqIGVbaV0KKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9wYWlyd2lzZV9wcm9k dWN0XyhsZWZ0LCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcGFpcndpc2Vf cHJvZHVjdF8obGVmdCwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhB TVBMRVM6OgorIAorQEAgLTQ5NzQsNyArNDk3NCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVs ZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAg ICAgICAgdltpXSA9IHByb2QKKyAgICAgICAgIHJldHVybiBsZWZ0Ll9uZXdfYyh2KQorIAorLSAg ICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ29tcGFyZSB0d28gc3BhcnNlIGZyZWUgbW9kdWxlIGVsZW1lbnRzLgorIAorQEAgLTUxMDUs NyArNTEwNSw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2Uo RnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoInZlY3Rv ciBpbmRleCBvdXQgb2YgcmFuZ2UiKQorICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3Vuc2FmZShu KQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBub2V4Y2VwdDoK KysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL21v ZHVsZS5weXggYi9zcmMvc2FnZS9tb2R1bGVzL21vZHVsZS5weXgKK2luZGV4IDhjZjIzYWQzZTc2 Li44YzhjMWExMTNlOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvbW9kdWxlLnB5eAor KysrIGIvc3JjL3NhZ2UvbW9kdWxlcy9tb2R1bGUucHl4CitAQCAtMTMyLDcgKzEzMiw3IEBAIGNk ZWYgY2xhc3MgTW9kdWxlKFBhcmVudCk6CisgICAgICAgICAgICAgY2F0ZWdvcnkgPSBNb2R1bGVz KGJhc2UpCisgICAgICAgICBQYXJlbnQuX19pbml0X18oc2VsZiwgYmFzZT1iYXNlLCBjYXRlZ29y eT1jYXRlZ29yeSwgbmFtZXM9bmFtZXMpCisgCistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21f KHNlbGYsIE0pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBN KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgY29lcmNpb24gbWFwIGZyb20gYE1g IHRvIGBgc2VsZmBgLCBvciBOb25lLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMv dmVjdG9yX2RvdWJsZV9kZW5zZS5weXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9kb3VibGVf ZGVuc2UucHl4CitpbmRleCA3NGM3MzI3MGZmYy4uZWMxY2U0NzgxMWIgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9kb3VibGVfZGVuc2UucHl4CisrKysgYi9zcmMvc2FnZS9t b2R1bGVzL3ZlY3Rvcl9kb3VibGVfZGVuc2UucHl4CitAQCAtODEsNyArODEsNyBAQCBjZGVmIGNs YXNzIFZlY3Rvcl9kb3VibGVfZGVuc2UoVmVjdG9yX251bXB5X2RlbnNlKToKKyAgICAgICAgIDMw LjAKKyAgICAgIiIiCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBB ZGQgdHdvIHZlY3RvcnMgdG9nZXRoZXIuCisgCitAQCAtMTAxLDcgKzEwMSw3IEBAIGNkZWYgY2xh c3MgVmVjdG9yX2RvdWJsZV9kZW5zZShWZWN0b3JfbnVtcHlfZGVuc2UpOgorIAorICAgICAgICAg cmV0dXJuIHNlbGYuX25ldyhfbGVmdC5fdmVjdG9yX251bXB5ICsgX3JpZ2h0Ll92ZWN0b3JfbnVt cHkpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gc2Vs ZiAtIHJpZ2h0CisgCitAQCAtMTIxLDcgKzEyMSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX2RvdWJs ZV9kZW5zZShWZWN0b3JfbnVtcHlfZGVuc2UpOgorIAorICAgICAgICAgcmV0dXJuIHNlbGYuX25l dyhfbGVmdC5fdmVjdG9yX251bXB5IC0gX3JpZ2h0Ll92ZWN0b3JfbnVtcHkpCisgCistICAgIGNw ZGVmIF9kb3RfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2RvdF9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBEb3QgcHJvZHVjdCBvZiBzZWxmIGFuZCByaWdodC4KKyAKK0BAIC0xNDUsNyArMTQ1LDcg QEAgY2RlZiBjbGFzcyBWZWN0b3JfZG91YmxlX2RlbnNlKFZlY3Rvcl9udW1weV9kZW5zZSk6Cisg CisgICAgICAgICByZXR1cm4gc2VsZi5fc2FnZV9kdHlwZShudW1weS5kb3QoX2xlZnQuX3ZlY3Rv cl9udW1weSwgX3JpZ2h0Ll92ZWN0b3JfbnVtcHkpKQorIAorLSAgICBjcGRlZiBfcGFpcndpc2Vf cHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3BhaXJ3 aXNlX3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgY29tcG9uZW50LXdpc2UgcHJvZHVjdCBvZiBzZWxmIGFuZCByaWdodC4KKyAK K0BAIC0xNjgsNyArMTY4LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfZG91YmxlX2RlbnNlKFZlY3Rv cl9udW1weV9kZW5zZSk6CisgCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3KF9sZWZ0Ll92ZWN0 b3JfbnVtcHkgKiBfcmlnaHQuX3ZlY3Rvcl9udW1weSkKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNl bGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVt ZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBhIHNjYWxhciBhbmQg dmVjdG9yCisgCitAQCAtMTg0LDcgKzE4NCw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX2RvdWJsZV9k ZW5zZShWZWN0b3JfbnVtcHlfZGVuc2UpOgorIAorICAgICAgICAgcmV0dXJuIHNlbGYuX25ldyhz ZWxmLl9weXRob25fZHR5cGUobGVmdCkqc2VsZi5fdmVjdG9yX251bXB5KQorIAorLSAgICBjcGRl ZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVs XyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkg YSBzY2FsYXIgYW5kIHZlY3RvcgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVj dG9yX2ludGVnZXJfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9k ZW5zZS5weGQKK2luZGV4IDBkYjQ4MDhiZTYzLi5mZjI4NDNmNDgxZiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21vZHVsZXMvdmVjdG9yX2ludGVnZXJfZGVuc2UucHhkCisrKysgYi9zcmMvc2FnZS9t b2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX2RlbnNlLnB4ZAorQEAgLTcsNyArNyw3IEBAIGNkZWYgY2xh c3MgVmVjdG9yX2ludGVnZXJfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICBjZGVmIG1w el90KiBfZW50cmllcworICAgICBjZGVmIGludCBfaW5pdChzZWxmLCBQeV9zc2l6ZV90IGRlZ3Jl ZSwgUGFyZW50IHBhcmVudCkgZXhjZXB0IC0xCisgCistICAgIGNkZWYgaW5saW5lIFZlY3Rvcl9p bnRlZ2VyX2RlbnNlIF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgVmVj dG9yX2ludGVnZXJfZGVuc2UgX25ld19jKHNlbGYpOgorICAgICAgICAgY2RlZiB0eXBlIHQgPSB0 eXBlKHNlbGYpCisgICAgICAgICBjZGVmIFZlY3Rvcl9pbnRlZ2VyX2RlbnNlIHggPSA8VmVjdG9y X2ludGVnZXJfZGVuc2U+KHQuX19uZXdfXyh0KSkKKyAgICAgICAgIHguX2luaXQoc2VsZi5fZGVn cmVlLCBzZWxmLl9wYXJlbnQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3Jf aW50ZWdlcl9kZW5zZS5weXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX2RlbnNl LnB5eAoraW5kZXggNTJlMGJiZDQwNjQuLjQwZGU0NGVjNjg0IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVs ZXMvdmVjdG9yX2ludGVnZXJfZGVuc2UucHl4CitAQCAtMTMwLDcgKzEzMCw3IEBAIGNkZWYgY2xh c3MgVmVjdG9yX2ludGVnZXJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxl bWVudCk6CisgICAgICAgICAgICAgICAgIG1wel9jbGVhcihzZWxmLl9lbnRyaWVzW2ldKQorICAg ICAgICAgICAgIHNpZ19mcmVlKHNlbGYuX2VudHJpZXMpCisgCistICAgIGNwZGVmIF9yaWNoY21w XyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxl ZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6Cisg CitAQCAtMTU5LDcgKzE1OSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX2ludGVnZXJfZGVuc2UoZnJl ZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHJl dHVybiByaWNoX3RvX2Jvb2wob3AsIDEpCisgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9w LCAwKQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yMTUsNyArMjE1LDcgQEAgY2RlZiBjbGFz cyBWZWN0b3JfaW50ZWdlcl9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVt ZW50KToKKyAgICAgICAgIHJldHVybiAodW5waWNrbGVfdjEsIChzZWxmLl9wYXJlbnQsIHNlbGYu bGlzdCgpLCBzZWxmLl9kZWdyZWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90 IHNlbGYuX2lzX2ltbXV0YWJsZSkpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgY2RlZiBW ZWN0b3JfaW50ZWdlcl9kZW5zZSB6LCByCisgICAgICAgICByID0gcmlnaHQKKyAgICAgICAgIHog PSBzZWxmLl9uZXdfYygpCitAQCAtMjI1LDcgKzIyNSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX2lu dGVnZXJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAg ICAgICByZXR1cm4gegorIAorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIGNkZWYgVmVjdG9y X2ludGVnZXJfZGVuc2UgeiwgcgorICAgICAgICAgciA9IHJpZ2h0CisgICAgICAgICB6ID0gc2Vs Zi5fbmV3X2MoKQorQEAgLTIzNCw3ICsyMzQsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9pbnRlZ2Vy X2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAg ICAgIG1wel9zdWIoei5fZW50cmllc1tpXSwgc2VsZi5fZW50cmllc1tpXSwgci5fZW50cmllc1tp XSkKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9kb3RfcHJvZHVjdF8oc2VsZiwg VmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2RvdF9wcm9kdWN0XyhzZWxmLCBW ZWN0b3IgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBEb3QgcHJvZHVjdCBvZiBkZW5z ZSB2ZWN0b3JzIG92ZXIgdGhlIGludGVnZXJzLgorIAorQEAgLTI1OCw3ICsyNTgsNyBAQCBjZGVm IGNsYXNzIFZlY3Rvcl9pbnRlZ2VyX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVs ZUVsZW1lbnQpOgorICAgICAgICAgbXB6X2NsZWFyKHQpCisgICAgICAgICByZXR1cm4gegorIAor LSAgICBjcGRlZiBfcGFpcndpc2VfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3BhaXJ3aXNlX3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNzQsNyArMjc0LDcgQEAg Y2RlZiBjbGFzcyBWZWN0b3JfaW50ZWdlcl9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVN b2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICBtcHpfbXVsKHouX2VudHJpZXNbaV0sIHNlbGYu X2VudHJpZXNbaV0sIHIuX2VudHJpZXNbaV0pCisgICAgICAgICByZXR1cm4gegorIAorLSAgICBj cGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Jt dWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICBjZGVmIFZlY3Rvcl9pbnRlZ2VyX2Rl bnNlIHoKKyAgICAgICAgIGNkZWYgSW50ZWdlciBhCisgICAgICAgICBhID0gbGVmdAorQEAgLTI4 NCw3ICsyODQsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9pbnRlZ2VyX2RlbnNlKGZyZWVfbW9kdWxl X2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIG1wel9tdWwoei5fZW50 cmllc1tpXSwgc2VsZi5fZW50cmllc1tpXSwgYS52YWx1ZSkKKyAgICAgICAgIHJldHVybiB6Cisg CistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgY2RlZiBWZWN0b3Jf aW50ZWdlcl9kZW5zZSB6CisgICAgICAgICBjZGVmIEludGVnZXIgYQorICAgICAgICAgYSA9IHJp Z2h0CitAQCAtMjk0LDcgKzI5NCw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX2ludGVnZXJfZGVuc2Uo ZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgbXB6 X211bCh6Ll9lbnRyaWVzW2ldLCBzZWxmLl9lbnRyaWVzW2ldLCBhLnZhbHVlKQorICAgICAgICAg cmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9uZWdfKHNlbGYpOgorICAgICAgICAgY2RlZiBWZWN0b3JfaW50ZWdlcl9kZW5zZSB6CisgICAg ICAgICB6ID0gc2VsZi5fbmV3X2MoKQorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX3NwYXJzZS5weGQgYi9zcmMv c2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX3NwYXJzZS5weGQKK2luZGV4IDQ3OTFiNzc4NDk3 Li40MjgxODEyNGE4MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX2ludGVn ZXJfc3BhcnNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9zcGFy c2UucHhkCitAQCAtMTksNyArMTksNyBAQCBjZGVmIFB5X3NzaXplX3QgbXB6X2JpbmFyeV9zZWFy Y2gwKG1wel90KiB2LCBQeV9zc2l6ZV90IG4sIG1wel90IHgpIG5vZXhjZXB0CisgY2RlZiBQeV9z c2l6ZV90IG1wel9iaW5hcnlfc2VhcmNoKG1wel90KiB2LCBQeV9zc2l6ZV90IG4sIG1wel90IHgs IFB5X3NzaXplX3QqIGlucykgbm9leGNlcHQKKyBjZGVmIGludCBtcHpfdmVjdG9yX2dldF9lbnRy eShtcHpfdCBhbnMsIG1wel92ZWN0b3IqIHYsIFB5X3NzaXplX3QgbikgZXhjZXB0IC0xCisgY2Rl ZiBiaW50IG1wel92ZWN0b3JfaXNfZW50cnlfemVyb191bnNhZmUobXB6X3ZlY3RvciogdiwgUHlf c3NpemVfdCBuKSBub2V4Y2VwdAorLWNkZWYgb2JqZWN0IG1wel92ZWN0b3JfdG9fbGlzdChtcHpf dmVjdG9yKiB2KSBub2V4Y2VwdAorK2NkZWYgb2JqZWN0IG1wel92ZWN0b3JfdG9fbGlzdChtcHpf dmVjdG9yKiB2KQorIGNkZWYgaW50IG1wel92ZWN0b3Jfc2V0X2VudHJ5KG1wel92ZWN0b3IqIHYs IFB5X3NzaXplX3QgbiwgbXB6X3QgeCkgZXhjZXB0IC0xCisgY2RlZiBpbnQgbXB6X3ZlY3Rvcl9z ZXRfZW50cnlfc3RyKG1wel92ZWN0b3IqIHYsIFB5X3NzaXplX3QgbiwgY2hhciAqeF9zdHIpIGV4 Y2VwdCAtMQorIGNkZWYgaW50IGFkZF9tcHpfdmVjdG9yX2luaXQobXB6X3ZlY3Rvciogc3VtLCBt cHpfdmVjdG9yKiB2LCBtcHpfdmVjdG9yKiB3LCBtcHpfdCBtdWx0aXBsZSkgZXhjZXB0IC0xCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9zcGFyc2UucHl4IGIv c3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9zcGFyc2UucHl4CitpbmRleCBkNWYyOTU4 ZWE1OS4uNTdhN2I3MGJkZTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9p bnRlZ2VyX3NwYXJzZS5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX2ludGVnZXJf c3BhcnNlLnB5eAorQEAgLTE1MSw3ICsxNTEsNyBAQCBjZGVmIGJpbnQgbXB6X3ZlY3Rvcl9pc19l bnRyeV96ZXJvX3Vuc2FmZShtcHpfdmVjdG9yKiB2LCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0Ogor ICAgICAiIiIKKyAgICAgcmV0dXJuIGJpbmFyeV9zZWFyY2gwKHYucG9zaXRpb25zLCB2Lm51bV9u b256ZXJvLCBuKSA9PSAtMQorIAorLWNkZWYgb2JqZWN0IG1wel92ZWN0b3JfdG9fbGlzdChtcHpf dmVjdG9yKiB2KSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBtcHpfdmVjdG9yX3RvX2xpc3QobXB6 X3ZlY3Rvciogdik6CisgICAgICIiIgorICAgICBSZXR1cm5zIGEgUHl0aG9uIGxpc3Qgb2YgMi10 dXBsZXMgKGkseCksIHdoZXJlIHg9dltpXSBydW5zCisgICAgIHRocm91Z2ggdGhlIG5vbnplcm8g ZWxlbWVudHMgb2YgeCwgaW4gb3JkZXIuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92 ZWN0b3JfbW9kMl9kZW5zZS5weGQgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2QyX2RlbnNl LnB4ZAoraW5kZXggMTI5Mjc2MmE3NmUuLjQ1MzVmZTMyNzNkIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbW9kdWxlcy92ZWN0b3JfbW9kMl9kZW5zZS5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMv dmVjdG9yX21vZDJfZGVuc2UucHhkCitAQCAtNiw1ICs2LDUgQEAgY2RlZiBjbGFzcyBWZWN0b3Jf bW9kMl9kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgIGNkZWYgbXpkX3QqIF9lbnRyaWVz CisgICAgIGNkZWYgb2JqZWN0IF9iYXNlX3JpbmcKKyAKKy0gICAgY2RlZiBfbmV3X2Moc2VsZikg bm9leGNlcHQKKy0gICAgY2RlZiBfaW5pdChzZWxmLCBQeV9zc2l6ZV90IGRlZ3JlZSwgcGFyZW50 KSBub2V4Y2VwdAorKyAgICBjZGVmIF9uZXdfYyhzZWxmKQorKyAgICBjZGVmIF9pbml0KHNlbGYs IFB5X3NzaXplX3QgZGVncmVlLCBwYXJlbnQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxl cy92ZWN0b3JfbW9kMl9kZW5zZS5weXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2QyX2Rl bnNlLnB5eAoraW5kZXggOTRmNjNmMzVjNTYuLjRkNTQ0YzBjN2UxIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9kMl9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVs ZXMvdmVjdG9yX21vZDJfZGVuc2UucHl4CitAQCAtNTAsNyArNTAsNyBAQCBjaW1wb3J0IHNhZ2Uu bW9kdWxlcy5mcmVlX21vZHVsZV9lbGVtZW50IGFzIGZyZWVfbW9kdWxlX2VsZW1lbnQKKyBmcm9t IHNhZ2UubGlicy5tNHJpIGNpbXBvcnQgKgorIAorIGNkZWYgY2xhc3MgVmVjdG9yX21vZDJfZGVu c2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CistICAgIGNkZWYgX25l d19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZXdfYyhzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEwNSw3ICsxMDUsNyBAQCBjZGVmIGNsYXNz IFZlY3Rvcl9tb2QyX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQp OgorICAgICAgICAgICAgIG16ZF9jb3B5KHkuX2VudHJpZXMsIHNlbGYuX2VudHJpZXMpCisgICAg ICAgICByZXR1cm4geQorIAorLSAgICBjZGVmIF9pbml0KHNlbGYsIFB5X3NzaXplX3QgZGVncmVl LCBwYXJlbnQpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pbml0KHNlbGYsIFB5X3NzaXplX3QgZGVn cmVlLCBwYXJlbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAt MjI3LDcgKzIyNyw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZDJfZGVuc2UoZnJlZV9tb2R1bGVf ZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICBpZiBzZWxmLl9lbnRyaWVzOgor ICAgICAgICAgICAgIG16ZF9mcmVlKHNlbGYuX2VudHJpZXMpCisgCistICAgIGNwZGVmIF9yaWNo Y21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBf KGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6 CisgCitAQCAtMjUzLDcgKzI1Myw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZDJfZGVuc2UoZnJl ZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICBjID0gbXpkX2Nt cChsZWZ0Ll9lbnRyaWVzLCAoPFZlY3Rvcl9tb2QyX2RlbnNlPnJpZ2h0KS5fZW50cmllcykKKyAg ICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIGMpCisgCistICAgIGNkZWYgZ2V0X3Vuc2Fm ZShzZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2Vs ZiwgUHlfc3NpemVfdCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTMwMiw3ICszMDIsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2QyX2RlbnNlKGZyZWVfbW9k dWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIHVucGlja2xl X3YwLCAoc2VsZi5fcGFyZW50LCBzZWxmLmxpc3QoKSwgc2VsZi5fZGVncmVlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5faXNfaW1tdXRhYmxlKQorIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTMxNyw3ICszMTcs NyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2QyX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJl ZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIG16ZF9hZGQoei5fZW50cmllcywgc2VsZi5f ZW50cmllcywgKDxWZWN0b3JfbW9kMl9kZW5zZT5yaWdodCkuX2VudHJpZXMpCisgICAgICAgICBy ZXR1cm4gegorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBM RVM6OgorIAorQEAgLTM0OSw3ICszNDksNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2QyX2RlbnNl KGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgcmV0dXJu IHJlcworIAorIAorLSAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9kb3RfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KToK KyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTM5Nyw3ICszOTcsNyBA QCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2QyX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1v ZHVsZUVsZW1lbnQpOgorIAorICAgICAgICAgcmV0dXJuIG4KKyAKKy0gICAgY3BkZWYgX3BhaXJ3 aXNlX3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9w YWlyd2lzZV9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFWEFNUExFUzo6CisgCitAQCAtNDE5LDcgKzQxOSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9y X21vZDJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAg ICAgICAgICAgenJvd1tpXSA9IChscm93W2ldICYgcnJvd1tpXSkKKyAgICAgICAgIHJldHVybiB6 CisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgRVhBTVBMRVM6OgorIAorQEAgLTQ0Nyw3ICs0NDcsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9t b2QyX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmLl9fY29weV9fKCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdf YygpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVn XyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fZGVuc2UucHhkIGIvc3JjL3NhZ2UvbW9k dWxlcy92ZWN0b3JfbW9kbl9kZW5zZS5weGQKK2luZGV4IDZlNzI2NjUxZWExLi41ZGUxNjZmMWI4 NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fZGVuc2UucHhkCisr KysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2RuX2RlbnNlLnB4ZAorQEAgLTcsNSArNyw1 IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZG5fZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAg ICBjZGVmIG1vZF9pbnQgX3AKKyAgICAgY2RlZiBvYmplY3QgX2Jhc2VfcmluZworIAorLSAgICBj ZGVmIF9uZXdfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9pbml0KHNlbGYsIFB5X3NzaXpl X3QgZGVncmVlLCBwYXJlbnQsIG1vZF9pbnQgcCkgbm9leGNlcHQKKysgICAgY2RlZiBfbmV3X2Mo c2VsZikKKysgICAgY2RlZiBfaW5pdChzZWxmLCBQeV9zc2l6ZV90IGRlZ3JlZSwgcGFyZW50LCBt b2RfaW50IHApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9kbl9kZW5z ZS5weXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2RuX2RlbnNlLnB5eAoraW5kZXggYzIx NTVhNjg5OTAuLjVjNzQ1YmIxZGY2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0 b3JfbW9kbl9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fZGVu c2UucHl4CitAQCAtMTM1LDcgKzEzNSw3IEBAIGNpbXBvcnQgc2FnZS5tb2R1bGVzLmZyZWVfbW9k dWxlX2VsZW1lbnQgYXMgZnJlZV9tb2R1bGVfZWxlbWVudAorIAorIAorIGNkZWYgY2xhc3MgVmVj dG9yX21vZG5fZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6Cist ICAgIGNkZWYgX25ld19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZXdfYyhzZWxmKToK KyAgICAgICAgIGNkZWYgVmVjdG9yX21vZG5fZGVuc2UgeQorICAgICAgICAgeSA9IFZlY3Rvcl9t b2RuX2RlbnNlLl9fbmV3X18oVmVjdG9yX21vZG5fZGVuc2UpCisgICAgICAgICB5Ll9pbml0KHNl bGYuX2RlZ3JlZSwgc2VsZi5fcGFyZW50LCBzZWxmLl9wKQorQEAgLTE1NSw3ICsxNTUsNyBAQCBj ZGVmIGNsYXNzIFZlY3Rvcl9tb2RuX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVs ZUVsZW1lbnQpOgorICAgICAgICAgICAgIHkuX2VudHJpZXNbaV0gPSBzZWxmLl9lbnRyaWVzW2ld CisgICAgICAgICByZXR1cm4geQorIAorLSAgICBjZGVmIF9pbml0KHNlbGYsIFB5X3NzaXplX3Qg ZGVncmVlLCBwYXJlbnQsIG1vZF9pbnQgcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXQoc2Vs ZiwgUHlfc3NpemVfdCBkZWdyZWUsIHBhcmVudCwgbW9kX2ludCBwKToKKyAgICAgICAgIHNlbGYu X2RlZ3JlZSA9IGRlZ3JlZQorICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisgICAgICAg ICBzZWxmLl9wID0gcAorQEAgLTE5NCw3ICsxOTQsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2Ru X2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICBkZWYg X19kZWFsbG9jX18oc2VsZik6CisgICAgICAgICBzaWdfZnJlZShzZWxmLl9lbnRyaWVzKQorIAor LSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAg ICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTIyMCw3ICsyMjAsNyBAQCBjZGVmIGNsYXNzIFZlY3Rv cl9tb2RuX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAg ICAgICAgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCAxKQorICAgICAgICAgcmV0dXJu IHJpY2hfdG9fYm9vbChvcCwgMCkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3Nz aXplX3QgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90 IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjc2LDcgKzI3 Niw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZG5fZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5G cmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICByZXR1cm4gdW5waWNrbGVfdjEsIChzZWxmLl9w YXJlbnQsIHNlbGYubGlzdCgpLCBzZWxmLl9kZWdyZWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9wLCBub3Qgc2VsZi5faXNfaW1tdXRhYmxlKQorIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgIGNkZWYgVmVjdG9yX21vZG5fZGVuc2UgeiwgcgorICAgICAgICAgciA9IHJp Z2h0CisgICAgICAgICB6ID0gc2VsZi5fbmV3X2MoKQorQEAgLTI4Niw3ICsyODYsNyBAQCBjZGVm IGNsYXNzIFZlY3Rvcl9tb2RuX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVs ZW1lbnQpOgorICAgICAgICAgcmV0dXJuIHoKKyAKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAg ICBjZGVmIFZlY3Rvcl9tb2RuX2RlbnNlIHosIHIKKyAgICAgICAgIHIgPSByaWdodAorICAgICAg ICAgeiA9IHNlbGYuX25ld19jKCkKK0BAIC0yOTUsNyArMjk1LDcgQEAgY2RlZiBjbGFzcyBWZWN0 b3JfbW9kbl9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAg ICAgICAgICAgICB6Ll9lbnRyaWVzW2ldID0gKHNlbGYuX3AgKyBzZWxmLl9lbnRyaWVzW2ldIC0g ci5fZW50cmllc1tpXSkgJSBzZWxmLl9wCisgICAgICAgICByZXR1cm4gegorIAorLSAgICBjcGRl ZiBfZG90X3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9kb3RfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgIGNkZWYgc2l6ZV90 IGkKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9pbnQgbgorICAgICAgICAgY2RlZiBJbnRlZ2Vy TW9kX2ludDY0IG0KK0BAIC0zMTYsNyArMzE2LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfbW9kbl9k ZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAg ICAgICAgbS5pdmFsdWUgPSAobS5pdmFsdWUgKyBzZWxmLl9lbnRyaWVzW2ldICogci5fZW50cmll c1tpXSkgJSBzZWxmLl9wCisgICAgICAgICAgICAgcmV0dXJuIG0KKyAKKy0gICAgY3BkZWYgX3Bh aXJ3aXNlX3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9wYWlyd2lzZV9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzM0LDcgKzMzNCw3IEBAIGNkZWYgY2xhc3MgVmVj dG9yX21vZG5fZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6Cisg ICAgICAgICAgICAgei5fZW50cmllc1tpXSA9IChzZWxmLl9lbnRyaWVzW2ldICogci5fZW50cmll c1tpXSkgJSBzZWxmLl9wCisgICAgICAgICByZXR1cm4gegorIAorLSAgICBjcGRlZiBfbG11bF8o c2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVs ZW1lbnQgbGVmdCk6CisgICAgICAgICBjZGVmIFZlY3Rvcl9tb2RuX2RlbnNlIHoKKyAKKyAgICAg ICAgIGNkZWYgbW9kX2ludCBhID0gaXZhbHVlKGxlZnQpCitAQCAtMzQ1LDcgKzM0NSw3IEBAIGNk ZWYgY2xhc3MgVmVjdG9yX21vZG5fZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxl RWxlbWVudCk6CisgICAgICAgICAgICAgei5fZW50cmllc1tpXSA9IChzZWxmLl9lbnRyaWVzW2ld ICogYSkgJSBzZWxmLl9wCisgICAgICAgICByZXR1cm4gegorIAorLSAgICBjcGRlZiBfbmVnXyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICBjZGVmIFZl Y3Rvcl9tb2RuX2RlbnNlIHoKKyAgICAgICAgIHogPSBzZWxmLl9uZXdfYygpCisgICAgICAgICBj ZGVmIFB5X3NzaXplX3QgaQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21v ZG5fc3BhcnNlLnB4ZCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fc3BhcnNlLnB4ZAor aW5kZXggZDM0NWVjZDFlMTIuLjA0OWI5YmEyN2U4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9k dWxlcy92ZWN0b3JfbW9kbl9zcGFyc2UucHhkCisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rv cl9tb2RuX3NwYXJzZS5weGQKK0BAIC0xNCw3ICsxNCw3IEBAIGNkZWYgUHlfc3NpemVfdCBiaW5h cnlfc2VhcmNoMF9tb2RuKFB5X3NzaXplX3QqIHYsIFB5X3NzaXplX3QgbiwgaW50X2Zhc3Q2NF90 IHgpCisgY2RlZiBQeV9zc2l6ZV90IGJpbmFyeV9zZWFyY2hfbW9kbihQeV9zc2l6ZV90KiB2LCBQ eV9zc2l6ZV90IG4sIGludF9mYXN0NjRfdCB4LCBQeV9zc2l6ZV90KiBpbnMpIG5vZXhjZXB0Cisg Y2RlZiBpbnRfZmFzdDY0X3QgZ2V0X2VudHJ5KGNfdmVjdG9yX21vZGludCogdiwgUHlfc3NpemVf dCBuKSBleGNlcHQgLTEKKyBjZGVmIGJpbnQgaXNfZW50cnlfemVyb191bnNhZmUoY192ZWN0b3Jf bW9kaW50KiB2LCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0CistY2RlZiBvYmplY3QgdG9fbGlzdChj X3ZlY3Rvcl9tb2RpbnQqIHYpIG5vZXhjZXB0CisrY2RlZiBvYmplY3QgdG9fbGlzdChjX3ZlY3Rv cl9tb2RpbnQqIHYpCisgY2RlZiBpbnQgc2V0X2VudHJ5KGNfdmVjdG9yX21vZGludCogdiwgUHlf c3NpemVfdCBuLCBpbnRfZmFzdDY0X3QgeCkgZXhjZXB0IC0xCisgY2RlZiBpbnQgYWRkX2NfdmVj dG9yX21vZGludF9pbml0KGNfdmVjdG9yX21vZGludCogc3VtLCBjX3ZlY3Rvcl9tb2RpbnQqIHYs IGNfdmVjdG9yX21vZGludCogdywgaW50IG11bHRpcGxlKSBleGNlcHQgLTEKKyBjZGVmIGludCBz Y2FsZV9jX3ZlY3Rvcl9tb2RpbnQoY192ZWN0b3JfbW9kaW50KiB2LCBpbnRfZmFzdDY0X3Qgc2Nh bGFyKSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2Ru X3NwYXJzZS5weXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2RuX3NwYXJzZS5weXgKK2lu ZGV4IDBjZGU5NjQ0MzgwLi5hNmI1OWFlOWNhNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVs ZXMvdmVjdG9yX21vZG5fc3BhcnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3Jf bW9kbl9zcGFyc2UucHl4CitAQCAtMTMwLDcgKzEzMCw3IEBAIGNkZWYgYmludCBpc19lbnRyeV96 ZXJvX3Vuc2FmZShjX3ZlY3Rvcl9tb2RpbnQqIHYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6Cisg ICAgICIiIgorICAgICByZXR1cm4gYmluYXJ5X3NlYXJjaDBfbW9kbih2LnBvc2l0aW9ucywgdi5u dW1fbm9uemVybywgbikgPT0gLTEKKyAKKy1jZGVmIG9iamVjdCB0b19saXN0KGNfdmVjdG9yX21v ZGludCogdikgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgdG9fbGlzdChjX3ZlY3Rvcl9tb2RpbnQq IHYpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGEgUHl0aG9uIGxpc3Qgb2YgMi10dXBsZXMgKGks eCksIHdoZXJlIHg9dltpXSBydW5zCisgICAgIHRocm91Z2ggdGhlIG5vbnplcm8gZWxlbWVudHMg b2YgeCwgaW4gb3JkZXIuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbnVt cHlfZGVuc2UucHhkIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbnVtcHlfZGVuc2UucHhkCitp bmRleCAwY2IzODQyMjJjMi4uZWM2MGRhN2E4NjUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1 bGVzL3ZlY3Rvcl9udW1weV9kZW5zZS5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9y X251bXB5X2RlbnNlLnB4ZAorQEAgLTEwLDUgKzEwLDUgQEAgY2RlZiBjbGFzcyBWZWN0b3JfbnVt cHlfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICBjZGVmIG9iamVjdCBfc2FnZV9kdHlw ZQorICAgICBjZGVmIG9iamVjdCBfc2FnZV92ZWN0b3JfZHR5cGUKKyAgICAgY2RlZiBudW1weS5u ZGFycmF5IF92ZWN0b3JfbnVtcHkKKy0gICAgY2RlZiBWZWN0b3JfbnVtcHlfZGVuc2UgX25ldyhz ZWxmLCBudW1weS5uZGFycmF5IHZlY3Rvcl9udW1weSkgbm9leGNlcHQKKy0gICAgY2RlZiBfcmVw bGFjZV9zZWxmX3dpdGhfbnVtcHkoc2VsZiwgbnVtcHkubmRhcnJheSBudW1weV9hcnJheSkgbm9l eGNlcHQKKysgICAgY2RlZiBWZWN0b3JfbnVtcHlfZGVuc2UgX25ldyhzZWxmLCBudW1weS5uZGFy cmF5IHZlY3Rvcl9udW1weSkKKysgICAgY2RlZiBfcmVwbGFjZV9zZWxmX3dpdGhfbnVtcHkoc2Vs ZiwgbnVtcHkubmRhcnJheSBudW1weV9hcnJheSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1 bGVzL3ZlY3Rvcl9udW1weV9kZW5zZS5weXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9udW1w eV9kZW5zZS5weXgKK2luZGV4IDQzM2Y3N2IxMWQzLi45YjE2YTZjMzU0ZCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX251bXB5X2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2Uv bW9kdWxlcy92ZWN0b3JfbnVtcHlfZGVuc2UucHl4CitAQCAtNjgsNyArNjgsNyBAQCBjZGVmIGNs YXNzIFZlY3Rvcl9udW1weV9kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICBzZWxm Ll9kZWdyZWUgPSBwYXJlbnQuZGVncmVlKCkKKyAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVu dAorIAorLSAgICBjZGVmIFZlY3Rvcl9udW1weV9kZW5zZSBfbmV3KHNlbGYsIG51bXB5Lm5kYXJy YXkgdmVjdG9yX251bXB5KSBub2V4Y2VwdDoKKysgICAgY2RlZiBWZWN0b3JfbnVtcHlfZGVuc2Ug X25ldyhzZWxmLCBudW1weS5uZGFycmF5IHZlY3Rvcl9udW1weSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBhIG5ldyB2ZWN0b3Igd2l0aCBzYW1lIHBhcmVudCBhcyBzZWxmLgorICAg ICAgICAgIiIiCitAQCAtMjMxLDcgKzIzMSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX251bXB5X2Rl bnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9w eXRob25fZHR5cGUodmFsdWUpKQorICAgICAgICAgIyBUT0RPOiBUaHJvdyBhbiBlcnJvciBpZiBz dGF0dXMgPT0gLTEKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSkg bm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjQ4LDcgKzI0OCw3IEBAIGNk ZWYgY2xhc3MgVmVjdG9yX251bXB5X2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAg IHJldHVybiBzZWxmLl9zYWdlX2R0eXBlKG51bXB5LlB5QXJyYXlfR0VUSVRFTShzZWxmLl92ZWN0 b3JfbnVtcHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbnVtcHkuUHlBcnJheV9HRVRQVFIxKHNlbGYuX3ZlY3Rvcl9udW1weSwgaSkpKQorIAorLSAg ICBjZGVmIF9yZXBsYWNlX3NlbGZfd2l0aF9udW1weShzZWxmLCBudW1weS5uZGFycmF5IG51bXB5 X2FycmF5KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcmVwbGFjZV9zZWxmX3dpdGhfbnVtcHkoc2Vs ZiwgbnVtcHkubmRhcnJheSBudW1weV9hcnJheSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl cGxhY2UgdGhlIHVuZGVybHlpbmcgbnVtcHkgYXJyYXkgd2l0aCBudW1weV9hcnJheS4KKyAgICAg ICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFsX2Rl bnNlLnB4ZCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFsX2RlbnNlLnB4ZAoraW5k ZXggNDgyMDkzNjU4MGEuLmM1ZjJhNGE3YzNmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxl cy92ZWN0b3JfcmF0aW9uYWxfZGVuc2UucHhkCisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rv cl9yYXRpb25hbF9kZW5zZS5weGQKK0BAIC03LDcgKzcsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9y YXRpb25hbF9kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgIGNkZWYgbXBxX3QqIF9lbnRy aWVzCisgICAgIGNkZWYgaW50IF9pbml0KHNlbGYsIFB5X3NzaXplX3QgZGVncmVlLCBQYXJlbnQg cGFyZW50KSBleGNlcHQgLTEKKyAKKy0gICAgY2RlZiBpbmxpbmUgVmVjdG9yX3JhdGlvbmFsX2Rl bnNlIF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgVmVjdG9yX3JhdGlv bmFsX2RlbnNlIF9uZXdfYyhzZWxmKToKKyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxm KQorICAgICAgICAgY2RlZiBWZWN0b3JfcmF0aW9uYWxfZGVuc2UgeCA9IDxWZWN0b3JfcmF0aW9u YWxfZGVuc2U+KHQuX19uZXdfXyh0KSkKKyAgICAgICAgIHguX2luaXQoc2VsZi5fZGVncmVlLCBz ZWxmLl9wYXJlbnQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0aW9u YWxfZGVuc2UucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0aW9uYWxfZGVuc2UucHl4 CitpbmRleCA5ODQyNGYzZDNlMS4uODY0NjI4ZjEwYzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9t b2R1bGVzL3ZlY3Rvcl9yYXRpb25hbF9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMv dmVjdG9yX3JhdGlvbmFsX2RlbnNlLnB5eAorQEAgLTY3LDcgKzY3LDcgQEAgY2ltcG9ydCBzYWdl Lm1vZHVsZXMuZnJlZV9tb2R1bGVfZWxlbWVudCBhcyBmcmVlX21vZHVsZV9lbGVtZW50CisgZnJv bSBzYWdlLmxpYnMuZ21wLm1wcSBjaW1wb3J0ICoKKyAKKyAKKy1jZGVmIGlubGluZSBfUmF0aW9u YWxfZnJvbV9tcHEobXBxX3QgZSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgX1JhdGlvbmFsX2Zy b21fbXBxKG1wcV90IGUpOgorICAgICBjZGVmIFJhdGlvbmFsIHogPSBSYXRpb25hbC5fX25ld19f KFJhdGlvbmFsKQorICAgICBtcHFfc2V0KHoudmFsdWUsIGUpCisgICAgIHJldHVybiB6CitAQCAt MTYyLDcgKzE2Miw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX3JhdGlvbmFsX2RlbnNlKGZyZWVfbW9k dWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBtcHFfY2xl YXIoc2VsZi5fZW50cmllc1tpXSkKKyAgICAgICAgICAgICBzaWdfZnJlZShzZWxmLl9lbnRyaWVz KQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTE5Miw3ICsxOTIsNyBAQCBjZGVmIGNsYXNz IFZlY3Rvcl9yYXRpb25hbF9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVt ZW50KToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgMSkKKyAgICAg ICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIDApCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShz ZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwg UHlfc3NpemVfdCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAg LTI1Myw3ICsyNTMsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9yYXRpb25hbF9kZW5zZShmcmVlX21v ZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgIHJldHVybiAodW5waWNr bGVfdjEsIChzZWxmLl9wYXJlbnQsIHNlbGYubGlzdCgpLCBzZWxmLl9kZWdyZWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbm90IHNlbGYuX2lzX2ltbXV0YWJsZSkpCisgCistICAg IGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2Vs ZiwgcmlnaHQpOgorICAgICAgICAgY2RlZiBWZWN0b3JfcmF0aW9uYWxfZGVuc2UgeiwgcgorICAg ICAgICAgciA9IHJpZ2h0CisgICAgICAgICB6ID0gc2VsZi5fbmV3X2MoKQorQEAgLTI2Miw3ICsy NjIsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9yYXRpb25hbF9kZW5zZShmcmVlX21vZHVsZV9lbGVt ZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICBtcHFfYWRkKHouX2VudHJpZXNb aV0sIHNlbGYuX2VudHJpZXNbaV0sIHIuX2VudHJpZXNbaV0pCisgICAgICAgICByZXR1cm4gegor IAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9z dWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIGNkZWYgVmVjdG9yX3JhdGlvbmFsX2RlbnNlIHos IHIKKyAgICAgICAgIHIgPSByaWdodAorICAgICAgICAgeiA9IHNlbGYuX25ld19jKCkKK0BAIC0y NzEsNyArMjcxLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfcmF0aW9uYWxfZGVuc2UoZnJlZV9tb2R1 bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgbXBxX3N1Yih6Ll9l bnRyaWVzW2ldLCBzZWxmLl9lbnRyaWVzW2ldLCByLl9lbnRyaWVzW2ldKQorICAgICAgICAgcmV0 dXJuIHoKKyAKKy0gICAgY3BkZWYgX2RvdF9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIERvdCBwcm9kdWN0IG9mIGRlbnNlIHZlY3RvcnMgb3ZlciB0 aGUgcmF0aW9uYWxzLgorIAorQEAgLTI5Niw3ICsyOTYsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9y YXRpb25hbF9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAg ICAgICAgIG1wcV9jbGVhcih0KQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX3Bh aXJ3aXNlX3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9wYWlyd2lzZV9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzEyLDcgKzMxMiw3IEBAIGNkZWYgY2xhc3MgVmVj dG9yX3JhdGlvbmFsX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQp OgorICAgICAgICAgICAgIG1wcV9tdWwoei5fZW50cmllc1tpXSwgc2VsZi5fZW50cmllc1tpXSwg ci5fZW50cmllc1tpXSkKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9ybXVsXyhz ZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxl bWVudCBsZWZ0KToKKyAgICAgICAgIGNkZWYgVmVjdG9yX3JhdGlvbmFsX2RlbnNlIHoKKyAgICAg ICAgIGNkZWYgUmF0aW9uYWwgYQorICAgICAgICAgaWYgaXNpbnN0YW5jZShsZWZ0LCBSYXRpb25h bCk6CitAQCAtMzMwLDcgKzMzMCw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX3JhdGlvbmFsX2RlbnNl KGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIG1w cV9tdWwoei5fZW50cmllc1tpXSwgc2VsZi5fZW50cmllc1tpXSwgYS52YWx1ZSkKKyAgICAgICAg IHJldHVybiB6CisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAg Y2RlZiBWZWN0b3JfcmF0aW9uYWxfZGVuc2UgegorICAgICAgICAgY2RlZiBSYXRpb25hbCBhCisg ICAgICAgICBpZiBpc2luc3RhbmNlKHJpZ2h0LCBSYXRpb25hbCk6CitAQCAtMzQ4LDcgKzM0OCw3 IEBAIGNkZWYgY2xhc3MgVmVjdG9yX3JhdGlvbmFsX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQu RnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIG1wcV9tdWwoei5fZW50cmllc1tpXSwg c2VsZi5fZW50cmllc1tpXSwgYS52YWx1ZSkKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNw ZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAg ICAgIGNkZWYgVmVjdG9yX3JhdGlvbmFsX2RlbnNlIHoKKyAgICAgICAgIHogPSBzZWxmLl9uZXdf YygpCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21v ZHVsZXMvdmVjdG9yX3JhdGlvbmFsX3NwYXJzZS5weGQgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rv cl9yYXRpb25hbF9zcGFyc2UucHhkCitpbmRleCBiNzM4YWQxOGVkYi4uNGRmYmVkNzNkNmQgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9yYXRpb25hbF9zcGFyc2UucHhkCisr KysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9yYXRpb25hbF9zcGFyc2UucHhkCitAQCAtMjAs NyArMjAsNyBAQCBjZGVmIFB5X3NzaXplX3QgbXBxX2JpbmFyeV9zZWFyY2gwKG1wcV90KiB2LCBQ eV9zc2l6ZV90IG4sIG1wcV90IHgpIG5vZXhjZXB0CisgY2RlZiBQeV9zc2l6ZV90IG1wcV9iaW5h cnlfc2VhcmNoKG1wcV90KiB2LCBQeV9zc2l6ZV90IG4sIG1wcV90IHgsIFB5X3NzaXplX3QqIGlu cykgbm9leGNlcHQKKyBjZGVmIGludCBtcHFfdmVjdG9yX2dldF9lbnRyeShtcHFfdCBhbnMsIG1w cV92ZWN0b3IqIHYsIFB5X3NzaXplX3QgbikgZXhjZXB0IC0xCisgY2RlZiBiaW50IG1wcV92ZWN0 b3JfaXNfZW50cnlfemVyb191bnNhZmUobXBxX3ZlY3RvciogdiwgUHlfc3NpemVfdCBuKSBub2V4 Y2VwdAorLWNkZWYgb2JqZWN0IG1wcV92ZWN0b3JfdG9fbGlzdChtcHFfdmVjdG9yKiB2KSBub2V4 Y2VwdAorK2NkZWYgb2JqZWN0IG1wcV92ZWN0b3JfdG9fbGlzdChtcHFfdmVjdG9yKiB2KQorIGNk ZWYgaW50IG1wcV92ZWN0b3Jfc2V0X2VudHJ5KG1wcV92ZWN0b3IqIHYsIFB5X3NzaXplX3Qgbiwg bXBxX3QgeCkgZXhjZXB0IC0xCisgY2RlZiBpbnQgbXBxX3ZlY3Rvcl9zZXRfZW50cnlfc3RyKG1w cV92ZWN0b3IqIHYsIFB5X3NzaXplX3QgbiwgY2hhciAqeF9zdHIpIGV4Y2VwdCAtMQorIGNkZWYg aW50IGFkZF9tcHFfdmVjdG9yX2luaXQobXBxX3ZlY3Rvciogc3VtLCBtcHFfdmVjdG9yKiB2LCBt cHFfdmVjdG9yKiB3LCBtcHFfdCBtdWx0aXBsZSkgZXhjZXB0IC0xCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0aW9uYWxfc3BhcnNlLnB5eCBiL3NyYy9zYWdlL21vZHVs ZXMvdmVjdG9yX3JhdGlvbmFsX3NwYXJzZS5weXgKK2luZGV4IDU4MTAwYWMwMzNmLi4zNzQ2NmJh YjJkYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFsX3NwYXJz ZS5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFsX3NwYXJzZS5weXgK K0BAIC0xNTgsNyArMTU4LDcgQEAgY2RlZiBiaW50IG1wcV92ZWN0b3JfaXNfZW50cnlfemVyb191 bnNhZmUobXBxX3ZlY3RvciogdiwgUHlfc3NpemVfdCBuKSBub2V4Y2VwdDoKKyAgICAgIiIiCisg ICAgIHJldHVybiBiaW5hcnlfc2VhcmNoMCh2LnBvc2l0aW9ucywgdi5udW1fbm9uemVybywgbikg PT0gLTEKKyAKKy1jZGVmIG9iamVjdCBtcHFfdmVjdG9yX3RvX2xpc3QobXBxX3ZlY3Rvciogdikg bm9leGNlcHQ6CisrY2RlZiBvYmplY3QgbXBxX3ZlY3Rvcl90b19saXN0KG1wcV92ZWN0b3IqIHYp OgorICAgICAiIiIKKyAgICAgUmV0dXJucyBhIFB5dGhvbiBsaXN0IG9mIDItdHVwbGVzIChpLHgp LCB3aGVyZSB4PXZbaV0gcnVucworICAgICB0aHJvdWdoIHRoZSBub256ZXJvIGVsZW1lbnRzIG9m IHgsIGluIG9yZGVyLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvd2l0aF9iYXNpcy9p bmRleGVkX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvbW9kdWxlcy93aXRoX2Jhc2lzL2luZGV4ZWRf ZWxlbWVudC5weGQKK2luZGV4IDA2ZmVjNzAyZGNmLi5lYmM3ODVkN2NjZiAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL21vZHVsZXMvd2l0aF9iYXNpcy9pbmRleGVkX2VsZW1lbnQucHhkCisrKysgYi9z cmMvc2FnZS9tb2R1bGVzL3dpdGhfYmFzaXMvaW5kZXhlZF9lbGVtZW50LnB4ZAorQEAgLTUsOCAr NSw4IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQp OgorICAgICBjZGVmIGxvbmcgX2hhc2gKKyAgICAgY2RlZiBiaW50IF9oYXNoX3NldAorIAorLSAg ICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3N1Yl8oc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0CisrICAg IGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikK KysgICAgY3BkZWYgX25lZ18oc2VsZikKKyAKKy0gICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2Vm ZmljaWVudHMoc2VsZiwgYmludCBjb3B5PSopIG5vZXhjZXB0CisrICAgIGNwZGVmIGRpY3QgbW9u b21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT0qKQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21vZHVsZXMvd2l0aF9iYXNpcy9pbmRleGVkX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvbW9k dWxlcy93aXRoX2Jhc2lzL2luZGV4ZWRfZWxlbWVudC5weXgKK2luZGV4IDVlODc1ZWYzOTI5Li4w NGNkMTJlOTIyYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvd2l0aF9iYXNpcy9pbmRl eGVkX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL3dpdGhfYmFzaXMvaW5kZXhl ZF9lbGVtZW50LnB5eAorQEAgLTIyOCw3ICsyMjgsNyBAQCBjZGVmIGNsYXNzIEluZGV4ZWRGcmVl TW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwg YmludCBjb3B5PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZm aWNpZW50cyhzZWxmLCBiaW50IGNvcHk9VHJ1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgaW50ZXJuYWwgZGljdGlvbmFyeSB3aGljaCBoYXMgdGhlIGNvbWJpbmF0b3JpYWwg b2JqZWN0cworICAgICAgICAgaW5kZXhpbmcgdGhlIGJhc2lzIGFzIGtleXMgYW5kIHRoZWlyIGNv cnJlc3BvbmRpbmcgY29lZmZpY2llbnRzIGFzCitAQCAtNTQxLDcgKzU0MSw3IEBAIGNkZWYgY2xh c3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXByX21vbm9taWFsID0gc2VsZi5fcGFyZW50Ll9sYXRleF90ZXJt LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19sYXRleD1UcnVlLCBzdHJpcF9vbmU9 VHJ1ZSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJpY2ggY29tcGFyaXNvbiBmb3IgZXF1YWwgcGFyZW50cy4KKyAKK0BA IC02NTEsNyArNjUxLDcgQEAgY2RlZiBjbGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9k dWxlRWxlbWVudCk6CisgICAgICAgICB3ID0gc29ydGVkKGVsdC5fbW9ub21pYWxfY29lZmZpY2ll bnRzLml0ZW1zKCkpCisgICAgICAgICByZXR1cm4gcmljaGNtcCh2LCB3LCBvcCkKKyAKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC02NzQs NyArNjc0LDcgQEAgY2RlZiBjbGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxl bWVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGQoc2VsZi5fbW9ub21pYWxfY29l ZmZpY2llbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8SW5kZXhlZEZyZWVN b2R1bGVFbGVtZW50Pm90aGVyKS5fbW9ub21pYWxfY29lZmZpY2llbnRzKSkKKyAKKy0gICAgY3Bk ZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNjkyLDcgKzY5Miw3IEBAIGNkZWYg Y2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIG5lZ2F0ZShzZWxm Ll9tb25vbWlhbF9jb2VmZmljaWVudHMpKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhl cikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTgzMSw3ICs4MzEsNyBAQCBjZGVmIGNsYXNz IEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50KToKKyAKKyAgICAgdG9fdmVj dG9yID0gX3ZlY3Rvcl8KKyAKKy0gICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHNjYWxhciwg YmludCBzZWxmX29uX2xlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0ZWRfdXBvbl8oc2Vs Ziwgc2NhbGFyLCBiaW50IHNlbGZfb25fbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgYWN0aW9uIG9mIGBgc2NhbGFyYGAgKGFuIGVsZW1lbnQgb2YgdGhlIGJhc2Ugcmlu Zykgb24KKyAgICAgICAgIGBgc2VsZmBgLgorQEAgLTkwNSw3ICs5MDUsNyBAQCBjZGVmIGNsYXNz IEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjYWwoc2NhbGFyLCBzZWxmLl9tb25vbWlhbF9jb2VmZmljaWVudHMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3Rvcl9vbl9sZWZ0PW5vdCBzZWxmX29u X2xlZnQpKQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisgCitAQCAtOTE3LDcgKzkx Nyw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYWN0ZWRfdXBvbl8ocmlnaHQs IFRydWUpCisgCistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbW9ub2lkcy9mcmVlX2FiZWxpYW5fbW9ub2lkX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2Uv bW9ub2lkcy9mcmVlX2FiZWxpYW5fbW9ub2lkX2VsZW1lbnQucHhkCitpbmRleCBmZTY1YWY3OTcx MS4uMDkyY2QzNDNmMDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb25vaWRzL2ZyZWVfYWJlbGlh bl9tb25vaWRfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL21vbm9pZHMvZnJlZV9hYmVsaWFu X21vbm9pZF9lbGVtZW50LnB4ZAorQEAgLTgsNyArOCw3IEBAIGNkZWYgY2xhc3MgRnJlZUFiZWxp YW5Nb25vaWRFbGVtZW50KE1vbm9pZEVsZW1lbnQpOgorIAorICAgICBjZGVmIGludCBfaW5pdChz ZWxmLCBQeV9zc2l6ZV90IG4sIFBhcmVudCBwYXJlbnQpIGV4Y2VwdCAtMQorIAorLSAgICBjZGVm IGlubGluZSBGcmVlQWJlbGlhbk1vbm9pZEVsZW1lbnQgX25ld19jKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGlubGluZSBGcmVlQWJlbGlhbk1vbm9pZEVsZW1lbnQgX25ld19jKHNlbGYpOgor ICAgICAgICAgY2RlZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICBjZGVmIEZyZWVBYmVs aWFuTW9ub2lkRWxlbWVudCB4ID0gPEZyZWVBYmVsaWFuTW9ub2lkRWxlbWVudD4odC5fX25ld19f KHQpKQorICAgICAgICAgeC5faW5pdChzZWxmLl9uLCBzZWxmLl9wYXJlbnQpCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbW9ub2lkcy9mcmVlX2FiZWxpYW5fbW9ub2lkX2VsZW1lbnQucHl4IGIvc3Jj L3NhZ2UvbW9ub2lkcy9mcmVlX2FiZWxpYW5fbW9ub2lkX2VsZW1lbnQucHl4CitpbmRleCA2NmJk M2ExNWVkNS4uNjVkZjhlZmU2MTMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb25vaWRzL2ZyZWVf YWJlbGlhbl9tb25vaWRfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL21vbm9pZHMvZnJlZV9h YmVsaWFuX21vbm9pZF9lbGVtZW50LnB5eAorQEAgLTI2Myw3ICsyNjMsNyBAQCBjZGVmIGNsYXNz IEZyZWVBYmVsaWFuTW9ub2lkRWxlbWVudChNb25vaWRFbGVtZW50KToKKyAgICAgICAgICAgICBz ID0gIjEiCisgICAgICAgICByZXR1cm4gcworIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwg cmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdo dCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmljaCBjb21wYXJpc29uLgorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhvcHRfYmFja2VuZC5w eXggYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvY3Z4b3B0X2JhY2tlbmQucHl4CitpbmRl eCAwMWQ0MzYwZDM5MC4uMWQ3ZWYyMDYyNWMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvY3Z4b3B0X2JhY2tlbmQucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwv YmFja2VuZHMvY3Z4b3B0X2JhY2tlbmQucHl4CitAQCAtOTMsNyArOTMsNyBAQCBjZGVmIGNsYXNz IENWWE9QVEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICBzZWxmLnNldF9zZW5zZSgtMSkKKyAKKy0gICAgY3BkZWYgX19jb3B5X18oc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIyBBZGRlZCBhIHNl Y29uZCBpbmVxdWFsaXR5IHRvIHRoaXMgZG9jdGVzdCwKKyAgICAgICAgICMgYmVjYXVzZSBvdGhl cndpc2UgQ1ZYT1BUIGNvbXBsYWluczogVmFsdWVFcnJvcjogUmFuayhBKSA8IHAgb3IgUmFuayhb RzsgQV0pIDwgbgorICAgICAgICAgIiIiCitAQCAtMjA1LDcgKzIwNSw3IEBAIGNkZWYgY2xhc3Mg Q1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBzZWxmLmNvbF9uYW1lX3Zh ci5hcHBlbmQobmFtZSkKKyAgICAgICAgIHJldHVybiBsZW4oc2VsZi5vYmplY3RpdmVfZnVuY3Rp b24pIC0gMQorIAorLSAgICBjcGRlZiBzZXRfdmFyaWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFi bGUsIGludCB2dHlwZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF92YXJpYWJsZV90eXBlKHNl bGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0 IHRoZSB0eXBlIG9mIGEgdmFyaWFibGUuCisgCitAQCAtMjI0LDcgKzIyNCw3IEBAIGNkZWYgY2xh c3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBpZiB2dHlwZSAhPSAt MToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdUaGlzIGJhY2tlbmQgZG9lcyBub3Qg aGFuZGxlIGludGVnZXIgdmFyaWFibGVzICEgUmVhZCB0aGUgZG9jICEnKQorIAorLSAgICBjcGRl ZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3Nl bnNlKHNlbGYsIGludCBzZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgZGly ZWN0aW9uIChtYXhpbWl6YXRpb24vbWluaW1pemF0aW9uKS4KKyAKK0BAIC0yNTAsNyArMjUwLDcg QEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgc2VsZi5pc19tYXhpbWl6ZSA9IDAKKyAKKy0gICAgY3BkZWYgb2Jq ZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9Tm9uZSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIG9iamVjdGl2ZV9jb2VmZmljaWVudChzZWxmLCBpbnQgdmFyaWFibGUs IGNvZWZmPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgb3IgZ2V0IHRoZSBjb2Vm ZmljaWVudCBvZiBhIHZhcmlhYmxlIGluIHRoZSBvYmplY3RpdmUKKyAgICAgICAgIGZ1bmN0aW9u CitAQCAtMjc4LDcgKzI3OCw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLm9iamVjdGl2 ZV9mdW5jdGlvblt2YXJpYWJsZV0KKyAKKy0gICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBs aXN0IGNvZWZmLCBkID0gMC4wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X29iamVjdGl2ZShz ZWxmLCBsaXN0IGNvZWZmLCBkID0gMC4wKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRo ZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitAQCAtMzAzLDEzICszMDMsMTMgQEAgY2RlZiBjbGFz cyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICBzZWxmLm9iamVj dGl2ZV9mdW5jdGlvbltpXSA9IGNvZWZmW2ldCisgICAgICAgICBvYmpfY29uc3RhbnRfdGVybSA9 IGQKKyAKKy0gICAgY3BkZWYgc2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYsIGludCBsZXZlbCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIERvZXMgbm90IGFwcGx5IGZvciB0aGUgY3Z4b3B0IHNvbHZlcgorICAgICAg ICAgIiIiCisgICAgICAgICBwYXNzCisgCistICAgIGNwZGVmIGFkZF9jb2woc2VsZiwgaW5kaWNl cywgY29lZmZzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX2NvbChzZWxmLCBpbmRpY2VzLCBj b2VmZnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgYSBjb2x1bW4uCisgCitAQCAtMzU3 LDcgKzM1Nyw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2VuZCk6Cisg ICAgICAgICBzZWxmLm9iamVjdGl2ZV9mdW5jdGlvbi5hcHBlbmQoMCkKKyAgICAgICAgIHNlbGYu Y29sX25hbWVfdmFyLmFwcGVuZChOb25lKQorIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0 cmFpbnQoc2VsZiwgY29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9 Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBj b2VmZmljaWVudHMsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKToKKyAgICAg ICAgICIiIgorICAgICAgICAgQWRkIGEgbGluZWFyIGNvbnN0cmFpbnQuCisgCitAQCAtNTY0LDcg KzU2NCw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAg ICAgICByZXR1cm4gMAorIAorIAorLSAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBvYmplY3RpdmUgZnVuY3Rp b24uCisgCitAQCAtNTk2LDcgKzU5Niw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5l cmljQmFja2VuZCk6CisgICAgICAgICAgICAgaSs9MQorICAgICAgICAgcmV0dXJuIHN1bQorIAor LSAgICBjcGRlZiBnZXRfdmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZSBnaXZl biBieSB0aGUgc29sdmVyLgorIAorQEAgLTY3OSw3ICs2NzksNyBAQCBjZGVmIGNsYXNzIENWWE9Q VEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gMAorIAorLSAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHByb2JsZW0ncyBuYW1lCisgCitA QCAtNzAzLDcgKzcwMyw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2Vu ZCk6CisgICAgICAgICBzZWxmLnByb2JfbmFtZSA9IG5hbWUKKyAKKyAKKy0gICAgY3BkZWYgcm93 KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcm93KHNlbGYsIGludCBpKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgcm93CisgCitAQCAtNzQxLDcgKzc0MSw3IEBA IGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICByZXR1 cm4gKGlkeCwgY29lZmYpCisgCisgCistICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGlu ZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIGNv bnN0cmFpbnQuCisgCitAQCAtNzY5LDcgKzc2OSw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2Vu ZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAoc2VsZi5y b3dfbG93ZXJfYm91bmRbaW5kZXhdLCBzZWxmLnJvd191cHBlcl9ib3VuZFtpbmRleF0pCisgCist ICAgIGNwZGVmIGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgY29sX2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIHZhcmlhYmxlLgorIAorQEAgLTg4MCw3ICs4 ODAsNyBAQCBjZGVmIGNsYXNzIENWWE9QVEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiByb3dfbmFtZShzZWxm LCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5k ZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCByb3cg bmFtZQorIAorQEAgLTkwMCw3ICs5MDAsNyBAQCBjZGVmIGNsYXNzIENWWE9QVEJhY2tlbmQoR2Vu ZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLnJvd19uYW1lX3ZhcltpbmRl eF0KKyAgICAgICAgIHJldHVybiAiY29uc3RyYWludF8iICsgcmVwcihpbmRleCkKKyAKKy0gICAg Y3BkZWYgY29sX25hbWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29s X25hbWUoc2VsZiwgaW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBgYGluZGV4YGAgdGggY29sIG5hbWUKKyAKK0BAIC05MjQsNyArOTI0LDcgQEAgY2RlZiBjbGFz cyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5jb2xfbmFtZV92YXJbaW5kZXhdCisgICAgICAgICByZXR1cm4gInhfIiArIHJlcHIoaW5kZXgp CisgCistICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFs dWUgPSBGYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNl bGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBvciBkZWZpbmUgdGhlIHVwcGVyIGJvdW5kIG9uIGEgdmFyaWFibGUKKyAKK0BAIC05NTMs NyArOTUzLDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29sX3VwcGVyX2JvdW5kW2lu ZGV4XQorIAorLSAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgs IHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3Vu ZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBsb3dlciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitAQCAt OTgyLDcgKzk4Miw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2VuZCk6 CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbF9sb3dlcl9ib3Vu ZFtpbmRleF0KKyAKKy0gICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1 ZSA9IE5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5h bWUsIHZhbHVlID0gTm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZp bmUgYSBzb2x2ZXIgcGFyYW1ldGVyCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2Fs L2JhY2tlbmRzL2N2eG9wdF9zZHBfYmFja2VuZC5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvYmFj a2VuZHMvY3Z4b3B0X3NkcF9iYWNrZW5kLnB5eAoraW5kZXggN2FhOTFkZTYxNTguLjVhNWNmMmMx MWEyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eG9wdF9zZHBf YmFja2VuZC5weXgKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhvcHRfc2Rw X2JhY2tlbmQucHl4CitAQCAtMTYyLDcgKzE2Miw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUU0RQQmFj a2VuZChNYXRyaXhTRFBCYWNrZW5kKToKKyAgICAgICAgIHJldHVybiAwCisgCisgCistICAgIGNw ZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9v YmplY3RpdmVfdmFsdWUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg dmFsdWUgb2YgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BAIC0xOTcsNyArMTk3LDcgQEAg Y2RlZiBjbGFzcyBDVlhPUFRTRFBCYWNrZW5kKE1hdHJpeFNEUEJhY2tlbmQpOgorICAgICAgICAg ICAgIGkrPTEKKyAgICAgICAgIHJldHVybiBzdW0KKyAKKy0gICAgY3BkZWYgX2dldF9hbnN3ZXIo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9nZXRfYW5zd2VyKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gdGhlIGNvbXBsZXRlIG91dHB1dCBkaWN0IG9mIHRoZSBzb2x2 ZXIKKyAKK0BAIC0yMjMsNyArMjIzLDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRTRFBCYWNrZW5kKE1h dHJpeFNEUEJhY2tlbmQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5hbnN3 ZXIKKyAKKy0gICAgY3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFi bGUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgdmFyaWFi bGUgZ2l2ZW4gYnkgdGhlIHNvbHZlci4KKyAKK0BAIC0yNTcsNyArMjU3LDcgQEAgY2RlZiBjbGFz cyBDVlhPUFRTRFBCYWNrZW5kKE1hdHJpeFNEUEJhY2tlbmQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5hbnN3ZXJbJ3gnXVt2YXJpYWJsZV0KKyAKKy0gICAgY3BkZWYgZHVh bF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNlKToKKyAgICAgICAgICIi IgorICAgICAgICAgVGhlIGBpYC10aCBkdWFsIHZhcmlhYmxlCisgCitAQCAtMzA3LDcgKzMwNyw3 IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUU0RQQmFja2VuZChNYXRyaXhTRFBCYWNrZW5kKToKKyAgICAg ICAgIGFzc2VydChuID09IHNlbGYuYW5zd2VyWyd6cyddW2ldLnNpemVbMV0pICMgbXVzdCBiZSBz cXVhcmUgbWF0cml4CisgICAgICAgICByZXR1cm4gTWF0cml4KG4sIG4sIGxpc3Qoc2VsZi5hbnN3 ZXJbJ3pzJ11baV0pLCBzcGFyc2U9c3BhcnNlKQorIAorLSAgICBjcGRlZiBzbGFjayhzZWxmLCBp bnQgaSwgc3BhcnNlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2xhY2soc2VsZiwgaW50 IGksIHNwYXJzZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNsYWNrIG9mIHRoZSBg aWAtdGggY29uc3RyYWludAorIAorQEAgLTM1OSw3ICszNTksNyBAQCBjZGVmIGNsYXNzIENWWE9Q VFNEUEJhY2tlbmQoTWF0cml4U0RQQmFja2VuZCk6CisgICAgICAgICByZXR1cm4gTWF0cml4KG4s IG4sIGxpc3Qoc2VsZi5hbnN3ZXJbJ3NzJ11baV0pLCBzcGFyc2U9c3BhcnNlKQorIAorIAorLSAg ICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlPU5vbmUpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlPU5vbmUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIGEgc29sdmVyIHBhcmFtZXRl cgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhweV9iYWNr ZW5kLnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhweV9iYWNrZW5kLnB4ZAor aW5kZXggOTZkZDljMzMzOTAuLmVkNGQ2M2NjYzYzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVt ZXJpY2FsL2JhY2tlbmRzL2N2eHB5X2JhY2tlbmQucHhkCisrKysgYi9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvY3Z4cHlfYmFja2VuZC5weGQKK0BAIC0zNyw0ICszNyw0IEBAIGNkZWYgY2xh c3MgQ1ZYUFlCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb2VmZmljaWVudHM9KikgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2Vw dCAtMQorIAorLSAgICBjcGRlZiBjdnhweV9wcm9ibGVtKHNlbGYpIG5vZXhjZXB0CisrICAgIGNw ZGVmIGN2eHB5X3Byb2JsZW0oc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwv YmFja2VuZHMvY3Z4cHlfYmFja2VuZC5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMv Y3Z4cHlfYmFja2VuZC5weXgKK2luZGV4IGMwN2QzM2U1YWU3Li5jZTNiN2FmODc4OCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhweV9iYWNrZW5kLnB5eAorKysr IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eHB5X2JhY2tlbmQucHl4CitAQCAtMTQy LDcgKzE0Miw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgICAgIG9iamVj dGl2ZSA9IGN2eHB5Lk1pbmltaXplKDApCisgICAgICAgICBzZWxmLnByb2JsZW0gPSBjdnhweS5Q cm9ibGVtKG9iamVjdGl2ZSwgKCkpCisgCistICAgIGNwZGVmIF9fY29weV9fKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4KKyAKK0BAIC0xNzQsNyArMTc0LDcgQEAgY2RlZiBjbGFz cyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICBjcC5vYmpfY29uc3RhbnRfdGVybSA9IHNlbGYub2Jq X2NvbnN0YW50X3Rlcm0KKyAgICAgICAgIHJldHVybiBjcAorIAorLSAgICBjcGRlZiBjdnhweV9w cm9ibGVtKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjdnhweV9wcm9ibGVtKHNlbGYpOgor ICAgICAgICAgcmV0dXJuIHNlbGYucHJvYmxlbQorIAorICAgICBkZWYgY3Z4cHlfdmFyaWFibGVz KHNlbGYpOgorQEAgLTI4Niw3ICsyODYsNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAK KyAgICAgICAgIHJldHVybiBpbmRleAorIAorLSAgICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYs IGludCBsZXZlbCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50 IGxldmVsKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBsb2cgKHZlcmJvc2l0eSkg bGV2ZWwKKyAKK0BAIC0zMDQsNyArMzA0LDcgQEAgY2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHBhc3MKKyAKKy0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25z dHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1l PU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwg Y29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEFkZCBhIGxpbmVhciBjb25zdHJhaW50LgorIAorQEAgLTM2Myw3 ICszNjMsNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAgICAgICAgIHNlbGYuY29uc3Ry YWludF9uYW1lcy5hcHBlbmQobmFtZSkKKyAgICAgICAgIHNlbGYucHJvYmxlbSA9IGN2eHB5LlBy b2JsZW0oc2VsZi5wcm9ibGVtLm9iamVjdGl2ZSwgY29uc3RyYWludHMpCisgCistICAgIGNwZGVm IGFkZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRk X2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQg YSBjb2x1bW4uCisgCitAQCAtNDEwLDcgKzQxMCw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5k OgorICAgICAgICAgI3NlbGYub2JqZWN0aXZlX2NvZWZmaWNpZW50cy5hcHBlbmQoMCkgZ29lcyB0 byAic2VsZi5hZGRfdmFyaWFibGUiCisgICAgICAgICBzZWxmLmFkZF92YXJpYWJsZShjb2VmZmlj aWVudHM9emlwKGluZGljZXMsIGNvZWZmcykpCisgCistICAgIGNwZGVmIHNldF9vYmplY3RpdmUo c2VsZiwgbGlzdCBjb2VmZiwgZD0wLjApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfb2JqZWN0 aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQ9MC4wKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0 IHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitAQCAtNDQyLDcgKzQ0Miw3IEBAIGNkZWYgY2xh c3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgc2VsZi5wcm9ibGVtID0gY3Z4cHkuUHJvYmxlbShv YmplY3RpdmUsIGNvbnN0cmFpbnRzKQorICAgICAgICAgc2VsZi5vYmpfY29uc3RhbnRfdGVybSA9 IGQKKyAKKy0gICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIHNldF9zZW5zZShzZWxmLCBpbnQgc2Vuc2UpOgorICAgICAgICAgIiIiCisgICAg ICAgICBTZXQgdGhlIGRpcmVjdGlvbiAobWF4aW1pemF0aW9uL21pbmltaXphdGlvbikuCisgCitA QCAtNDcwLDcgKzQ3MCw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgICAg IG9iamVjdGl2ZSA9IGN2eHB5Lk1pbmltaXplKGV4cHIpCisgICAgICAgICBzZWxmLnByb2JsZW0g PSBjdnhweS5Qcm9ibGVtKG9iamVjdGl2ZSwgc2VsZi5wcm9ibGVtLmNvbnN0cmFpbnRzKQorIAor LSAgICBjcGRlZiBvYmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2Vm Zj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYs IGludCB2YXJpYWJsZSwgY29lZmY9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBv ciBnZXQgdGhlIGNvZWZmaWNpZW50IG9mIGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZSBmdW5j dGlvbgorIAorQEAgLTU0NSw3ICs1NDUsNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAg ICAgICAgICAgICByYWlzZSBNSVBTb2x2ZXJFeGNlcHRpb24oZiJjdnhweS5Qcm9ibGVtLnNvbHZl OiBQcm9ibGVtIGlzIHVuYm91bmRlZCIpCisgICAgICAgICByYWlzZSBNSVBTb2x2ZXJFeGNlcHRp b24oZiJjdnhweS5Qcm9ibGVtLnNvbHZlIHJlcG9ydGVkIGFuIHVua25vd24gcHJvYmxlbSBzdGF0 dXM6IHtzdGF0dXN9IikKKyAKKy0gICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9u LgorIAorQEAgLTU3Miw3ICs1NzIsNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYucHJvYmxlbS52YWx1ZSArIHNlbGYub2JqX2Nv bnN0YW50X3Rlcm0KKyAKKy0gICAgY3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2 YXJpYWJsZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBp bnQgdmFyaWFibGUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9m IGEgdmFyaWFibGUgZ2l2ZW4gYnkgdGhlIHNvbHZlci4KKyAKK0BAIC02NDgsNyArNjQ4LDcgQEAg Y2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBp c2luc3RhbmNlKHNlbGYucHJvYmxlbS5vYmplY3RpdmUsIGN2eHB5Lk1heGltaXplKQorIAorLSAg ICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBvciBkZWZpbmUgdGhlIHByb2JsZW0ncyBuYW1lCisgCitAQCAtNjczLDcgKzY3Myw3 IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICBzZWxmLnByb2JfbmFtZSA9IHN0cihuYW1lKQorIAorLSAgICBjcGRlZiByb3coc2VsZiwgaW50 IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gYSByb3cKKyAKK0BAIC03MDksNyArNzA5LDcgQEAgY2RlZiBjbGFz cyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICAgICAgICAgIGNvZWYuYXBwZW5kKHNlbGYuTWF0cml4 W2ldW2pdKQorICAgICAgICAgcmV0dXJuIChpZHgsIGNvZWYpCisgCistICAgIGNwZGVmIHJvd19i b3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcm93X2JvdW5kcyhz ZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJvdW5k cyBvZiBhIHNwZWNpZmljIGNvbnN0cmFpbnQuCisgCitAQCAtNzM4LDcgKzczOCw3IEBAIGNkZWYg Y2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gKHNlbGYu cm93X2xvd2VyX2JvdW5kW2luZGV4XSwgc2VsZi5yb3dfdXBwZXJfYm91bmRbaW5kZXhdKQorIAor LSAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBib3VuZHMgb2YgYSBzcGVjaWZpYyB2YXJpYWJsZS4KKyAKK0BAIC04MjksNyAr ODI5LDcgQEAgY2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAg IHJldHVybiBub3Qgc2VsZi5pc192YXJpYWJsZV9iaW5hcnkoaW5kZXgpIGFuZCBub3Qgc2VsZi5p c192YXJpYWJsZV9pbnRlZ2VyKGluZGV4KQorIAorLSAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBp bnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCByb3cgbmFt ZQorIAorQEAgLTg0Nyw3ICs4NDcsNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuY29uc3RyYWludF9uYW1lc1tpbmRleF0gb3Ig KCJjb25zdHJhaW50XyIgKyByZXByKGluZGV4KSkKKyAKKy0gICAgY3BkZWYgY29sX25hbWUoc2Vs ZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX25hbWUoc2VsZiwgaW50IGlu ZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgYGluZGV4YGAgdGggY29s IG5hbWUKKyAKK0BAIC04NjksNyArODY5LDcgQEAgY2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnZhcmlhYmxlc1tpbmRleF0ubmFtZSgp CisgCistICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFs dWUgPSBGYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNl bGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBvciBkZWZpbmUgdGhlIHVwcGVyIGJvdW5kIG9uIGEgdmFyaWFibGUKKyAKK0BAIC05MDEs NyArOTAxLDcgQEAgY2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmLmNvbF91cHBlcl9ib3VuZFtpbmRleF0KKyAKKy0gICAgY3Bk ZWYgdmFyaWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4 LCB2YWx1ZSA9IEZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRlZmlu ZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2YXJpYWJsZQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHhkIGIvc3JjL3NhZ2UvbnVtZXJp Y2FsL2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5weGQKK2luZGV4IDYwOTgzYWZjNmYyLi42NzMx MDlhYWU0MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmlj X2JhY2tlbmQucHhkCisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19i YWNrZW5kLnB4ZAorQEAgLTEyLDQ0ICsxMiw0NCBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJlLnNhZ2Vf b2JqZWN0IGNpbXBvcnQgU2FnZU9iamVjdAorIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQgKFNh Z2VPYmplY3QpOgorICAgICBjcGRlZiBpbnQgYWRkX3ZhcmlhYmxlKHNlbGYsIGxvd2VyX2JvdW5k PSosIHVwcGVyX2JvdW5kPSosIGJpbmFyeT0qLCBjb250aW51b3VzPSosIGludGVnZXI9Kiwgb2Jq PSosIG5hbWU9KikgZXhjZXB0IC0xCisgICAgIGNwZGVmIGludCBhZGRfdmFyaWFibGVzKHNlbGYs IGludCwgbG93ZXJfYm91bmQ9KiwgdXBwZXJfYm91bmQ9KiwgYmluYXJ5PSosIGNvbnRpbnVvdXM9 KiwgaW50ZWdlcj0qLCBvYmo9KiwgbmFtZXM9KikgZXhjZXB0IC0xCistICAgIGNwZGVmIHNldF92 YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBv YmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj0qKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBvYmplY3RpdmVfY29uc3RhbnRfdGVybShzZWxmLCBkPSopIG5vZXhjZXB0 CistICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZD0qKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYsIGludCBsZXZlbCkgbm9leGNlcHQKKy0g ICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbG93ZXJf Ym91bmQsIHVwcGVyX2JvdW5kLCBuYW1lPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGFkZF9saW5l YXJfY29uc3RyYWludF92ZWN0b3Ioc2VsZiwgZGVncmVlLCBjb2VmZmljaWVudHMsIGxvd2VyX2Jv dW5kLCB1cHBlcl9ib3VuZCwgbmFtZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiByZW1vdmVfY29u c3RyYWludChzZWxmLCBpbnQpIG5vZXhjZXB0CistICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50 cyhzZWxmLCBjb25zdHJhaW50cykgbm9leGNlcHQKKy0gICAgY3BkZWYgYWRkX2NvbChzZWxmLCBp bmRpY2VzLCBjb2VmZnMpIG5vZXhjZXB0CistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWlu dHMoc2VsZiwgaW50IG51bWJlciwgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lcz0qKSBu b2V4Y2VwdAorKyAgICBjcGRlZiBzZXRfdmFyaWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFibGUs IGludCB2dHlwZSkKKysgICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSkKKysgICAg Y3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9KikK KysgICAgY3BkZWYgb2JqZWN0aXZlX2NvbnN0YW50X3Rlcm0oc2VsZiwgZD0qKQorKyAgICBjcGRl ZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQ9KikKKysgICAgY3BkZWYgc2V0X3Zl cmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpCisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWlu dChzZWxmLCBjb2VmZmljaWVudHMsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT0qKQor KyAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRfdmVjdG9yKHNlbGYsIGRlZ3JlZSwgY29l ZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9KikKKysgICAgY3BkZWYg cmVtb3ZlX2NvbnN0cmFpbnQoc2VsZiwgaW50KQorKyAgICBjcGRlZiByZW1vdmVfY29uc3RyYWlu dHMoc2VsZiwgY29uc3RyYWludHMpCisrICAgIGNwZGVmIGFkZF9jb2woc2VsZiwgaW5kaWNlcywg Y29lZmZzKQorKyAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRzKHNlbGYsIGludCBudW1i ZXIsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZXM9KikKKyAgICAgY3BkZWYgaW50IHNv bHZlKHNlbGYpIGV4Y2VwdCAtMQorLSAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYp IG5vZXhjZXB0CistICAgIGNwZGVmIGJlc3Rfa25vd25fb2JqZWN0aXZlX2JvdW5kKHNlbGYpIG5v ZXhjZXB0CistICAgIGNwZGVmIGdldF9yZWxhdGl2ZV9vYmplY3RpdmVfZ2FwKHNlbGYpIG5vZXhj ZXB0CistICAgIGNwZGVmIGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpIG5v ZXhjZXB0CisrICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikKKysgICAgY3BkZWYg YmVzdF9rbm93bl9vYmplY3RpdmVfYm91bmQoc2VsZikKKysgICAgY3BkZWYgZ2V0X3JlbGF0aXZl X29iamVjdGl2ZV9nYXAoc2VsZikKKysgICAgY3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYs IGludCB2YXJpYWJsZSkKKyAgICAgY3BkZWYgYmludCBpc19tYXhpbWl6YXRpb24oc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgd3JpdGVfbHAoc2VsZiwgbmFtZSkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgd3JpdGVfbXBzKHNlbGYsIG5hbWUsIGludCBtb2Rlcm4pIG5vZXhjZXB0CistICAgIGNwZGVm IHJvdyhzZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgd3JpdGVfbHAoc2VsZiwgbmFt ZSkKKysgICAgY3BkZWYgd3JpdGVfbXBzKHNlbGYsIG5hbWUsIGludCBtb2Rlcm4pCisrICAgIGNw ZGVmIHJvdyhzZWxmLCBpbnQgaSkKKyAgICAgY3BkZWYgaW50IG5jb2xzKHNlbGYpIG5vZXhjZXB0 CisgICAgIGNwZGVmIGludCBucm93cyhzZWxmKSBub2V4Y2VwdAorICAgICBjcGRlZiBiaW50IGlz X3ZhcmlhYmxlX2JpbmFyeShzZWxmLCBpbnQpIG5vZXhjZXB0CisgICAgIGNwZGVmIGJpbnQgaXNf dmFyaWFibGVfaW50ZWdlcihzZWxmLCBpbnQpIG5vZXhjZXB0CisgICAgIGNwZGVmIGJpbnQgaXNf dmFyaWFibGVfY29udGludW91cyhzZWxmLCBpbnQpIG5vZXhjZXB0CistICAgIGNwZGVmIHByb2Js ZW1fbmFtZShzZWxmLCBuYW1lID0gKikgbm9leGNlcHQKKy0gICAgY3BkZWYgcm93X2JvdW5kcyhz ZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0CistICAgIGNwZGVmIGNvbF9ib3VuZHMoc2VsZiwgaW50 IGluZGV4KSBub2V4Y2VwdAorLSAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpIG5v ZXhjZXB0CistICAgIGNwZGVmIGNvbF9uYW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQKKy0g ICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9ICop IG5vZXhjZXB0CistICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRl eCwgdmFsdWUgPSAqKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYs IG5hbWUsIHZhbHVlPSopIG5vZXhjZXB0CistICAgIGNwZGVmIHplcm8oc2VsZikgbm9leGNlcHQK Ky0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9fY29weV9f KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNvcHkoc2VsZikgbm9leGNlcHQKKysgICAgY3Bk ZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWUgPSAqKQorKyAgICBjcGRlZiByb3dfYm91bmRzKHNl bGYsIGludCBpbmRleCkKKysgICAgY3BkZWYgY29sX2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpCisr ICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkKKysgICAgY3BkZWYgY29sX25hbWUo c2VsZiwgaW50IGluZGV4KQorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBp bnQgaW5kZXgsIHZhbHVlID0gKikKKysgICAgY3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQoc2Vs ZiwgaW50IGluZGV4LCB2YWx1ZSA9ICopCisrICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2Vs ZiwgbmFtZSwgdmFsdWU9KikKKysgICAgY3BkZWYgemVybyhzZWxmKQorKyAgICBjcGRlZiBiYXNl X3Jpbmcoc2VsZikKKysgICAgY3BkZWYgX19jb3B5X18oc2VsZikKKysgICAgY3BkZWYgY29weShz ZWxmKQorICAgICBjcGRlZiBiaW50IGlzX3ZhcmlhYmxlX2Jhc2ljKHNlbGYsIGludCBpbmRleCkg bm9leGNlcHQKKyAgICAgY3BkZWYgYmludCBpc192YXJpYWJsZV9ub25iYXNpY19hdF9sb3dlcl9i b3VuZChzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0CisgICAgIGNwZGVmIGJpbnQgaXNfc2xhY2tf dmFyaWFibGVfYmFzaWMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdAorQEAgLTU3LDQgKzU3LDQg QEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZCAoU2FnZU9iamVjdCk6CisgCisgICAgIGNkZWYg b2JqZWN0IG9ial9jb25zdGFudF90ZXJtCisgCistY3BkZWYgR2VuZXJpY0JhY2tlbmQgZ2V0X3Nv bHZlcihjb25zdHJhaW50X2dlbmVyYXRpb24gPSA/LCBzb2x2ZXIgPSA/LCBiYXNlX3JpbmcgPSA/ KSBub2V4Y2VwdAorK2NwZGVmIEdlbmVyaWNCYWNrZW5kIGdldF9zb2x2ZXIoY29uc3RyYWludF9n ZW5lcmF0aW9uID0gPywgc29sdmVyID0gPywgYmFzZV9yaW5nID0gPykKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19iYWNrZW5kLnB5eCBiL3NyYy9zYWdl L251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHl4CitpbmRleCBiNWRiNGI0YWE5 ZC4uY2E0Y2Y5ZDhjOTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMv Z2VuZXJpY19iYWNrZW5kLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dl bmVyaWNfYmFja2VuZC5weXgKK0BAIC0zMywxMSArMzMsMTEgQEAgZnJvbSBjb3B5IGltcG9ydCBj b3B5CisgCisgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAKKy0gICAgY3BkZWYgYmFzZV9y aW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAg ICBmcm9tIHNhZ2UucmluZ3MucmVhbF9kb3VibGUgaW1wb3J0IFJERgorICAgICAgICAgcmV0dXJu IFJERgorIAorLSAgICBjcGRlZiB6ZXJvKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB6ZXJv KHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYuYmFzZV9yaW5nKCkoMCkKKyAKKyAgICAgY3Bk ZWYgaW50IGFkZF92YXJpYWJsZShzZWxmLCBsb3dlcl9ib3VuZD0wLCB1cHBlcl9ib3VuZD1Ob25l LAorQEAgLTIxMCw3ICsyMTAsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAg ICAgdGVzdGVyLmFzc2VydEVxdWFsKHAuY29sX25hbWUobmNvbHNfYmVmb3JlKSwgJ2EnKQorICAg ICAgICAgdGVzdGVyLmFzc2VydEFsbW9zdEVxdWFsKHAub2JqZWN0aXZlX2NvZWZmaWNpZW50KG5j b2xzX2JlZm9yZSksIDQyLjApCisgCistICAgIGNwZGVmICBzZXRfdmFyaWFibGVfdHlwZShzZWxm LCBpbnQgdmFyaWFibGUsIGludCB2dHlwZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmICBzZXRfdmFy aWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFibGUsIGludCB2dHlwZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFNldCB0aGUgdHlwZSBvZiBhIHZhcmlhYmxlCisgCitAQCAtMjM5LDcgKzIzOSw3 IEBAIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJh aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwg aW50IHNlbnNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5z ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgZGlyZWN0aW9uIChtYXhpbWl6YXRp b24vbWluaW1pemF0aW9uKS4KKyAKK0BAIC0yODUsNyArMjg1LDcgQEAgY2RlZiBjbGFzcyBHZW5l cmljQmFja2VuZDoKKyAgICAgICAgIHRlc3Rlci5hc3NlcnRJc05vbmUocC5zZXRfc2Vuc2UoMSkp CisgICAgICAgICB0ZXN0ZXIuYXNzZXJ0RXF1YWwocC5pc19tYXhpbWl6YXRpb24oKSwgVHJ1ZSkK KyAKKy0gICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwg Y29lZmY9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG9iamVjdGl2ZV9jb2VmZmljaWVudChz ZWxmLCBpbnQgdmFyaWFibGUsIGNvZWZmPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBT ZXQgb3IgZ2V0IHRoZSBjb2VmZmljaWVudCBvZiBhIHZhcmlhYmxlIGluIHRoZSBvYmplY3RpdmUK KyAgICAgICAgIGZ1bmN0aW9uCitAQCAtMzExLDcgKzMxMSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJp Y0JhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IoKQorIAorLSAgICBjcGRlZiBvYmplY3RpdmVfY29uc3RhbnRfdGVybShzZWxmLCBkPU5vbmUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBvYmplY3RpdmVfY29uc3RhbnRfdGVybShzZWxmLCBkPU5v bmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgb3IgZ2V0IHRoZSBjb25zdGFudCB0ZXJt IGluIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24KKyAKK0BAIC0zMzUsNyArMzM1LDcgQEAgY2RlZiBj bGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5v YmpfY29uc3RhbnRfdGVybSA9IGQKKyAKKy0gICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBs aXN0IGNvZWZmLCBkID0gMC4wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X29iamVjdGl2ZShz ZWxmLCBsaXN0IGNvZWZmLCBkID0gMC4wKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRo ZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitAQCAtMzcxLDcgKzM3MSw3IEBAIGNkZWYgY2xhc3Mg R2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu dGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYsIGludCBsZXZlbCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVsKToKKyAg ICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBsb2cgKHZlcmJvc2l0eSkgbGV2ZWwKKyAKK0BA IC0zODcsNyArMzg3LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIi IgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIHJl bW92ZV9jb25zdHJhaW50KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVtb3Zl X2NvbnN0cmFpbnQoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmVtb3Zl IGEgY29uc3RyYWludC4KKyAKK0BAIC00MTUsNyArNDE1LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmlj QmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv cigpCisgCistICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50cyhzZWxmLCBjb25zdHJhaW50cykg bm9leGNlcHQ6CisrICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50cyhzZWxmLCBjb25zdHJhaW50 cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZW1vdmUgc2V2ZXJhbCBjb25zdHJhaW50cy4K KyAKK0BAIC00NDUsNyArNDQ1LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAg ICAgICAgICAgICAgc2VsZi5yZW1vdmVfY29uc3RyYWludChjKQorICAgICAgICAgICAgICAgICBs YXN0ID0gYworIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwgY29lZmZp Y2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9Tm9uZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVudHMsIGxvd2Vy X2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAg QWRkIGEgbGluZWFyIGNvbnN0cmFpbnQuCisgCitAQCAtNDgxLDcgKzQ4MSw3IEBAIGNkZWYgY2xh c3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxl bWVudGVkRXJyb3IoJ2FkZF9saW5lYXJfY29uc3RyYWludCcpCisgCistICAgIGNwZGVmIGFkZF9s aW5lYXJfY29uc3RyYWludF92ZWN0b3Ioc2VsZiwgZGVncmVlLCBjb2VmZmljaWVudHMsIGxvd2Vy X2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRk X2xpbmVhcl9jb25zdHJhaW50X3ZlY3RvcihzZWxmLCBkZWdyZWUsIGNvZWZmaWNpZW50cywgbG93 ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBBZGQgYSB2ZWN0b3ItdmFsdWVkIGxpbmVhciBjb25zdHJhaW50LgorIAorQEAgLTU2MSw3ICs1 NjEsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAgICAgICAgIHAuYWRkX2xp bmVhcl9jb25zdHJhaW50X3ZlY3RvcigyLCBjb2VmZnMsIGxvd2VyLCB1cHBlciwgJ2ZvbycpCisg ICAgICAgICAjIEZJWE1FOiBUZXN0cyBoZXJlLiBDYXJlZnVsIHdoYXQgd2UgZXhwZWN0IHJlZ2Fy ZGluZyByYW5nZWQgY29uc3RyYWludHMgd2l0aCBzb21lIHNvbHZlcnMuCisgCistICAgIGNwZGVm IGFkZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRk X2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQg YSBjb2x1bW4uCisgCitAQCAtNjIyLDcgKzYyMiw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tl bmQ6CisgICAgICAgICBmb3IgMSA8PSBpIDw9IDQ6CisgICAgICAgICAgICAgdGVzdGVyLmFzc2Vy dEVxdWFsKHAucm93KGkpLCAoWzBdLCBbaV0pKQorIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2Nv bnN0cmFpbnRzKHNlbGYsIGludCBudW1iZXIsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFt ZXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMoc2Vs ZiwgaW50IG51bWJlciwgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lcz1Ob25lKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQWRkIGBgJ251bWJlcmBgIGxpbmVhciBjb25zdHJhaW50cy4K KyAKK0BAIC03NDcsNyArNzQ3LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAg ICAgIHdpdGggdGVzdGVyLmFzc2VydFJhaXNlcyhNSVBTb2x2ZXJFeGNlcHRpb24pIGFzIGNtOiAg ICMgdW5ib3VuZGVkCisgICAgICAgICAgICAgcC5zb2x2ZSgpCisgCistICAgIGNwZGVmIGdldF9v YmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9vYmplY3RpdmVf dmFsdWUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2Yg dGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BAIC03NzYsNyArNzc2LDcgQEAgY2RlZiBjbGFz cyBHZW5lcmljQmFja2VuZDoKKyAKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io KQorIAorLSAgICBjcGRlZiBiZXN0X2tub3duX29iamVjdGl2ZV9ib3VuZChzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgYmVzdF9rbm93bl9vYmplY3RpdmVfYm91bmQoc2VsZik6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50bHkgYmVzdCBr bm93biBib3VuZC4KKyAKK0BAIC04MTAsNyArODEwLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFj a2VuZDoKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorIAorLSAgICBj cGRlZiBnZXRfcmVsYXRpdmVfb2JqZWN0aXZlX2dhcChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZ2V0X3JlbGF0aXZlX29iamVjdGl2ZV9nYXAoc2VsZik6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHJlbGF0aXZlIG9iamVjdGl2ZSBnYXAgb2YgdGhlIGJlc3Qga25vd24g c29sdXRpb24uCisgCitAQCAtODQ2LDcgKzg0Niw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tl bmQ6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKyAKKy0gICAgY3Bk ZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgZ2l2ZW4gYnkgdGhl IHNvbHZlci4KKyAKK0BAIC05MzcsNyArOTM3LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2Vu ZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisg CistICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgcHJvYmxlbSdzIG5hbWUKKyAKK0BAIC05NTcsNyAr OTU3LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAKKyAgICAgICAgIHJhaXNlIE5v dEltcGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiB3cml0ZV9scChzZWxmLCBuYW1lKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgd3JpdGVfbHAoc2VsZiwgbmFtZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFdyaXRlIHRoZSBwcm9ibGVtIHRvIGEgYGAubHBgYCBmaWxlCisgCitAQCAtOTgw LDcgKzk4MCw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiB3cml0ZV9t cHMoc2VsZiwgbmFtZSwgaW50IG1vZGVybikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHdyaXRlX21w cyhzZWxmLCBuYW1lLCBpbnQgbW9kZXJuKToKKyAgICAgICAgICIiIgorICAgICAgICAgV3JpdGUg dGhlIHByb2JsZW0gdG8gYSBgYC5tcHNgYCBmaWxlCisgCitAQCAtMTAwNCw3ICsxMDA0LDcgQEAg Y2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2Ug Tm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIGNvcHkoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGNvcHkoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMg YSBjb3B5IG9mIHNlbGYuCisgCitAQCAtMTAyMiw3ICsxMDIyLDcgQEAgY2RlZiBjbGFzcyBHZW5l cmljQmFja2VuZDoKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY29weV9fKCkKKyAKKyAgICAgIyBP dmVycmlkZSB0aGlzIG1ldGhvZCBpbiBiYWNrZW5kcy4KKy0gICAgY3BkZWYgX19jb3B5X18oc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm5zIGEgY29weSBvZiBzZWxmLgorIAorQEAgLTEwNjIsNyArMTA2Miw3IEBA IGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLl9fY29weV9fKCkKKyAKKy0gICAgY3BkZWYgcm93KHNlbGYsIGludCBpKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgcm93KHNlbGYsIGludCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGEgcm93CisgCitAQCAtMTA5Miw3ICsxMDkyLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmlj QmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv cigpCisgCistICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIGNvbnN0cmFpbnQuCisgCitA QCAtMTEyMSw3ICsxMTIxLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAg ICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVm IGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX2Jv dW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGJvdW5kcyBvZiBhIHNwZWNpZmljIHZhcmlhYmxlLgorIAorQEAgLTEyMjMsNyArMTIyMyw3IEBA IGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNl IE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQg aW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCByb3cgbmFtZQor IAorQEAgLTEyNDMsNyArMTI0Myw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBj cGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xf bmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGBgaW5kZXhgYC10aCBjb2x1bW4gbmFtZQorIAorQEAgLTEzNDcsNyArMTM0Nyw3IEBAIGNkZWYg Y2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICBwLl90ZXN0X2NvcHkoKipvcHRpb25zKQor ICAgICAgICAgcC5fdGVzdF9jb3B5X2RvZXNfbm90X3NoYXJlX2RhdGEoKipvcHRpb25zKQorIAor LSAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0g RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBp bnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g b3IgZGVmaW5lIHRoZSB1cHBlciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitAQCAtMTM3NCw3ICsx Mzc0LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAg ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIHZhcmlhYmxlX2xv d2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxz ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIGxvd2VyIGJv dW5kIG9uIGEgdmFyaWFibGUKKyAKK0BAIC0xNDAxLDcgKzE0MDEsNyBAQCBjZGVmIGNsYXNzIEdl bmVyaWNCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl ZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1 ZSA9IE5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5h bWUsIHZhbHVlID0gTm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZp bmUgYSBzb2x2ZXIgcGFyYW1ldGVyCisgCitAQCAtMTcyMyw3ICsxNzIzLDcgQEAgZGVmIGRlZmF1 bHRfbWlwX3NvbHZlcihzb2x2ZXI9Tm9uZSk6CisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIn c29sdmVyJyBzaG91bGQgYmUgc2V0IHRvICdHTFBLJywgJ0NvaW4nLCAnQ1BMRVgnLCAnQ1ZYT1BU JywgJ0NWWFBZJywgJ0d1cm9iaScsICdQUEwnLCAnU0NJUCcsICdJbnRlcmFjdGl2ZUxQJywgYSBj YWxsYWJsZSwgb3IgTm9uZS4iKQorIAorIAorLWNwZGVmIEdlbmVyaWNCYWNrZW5kIGdldF9zb2x2 ZXIoY29uc3RyYWludF9nZW5lcmF0aW9uPUZhbHNlLCBzb2x2ZXI9Tm9uZSwgYmFzZV9yaW5nPU5v bmUpIG5vZXhjZXB0OgorK2NwZGVmIEdlbmVyaWNCYWNrZW5kIGdldF9zb2x2ZXIoY29uc3RyYWlu dF9nZW5lcmF0aW9uPUZhbHNlLCBzb2x2ZXI9Tm9uZSwgYmFzZV9yaW5nPU5vbmUpOgorICAgICAi IiIKKyAgICAgUmV0dXJuIGEgc29sdmVyIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gcHJlZmVyZW5j ZXMKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19z ZHBfYmFja2VuZC5weGQgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19zZHBf YmFja2VuZC5weGQKK2luZGV4IDQ0NmI5Y2U4YzI1Li4wMjNmOTU2NTNkNiAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX3NkcF9iYWNrZW5kLnB4ZAorKysr IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfc2RwX2JhY2tlbmQucHhkCitA QCAtMTAsMjggKzEwLDI4IEBACisgY2RlZiBjbGFzcyBHZW5lcmljU0RQQmFja2VuZDoKKyAgICAg Y3BkZWYgaW50IGFkZF92YXJpYWJsZShzZWxmLCBvYmo9KiwgbmFtZT0qKSBleGNlcHQgLTEKKyAg ICAgY3BkZWYgaW50IGFkZF92YXJpYWJsZXMoc2VsZiwgaW50LCBuYW1lcz0qKSBleGNlcHQgLTEK Ky0gICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9Kikgbm9l eGNlcHQKKy0gICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkPSopIG5v ZXhjZXB0CistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb25zdHJhaW50 cywgbmFtZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRzKHNl bGYsIGludCBudW1iZXIsIG5hbWVzPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIHNldF9zZW5zZShz ZWxmLCBpbnQgc2Vuc2UpCisrICAgIGNwZGVmIG9iamVjdGl2ZV9jb2VmZmljaWVudChzZWxmLCBp bnQgdmFyaWFibGUsIGNvZWZmPSopCisrICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlz dCBjb2VmZiwgZD0qKQorKyAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwgY29u c3RyYWludHMsIG5hbWU9KikKKysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxm LCBpbnQgbnVtYmVyLCBuYW1lcz0qKQorICAgICBjcGRlZiBpbnQgc29sdmUoc2VsZikgZXhjZXB0 IC0xCistICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQKKy0g ICAgY3BkZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgdmFyaWFibGUsIHNwYXJzZT0qKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBzbGFjayhzZWxmLCBpbnQgdmFyaWFibGUsIHNwYXJzZT0qKSBub2V4 Y2VwdAorKyAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpCisrICAgIGNwZGVmIGdl dF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpCisrICAgIGNwZGVmIGR1YWxfdmFy aWFibGUoc2VsZiwgaW50IHZhcmlhYmxlLCBzcGFyc2U9KikKKysgICAgY3BkZWYgc2xhY2soc2Vs ZiwgaW50IHZhcmlhYmxlLCBzcGFyc2U9KikKKyAgICAgY3BkZWYgYmludCBpc19tYXhpbWl6YXRp b24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgcm93KHNlbGYsIGludCBpKSBub2V4Y2VwdAor KyAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBuY29scyhzZWxmKSBu b2V4Y2VwdAorICAgICBjcGRlZiBpbnQgbnJvd3Moc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg cHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgcm93X25hbWUo c2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdAorLSAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQg aW5kZXgpIG5vZXhjZXB0CistICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwg dmFsdWU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgemVybyhzZWxmKSBub2V4Y2VwdAorLSAgICBj cGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNl bGYsIG5hbWU9KikKKysgICAgY3BkZWYgcm93X25hbWUoc2VsZiwgaW50IGluZGV4KQorKyAgICBj cGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpCisrICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0 ZXIoc2VsZiwgbmFtZSwgdmFsdWU9KikKKysgICAgY3BkZWYgemVybyhzZWxmKQorKyAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZikKKyAKKyAgICAgY2RlZiBvYmpfY29uc3RhbnRfdGVybQorICAgICBj ZGVmIGRpY3QgbWF0cmljZXNfZGltCisgCistY3BkZWYgR2VuZXJpY1NEUEJhY2tlbmQgZ2V0X3Nv bHZlcihzb2x2ZXI9PywgYmFzZV9yaW5nPT8pIG5vZXhjZXB0CisrY3BkZWYgR2VuZXJpY1NEUEJh Y2tlbmQgZ2V0X3NvbHZlcihzb2x2ZXI9PywgYmFzZV9yaW5nPT8pCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfc2RwX2JhY2tlbmQucHl4IGIvc3JjL3Nh Z2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfc2RwX2JhY2tlbmQucHl4CitpbmRleCA0NWJm ZGU1Zjg5Yi4uN2UwZWQ0YWY0Y2UgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFj a2VuZHMvZ2VuZXJpY19zZHBfYmFja2VuZC5weXgKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9i YWNrZW5kcy9nZW5lcmljX3NkcF9iYWNrZW5kLnB5eAorQEAgLTI5LDcgKzI5LDcgQEAgQVVUSE9S UzoKKyAKKyBjZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgorIAorLSAgICBjcGRlZiBiYXNl X3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgVGhlIGJhc2UgcmluZworIAorQEAgLTQyLDcgKzQyLDcgQEAgY2Rl ZiBjbGFzcyBHZW5lcmljU0RQQmFja2VuZDoKKyAgICAgICAgIGZyb20gc2FnZS5yaW5ncy5yZWFs X2RvdWJsZSBpbXBvcnQgUkRGCisgICAgICAgICByZXR1cm4gUkRGCisgCistICAgIGNwZGVmIHpl cm8oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHplcm8oc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFplcm8gb2YgdGhlIGJhc2UgcmluZworIAorQEAgLTEyMiw3ICsxMjIsNyBAQCBj ZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlz ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGlu dCBzZW5zZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9zZW5zZShzZWxmLCBpbnQgc2Vuc2Up OgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGRpcmVjdGlvbiAobWF4aW1pemF0aW9u L21pbmltaXphdGlvbikuCisgCitAQCAtMTQ2LDcgKzE0Niw3IEBAIGNkZWYgY2xhc3MgR2VuZXJp Y1NEUEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk RXJyb3IoKQorIAorLSAgICBjcGRlZiAgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2 YXJpYWJsZSwgY29lZmY9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmICBvYmplY3RpdmVfY29l ZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj1Ob25lKToKKyAgICAgICAgICIiIgor ICAgICAgICAgU2V0IG9yIGdldCB0aGUgY29lZmZpY2llbnQgb2YgYSB2YXJpYWJsZSBpbiB0aGUg b2JqZWN0aXZlCisgICAgICAgICBmdW5jdGlvbgorQEAgLTE3Miw3ICsxNzIsNyBAQCBjZGVmIGNs YXNzIEdlbmVyaWNTRFBCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJ bXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgIHNldF9vYmplY3RpdmUoc2VsZiwgbGlz dCBjb2VmZiwgZD0wLjApIG5vZXhjZXB0OgorKyAgICBjcGRlZiAgc2V0X29iamVjdGl2ZShzZWxm LCBsaXN0IGNvZWZmLCBkPTAuMCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgb2Jq ZWN0aXZlIGZ1bmN0aW9uLgorIAorQEAgLTE5OSw3ICsxOTksNyBAQCBjZGVmIGNsYXNzIEdlbmVy aWNTRFBCYWNrZW5kOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCisg CistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVudHMsIG5h bWU9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxm LCBjb2VmZmljaWVudHMsIG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBh IGxpbmVhciBjb25zdHJhaW50LgorIAorQEAgLTIzNCw3ICsyMzQsNyBAQCBjZGVmIGNsYXNzIEdl bmVyaWNTRFBCYWNrZW5kOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisg CisgCistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMoc2VsZiwgaW50IG51bWJlciwg bmFtZXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMo c2VsZiwgaW50IG51bWJlciwgbmFtZXM9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFk ZCBjb25zdHJhaW50cy4KKyAKK0BAIC0yOTAsNyArMjkwLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmlj U0RQQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF cnJvcigpCisgCistICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BA IC0zMTgsNyArMzE4LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljU0RQQmFja2VuZDoKKyAgICAgICAg ICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVm IGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBnZXRfdmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIGdpdmVuIGJ5IHRoZSBz b2x2ZXIuCisgCitAQCAtNDAwLDcgKzQwMCw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY1NEUEJhY2tl bmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQor IAorLSAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHByb2JsZW0ncyBuYW1lCisgCitAQCAtNDIxLDcg KzQyMSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY1NEUEJhY2tlbmQ6CisgCisgICAgICAgICByYWlz ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgcm93KHNlbGYsIGludCBpKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgcm93KHNlbGYsIGludCBpKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGEgcm93CisgCitAQCAtNDUxLDcgKzQ1MSw3IEBAIGNkZWYgY2xhc3MgR2Vu ZXJpY1NEUEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu dGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCByb3cgbmFtZQorIAorQEAgLTQ3MSw3 ICs0NzEsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgorICAgICAgICAgIiIiCisg ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgY29sX25h bWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX25hbWUoc2VsZiwg aW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgYGluZGV4YGAg dGggY29sIG5hbWUKKyAKK0BAIC00OTQsNyArNDk0LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljU0RQ QmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv cigpCisgCistICAgIGNwZGVmIGR1YWxfdmFyaWFibGUoc2VsZiwgaW50IGksIHNwYXJzZT1GYWxz ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGR1YWxfdmFyaWFibGUoc2VsZiwgaW50IGksIHNwYXJz ZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoZSBgaWAtdGggZHVhbCB2YXJpYWJs ZQorIAorQEAgLTU0MSw3ICs1NDEsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgor ICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0g ICAgY3BkZWYgc2xhY2soc2VsZiwgaW50IGksIHNwYXJzZT1GYWxzZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIHNsYWNrKHNlbGYsIGludCBpLCBzcGFyc2U9RmFsc2UpOgorICAgICAgICAgIiIiCisg ICAgICAgICBTbGFjayBvZiB0aGUgYGlgLXRoIGNvbnN0cmFpbnQKKyAKK0BAIC01OTAsNyArNTkw LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljU0RQQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAg ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIHNvbHZlcl9wYXJh bWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUgPSBOb25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc29s dmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZSA9IE5vbmUpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIGEgc29sdmVyIHBhcmFtZXRlcgorIAorQEAgLTcwMiw3 ICs3MDIsNyBAQCBkZWYgZGVmYXVsdF9zZHBfc29sdmVyKHNvbHZlcj1Ob25lKToKKyAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoIidzb2x2ZXInIHNob3VsZCBiZSBzZXQgdG8gJ0NWWE9QVCcsICdN YXRyaXgnLCBhIGNsYXNzLCBvciBOb25lLiIpCisgCisgCistY3BkZWYgR2VuZXJpY1NEUEJhY2tl bmQgZ2V0X3NvbHZlcihzb2x2ZXI9Tm9uZSwgYmFzZV9yaW5nPU5vbmUpIG5vZXhjZXB0OgorK2Nw ZGVmIEdlbmVyaWNTRFBCYWNrZW5kIGdldF9zb2x2ZXIoc29sdmVyPU5vbmUsIGJhc2VfcmluZz1O b25lKToKKyAgICAgIiIiCisgICAgIFJldHVybiBhIHNvbHZlciBhY2NvcmRpbmcgdG8gdGhlIGdp dmVuIHByZWZlcmVuY2VzLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNr ZW5kcy9nbHBrX2JhY2tlbmQucHhkIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtf YmFja2VuZC5weGQKK2luZGV4IDRmZjFkNGE4ZDc2Li5kZjJjMDI3ZTQwOCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHhkCisrKysgYi9zcmMv c2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB4ZAorQEAgLTI2LDE1ICsyNiwx NSBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgY2RlZiBn bHBfc21jcCAqIHNtY3AKKyAgICAgY2RlZiBpbnQgc2ltcGxleF9vcl9pbnRvcHQKKyAgICAgY2Rl ZiBzZWFyY2hfdHJlZV9kYXRhX3Qgc2VhcmNoX3RyZWVfZGF0YQorLSAgICBjcGRlZiBfX2NvcHlf XyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKQorICAgICBjcGRlZiBp bnQgcHJpbnRfcmFuZ2VzKHNlbGYsIGZpbGVuYW1lID0gKikgZXhjZXB0IC0xCisgICAgIGNwZGVm IGRvdWJsZSBnZXRfcm93X2R1YWwoc2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2VwdAorICAgICBj cGRlZiBkb3VibGUgZ2V0X2NvbF9kdWFsKHNlbGYsIGludCB2YXJpYWJsZSkgZXhjZXB0PyAtMQor ICAgICBjcGRlZiBpbnQgZ2V0X3Jvd19zdGF0KHNlbGYsIGludCB2YXJpYWJsZSkgZXhjZXB0PyAt MQorICAgICBjcGRlZiBpbnQgZ2V0X2NvbF9zdGF0KHNlbGYsIGludCB2YXJpYWJsZSkgZXhjZXB0 PyAtMQorLSAgICBjcGRlZiBldmFsX3RhYl9yb3coc2VsZiwgaW50IGspIG5vZXhjZXB0CistICAg IGNwZGVmIGV2YWxfdGFiX2NvbChzZWxmLCBpbnQgaykgbm9leGNlcHQKKy0gICAgY3BkZWYgZ2V0 X3Jvd19wcmltKHNlbGYsIGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRfcm93X3N0YXQo c2VsZiwgaW50IGksIGludCBzdGF0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRfY29sX3N0YXQo c2VsZiwgaW50IGosIGludCBzdGF0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBldmFsX3RhYl9yb3co c2VsZiwgaW50IGspCisrICAgIGNwZGVmIGV2YWxfdGFiX2NvbChzZWxmLCBpbnQgaykKKysgICAg Y3BkZWYgZ2V0X3Jvd19wcmltKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBzZXRfcm93X3N0YXQo c2VsZiwgaW50IGksIGludCBzdGF0KQorKyAgICBjcGRlZiBzZXRfY29sX3N0YXQoc2VsZiwgaW50 IGosIGludCBzdGF0KQorICAgICBjcGRlZiBpbnQgd2FybV91cChzZWxmKSBub2V4Y2VwdAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHl4IGIv c3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfYmFja2VuZC5weXgKK2luZGV4IGIyNGVm YjUyMWVhLi5iNjk2NjgxNTk2OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNr ZW5kcy9nbHBrX2JhY2tlbmQucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMv Z2xwa19iYWNrZW5kLnB5eAorQEAgLTIyOCw3ICsyMjgsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNr ZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAKKyAgICAgICAgIHJldHVybiBuX3ZhciAtIDEKKyAKKy0g ICAgY3BkZWYgc2V0X3ZhcmlhYmxlX3R5cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfdmFyaWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFi bGUsIGludCB2dHlwZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgdHlwZSBvZiBh IHZhcmlhYmxlCisgCitAQCAtMjc4LDcgKzI3OCw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQo R2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBnbHBfc2V0X2Nv bF9raW5kKHNlbGYubHAsIHZhcmlhYmxlKzEsIEdMUF9DVikKKyAKKy0gICAgY3BkZWYgc2V0X3Nl bnNlKHNlbGYsIGludCBzZW5zZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9zZW5zZShzZWxm LCBpbnQgc2Vuc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGRpcmVjdGlvbiAo bWF4aW1pemF0aW9uL21pbmltaXphdGlvbikuCisgCitAQCAtMzA0LDcgKzMwNCw3IEBAIGNkZWYg Y2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICBnbHBfc2V0X29ial9kaXIoc2VsZi5scCwgR0xQX01JTikKKyAKKy0gICAgY3BkZWYg b2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIG9iamVjdGl2ZV9jb2VmZmljaWVudChzZWxmLCBpbnQgdmFyaWFi bGUsIGNvZWZmPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgb3IgZ2V0IHRoZSBj b2VmZmljaWVudCBvZiBhIHZhcmlhYmxlIGluIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24KKyAKK0BA IC0zNDcsNyArMzQ3LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6 CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGdscF9zZXRfb2JqX2NvZWYoc2VsZi5scCwg dmFyaWFibGUgKyAxLCBjb2VmZikKKyAKKy0gICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5h bWU9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5v bmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBwcm9ibGVt J3MgbmFtZQorIAorQEAgLTM3OSw3ICszNzksNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdl bmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUHJvYmxl bSBuYW1lIGZvciBHTFBLIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIDI1NSBjaGFyYWN0ZXJzLiIp CisgICAgICAgICAgICAgZ2xwX3NldF9wcm9iX25hbWUoc2VsZi5scCwgbmFtZSkKKyAKKy0gICAg Y3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkID0gMC4wKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkID0gMC4wKToKKyAg ICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitAQCAt NDA5LDcgKzQwOSw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgor IAorICAgICAgICAgc2VsZi5vYmpfY29uc3RhbnRfdGVybSA9IGQKKyAKKy0gICAgY3BkZWYgc2V0 X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfdmVy Ym9zaXR5KHNlbGYsIGludCBsZXZlbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUg dmVyYm9zaXR5IGxldmVsCisgCitAQCAtNDcxLDcgKzQ3MSw3IEBAIGNkZWYgY2xhc3MgR0xQS0Jh Y2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgIHNlbGYuaW9jcC5tc2dfbGV2ID0g R0xQX01TR19BTEwKKyAgICAgICAgICAgICBzZWxmLnNtY3AubXNnX2xldiA9IEdMUF9NU0dfQUxM CisgCistICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50KHNlbGYsIGludCBpKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnQoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmVtb3ZlIGEgY29uc3RyYWludCBmcm9tIHNlbGYuCisgCitAQCAtNTEwLDcg KzUxMCw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAg ICAgZ2xwX2RlbF9yb3dzKHNlbGYubHAsIDEsIHJvd3MpCisgICAgICAgICBnbHBfc3RkX2Jhc2lz KHNlbGYubHApCisgCistICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50cyhzZWxmLCBjb25zdHJh aW50cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50cyhzZWxmLCBjb25z dHJhaW50cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZW1vdmUgc2V2ZXJhbCBjb25zdHJh aW50cy4KKyAKK0BAIC01NjIsNyArNTYyLDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5l cmljQmFja2VuZCk6CisgICAgICAgICBzaWdfZnJlZShyb3dzKQorICAgICAgICAgZ2xwX3N0ZF9i YXNpcyhzZWxmLmxwKQorIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwg Y29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9Tm9uZSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVudHMs IGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQWRkIGEgbGluZWFyIGNvbnN0cmFpbnQuCisgCitAQCAtNjQ5LDcgKzY0OSw3IEBAIGNk ZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgaWYgbmFtZSBp cyBub3QgTm9uZToKKyAgICAgICAgICAgICBnbHBfc2V0X3Jvd19uYW1lKHNlbGYubHAsIG4sIHN0 cl90b19ieXRlcyhuYW1lKSkKKyAKKy0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhz ZWxmLCBpbnQgbnVtYmVyLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWVzPU5vbmUpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRzKHNlbGYsIGludCBudW1i ZXIsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZXM9Tm9uZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEFkZCBgYCdudW1iZXJgYCBsaW5lYXIgY29uc3RyYWludHMuCisgCitAQCAtNjk3 LDcgKzY5Nyw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAg ICAgICAgICAgICAgICBnbHBfc2V0X3Jvd19uYW1lKHNlbGYubHAsIG4taSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJfdG9fYnl0ZXMobmFtZXNbbnVtYmVyLWktMV0pKQor IAorLSAgICBjcGRlZiByb3coc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg cm93KHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBy b3cKKyAKK0BAIC03NTQsNyArNzU0LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmlj QmFja2VuZCk6CisgCisgICAgICAgICByZXR1cm4gKGluZGljZXMsIHZhbHVlcykKKyAKKy0gICAg Y3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBy b3dfYm91bmRzKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgYm91bmRzIG9mIGEgc3BlY2lmaWMgY29uc3RyYWludC4KKyAKK0BAIC04MDYsNyArODA2 LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAg ICAgKHViIGlmIHViICE9ICtEQkxfTUFYIGVsc2UgTm9uZSkKKyAgICAgICAgICAgICApCisgCist ICAgIGNwZGVmIGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgY29sX2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIHZhcmlhYmxlLgorIAorQEAgLTg1OSw3ICs4 NTksNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg ICAgICAodWIgaWYgdWIgIT0gK0RCTF9NQVggZWxzZSBOb25lKQorICAgICAgICAgICAgICkKKyAK Ky0gICAgY3BkZWYgYWRkX2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNvZWZmcyk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEFkZCBhIGNvbHVtbi4KKyAKK0BAIC0xMTUxLDcgKzExNTEsNyBAQCBjZGVmIGNsYXNz IEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICByYWlzZSBNSVBTb2x2 ZXJFeGNlcHRpb24oIkdMUEs6ICIrc29sdXRpb25fc3RhdHVzX21zZy5nZXQoc29sdXRpb25fc3Rh dHVzLCAidW5rbm93biBlcnJvciBkdXJpbmcgY2FsbCB0byBHTFBLIDogIitzdHIoc29sdXRpb25f c3RhdHVzKSkpCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjcGRlZiBnZXRfb2JqZWN0aXZl X3ZhbHVlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgb2Jq ZWN0aXZlIGZ1bmN0aW9uLgorIAorQEAgLTExODIsNyArMTE4Miw3IEBAIGNkZWYgY2xhc3MgR0xQ S0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gZ2xwX2dldF9vYmpfdmFsKHNlbGYubHApCisgCistICAgIGNwZGVmIGJlc3Rfa25vd25f b2JqZWN0aXZlX2JvdW5kKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiZXN0X2tub3duX29i amVjdGl2ZV9ib3VuZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg dmFsdWUgb2YgdGhlIGN1cnJlbnRseSBiZXN0IGtub3duIGJvdW5kLgorIAorQEAgLTEyMTYsNyAr MTIxNiw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5zZWFyY2hfdHJlZV9kYXRhLmJlc3RfYm91bmQK KyAKKy0gICAgY3BkZWYgZ2V0X3JlbGF0aXZlX29iamVjdGl2ZV9nYXAoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGdldF9yZWxhdGl2ZV9vYmplY3RpdmVfZ2FwKHNlbGYpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByZWxhdGl2ZSBvYmplY3RpdmUgZ2FwIG9mIHRoZSBi ZXN0IGtub3duIHNvbHV0aW9uLgorIAorQEAgLTEyNTksNyArMTI1OSw3IEBAIGNkZWYgY2xhc3Mg R0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5zZWFyY2hfdHJlZV9kYXRhLm1pcF9nYXAKKyAKKy0gICAgY3BkZWYgZ2V0X3Zhcmlh YmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF92 YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIGdpdmVuIGJ5IHRoZSBzb2x2ZXIuCisg CitAQCAtMTMwNSw3ICsxMzA1LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBnbHBfZ2V0X2NvbF9w cmltKHNlbGYubHAsIHZhcmlhYmxlICsgMSkKKyAKKy0gICAgY3BkZWYgZ2V0X3Jvd19wcmltKHNl bGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3Jvd19wcmltKHNlbGYsIGludCBp KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBhdXhp bGlhcnkgdmFyaWFibGUgYXNzb2NpYXRlZCB3aXRoIGktdGggcm93LgorIAorQEAgLTEzODcsNyAr MTM4Nyw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorIAorICAg ICAgICAgcmV0dXJuIGdscF9nZXRfbnVtX3Jvd3Moc2VsZi5scCkKKyAKKy0gICAgY3BkZWYgY29s X25hbWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX25hbWUoc2Vs ZiwgaW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgYGluZGV4 YGAgdGggY29sIG5hbWUKKyAKK0BAIC0xNDI5LDcgKzE0MjksNyBAQCBjZGVmIGNsYXNzIEdMUEtC YWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0 dXJuICIiCisgCistICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBgIHRoIHJvdyBuYW1lCisgCitAQCAtMTYwMCw3ICsx NjAwLDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgCisgICAg ICAgICByZXR1cm4gZ2xwX2dldF9vYmpfZGlyKHNlbGYubHApID09IEdMUF9NQVgKKyAKKy0gICAg Y3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNl KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGlu ZGV4LCB2YWx1ZSA9IEZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRl ZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQorIAorQEAgLTE2OTksNyArMTY5OSw3 IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAg ICAgICAgICAgZ2xwX3NldF9jb2xfYm5kcyhzZWxmLmxwLCBpbmRleCArIDEsIEdMUF9EQiwgbWlu LCBkdmFsdWUpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorIAorLSAgICBjcGRlZiB2YXJp YWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBs b3dlciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitAQCAtMTc5OSw3ICsxNzk5LDcgQEAgY2RlZiBj bGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAgICAgICAgICAgICBn bHBfc2V0X2NvbF9ibmRzKHNlbGYubHAsIGluZGV4ICsgMSwgR0xQX0RCLCB2YWx1ZSwgbWF4KQor ICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgY3BkZWYgd3JpdGVfbHAoc2VsZiwg ZmlsZW5hbWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB3cml0ZV9scChzZWxmLCBmaWxlbmFtZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFdyaXRlIHRoZSBwcm9ibGVtIHRvIGEgLmxwIGZpbGUK KyAKK0BAIC0xODI2LDcgKzE4MjYsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNC YWNrZW5kKToKKyAgICAgICAgIGZpbGVuYW1lID0gc3RyX3RvX2J5dGVzKGZpbGVuYW1lLCBGU19F TkNPRElORywgJ3N1cnJvZ2F0ZWVzY2FwZScpCisgICAgICAgICBnbHBfd3JpdGVfbHAoc2VsZi5s cCwgTlVMTCwgZmlsZW5hbWUpCisgCistICAgIGNwZGVmIHdyaXRlX21wcyhzZWxmLCBmaWxlbmFt ZSwgaW50IG1vZGVybikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHdyaXRlX21wcyhzZWxmLCBmaWxl bmFtZSwgaW50IG1vZGVybik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFdyaXRlIHRoZSBwcm9i bGVtIHRvIGEgLm1wcyBmaWxlCisgCitAQCAtMTg1Myw3ICsxODUzLDcgQEAgY2RlZiBjbGFzcyBH TFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBmaWxlbmFtZSA9IHN0cl90b19i eXRlcyhmaWxlbmFtZSwgRlNfRU5DT0RJTkcsICdzdXJyb2dhdGVlc2NhcGUnKQorICAgICAgICAg Z2xwX3dyaXRlX21wcyhzZWxmLmxwLCBtb2Rlcm4sIE5VTEwsIGZpbGVuYW1lKQorIAorLSAgICBj cGRlZiBfX2NvcHlfXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX19jb3B5X18oc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBjb3B5IG9mIHNlbGYuCisgCitAQCAt MTg3NCw3ICsxODc0LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6 CisgICAgICAgICByZXR1cm4gcAorIAorIAorLSAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNl bGYsIG5hbWUsIHZhbHVlID0gTm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNvbHZlcl9wYXJh bWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUgPSBOb25lKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIG9yIGRlZmluZSBhIHNvbHZlciBwYXJhbWV0ZXIKKyAKK0BAIC0yNzI1LDcgKzI3MjUs NyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAKKyAgICAgICAg IHJldHVybiBnbHBfZ2V0X2NvbF9zdGF0KHNlbGYubHAsIGorMSkKKyAKKy0gICAgY3BkZWYgc2V0 X3Jvd19zdGF0KHNlbGYsIGludCBpLCBpbnQgc3RhdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNl dF9yb3dfc3RhdChzZWxmLCBpbnQgaSwgaW50IHN0YXQpOgorICAgICAgICAgciIiIgorICAgICAg ICAgU2V0IHRoZSBzdGF0dXMgb2YgYSBjb25zdHJhaW50LgorIAorQEAgLTI3NjAsNyArMjc2MCw3 IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorIAorICAgICAgICAg Z2xwX3NldF9yb3dfc3RhdChzZWxmLmxwLCBpKzEsIHN0YXQpCisgCistICAgIGNwZGVmIHNldF9j b2xfc3RhdChzZWxmLCBpbnQgaiwgaW50IHN0YXQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRf Y29sX3N0YXQoc2VsZiwgaW50IGosIGludCBzdGF0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFNldCB0aGUgc3RhdHVzIG9mIGEgdmFyaWFibGUuCisgCitAQCAtMjgzMSw3ICsyODMxLDcgQEAg Y2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBnbHBfd2FybV91cChzZWxmLmxwKQorIAorLSAgICBjcGRlZiBldmFsX3Rh Yl9yb3coc2VsZiwgaW50IGspIG5vZXhjZXB0OgorKyAgICBjcGRlZiBldmFsX3RhYl9yb3coc2Vs ZiwgaW50IGspOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZXMgYSByb3cgb2YgdGhl IGN1cnJlbnQgc2ltcGxleCB0YWJsZWF1LgorIAorQEAgLTI5MzAsNyArMjkzMCw3IEBAIGNkZWYg Y2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgdmFsdWVzICA9IFtj X3ZhbHVlc1tqKzFdICAgICAgZm9yIGogaW4gcmFuZ2UoaSldCisgICAgICAgICByZXR1cm4gKGlu ZGljZXMsIHZhbHVlcykKKyAKKy0gICAgY3BkZWYgZXZhbF90YWJfY29sKHNlbGYsIGludCBrKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZXZhbF90YWJfY29sKHNlbGYsIGludCBrKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIENvbXB1dGVzIGEgY29sdW1uIG9mIHRoZSBjdXJyZW50IHNpbXBsZXgg dGFibGVhdS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xw a19leGFjdF9iYWNrZW5kLnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2V4 YWN0X2JhY2tlbmQucHhkCitpbmRleCA4OTMyNmJmMzYwNC4uODIwNzM0N2NlNTEgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19leGFjdF9iYWNrZW5kLnB4ZAor KysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZXhhY3RfYmFja2VuZC5weGQK K0BAIC0xMyw0ICsxMyw0IEBAIGZyb20gc2FnZS5udW1lcmljYWwuYmFja2VuZHMuZ2xwa19iYWNr ZW5kIGNpbXBvcnQgR0xQS0JhY2tlbmQKKyBjZGVmIGNsYXNzIEdMUEtFeGFjdEJhY2tlbmQoR0xQ S0JhY2tlbmQpOgorICAgICBjcGRlZiBpbnQgYWRkX3ZhcmlhYmxlKHNlbGYsIGxvd2VyX2JvdW5k PSosIHVwcGVyX2JvdW5kPSosIGJpbmFyeT0qLCBjb250aW51b3VzPSosIGludGVnZXI9Kiwgb2Jq PSosIG5hbWU9KikgZXhjZXB0IC0xCisgICAgIGNwZGVmIGludCBhZGRfdmFyaWFibGVzKHNlbGYs IGludCwgbG93ZXJfYm91bmQ9KiwgdXBwZXJfYm91bmQ9KiwgYmluYXJ5PSosIGNvbnRpbnVvdXM9 KiwgaW50ZWdlcj0qLCBvYmo9KiwgbmFtZXM9KikgZXhjZXB0IC0xCistICAgIGNwZGVmIHNldF92 YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBzZXRfdmFyaWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFibGUsIGludCB2dHlwZSkK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19leGFjdF9iYWNr ZW5kLnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2V4YWN0X2JhY2tlbmQu cHl4CitpbmRleCAzNTA4OTQyZjVlNC4uMzAzMTc0OGViNDIgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19leGFjdF9iYWNrZW5kLnB5eAorKysrIGIvc3JjL3Nh Z2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZXhhY3RfYmFja2VuZC5weXgKK0BAIC0xNTYsNyAr MTU2LDcgQEAgY2RlZiBjbGFzcyBHTFBLRXhhY3RCYWNrZW5kKEdMUEtCYWNrZW5kKToKKyAgICAg ICAgIHJldHVybiBHTFBLQmFja2VuZC5hZGRfdmFyaWFibGVzKHNlbGYsIG51bWJlciwgbG93ZXJf Ym91bmQsIHVwcGVyX2JvdW5kLCBiaW5hcnksIGNvbnRpbnVvdXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludGVnZXIsIG9iaiwgbmFtZXMpCisgCistICAgIGNw ZGVmIHNldF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgc2V0X3ZhcmlhYmxlX3R5cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBp bnQgdnR5cGUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIHR5cGUgb2YgYSB2YXJp YWJsZS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19n cmFwaF9iYWNrZW5kLnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2dyYXBo X2JhY2tlbmQucHhkCitpbmRleCA5MjZjNjAxMzRkYy4uMjhkMmU2NWQ3ZWYgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB4ZAorKysr IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZ3JhcGhfYmFja2VuZC5weGQKK0BA IC0yNywyMiArMjcsMjIgQEAgY3R5cGVkZWYgc3RydWN0IGNfYV9kYXRhOgorIAorIGNkZWYgY2xh c3MgR0xQS0dyYXBoQmFja2VuZCgpOgorICAgICBjZGVmIGdscF9ncmFwaCAqIGdyYXBoCistICAg IGNwZGVmIGFkZF92ZXJ0ZXgoc2VsZiwgbmFtZSA9ID8pIG5vZXhjZXB0CistICAgIGNwZGVmIGxp c3QgYWRkX3ZlcnRpY2VzKHNlbGYsIHZlcnRpY2VzKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfX2Fk ZF92ZXJ0aWNlc19zYWdlKHNlbGYsIGcpIG5vZXhjZXB0CistICAgIGNwZGVmIGRpY3QgZ2V0X3Zl cnRleChzZWxmLCB2ZXJ0ZXgpIG5vZXhjZXB0CistICAgIGNwZGVmIGRpY3QgZ2V0X3ZlcnRpY2Vz KHNlbGYsIHZlcnRzKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRfdmVydGV4X2RlbWFuZChzZWxm LCB2ZXJ0ZXgsIHBhcmFtKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRfdmVydGljZXNfZGVtYW5k KHNlbGYsIGxpc3QgcGFpcnMpIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3QgdmVydGljZXMoc2Vs Zikgbm9leGNlcHQKKy0gICAgY3BkZWYgYWRkX2VkZ2Uoc2VsZiwgdSwgdiwgZGljdCBwYXJhbXMg PSA/KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfX2FkZF9lZGdlc19zYWdlKHNlbGYsIGcpIG5vZXhj ZXB0CistICAgIGNwZGVmIGxpc3QgYWRkX2VkZ2VzKHNlbGYsIGVkZ2VzKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBkZWxldGVfZWRnZShzZWxmLCB1LCB2LCBkaWN0IHBhcmFtcyA9ID8pIG5vZXhjZXB0 CistICAgIGNwZGVmIHR1cGxlIGdldF9lZGdlKHNlbGYsIHUsIHYpIG5vZXhjZXB0CistICAgIGNw ZGVmIGxpc3QgZWRnZXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGVsZXRlX3ZlcnRleChz ZWxmLCB2ZXJ0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZWxldGVfdmVydGljZXMoc2VsZiwgbGlz dCB2ZXJ0cykgbm9leGNlcHQKKysgICAgY3BkZWYgYWRkX3ZlcnRleChzZWxmLCBuYW1lID0gPykK KysgICAgY3BkZWYgbGlzdCBhZGRfdmVydGljZXMoc2VsZiwgdmVydGljZXMpCisrICAgIGNwZGVm IF9fYWRkX3ZlcnRpY2VzX3NhZ2Uoc2VsZiwgZykKKysgICAgY3BkZWYgZGljdCBnZXRfdmVydGV4 KHNlbGYsIHZlcnRleCkKKysgICAgY3BkZWYgZGljdCBnZXRfdmVydGljZXMoc2VsZiwgdmVydHMp CisrICAgIGNwZGVmIHNldF92ZXJ0ZXhfZGVtYW5kKHNlbGYsIHZlcnRleCwgcGFyYW0pCisrICAg IGNwZGVmIHNldF92ZXJ0aWNlc19kZW1hbmQoc2VsZiwgbGlzdCBwYWlycykKKysgICAgY3BkZWYg bGlzdCB2ZXJ0aWNlcyhzZWxmKQorKyAgICBjcGRlZiBhZGRfZWRnZShzZWxmLCB1LCB2LCBkaWN0 IHBhcmFtcyA9ID8pCisrICAgIGNwZGVmIF9fYWRkX2VkZ2VzX3NhZ2Uoc2VsZiwgZykKKysgICAg Y3BkZWYgbGlzdCBhZGRfZWRnZXMoc2VsZiwgZWRnZXMpCisrICAgIGNwZGVmIGRlbGV0ZV9lZGdl KHNlbGYsIHUsIHYsIGRpY3QgcGFyYW1zID0gPykKKysgICAgY3BkZWYgdHVwbGUgZ2V0X2VkZ2Uo c2VsZiwgdSwgdikKKysgICAgY3BkZWYgbGlzdCBlZGdlcyhzZWxmKQorKyAgICBjcGRlZiBkZWxl dGVfdmVydGV4KHNlbGYsIHZlcnQpCisrICAgIGNwZGVmIGRlbGV0ZV92ZXJ0aWNlcyhzZWxmLCBs aXN0IHZlcnRzKQorICAgICBjcGRlZiBpbnQgX2ZpbmRfdmVydGV4KHNlbGYsIHZlcnQpIG5vZXhj ZXB0CisgICAgIGNwZGVmIGludCB3cml0ZV9ncmFwaChzZWxmLCBmbmFtZSkgbm9leGNlcHQKKyAg ICAgY3BkZWYgaW50IHdyaXRlX2NjZGF0YShzZWxmLCBmbmFtZSkgbm9leGNlcHQKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB5eCBi L3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2dyYXBoX2JhY2tlbmQucHl4CitpbmRl eCA5MDQzMWY4YTQ4MS4uNjNiYzJhNzYzMDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJp Y2FsL2JhY2tlbmRzL2dscGtfZ3JhcGhfYmFja2VuZC5weXgKK0BAIC0yMzEsNyArMjMxLDcgQEAg Y2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIFZhbHVlRXJyb3IoIklucHV0IGRhdGEgaXMgbm90IHN1cHBvcnRlZCIpCisgCistICAgIGNw ZGVmIGFkZF92ZXJ0ZXgoc2VsZiwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRk X3ZlcnRleChzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGRzIGFu IGlzb2xhdGVkIHZlcnRleCB0byB0aGUgZ3JhcGguCisgCitAQCAtMjg1LDcgKzI4NSw3IEBAIGNk ZWYgY2xhc3MgR0xQS0dyYXBoQmFja2VuZCgpOgorICAgICAgICAgICAgIGdscF9zZXRfdmVydGV4 X25hbWUoc2VsZi5ncmFwaCwgdm4sIHN0cl90b19ieXRlcyhzKSkKKyAgICAgICAgICAgICByZXR1 cm4gcworIAorLSAgICBjcGRlZiBfX2FkZF92ZXJ0aWNlc19zYWdlKHNlbGYsIGcpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfX2FkZF92ZXJ0aWNlc19zYWdlKHNlbGYsIGcpOgorICAgICAgICAgIiIi CisgICAgICAgICBBZGRzIHZlcnRpY2VzIHRvIHRoZSBHTFBLIEdyYXBoLgorIAorQEAgLTMyNyw3 ICszMjcsNyBAQCBjZGVmIGNsYXNzIEdMUEtHcmFwaEJhY2tlbmQoKToKKyAKKyAgICAgICAgIGds cF9jcmVhdGVfdl9pbmRleChzZWxmLmdyYXBoKQorIAorLSAgICBjcGRlZiBsaXN0IGFkZF92ZXJ0 aWNlcyhzZWxmLCB2ZXJ0aWNlcykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgYWRkX3ZlcnRp Y2VzKHNlbGYsIHZlcnRpY2VzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkcyB2ZXJ0aWNl cyBmcm9tIGFuIGl0ZXJhYmxlIGNvbnRhaW5lciBvZiB2ZXJ0aWNlcy4KKyAKK0BAIC0zNzksNyAr Mzc5LDcgQEAgY2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIHNldF92ZXJ0ZXhfZGVtYW5k KHNlbGYsIHZlcnRleCwgZGVtYW5kKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3ZlcnRleF9k ZW1hbmQoc2VsZiwgdmVydGV4LCBkZW1hbmQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXRz IHRoZSBkZW1hbmQgb2YgdGhlIHZlcnRleCBpbiBhIG1pbmNvc3QgZmxvdyBhbGdvcml0aG0uCisg CitAQCAtNDE2LDcgKzQxNiw3IEBAIGNkZWYgY2xhc3MgR0xQS0dyYXBoQmFja2VuZCgpOgorICAg ICAgICAgY2RlZiBkb3VibGUgdmFsID0gZGVtYW5kCisgICAgICAgICAoPGNfdl9kYXRhICo+dmVy dC5kYXRhKS5yaHMgPSB2YWwKKyAKKy0gICAgY3BkZWYgc2V0X3ZlcnRpY2VzX2RlbWFuZChzZWxm LCBsaXN0IHBhaXJzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3ZlcnRpY2VzX2RlbWFuZChz ZWxmLCBsaXN0IHBhaXJzKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0cyB0aGUgcGFyYW1l dGVycyBvZiBzZWxlY3RlZCB2ZXJ0aWNlcy4KKyAKK0BAIC00NDQsNyArNDQ0LDcgQEAgY2RlZiBj bGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgor ICAgICAgICAgICAgICAgICBwYXNzCisgCistICAgIGNwZGVmIGRpY3QgZ2V0X3ZlcnRleChzZWxm LCB2ZXJ0ZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaWN0IGdldF92ZXJ0ZXgoc2VsZiwgdmVy dGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIHNwZWNpZmljIHZlcnRleCBh cyBhIGBgZGljdGBgIE9iamVjdC4KKyAKK0BAIC00OTEsNyArNDkxLDcgQEAgY2RlZiBjbGFzcyBH TFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICAgICAgImxzIiAgOiB2ZGF0YS5scworICAgICAg ICAgICAgIH0KKyAKKy0gICAgY3BkZWYgZGljdCBnZXRfdmVydGljZXMoc2VsZiwgdmVydHMpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBkaWN0IGdldF92ZXJ0aWNlcyhzZWxmLCB2ZXJ0cyk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBkaWN0aW9uYXJ5IG9mIHRoZSBkaWN0aW9uYXJp ZXMgYXNzb2NpYXRlZCB0byBlYWNoIHZlcnRleC4KKyAKK0BAIC01MjAsNyArNTIwLDcgQEAgY2Rl ZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICB2bCA9IFsodiwgc2VsZi5nZXRf dmVydGV4KHYpKSBmb3IgdiBpbiB2ZXJ0c10KKyAgICAgICAgIHJldHVybiBkaWN0KFsodiwgcCkg Zm9yIHYsIHAgaW4gdmwgaWYgcCBpcyBub3QgTm9uZV0pCisgCistICAgIGNwZGVmIGxpc3QgdmVy dGljZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgdmVydGljZXMoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIGxpc3Qgb2YgYWxsIHZlcnRpY2VzCisg CitAQCAtNTUyLDcgKzU1Miw3IEBAIGNkZWYgY2xhc3MgR0xQS0dyYXBoQmFja2VuZCgpOgorICAg ICAgICAgICAgICAgICBpZiBzZWxmLmdyYXBoLnZbaSsxXS5uYW1lIGlzIG5vdCBOVUxMIGVsc2Ug Tm9uZQorICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLmdyYXBoLm52KV0KKyAK Ky0gICAgY3BkZWYgYWRkX2VkZ2Uoc2VsZiwgdSwgdiwgZGljdCBwYXJhbXM9Tm9uZSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIGFkZF9lZGdlKHNlbGYsIHUsIHYsIGRpY3QgcGFyYW1zPU5vbmUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBBZGRzIGFuIGVkZ2UgYmV0d2VlbiB2ZXJ0aWNlcyBgYHVg YCBhbmQgYGB2YGAuCisgCitAQCAtNjE2LDcgKzYxNiw3IEBAIGNkZWYgY2xhc3MgR0xQS0dyYXBo QmFja2VuZCgpOgorICAgICAgICAgICAgICAgICBnbHBfZGVsX2FyYyhzZWxmLmdyYXBoLCBhKQor ICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkludmFsaWQgZWRnZSBwYXJhbWV0ZXIu IikKKyAKKy0gICAgY3BkZWYgbGlzdCBhZGRfZWRnZXMoc2VsZiwgZWRnZXMpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBsaXN0IGFkZF9lZGdlcyhzZWxmLCBlZGdlcyk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEFkZHMgZWRnZXMgdG8gdGhlIGdyYXBoLgorIAorQEAgLTY1NCw3ICs2NTQsNyBAQCBj ZGVmIGNsYXNzIEdMUEtHcmFwaEJhY2tlbmQoKToKKyAgICAgICAgIGZvciBlZCBpbiBlZGdlczoK KyAgICAgICAgICAgICBzZWxmLmFkZF9lZGdlKCplZCkKKyAKKy0gICAgY3BkZWYgX19hZGRfZWRn ZXNfc2FnZShzZWxmLCBnKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX19hZGRfZWRnZXNfc2FnZShz ZWxmLCBnKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkcyBlZGdlcyB0byB0aGUgR3JhcGgu CisgCitAQCAtNzA5LDcgKzcwOSw3IEBAIGNkZWYgY2xhc3MgR0xQS0dyYXBoQmFja2VuZCgpOgor ICAgICAgICAgICAgICAgICAgICAgaWYgImxvdyIgaW4gbGFiZWw6CisgICAgICAgICAgICAgICAg ICAgICAgICAgKDxjX2FfZGF0YSAqPmEuZGF0YSkubG93ID0gbG93CisgCistICAgIGNwZGVmIHR1 cGxlIGdldF9lZGdlKHNlbGYsIHUsIHYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB0dXBsZSBnZXRf ZWRnZShzZWxmLCB1LCB2KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhbiBlZGdl IGNvbm5lY3RpbmcgdHdvIHZlcnRpY2VzLgorIAorQEAgLTc2NSw3ICs3NjUsNyBAQCBjZGVmIGNs YXNzIEdMUEtHcmFwaEJhY2tlbmQoKToKKyAKKyAgICAgICAgIHJldHVybiBOb25lCisgCistICAg IGNwZGVmIGxpc3QgZWRnZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgZWRnZXMo c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBgYGxpc3RgYCBvZiBhbGwg ZWRnZXMgaW4gdGhlIGdyYXBoCisgCitAQCAtODE0LDcgKzgxNCw3IEBAIGNkZWYgY2xhc3MgR0xQ S0dyYXBoQmFja2VuZCgpOgorICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgcmV0dXJuIGVk Z2VfbGlzdAorIAorLSAgICBjcGRlZiBkZWxldGVfdmVydGV4KHNlbGYsIHZlcnQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBkZWxldGVfdmVydGV4KHNlbGYsIHZlcnQpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmVtb3ZlcyBhIHZlcnRleCBmcm9tIHRoZSBncmFwaC4KKyAKK0BAIC04NTAsNyAr ODUwLDcgQEAgY2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgCisgICAgICAgICBnbHBf ZGVsX3ZlcnRpY2VzKHNlbGYuZ3JhcGgsIG5kZWwsIG51bSkKKyAKKy0gICAgY3BkZWYgZGVsZXRl X3ZlcnRpY2VzKHNlbGYsIGxpc3QgdmVydHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkZWxldGVf dmVydGljZXMoc2VsZiwgbGlzdCB2ZXJ0cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZW1v dmVzIHZlcnRpY2VzIGZyb20gdGhlIGdyYXBoLgorIAorQEAgLTg5NCw3ICs4OTQsNyBAQCBjZGVm IGNsYXNzIEdMUEtHcmFwaEJhY2tlbmQoKToKKyAKKyAgICAgICAgIHNpZ19mcmVlKG51bSkKKyAK Ky0gICAgY3BkZWYgZGVsZXRlX2VkZ2Uoc2VsZiwgdSwgdiwgZGljdCBwYXJhbXM9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGRlbGV0ZV9lZGdlKHNlbGYsIHUsIHYsIGRpY3QgcGFyYW1zPU5v bmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWxldGVzIGFuIGVkZ2UgZnJvbSB0aGUgZ3Jh cGguCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2ludGVyYWN0 aXZlbHBfYmFja2VuZC5weGQgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvaW50ZXJhY3Rp dmVscF9iYWNrZW5kLnB4ZAoraW5kZXggZjI5MTg3NjMyZmMuLjA3ZTYzYTdiYjQ0IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2ludGVyYWN0aXZlbHBfYmFja2VuZC5w eGQKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9pbnRlcmFjdGl2ZWxwX2JhY2tl bmQucHhkCitAQCAtMzAsNiArMzAsNiBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5k KEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljaWVu dHM9KikgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCAtMQorIAorLSAgICBj cGRlZiBkaWN0aW9uYXJ5KHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGRpY3Rpb25hcnkoc2Vs ZikKKyAKKy0gICAgY3BkZWYgaW50ZXJhY3RpdmVfbHBfcHJvYmxlbShzZWxmKSBub2V4Y2VwdAor KyAgICBjcGRlZiBpbnRlcmFjdGl2ZV9scF9wcm9ibGVtKHNlbGYpCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2ludGVyYWN0aXZlbHBfYmFja2VuZC5weXggYi9zcmMv c2FnZS9udW1lcmljYWwvYmFja2VuZHMvaW50ZXJhY3RpdmVscF9iYWNrZW5kLnB5eAoraW5kZXgg MzA2MmEyOWViMWYuLjM0ODRkNzM5NjY3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2Fs L2JhY2tlbmRzL2ludGVyYWN0aXZlbHBfYmFja2VuZC5weXgKKysrKyBiL3NyYy9zYWdlL251bWVy aWNhbC9iYWNrZW5kcy9pbnRlcmFjdGl2ZWxwX2JhY2tlbmQucHl4CitAQCAtODIsNyArODIsNyBA QCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5kOgorIAorICAgICAgICAgc2VsZi5yb3df bmFtZXMgPSBbXQorIAorLSAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX19jb3B5X18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBj b3B5IG9mIHNlbGYuCisgCitAQCAtMTA1LDcgKzEwNSw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3Rp dmVMUEJhY2tlbmQ6CisgICAgICAgICBjcC5wcm9iX25hbWUgPSBzZWxmLnByb2JfbmFtZQorICAg ICAgICAgcmV0dXJuIGNwCisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGJhc2UgcmluZy4KKyAKK0BAIC0yNTMsNyArMjUzLDcgQEAgY2RlZiBjbGFzcyBJbnRl cmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcm9ibGVtX3R5cGUsIHJpbmcsIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtPWQpCisgICAgICAg ICByZXR1cm4gc2VsZi5uY29scygpIC0gMQorIAorLSAgICBjcGRlZiAgc2V0X3ZhcmlhYmxlX3R5 cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiAg c2V0X3ZhcmlhYmxlX3R5cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpOgorICAgICAg ICAgIiIiCisgICAgICAgICBTZXQgdGhlIHR5cGUgb2YgYSB2YXJpYWJsZS4KKyAKK0BAIC0zMDcs NyArMzA3LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgIGQg PSBzZWxmLmxwLm9iamVjdGl2ZV9jb25zdGFudF90ZXJtKCkKKyAgICAgICAgIHJldHVybiBBLCBi LCBjLCB4LCBjb25zdHJhaW50X3R5cGVzLCB2YXJpYWJsZV90eXBlcywgcHJvYmxlbV90eXBlLCBi YXNlX3JpbmcsIGQKKyAKKy0gICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHNldF9zZW5zZShzZWxmLCBpbnQgc2Vuc2UpOgorICAgICAgICAg IiIiCisgICAgICAgICBTZXQgdGhlIGRpcmVjdGlvbiAobWF4aW1pemF0aW9uL21pbmltaXphdGlv bikuCisgCitAQCAtMzM3LDcgKzMzNyw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tl bmQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludF90 eXBlcywgdmFyaWFibGVfdHlwZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJvYmxlbV90eXBlLCByaW5nLCBvYmplY3RpdmVfY29uc3RhbnRfdGVybT1kKQorIAor LSAgICBjcGRlZiBvYmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2Vm Zj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYs IGludCB2YXJpYWJsZSwgY29lZmY9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBv ciBnZXQgdGhlIGNvZWZmaWNpZW50IG9mIGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZQorICAg ICAgICAgZnVuY3Rpb24KK0BAIC0zNzAsNyArMzcwLDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2 ZUxQQmFja2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3RyYWludF90eXBlcywgdmFyaWFibGVfdHlwZXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByb2JsZW1fdHlwZSwgcmluZywgb2JqZWN0aXZlX2NvbnN0 YW50X3Rlcm09ZCkKKyAKKy0gICAgY3BkZWYgb2JqZWN0aXZlX2NvbnN0YW50X3Rlcm0oc2VsZiwg ZD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0aXZlX2NvbnN0YW50X3Rlcm0oc2Vs ZiwgZD1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IG9yIGdldCB0aGUgY29uc3Rh bnQgdGVybSBpbiB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uCisgCitAQCAtMzk2LDcgKzM5Niw3IEBA IGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRfdHlwZXMsIHZhcmlhYmxlX3R5cGVzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ibGVtX3R5cGUs IHJpbmcsIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtPWQpCisgCistICAgIGNwZGVmIHNldF9vYmpl Y3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZCA9IDApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRf b2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwKToKKyAgICAgICAgICIiIgorICAgICAg ICAgU2V0IHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitAQCAtNDQ2LDcgKzQ0Niw3IEBAIGNk ZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3RyYWludF90eXBlcywgdmFyaWFibGVfdHlwZXMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbV90eXBlLCByaW5nLCBvYmpl Y3RpdmVfY29uc3RhbnRfdGVybT1kKQorIAorLSAgICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYs IGludCBsZXZlbCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50 IGxldmVsKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBsb2cgKHZlcmJvc2l0eSkg bGV2ZWwKKyAKK0BAIC00NjIsNyArNDYyLDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFj a2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi52ZXJib3NpdHkgPSBsZXZlbAorIAor LSAgICBjcGRlZiByZW1vdmVfY29uc3RyYWludChzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIHJlbW92ZV9jb25zdHJhaW50KHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJlbW92ZSBhIGNvbnN0cmFpbnQuCisgCitAQCAtNDk2LDcgKzQ5Niw3IEBAIGNkZWYg Y2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3RyYWludF90eXBlcywgdmFyaWFibGVfdHlwZXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbV90eXBlLCByaW5nLCBvYmplY3Rp dmVfY29uc3RhbnRfdGVybT1kKQorIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQo c2VsZiwgY29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9Tm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmlj aWVudHMsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKToKKyAgICAgICAgICIi IgorICAgICAgICAgQWRkIGEgbGluZWFyIGNvbnN0cmFpbnQuCisgCitAQCAtNTU4LDcgKzU1OCw3 IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbV90eXBlLCByaW5nLCBvYmplY3RpdmVfY29uc3Rh bnRfdGVybT1kKQorIAorIAorLSAgICBjcGRlZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNvZWZm cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKToK KyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGEgY29sdW1uLgorIAorQEAgLTYzMyw3ICs2MzMs NyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5kOgorICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICByYWlzZSBNSVBTb2x2ZXJFeGNlcHRpb24oIkludGVyYWN0aXZlTFA6IFByb2Js ZW0gaXMgdW5ib3VuZGVkIikKKyAKKy0gICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgb2JqZWN0aXZlIGZ1bmN0 aW9uLgorIAorQEAgLTY2NCw3ICs2NjQsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNr ZW5kOgorICAgICAgICAgICAgIHYgPSAtIHYKKyAgICAgICAgIHJldHVybiB2CisgCistICAgIGNw ZGVmIGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBnZXRfdmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIGdpdmVuIGJ5IHRo ZSBzb2x2ZXIuCisgCitAQCAtNzQxLDcgKzc0MSw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVM UEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxwLnByb2JsZW1f dHlwZSgpID09ICJtYXgiCisgCistICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5v bmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgcHJvYmxlbSdzIG5h bWUKKyAKK0BAIC03NjYsNyArNzY2LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2Vu ZDoKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5wcm9iX25hbWUgPSBzdHIobmFt ZSkKKyAKKy0gICAgY3BkZWYgcm93KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg cm93KHNlbGYsIGludCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgcm93Cisg CitAQCAtODAwLDcgKzgwMCw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6Cisg ICAgICAgICAgICAgICAgIGNvZWZmcy5hcHBlbmQoQVtpXVtqXSkKKyAgICAgICAgIHJldHVybiAo aW5kaWNlcywgY29lZmZzKQorIAorLSAgICBjcGRlZiByb3dfYm91bmRzKHNlbGYsIGludCBpbmRl eCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGluZGV4KToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBib3VuZHMgb2YgYSBzcGVjaWZpYyBjb25z dHJhaW50LgorIAorQEAgLTgzNSw3ICs4MzUsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBC YWNrZW5kOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJC YWQgY29uc3RyYWludF90eXBlIikKKyAKKy0gICAgY3BkZWYgY29sX2JvdW5kcyhzZWxmLCBpbnQg aW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYsIGludCBpbmRleCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYm91bmRzIG9mIGEgc3BlY2lmaWMg dmFyaWFibGUuCisgCitAQCAtOTM2LDcgKzkzNiw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVM UEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNw ZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJvd19u YW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg YGBpbmRleGBgIHRoIHJvdyBuYW1lCisgCitAQCAtOTU1LDcgKzk1NSw3IEBAIGNkZWYgY2xhc3Mg SW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxm LnJvd19uYW1lc1tpbmRleF0KKyAKKy0gICAgY3BkZWYgY29sX25hbWUoc2VsZiwgaW50IGluZGV4 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX25hbWUoc2VsZiwgaW50IGluZGV4KToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgYGluZGV4YGAtdGggY29sdW1uIG5hbWUKKyAK K0BAIC05NzcsNyArOTc3LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHN0cihzZWxmLmxwLmRlY2lzaW9uX3ZhcmlhYmxl cygpW2luZGV4XSkKKyAKKy0gICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50 IGluZGV4LCB2YWx1ZSA9IEZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFyaWFibGVfdXBw ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQor IAorQEAgLTEwMjEsNyArMTAyMSw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJh aW50X3R5cGVzLCB2YXJpYWJsZV90eXBlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByb2JsZW1fdHlwZSwgcmluZywgb2JqZWN0aXZlX2NvbnN0YW50 X3Rlcm09ZCkKKyAKKy0gICAgY3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGlu ZGV4LCB2YWx1ZSA9IEZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFyaWFibGVfbG93ZXJf Ym91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2YXJpYWJsZQorIAor QEAgLTExODUsNyArMTE4NSw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxwX3N0ZF9mb3JtLnNsYWNrX3Zhcmlh YmxlcygpW2luZGV4XSBpbiBzZWxmLmZpbmFsX2RpY3Rpb25hcnkubm9uYmFzaWNfdmFyaWFibGVz KCkKKyAKKy0gICAgY3BkZWYgZGljdGlvbmFyeShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg ZGljdGlvbmFyeShzZWxmKToKKyAgICAgICAgICMgUHJvcG9zZWQgYWRkaXRpb24gdG8gdGhlIGdl bmVyYWwgaW50ZXJmYWNlLAorICAgICAgICAgIyB3aGljaCB3b3VsZCBmb3Igb3RoZXIgc29sdmVy cyByZXR1cm4gYmFja2VuZCBkaWN0aW9uYXJpZXMgKCMxODgwNCkKKyAgICAgICAgICIiIgorQEAg LTEyMjEsNyArMTIyMSw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmZpbmFsX2RpY3Rpb25hcnkKKyAKKy0gICAg Y3BkZWYgaW50ZXJhY3RpdmVfbHBfcHJvYmxlbShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg aW50ZXJhY3RpdmVfbHBfcHJvYmxlbShzZWxmKToKKyAKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSA6Y2xhc3M6YEludGVyYWN0aXZlTFBQcm9ibGVtYCBvYmplY3QgYXNzb2NpYXRl ZCB3aXRoIHRoaXMgYmFja2VuZC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFj a2VuZHMvbWF0cml4X3NkcF9iYWNrZW5kLnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5k cy9tYXRyaXhfc2RwX2JhY2tlbmQucHl4CitpbmRleCA2MzFhN2JkNmRkZS4uZjRlN2VjYjEzZjAg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvbWF0cml4X3NkcF9iYWNr ZW5kLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL21hdHJpeF9zZHBfYmFj a2VuZC5weXgKK0BAIC01NSw3ICs1NSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4U0RQQmFja2VuZChH ZW5lcmljU0RQQmFja2VuZCk6CisgICAgICAgICAgICAgYmFzZV9yaW5nID0gUVEKKyAgICAgICAg IHNlbGYuX2Jhc2VfcmluZyA9IGJhc2VfcmluZworIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgICIiIgor ICAgICAgICAgVGhlIGJhc2UgcmluZworIAorQEAgLTE2Niw3ICsxNjYsNyBAQCBjZGVmIGNsYXNz IE1hdHJpeFNEUEJhY2tlbmQoR2VuZXJpY1NEUEJhY2tlbmQpOgorICAgICAgICAgICAgIHNlbGYu YWRkX3ZhcmlhYmxlKCkKKyAgICAgICAgIHJldHVybiBsZW4oc2VsZi5vYmplY3RpdmVfZnVuY3Rp b24pIC0gMQorIAorLSAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFNldCB0aGUgZGlyZWN0aW9uIChtYXhpbWl6YXRpb24vbWluaW1pemF0aW9uKS4K KyAKK0BAIC0xOTIsNyArMTkyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhTRFBCYWNrZW5kKEdlbmVy aWNTRFBCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5pc19tYXhp bWl6ZSA9IDAKKyAKKy0gICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2 YXJpYWJsZSwgY29lZmY9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG9iamVjdGl2ZV9jb2Vm ZmljaWVudChzZWxmLCBpbnQgdmFyaWFibGUsIGNvZWZmPU5vbmUpOgorICAgICAgICAgIiIiCisg ICAgICAgICBTZXQgb3IgZ2V0IHRoZSBjb2VmZmljaWVudCBvZiBhIHZhcmlhYmxlIGluIHRoZSBv YmplY3RpdmUKKyAgICAgICAgIGZ1bmN0aW9uCitAQCAtMjIwLDcgKzIyMCw3IEBAIGNkZWYgY2xh c3MgTWF0cml4U0RQQmFja2VuZChHZW5lcmljU0RQQmFja2VuZCk6CisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIHJldHVybiBzZWxmLm9iamVjdGl2ZV9mdW5jdGlvblt2YXJpYWJsZV0KKyAK Ky0gICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkPTAuMCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZD0wLjApOgor ICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BA IC0yNDUsNyArMjQ1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhTRFBCYWNrZW5kKEdlbmVyaWNTRFBC YWNrZW5kKToKKyAgICAgICAgICAgICBzZWxmLm9iamVjdGl2ZV9mdW5jdGlvbltpXSA9IGNvZWZm W2ldCisgICAgICAgICBvYmpfY29uc3RhbnRfdGVybSA9IGQKKyAKKy0gICAgY3BkZWYgYWRkX2xp bmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbmFtZT1Ob25lKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbmFt ZT1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGEgbGluZWFyIGNvbnN0cmFpbnQu CisgCitAQCAtMjkyLDcgKzI5Miw3IEBAIGNkZWYgY2xhc3MgTWF0cml4U0RQQmFja2VuZChHZW5l cmljU0RQQmFja2VuZCk6CisgICAgICAgICBzZWxmLm1hdHJpY2VzX2RpbVtzZWxmLm5yb3dzKCld ID0gbS5kaW1lbnNpb25zKClbMF0gIworICAgICAgICAgc2VsZi5yb3dfbmFtZV92YXIuYXBwZW5k KG5hbWUpCisgCistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMoc2VsZiwgaW50IG51 bWJlciwgbmFtZXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3Ry YWludHMoc2VsZiwgaW50IG51bWJlciwgbmFtZXM9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEFkZCBjb25zdHJhaW50cy4KKyAKK0BAIC0zNzMsNyArMzczLDcgQEAgY2RlZiBjbGFzcyBN YXRyaXhTRFBCYWNrZW5kKEdlbmVyaWNTRFBCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9 Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBwcm9ibGVtJ3Mg bmFtZQorIAorQEAgLTM5Niw3ICszOTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeFNEUEJhY2tlbmQo R2VuZXJpY1NEUEJhY2tlbmQpOgorICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorIAorIAorLSAg ICBjcGRlZiByb3coc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3coc2VsZiwg aW50IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSByb3cKKyAKK0BAIC00MzYs NyArNDM2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhTRFBCYWNrZW5kKEdlbmVyaWNTRFBCYWNrZW5k KToKKyAgICAgICAgICAgICAgICAgbWF0cmljZXMuYXBwZW5kKG0pCisgICAgICAgICByZXR1cm4g KGluZGljZXMsIG1hdHJpY2VzKQorIAorLSAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5k ZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCByb3cgbmFtZQorIAor QEAgLTQ1Nyw3ICs0NTcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeFNEUEJhY2tlbmQoR2VuZXJpY1NE UEJhY2tlbmQpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLnJvd19uYW1lX3ZhcltpbmRleF0K KyAgICAgICAgIHJldHVybiAiY29uc3RyYWludF8iICsgcmVwcihpbmRleCkKKyAKKy0gICAgY3Bk ZWYgY29sX25hbWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX25h bWUoc2VsZiwgaW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBg YGluZGV4YGAgdGggY29sIG5hbWUKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwv YmFja2VuZHMvcHBsX2JhY2tlbmQucHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL3Bw bF9iYWNrZW5kLnB5eAoraW5kZXggOGJmMThkNzAwNGIuLjcyNWNlYmQ0YzNhIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL3BwbF9iYWNrZW5kLnB5eAorKysrIGIvc3Jj L3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL3BwbF9iYWNrZW5kLnB5eAorQEAgLTkxLDE0ICs5MSwx NCBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICBzZWxmLnNldF9zZW5zZSgtMSkKKyAKKy0gICAgY3BkZWYgYmFzZV9y aW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAg ICBmcm9tIHNhZ2UucmluZ3MucmF0aW9uYWxfZmllbGQgaW1wb3J0IFFRCisgICAgICAgICByZXR1 cm4gUVEKKyAKKy0gICAgY3BkZWYgemVybyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgemVy byhzZWxmKToKKyAgICAgICAgIHJldHVybiBzZWxmLmJhc2VfcmluZygpKDApCisgCistICAgIGNw ZGVmIF9fY29weV9fKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4KKyAKK0BAIC0z NzgsNyArMzc4LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgICAgICAgICAgc2VsZi5jb2xfbmFtZV92YXIuYXBwZW5kKE5vbmUpCisgICAgICAgICBy ZXR1cm4gbGVuKHNlbGYub2JqZWN0aXZlX2Z1bmN0aW9uKSAtIDEKKyAKKy0gICAgY3BkZWYgIHNl dF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgIHNldF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0 eXBlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSB0eXBlIG9mIGEgdmFyaWFibGUu CisgCitAQCAtNDMxLDcgKzQzMSw3IEBAIGNkZWYgY2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklu dmFsaWQgdmFyaWFibGUgdHlwZToge30iLmZvcm1hdCh2dHlwZSkpCisgCistICAgIGNwZGVmIHNl dF9zZW5zZShzZWxmLCBpbnQgc2Vuc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfc2Vuc2Uo c2VsZiwgaW50IHNlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBkaXJlY3Rp b24gKG1heGltaXphdGlvbi9taW5pbWl6YXRpb24pLgorIAorQEAgLTQ1Nyw3ICs0NTcsNyBAQCBj ZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICBzZWxmLmlzX21heGltaXplID0gMAorIAorLSAgICBjcGRlZiBvYmplY3RpdmVf Y29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9 Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBvciBnZXQgdGhlIGNvZWZmaWNpZW50 IG9mIGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZQorICAgICAgICAgZnVuY3Rpb24KK0BAIC00 ODUsNyArNDg1LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYub2JqZWN0aXZlX2Z1bmN0aW9u W3ZhcmlhYmxlXQorIAorLSAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYs IGQ9MCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2Vm ZiwgZD0wKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBvYmplY3RpdmUgZnVuY3Rp b24uCisgCitAQCAtNTI3LDcgKzUyNyw3IEBAIGNkZWYgY2xhc3MgUFBMQmFja2VuZChHZW5lcmlj QmFja2VuZCk6CisgICAgICAgICAgICAgc2VsZi5vYmplY3RpdmVfZnVuY3Rpb25baV0gPSBjb2Vm ZltpXQorICAgICAgICAgc2VsZi5vYmpfY29uc3RhbnRfdGVybSA9IFJhdGlvbmFsKGQpCisgCist ICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVsKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgc2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpOgorICAgICAgICAgIiIiCisgICAg ICAgICBTZXQgdGhlIGxvZyAodmVyYm9zaXR5KSBsZXZlbC4gTm90IEltcGxlbWVudGVkLgorIAor QEAgLTUzOCw3ICs1MzgsNyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQp OgorICAgICAgICAgICAgIHNhZ2U6IHAuc2V0X3ZlcmJvc2l0eSgwKQorICAgICAgICAgIiIiCisg CistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVudHMsIGxv d2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg YWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbG93ZXJfYm91bmQsIHVw cGVyX2JvdW5kLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgYSBsaW5l YXIgY29uc3RyYWludC4KKyAKK0BAIC01OTQsNyArNTk0LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNr ZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIHNlbGYucm93X3VwcGVyX2JvdW5kLmFwcGVu ZCh1cHBlcl9ib3VuZCkKKyAgICAgICAgIHNlbGYucm93X25hbWVfdmFyLmFwcGVuZChuYW1lKQor IAorLSAgICBjcGRlZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNvZWZmcykgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGFkZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKToKKyAgICAgICAgICIiIgor ICAgICAgICAgQWRkIGEgY29sdW1uLgorIAorQEAgLTYzOCw3ICs2MzgsNyBAQCBjZGVmIGNsYXNz IFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgc2VsZi5vYmplY3RpdmVfZnVu Y3Rpb24uYXBwZW5kKDApCisgICAgICAgICBzZWxmLmNvbF9uYW1lX3Zhci5hcHBlbmQoTm9uZSkK KyAKKy0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxmLCBpbnQgbnVtYmVyLCBs b3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWVzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRzKHNlbGYsIGludCBudW1iZXIsIGxvd2VyX2JvdW5kLCB1 cHBlcl9ib3VuZCwgbmFtZXM9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBjb25z dHJhaW50cy4KKyAKK0BAIC03MjgsNyArNzI4LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdl bmVyaWNCYWNrZW5kKToKKyAKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNwZGVmIGdldF9v YmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9vYmplY3RpdmVf dmFsdWUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZXhhY3QgdmFs dWUgb2YgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BAIC03NjMsNyArNzYzLDcgQEAgY2Rl ZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIGFucyA9IFJhdGlv bmFsKHNlbGYubWlwLm9wdGltYWxfdmFsdWUoKSkKKyAgICAgICAgIHJldHVybiBhbnMgLyBzZWxm Lm9ial9kZW5vbWluYXRvciArIHNlbGYub2JqX2NvbnN0YW50X3Rlcm0KKyAKKy0gICAgY3BkZWYg Z2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgZ2l2ZW4gYnkgdGhlIHNv bHZlci4KKyAKK0BAIC04NDMsNyArODQzLDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVy aWNCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIDAKKyAKKy0g ICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBwcm9ibGVtJ3MgbmFtZQorIAorQEAgLTg2NCw3ICs4NjQs NyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAg IHJldHVybiBzZWxmLm5hbWUKKyAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAKKy0gICAgY3Bk ZWYgcm93KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcm93KHNlbGYsIGludCBp KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgcm93CisgCitAQCAtODk5LDcgKzg5 OSw3IEBAIGNkZWYgY2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAg ICAgICAgIGNvZWYuYXBwZW5kKHNlbGYuTWF0cml4W2ldW2pdKQorICAgICAgICAgcmV0dXJuIChp ZHgsIGNvZWYpCisgCistICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIGNvbnN0cmFpbnQu CisgCitAQCAtOTI3LDcgKzkyNyw3IEBAIGNkZWYgY2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAoc2VsZi5yb3dfbG93ZXJfYm91 bmRbaW5kZXhdLCBzZWxmLnJvd191cHBlcl9ib3VuZFtpbmRleF0pCisgCistICAgIGNwZGVmIGNv bF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX2JvdW5k cyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJv dW5kcyBvZiBhIHNwZWNpZmljIHZhcmlhYmxlLgorIAorQEAgLTEwMTksNyArMTAxOSw3IEBAIGNk ZWYgY2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBpbmRleCBub3QgaW4gc2VsZi5pbnRlZ2VyX3ZhcmlhYmxlcworIAorLSAgICBj cGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3df bmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGBgaW5kZXhgYCB0aCByb3cgbmFtZQorIAorQEAgLTEwMzksNyArMTAzOSw3IEBAIGNkZWYgY2xh c3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYu cm93X25hbWVfdmFyW2luZGV4XQorICAgICAgICAgcmV0dXJuICJjb25zdHJhaW50XyIgKyByZXBy KGluZGV4KQorIAorLSAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCBjb2wgbmFtZQorIAorQEAgLTEwNjMsNyAr MTA2Myw3IEBAIGNkZWYgY2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuY29sX25hbWVfdmFyW2luZGV4XQorICAgICAgICAgcmV0dXJuICJ4 XyIgKyByZXByKGluZGV4KQorIAorLSAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxm LCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJpYWJs ZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSB1cHBlciBib3VuZCBvbiBhIHZhcmlh YmxlCisgCitAQCAtMTA5NSw3ICsxMDk1LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVy aWNCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29s X3VwcGVyX2JvdW5kW2luZGV4XQorIAorLSAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChz ZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJp YWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBsb3dlciBib3VuZCBvbiBhIHZh cmlhYmxlCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL3NjaXBf YmFja2VuZC5weGQgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvc2NpcF9iYWNrZW5kLnB4 ZAoraW5kZXggOTNmMWI4MWFiOTYuLjBjZDA2MDBmOTU1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bnVtZXJpY2FsL2JhY2tlbmRzL3NjaXBfYmFja2VuZC5weGQKKysrKyBiL3NyYy9zYWdlL251bWVy aWNhbC9iYWNrZW5kcy9zY2lwX2JhY2tlbmQucHhkCitAQCAtMTYsNiArMTYsNiBAQCBjZGVmIGNs YXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgY2RlZiBvYmplY3QgdmFyaWFi bGVzCisgICAgIGNkZWYgb2JqZWN0IGNvbnN0cmFpbnRzCisgCistICAgIGNwZGVmIF9nZXRfbW9k ZWwoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgZ2V0X3Jvd19wcmltKHNlbGYsIGludCBpKSBu b2V4Y2VwdAorLSAgICBjcGRlZiB3cml0ZV9jaXAoc2VsZiwgZmlsZW5hbWUpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIF9nZXRfbW9kZWwoc2VsZikKKysgICAgY3BkZWYgZ2V0X3Jvd19wcmltKHNlbGYs IGludCBpKQorKyAgICBjcGRlZiB3cml0ZV9jaXAoc2VsZiwgZmlsZW5hbWUpCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL3NjaXBfYmFja2VuZC5weXggYi9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvc2NpcF9iYWNrZW5kLnB5eAoraW5kZXggYmVjM2JkZTE2MGYu LmFkNTM2NTk4NTdiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL3Nj aXBfYmFja2VuZC5weXgKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9zY2lwX2Jh Y2tlbmQucHl4CitAQCAtODAsNyArODAsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVy aWNCYWNrZW5kKToKKyAgICAgICAgICAgICBzZWxmLmNvbnN0cmFpbnRzID0gc2VsZi5tb2RlbC5n ZXRDb25zcygpCisgICAgICAgICByZXR1cm4gc2VsZi5jb25zdHJhaW50cworIAorLSAgICBjcGRl ZiBfZ2V0X21vZGVsKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2V0X21vZGVsKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBHZXQgdGhlIG1vZGVsIGFzIGEgcHlzY2lwb3B0IE1v ZGVsLgorIAorQEAgLTE3Niw3ICsxNzYsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVy aWNCYWNrZW5kKToKKyAKKyAgICAgICAgIHJldHVybiBpbmRleAorIAorLSAgICBjcGRlZiBzZXRf dmFyaWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFibGUsIGludCB2dHlwZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIHNldF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBl KToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSB0eXBlIG9mIGEgdmFyaWFibGUKKyAK K0BAIC0yMDcsNyArMjA3LDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2Vu ZCk6CisgICAgICAgICB2dHlwZW5hbWVzID0gezE6ICdJJywgMDogJ0InLCAtMTogJ0MnfQorICAg ICAgICAgc2VsZi5tb2RlbC5jaGdWYXJUeXBlKHZhcj1zZWxmLnZhcmlhYmxlc1t2YXJpYWJsZV0s IHZ0eXBlPXZ0eXBlbmFtZXNbdnR5cGVdKQorIAorLSAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwg aW50IHNlbnNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5z ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgZGlyZWN0aW9uIChtYXhpbWl6YXRp b24vbWluaW1pemF0aW9uKS4KKyAKK0BAIC0yMzcsNyArMjM3LDcgQEAgY2RlZiBjbGFzcyBTQ0lQ QmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJh aXNlIEFzc2VydGlvbkVycm9yKCJzZW5zZSBtdXN0IGJlIGVpdGhlciAxIG9yIC0xIikKKyAKKy0g ICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9 Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG9iamVjdGl2ZV9jb2VmZmljaWVudChzZWxmLCBp bnQgdmFyaWFibGUsIGNvZWZmPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgb3Ig Z2V0IHRoZSBjb2VmZmljaWVudCBvZiBhIHZhcmlhYmxlIGluIHRoZSBvYmplY3RpdmUgZnVuY3Rp b24KKyAKK0BAIC0yNzAsNyArMjcwLDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmlj QmFja2VuZCk6CisgICAgICAgICAgICAgbGluZnVuID0gc3VtKFtlICogYyBmb3IgZSwgYyBpbiBv YmpleHByLnRlcm1zLml0ZXJpdGVtcygpIGlmIGUgIT0gdmFyXSkgKyB2YXIgKiBjb2VmZgorICAg ICAgICAgICAgIHNlbGYubW9kZWwuc2V0T2JqZWN0aXZlKGxpbmZ1biwgc2Vuc2U9c2VsZi5tb2Rl bC5nZXRPYmplY3RpdmVTZW5zZSgpKQorIAorLSAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwg bmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9 Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHByb2Js ZW0ncyBuYW1lCisgCitAQCAtMjkyLDcgKzI5Miw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQo R2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLm1vZGVs LnNldFByb2JOYW1lKG5hbWUpCisgCistICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlz dCBjb2VmZiwgZD0wLjApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYs IGxpc3QgY29lZmYsIGQ9MC4wKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBvYmpl Y3RpdmUgZnVuY3Rpb24uCisgCitAQCAtMzE4LDcgKzMxOCw3IEBAIGNkZWYgY2xhc3MgU0NJUEJh Y2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgbGluZnVuID0gc3VtKFtjICogeCBmb3Ig YywgeCBpbiB6aXAoY29lZmYsIHNlbGYudmFyaWFibGVzKV0pICsgZAorICAgICAgICAgc2VsZi5t b2RlbC5zZXRPYmplY3RpdmUobGluZnVuLCBzZW5zZT1zZWxmLm1vZGVsLmdldE9iamVjdGl2ZVNl bnNlKCkpCisgCistICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVsKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgc2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpOgorICAgICAg ICAgIiIiCisgICAgICAgICBTZXQgdGhlIHZlcmJvc2l0eSBsZXZlbAorIAorQEAgLTM0Niw3ICsz NDYsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ2xldmVsIG11c3QgYmUg IjAiIG9yICIxIicpCisgCistICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50KHNlbGYsIGludCBp KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnQoc2VsZiwgaW50IGkpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmVtb3ZlIGEgY29uc3RyYWludCBmcm9tIHNlbGYuCisg CitAQCAtMzg0LDcgKzM4NCw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tl bmQpOgorICAgICAgICAgc2VsZi5tb2RlbC5kZWxDb25zKHNlbGYuZ2V0X2NvbnN0cmFpbnRzKClb aV0pCisgICAgICAgICBzZWxmLmNvbnN0cmFpbnRzID0gTm9uZQorIAorLSAgICBjcGRlZiByZW1v dmVfY29uc3RyYWludHMoc2VsZiwgY29uc3RyYWludHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBy ZW1vdmVfY29uc3RyYWludHMoc2VsZiwgY29uc3RyYWludHMpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmVtb3ZlIHNldmVyYWwgY29uc3RyYWludHMuCisgCitAQCAtNDIwLDcgKzQyMCw3IEBA IGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgIHNl bGYubW9kZWwuZGVsQ29ucyhjb25zdHJhaW50KQorICAgICAgICAgc2VsZi5jb25zdHJhaW50cyA9 IE5vbmUKKyAKKy0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNp ZW50cywgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwgY29lZmZpY2llbnRzLCBsb3dlcl9i b3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFk ZCBhIGxpbmVhciBjb25zdHJhaW50LgorIAorQEAgLTQ2OCw3ICs0NjgsNyBAQCBjZGVmIGNsYXNz IFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIHNlbGYubW9kZWwuYWRkQ29u cyhjb25zLCBuYW1lPW5hbWUpCisgICAgICAgICBzZWxmLmNvbnN0cmFpbnRzID0gTm9uZQorIAor LSAgICBjcGRlZiByb3coc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcm93 KHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSByb3cK KyAKK0BAIC01MDUsNyArNTA1LDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CisgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChjb2VmZikKKyAgICAgICAgIHJldHVy biAoaW5kaWNlcywgdmFsdWVzKQorIAorLSAgICBjcGRlZiByb3dfYm91bmRzKHNlbGYsIGludCBp bmRleCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGluZGV4KToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBib3VuZHMgb2YgYSBzcGVjaWZpYyBj b25zdHJhaW50LgorIAorQEAgLTUzOCw3ICs1MzgsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5k KEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICByaHMgPSBOb25lCisgICAgICAgICByZXR1 cm4gKGxocywgcmhzKQorIAorLSAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYsIGludCBpbmRleCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBib3VuZHMgb2YgYSBzcGVjaWZpYyB2YXJpYWJs ZS4KKyAKK0BAIC01NzMsNyArNTczLDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmlj QmFja2VuZCk6CisgICAgICAgICAgICAgdWIgPSBOb25lCisgICAgICAgICByZXR1cm4gKGxiLCB1 YikKKyAKKy0gICAgY3BkZWYgYWRkX2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNvZWZmcyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEFkZCBhIGNvbHVtbi4KKyAKK0BAIC02OTksNyArNjk5LDcgQEAgY2RlZiBj bGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAjICAgICByYWlzZSBN SVBTb2x2ZXJFeGNlcHRpb24oIlNDSVA6IFRpbWUgbGltaXQgcmVhY2hlZCIpCisgICAgICAgICBy ZXR1cm4gMAorIAorLSAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitA QCAtNzI2LDcgKzcyNiw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5tb2RlbC5nZXRPYmpWYWwoKQor IAorLSAgICBjcGRlZiBiZXN0X2tub3duX29iamVjdGl2ZV9ib3VuZChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYmVzdF9rbm93bl9vYmplY3RpdmVfYm91bmQoc2VsZik6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50bHkgYmVzdCBrbm93 biBib3VuZC4KKyAKK0BAIC03NjAsNyArNzYwLDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChH ZW5lcmljQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm1vZGVs LmdldFByaW1hbGJvdW5kKCkKKyAKKy0gICAgY3BkZWYgZ2V0X3JlbGF0aXZlX29iamVjdGl2ZV9n YXAoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9yZWxhdGl2ZV9vYmplY3RpdmVfZ2Fw KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByZWxhdGl2ZSBvYmpl Y3RpdmUgZ2FwIG9mIHRoZSBiZXN0IGtub3duIHNvbHV0aW9uLgorIAorQEAgLTgwMyw3ICs4MDMs NyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwuZ2V0R2FwKCkKKyAKKy0gICAgY3BkZWYgZ2V0 X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgZ2l2ZW4gYnkgdGhlIHNvbHZl ci4KKyAKK0BAIC04MzAsNyArODMwLDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmlj QmFja2VuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm1vZGVsLmdldFZh bChzZWxmLnZhcmlhYmxlc1t2YXJpYWJsZV0pCisgCistICAgIGNwZGVmIGdldF9yb3dfcHJpbShz ZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9yb3dfcHJpbShzZWxmLCBpbnQg aSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBhdXhp bGlhcnkgdmFyaWFibGUgYXNzb2NpYXRlZCB3aXRoIGktdGggcm93LgorIAorQEAgLTkxNCw3ICs5 MTQsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZi5tb2RlbC5nZXROQ29uc3MoKQorICAgICAgICAgcmV0dXJuIGxlbihz ZWxmLmdldF9jb25zdHJhaW50cygpKQorIAorLSAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQg aW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYHRoIGNvbCBuYW1lCisg CitAQCAtOTMzLDcgKzkzMyw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tl bmQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi52YXJpYWJsZXNbaW5kZXhd Lm5hbWUKKyAKKy0gICAgY3BkZWYgcm93X25hbWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcm93X25hbWUoc2VsZiwgaW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBgYGluZGV4YGAgdGggcm93IG5hbWUKKyAKK0BAIC0xMDM1LDcgKzEw MzUsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwuZ2V0T2JqZWN0aXZlU2Vuc2UoKSAhPSAn bWluaW1pemUnCisgCistICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBp bmRleCwgdmFsdWU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9i b3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQorIAorQEAg LTEwOTYsNyArMTA5Niw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLm1vZGVsLmNoZ1ZhclViKHZhcj12 YXIsIHViPXZhbHVlKQorIAorLSAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBp bnQgaW5kZXgsIHZhbHVlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFyaWFibGVfbG93 ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIGxvd2VyIGJvdW5kIG9uIGEgdmFyaWFibGUKKyAK K0BAIC0xMTU4LDcgKzExNTgsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNr ZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5tb2RlbC5jaGdWYXJMYih2 YXI9dmFyLCBsYj12YWx1ZSkKKyAKKy0gICAgY3BkZWYgd3JpdGVfY2lwKHNlbGYsIGZpbGVuYW1l KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgd3JpdGVfY2lwKHNlbGYsIGZpbGVuYW1lKToKKyAgICAg ICAgICIiIgorICAgICAgICAgV3JpdGUgdGhlIHByb2JsZW0gdG8gYSAuY2lwIGZpbGUKKyAKK0BA IC0xMTgxLDcgKzExODEsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5k KToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5tb2RlbC53cml0ZVByb2JsZW0oZmlsZW5h bWUpCisgCistICAgIGNwZGVmIHdyaXRlX2xwKHNlbGYsIGZpbGVuYW1lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgd3JpdGVfbHAoc2VsZiwgZmlsZW5hbWUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBXcml0ZSB0aGUgcHJvYmxlbSB0byBhIC5scCBmaWxlCisgCitAQCAtMTIxMCw3ICsxMjEwLDcg QEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgCisgICAgICAgICBz ZWxmLm1vZGVsLndyaXRlUHJvYmxlbShmaWxlbmFtZXN0cikKKyAKKy0gICAgY3BkZWYgd3JpdGVf bXBzKHNlbGYsIGZpbGVuYW1lLCBpbnQgbW9kZXJuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgd3Jp dGVfbXBzKHNlbGYsIGZpbGVuYW1lLCBpbnQgbW9kZXJuKToKKyAgICAgICAgICIiIgorICAgICAg ICAgV3JpdGUgdGhlIHByb2JsZW0gdG8gYSAubXBzIGZpbGUKKyAKK0BAIC0xMjM5LDcgKzEyMzks NyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAKKyAgICAgICAg IHNlbGYubW9kZWwud3JpdGVQcm9ibGVtKGZpbGVuYW1lc3RyKQorIAorLSAgICBjcGRlZiBfX2Nv cHlfXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX19jb3B5X18oc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBhIGNvcHkgb2Ygc2VsZi4KKyAKK0BAIC0xMjYwLDcgKzEy NjAsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg IGNwLnZhcmlhYmxlcyA9IGNwLm1vZGVsLmdldFZhcnMoKQorICAgICAgICAgcmV0dXJuIGNwCisg CistICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWU9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWU9Tm9u ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgYSBzb2x2ZXIgcGFy YW1ldGVyCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlv bnMucHhkIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMucHhkCitpbmRleCA0 YWQ4MzZkOGQ2ZC4uNTY4ZjA0Yjc1YWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwv bGluZWFyX2Z1bmN0aW9ucy5weGQKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVu Y3Rpb25zLnB4ZAorQEAgLTEsMzAgKzEsMzAgQEAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLnBhcmVu dCBjaW1wb3J0IFBhcmVudCwgUGFyZW50X3JpY2hjbXBfZWxlbWVudF93aXRob3V0X2NvZXJjaW9u CisgZnJvbSBzYWdlLnN0cnVjdHVyZS5lbGVtZW50IGNpbXBvcnQgTW9kdWxlRWxlbWVudCwgUmlu Z0VsZW1lbnQsIEVsZW1lbnQKKyAKKy1jcGRlZiBpc19MaW5lYXJGdW5jdGlvbih4KSBub2V4Y2Vw dAorK2NwZGVmIGlzX0xpbmVhckZ1bmN0aW9uKHgpCisgCisgY2RlZiBjbGFzcyBMaW5lYXJGdW5j dGlvbk9yQ29uc3RyYWludChNb2R1bGVFbGVtZW50KToKKyAgICAgcGFzcworIAorIGNkZWYgY2xh c3MgTGluZWFyRnVuY3Rpb25zUGFyZW50X2NsYXNzKFBhcmVudCk6CistICAgIGNwZGVmIF9lbGVt ZW50X2NvbnN0cnVjdG9yXyhzZWxmLCB4KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY29lcmNlX21h cF9mcm9tXyhzZWxmLCBSKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfZWxlbWVudF9jb25zdHJ1Y3Rv cl8oc2VsZiwgeCkKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUikKKyAgICAg Y2RlZiBwdWJsaWMgX211bHRpcGxpY2F0aW9uX3N5bWJvbAorIAorIGNkZWYgY2xhc3MgTGluZWFy RnVuY3Rpb24oTGluZWFyRnVuY3Rpb25PckNvbnN0cmFpbnQpOgorICAgICBjZGVmIGRpY3QgX2YK Ky0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIGl0ZXJp dGVtcyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYWN0ZWRfdXBvbl8oc2VsZiwgeCwgYmlu dCBzZWxmX29uX2xlZnQpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX3plcm8oc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgZXF1YWxzKExpbmVhckZ1bmN0aW9uIGxlZnQsIExpbmVhckZ1bmN0aW9u IHJpZ2h0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3Bk ZWYgaXRlcml0ZW1zKHNlbGYpCisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCB4LCBiaW50 IHNlbGZfb25fbGVmdCkKKysgICAgY3BkZWYgaXNfemVybyhzZWxmKQorKyAgICBjcGRlZiBlcXVh bHMoTGluZWFyRnVuY3Rpb24gbGVmdCwgTGluZWFyRnVuY3Rpb24gcmlnaHQpCisgCisgY2RlZiBj bGFzcyBMaW5lYXJDb25zdHJhaW50c1BhcmVudF9jbGFzcyhQYXJlbnQpOgorICAgICBjZGVmIExp bmVhckZ1bmN0aW9uc1BhcmVudF9jbGFzcyBfTEYKKy0gICAgY3BkZWYgX2VsZW1lbnRfY29uc3Ry dWN0b3JfKHNlbGYsIGxlZnQsIHJpZ2h0PT8sIGVxdWFsaXR5PT8pIG5vZXhjZXB0CistICAgIGNw ZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFIpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9lbGVt ZW50X2NvbnN0cnVjdG9yXyhzZWxmLCBsZWZ0LCByaWdodD0/LCBlcXVhbGl0eT0/KQorKyAgICBj cGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBSKQorIAorIGNkZWYgY2xhc3MgTGluZWFyQ29u c3RyYWludChMaW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgIGNkZWYgYmludCBlcXVh bGl0eQorICAgICBjZGVmIGxpc3QgY29uc3RyYWludHMKKy0gICAgY3BkZWYgZXF1YWxzKExpbmVh ckNvbnN0cmFpbnQgbGVmdCwgTGluZWFyQ29uc3RyYWludCByaWdodCkgbm9leGNlcHQKKysgICAg Y3BkZWYgZXF1YWxzKExpbmVhckNvbnN0cmFpbnQgbGVmdCwgTGluZWFyQ29uc3RyYWludCByaWdo dCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX2Z1bmN0aW9ucy5weXgg Yi9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX2Z1bmN0aW9ucy5weXgKK2luZGV4IDIxYjFkODBl ZmFlLi45YzdlMTA3NDRmMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJf ZnVuY3Rpb25zLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMu cHl4CitAQCAtMTE0LDcgKzExNCw3IEBAIGZyb20gc2FnZS5taXNjLmNhY2hlZnVuYyBpbXBvcnQg Y2FjaGVkX2Z1bmN0aW9uCisgIworICMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIAorLWNwZGVmIGlz X0xpbmVhckZ1bmN0aW9uKHgpIG5vZXhjZXB0OgorK2NwZGVmIGlzX0xpbmVhckZ1bmN0aW9uKHgp OgorICAgICAiIiIKKyAgICAgVGVzdCB3aGV0aGVyIGBgeGBgIGlzIGEgbGluZWFyIGZ1bmN0aW9u CisgCitAQCAtNjYzLDcgKzY2Myw3IEBAIGNkZWYgY2xhc3MgTGluZWFyRnVuY3Rpb25zUGFyZW50 X2NsYXNzKFBhcmVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAnTGluZWFyIGZ1 bmN0aW9ucyBvdmVyICcgKyBzdHIoc2VsZi5iYXNlX3JpbmcoKSkKKyAKKy0gICAgY3BkZWYgX2Vs ZW1lbnRfY29uc3RydWN0b3JfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZWxlbWVu dF9jb25zdHJ1Y3Rvcl8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnN0cnVj dCBhIDpjbGFzczpgTGluZWFyRnVuY3Rpb25gIGZyb20gYGB4YGAuCisgCitAQCAtNjkzLDcgKzY5 Myw3IEBAIGNkZWYgY2xhc3MgTGluZWFyRnVuY3Rpb25zUGFyZW50X2NsYXNzKFBhcmVudCk6Cisg ICAgICAgICAgICAgcmV0dXJuIExpbmVhckZ1bmN0aW9uKHNlbGYsICg8TGluZWFyRnVuY3Rpb24+ eCkuX2YpCisgICAgICAgICByZXR1cm4gTGluZWFyRnVuY3Rpb24oc2VsZiwgeCkKKyAKKy0gICAg Y3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9j b2VyY2VfbWFwX2Zyb21fKHNlbGYsIFIpOgorICAgICAgICAgIiIiCisgICAgICAgICBBbGxvdyBj b2VyY2lvbiBvZiBzY2FsYXJzIGludG8gbGluZWFyIGZ1bmN0aW9ucy4KKyAKK0BAIC04MDIsNyAr ODAyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJGdW5jdGlvbihMaW5lYXJGdW5jdGlvbk9yQ29uc3Ry YWludCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYuX2YgPSB7LTE6IFIoZil9 CisgCistICAgIGNwZGVmIGl0ZXJpdGVtcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXRl cml0ZW1zKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBJdGVyYXRlIG92ZXIgdGhlIGlu ZGV4LCBjb2VmZmljaWVudCBwYWlycy4KKyAKK0BAIC05MDUsNyArOTA1LDcgQEAgY2RlZiBjbGFz cyBMaW5lYXJGdW5jdGlvbihMaW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgICAgICBl eGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkuYmFzZV9y aW5nKCkuemVybygpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIGIpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfYWRkXyhzZWxmLCBiKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERlZmluaW5n IHRoZSArIG9wZXJhdG9yCisgCitAQCAtOTIyLDcgKzkyMiw3IEBAIGNkZWYgY2xhc3MgTGluZWFy RnVuY3Rpb24oTGluZWFyRnVuY3Rpb25PckNvbnN0cmFpbnQpOgorICAgICAgICAgUCA9IHNlbGYu cGFyZW50KCkKKyAgICAgICAgIHJldHVybiBQKGUpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIERlZmluaW5nIHRoZSAtIG9wZXJhdG9yIChvcHBvc2l0ZSkuCisgCitAQCAtOTM2LDcgKzkz Niw3IEBAIGNkZWYgY2xhc3MgTGluZWFyRnVuY3Rpb24oTGluZWFyRnVuY3Rpb25PckNvbnN0cmFp bnQpOgorICAgICAgICAgUCA9IHNlbGYucGFyZW50KCkKKyAgICAgICAgIHJldHVybiBQKHtpZDog LWNvZWZmIGZvciBpZCwgY29lZmYgaW4gc2VsZi5fZi5pdGVyaXRlbXMoKX0pCisgCistICAgIGNw ZGVmIF9zdWJfKHNlbGYsIGIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBiKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIERlZmluaW5nIHRoZSAtIG9wZXJhdG9yIChzdWJ0cmFj dGlvbikuCisgCitAQCAtOTU1LDcgKzk1NSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyRnVuY3Rpb24o TGluZWFyRnVuY3Rpb25PckNvbnN0cmFpbnQpOgorICAgICAgICAgUCA9IHNlbGYucGFyZW50KCkK KyAgICAgICAgIHJldHVybiBQKGUpCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50 IGIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBiKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIE11bHRpcGxpY2F0aW9uIGJ5IHNjYWxhcnMKKyAKK0BAIC05NzEs NyArOTcxLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJGdW5jdGlvbihMaW5lYXJGdW5jdGlvbk9yQ29u c3RyYWludCk6CisgICAgICAgICBQID0gc2VsZi5wYXJlbnQoKQorICAgICAgICAgcmV0dXJuIFAo ZGljdChbKGlkLGIqY29lZmYpIGZvciAoaWQsIGNvZWZmKSBpbiBzZWxmLl9mLml0ZXJpdGVtcygp XSkpCisgCistICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVm dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCB4LCBiaW50IHNlbGZf b25fbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFjdCB3aXRoIHNjYWxhcnMgdGhhdCBk byBub3QgaGF2ZSBhIG5hdHVyYWwgY29lcmNpb24gaW50bworICAgICAgICAgYGBzZWxmLmJhc2Vf cmluZygpYGAKK0BAIC0xMTMwLDcgKzExMzAsNyBAQCBjZGVmIGNsYXNzIExpbmVhckZ1bmN0aW9u KExpbmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgcmV0dXJuIHQKKyAKKy0gICAgY3BkZWYgaXNfemVybyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgaXNfemVybyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCB3aGV0aGVy IGBgc2VsZmBgIGlzIHplcm8uCisgCitAQCAtMTE1MCw3ICsxMTUwLDcgQEAgY2RlZiBjbGFzcyBM aW5lYXJGdW5jdGlvbihMaW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgICAgICAgICAg ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgZXF1 YWxzKExpbmVhckZ1bmN0aW9uIGxlZnQsIExpbmVhckZ1bmN0aW9uIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgZXF1YWxzKExpbmVhckZ1bmN0aW9uIGxlZnQsIExpbmVhckZ1bmN0aW9uIHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTG9naWNhbGx5IGNvbXBhcmUgYGBsZWZ0YGAg YW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0xMjY3LDcgKzEyNjcsNyBAQCBjZGVmIGNsYXNzIExpbmVh ckNvbnN0cmFpbnRzUGFyZW50X2NsYXNzKFBhcmVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IHJldHVybiAnTGluZWFyIGNvbnN0cmFpbnRzIG92ZXIgJyArIHN0cihzZWxmLmxpbmVhcl9mdW5j dGlvbnNfcGFyZW50KCkuYmFzZV9yaW5nKCkpCisgCistICAgIGNwZGVmIF9lbGVtZW50X2NvbnN0 cnVjdG9yXyhzZWxmLCBsZWZ0LCByaWdodD1Ob25lLCBlcXVhbGl0eT1GYWxzZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9lbGVtZW50X2NvbnN0cnVjdG9yXyhzZWxmLCBsZWZ0LCByaWdodD1Ob25l LCBlcXVhbGl0eT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnN0cnVjdCBhIDpj bGFzczpgTGluZWFyQ29uc3RyYWludGAuCisgCitAQCAtMTMzMiw3ICsxMzMyLDcgQEAgY2RlZiBj bGFzcyBMaW5lYXJDb25zdHJhaW50c1BhcmVudF9jbGFzcyhQYXJlbnQpOgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByZXR1cm4gTGluZWFyQ29uc3RyYWludChzZWxmLCBbbGVmdCwgcmln aHRdLCBlcXVhbGl0eT1lcXVhbGl0eSkKKyAKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8o c2VsZiwgUikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFIp OgorICAgICAgICAgIiIiCisgICAgICAgICBBbGxvdyBjb2VyY2lvbiBvZiBzY2FsYXJzIGludG8g bGluZWFyIGZ1bmN0aW9ucy4KKyAKK0BAIC0xNDMyLDcgKzE0MzIsNyBAQCBjZGVmIGNsYXNzIExp bmVhckNvbnN0cmFpbnQoTGluZWFyRnVuY3Rpb25PckNvbnN0cmFpbnQpOgorICAgICAgICAgTEYg PSBwYXJlbnQubGluZWFyX2Z1bmN0aW9uc19wYXJlbnQoKQorICAgICAgICAgc2VsZi5jb25zdHJh aW50cyA9IFsgTEYodGVybSkgZm9yIHRlcm0gaW4gdGVybXMgXQorIAorLSAgICBjcGRlZiBlcXVh bHMoTGluZWFyQ29uc3RyYWludCBsZWZ0LCBMaW5lYXJDb25zdHJhaW50IHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgZXF1YWxzKExpbmVhckNvbnN0cmFpbnQgbGVmdCwgTGluZWFyQ29uc3Ry YWludCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgYGBsZWZ0YGAgYW5k IGBgcmlnaHRgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX3Rl bnNvcl9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfdGVuc29yX2VsZW1l bnQucHhkCitpbmRleCA1MjhmNThiOTkxYy4uMWNkODRkM2UzM2YgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9udW1lcmljYWwvbGluZWFyX3RlbnNvcl9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2Uv bnVtZXJpY2FsL2xpbmVhcl90ZW5zb3JfZWxlbWVudC5weGQKK0BAIC0yLDQgKzIsNCBAQCBmcm9t IHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBFbGVtZW50LCBNb2R1bGVFbGVtZW50Cisg CisgY2RlZiBjbGFzcyBMaW5lYXJUZW5zb3IoTW9kdWxlRWxlbWVudCk6CisgICAgIGNkZWYgZGlj dCBfZgorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgb3RoZXIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVh cl90ZW5zb3JfZWxlbWVudC5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX3RlbnNvcl9l bGVtZW50LnB5eAoraW5kZXggZTJjODg2MTk0NjkuLmM3N2FhMjkwZTIxIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl90ZW5zb3JfZWxlbWVudC5weXgKKysrKyBiL3NyYy9z YWdlL251bWVyaWNhbC9saW5lYXJfdGVuc29yX2VsZW1lbnQucHl4CitAQCAtMjYxLDcgKzI2MSw3 IEBAIGNkZWYgY2xhc3MgTGluZWFyVGVuc29yKE1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAg IHMgKz0gJ10nCisgICAgICAgICByZXR1cm4gcworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBi KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgYik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gc3VtLgorIAorQEAgLTI4NSw3ICsyODUsNyBAQCBjZGVmIGNsYXNzIExp bmVhclRlbnNvcihNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHNl bGYuX2YuZ2V0KGtleSwgMCkgKyBjb2VmZgorICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCko cmVzdWx0KQorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X25lZ18oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG5lZ2F0aXZl LgorIAorQEAgLTMwNSw3ICszMDUsNyBAQCBjZGVmIGNsYXNzIExpbmVhclRlbnNvcihNb2R1bGVF bGVtZW50KToKKyAgICAgICAgICAgICByZXN1bHRba2V5XSA9IC1jb2VmZgorICAgICAgICAgcmV0 dXJuIHNlbGYucGFyZW50KCkocmVzdWx0KQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBiKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgYik6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gZGlmZmVyZW5jZS4KKyAKK0BAIC0zMzEsNyArMzMxLDcgQEAgY2RlZiBjbGFz cyBMaW5lYXJUZW5zb3IoTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgcmVzdWx0W2tleV0g PSBzZWxmLl9mLmdldChrZXksIDApIC0gY29lZmYKKyAgICAgICAgIHJldHVybiBzZWxmLnBhcmVu dCgpKHJlc3VsdCkKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYikgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGIpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIG11bHRpcGxpY2F0aW9uIGJ5IHNjYWxhci4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9udW1lcmljYWwvbWlwLnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9taXAucHhk CitpbmRleCBlNzNjYzQwOGQwOS4uMTQyMjgyN2UxZTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9u dW1lcmljYWwvbWlwLnB4ZAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL21pcC5weGQKK0BAIC0y Niw3ICsyNiw3IEBAIGNkZWYgY2xhc3MgTWl4ZWRJbnRlZ2VyTGluZWFyUHJvZ3JhbShTYWdlT2Jq ZWN0KToKKyAgICAgY3BkZWYgaW50IG51bWJlcl9vZl92YXJpYWJsZXMoc2VsZikgbm9leGNlcHQK KyAgICAgY2RlZiBpbnQgX2NoZWNrX3JlZHVuZGFudAorICAgICBjZGVmIGxpc3QgX2NvbnN0cmFp bnRzCistICAgIGNwZGVmIHN1bShzZWxmLCBMKSBub2V4Y2VwdAorKyAgICBjcGRlZiBzdW0oc2Vs ZiwgTCkKKyAKKyAKKyBjZGVmIGNsYXNzIE1JUFZhcmlhYmxlKEZpbml0ZUZhbWlseSk6CitAQCAt MzUsNSArMzUsNSBAQCBjZGVmIGNsYXNzIE1JUFZhcmlhYmxlKEZpbml0ZUZhbWlseSk6CisgICAg IGNkZWYgc3RyIF9uYW1lCisgICAgIGNkZWYgb2JqZWN0IF9sb3dlcl9ib3VuZAorICAgICBjZGVm IG9iamVjdCBfdXBwZXJfYm91bmQKKy0gICAgY2RlZiBfbWF0cml4X3JtdWxfaW1wbChzZWxmLCBt KSBub2V4Y2VwdAorLSAgICBjZGVmIF9tYXRyaXhfbG11bF9pbXBsKHNlbGYsIG0pIG5vZXhjZXB0 CisrICAgIGNkZWYgX21hdHJpeF9ybXVsX2ltcGwoc2VsZiwgbSkKKysgICAgY2RlZiBfbWF0cml4 X2xtdWxfaW1wbChzZWxmLCBtKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9taXAu cHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL21pcC5weXgKK2luZGV4IDYyYTNlMTg2NDllLi4zNjhi OWU0YjBlMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9taXAucHl4CisrKysgYi9z cmMvc2FnZS9udW1lcmljYWwvbWlwLnB5eAorQEAgLTI4ODMsNyArMjg4Myw3IEBAIGNkZWYgY2xh c3MgTWl4ZWRJbnRlZ2VyTGluZWFyUHJvZ3JhbShTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgc2VsZi5fYmFja2VuZC5zb2x2ZXJfcGFyYW1ldGVyKG5hbWUsIHZhbHVl KQorIAorLSAgICBjcGRlZiBzdW0oc2VsZiwgTCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHN1bShz ZWxmLCBMKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEVmZmljaWVudGx5IGNvbXB1dGVzIHRo ZSBzdW0gb2YgYSBzZXF1ZW5jZSBvZgorICAgICAgICAgOmNsYXNzOmB+c2FnZS5udW1lcmljYWwu bGluZWFyX2Z1bmN0aW9ucy5MaW5lYXJGdW5jdGlvbmAgZWxlbWVudHMKK0BAIC0zNjY0LDcgKzM2 NjQsNyBAQCBjZGVmIGNsYXNzIE1JUFZhcmlhYmxlKEZpbml0ZUZhbWlseSk6CisgICAgICAgICAg ICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICAgICAgIHJldHVybiAoPE1JUFZh cmlhYmxlPiByaWdodCkuX21hdHJpeF9sbXVsX2ltcGwobGVmdCkKKyAKKy0gICAgY2RlZiBfbWF0 cml4X3JtdWxfaW1wbChzZWxmLCBtKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3JtdWxf aW1wbChzZWxmLCBtKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW1wbGVtZW50IHRoZSBhY3Rp b24gb2YgYSBtYXRyaXggbXVsdGlwbHlpbmcgZnJvbSB0aGUgcmlnaHQuCisgICAgICAgICAiIiIK K0BAIC0zNjc4LDcgKzM2NzgsNyBAQCBjZGVmIGNsYXNzIE1JUFZhcmlhYmxlKEZpbml0ZUZhbWls eSk6CisgICAgICAgICBUID0gc2VsZi5fcC5saW5lYXJfZnVuY3Rpb25zX3BhcmVudCgpLnRlbnNv cihWKQorICAgICAgICAgcmV0dXJuIFQocmVzdWx0KQorIAorLSAgICBjZGVmIF9tYXRyaXhfbG11 bF9pbXBsKHNlbGYsIG0pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tYXRyaXhfbG11bF9pbXBsKHNl bGYsIG0pOgorICAgICAgICAgIiIiCisgICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGlvbiBvZiBh IG1hdHJpeCBtdWx0aXBseWluZyBmcm9tIHRoZSBsZWZ0LgorICAgICAgICAgIiIiCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL3NkcC5weGQgYi9zcmMvc2FnZS9udW1lcmljYWwvc2Rw LnB4ZAoraW5kZXggNDc5NjRlZjE3ODkuLjYyOWU2YzgzZjk0IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbnVtZXJpY2FsL3NkcC5weGQKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9zZHAucHhkCitA QCAtMTYsOSArMTYsOSBAQCBjZGVmIGNsYXNzIFNlbWlkZWZpbml0ZVByb2dyYW0oU2FnZU9iamVj dCk6CisgICAgIGNwZGVmIGludCBudW1iZXJfb2ZfY29uc3RyYWludHMoc2VsZikgbm9leGNlcHQK KyAgICAgY3BkZWYgaW50IG51bWJlcl9vZl92YXJpYWJsZXMoc2VsZikgbm9leGNlcHQKKyAgICAg Y2RlZiBsaXN0IF9jb25zdHJhaW50cworLSAgICBjcGRlZiBzdW0oc2VsZiwgTCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPSopIG5vZXhjZXB0 CistICAgIGNwZGVmIHNsYWNrKHNlbGYsIGludCBpLCBzcGFyc2U9Kikgbm9leGNlcHQKKysgICAg Y3BkZWYgc3VtKHNlbGYsIEwpCisrICAgIGNwZGVmIGR1YWxfdmFyaWFibGUoc2VsZiwgaW50IGks IHNwYXJzZT0qKQorKyAgICBjcGRlZiBzbGFjayhzZWxmLCBpbnQgaSwgc3BhcnNlPSopCisgCisg CisgY2RlZiBjbGFzcyBTRFBWYXJpYWJsZShFbGVtZW50KToKK0BAIC0yNiw5ICsyNiw5IEBAIGNk ZWYgY2xhc3MgU0RQVmFyaWFibGUoRWxlbWVudCk6CisgICAgIGNkZWYgZGljdCBfZGljdAorICAg ICBjZGVmIHN0ciBfbmFtZQorICAgICBjZGVmIGJpbnQgX2hhc25hbWUKKy0gICAgY2RlZiBfbWF0 cml4X3JtdWxfaW1wbChzZWxmLCBtKSBub2V4Y2VwdAorLSAgICBjZGVmIF9tYXRyaXhfbG11bF9p bXBsKHNlbGYsIG0pIG5vZXhjZXB0CistICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCBtYXQs IGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdAorKyAgICBjZGVmIF9tYXRyaXhfcm11bF9pbXBs KHNlbGYsIG0pCisrICAgIGNkZWYgX21hdHJpeF9sbXVsX2ltcGwoc2VsZiwgbSkKKysgICAgY3Bk ZWYgX2FjdGVkX3Vwb25fKHNlbGYsIG1hdCwgYmludCBzZWxmX29uX2xlZnQpCisgCisgCisgY2Rl ZiBjbGFzcyBTRFBWYXJpYWJsZVBhcmVudChQYXJlbnQpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L251bWVyaWNhbC9zZHAucHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL3NkcC5weXgKK2luZGV4IDk3 YmE0ZWVmZjI2Li44NzAxZWQyMjE1MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9z ZHAucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvc2RwLnB5eAorQEAgLTk2MSw3ICs5NjEs NyBAQCBjZGVmIGNsYXNzIFNlbWlkZWZpbml0ZVByb2dyYW0oU2FnZU9iamVjdCk6CisgICAgICAg ICByZXR1cm4gc2VsZi5fYmFja2VuZC5nZXRfb2JqZWN0aXZlX3ZhbHVlKCkKKyAKKyAKKy0gICAg Y3BkZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNlKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNlKToKKyAg ICAgICAgICIiIgorICAgICAgICAgVGhlIGBpYC10aCBkdWFsIHZhcmlhYmxlLgorIAorQEAgLTEw MTMsNyArMTAxMyw3IEBAIGNkZWYgY2xhc3MgU2VtaWRlZmluaXRlUHJvZ3JhbShTYWdlT2JqZWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2JhY2tlbmQuZHVhbF92YXJp YWJsZShpLCBzcGFyc2U9c3BhcnNlKQorIAorLSAgICBjcGRlZiBzbGFjayhzZWxmLCBpbnQgaSwg c3BhcnNlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2xhY2soc2VsZiwgaW50IGksIHNw YXJzZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNsYWNrIG9mIHRoZSBgaWAtdGgg Y29uc3RyYWludAorIAorQEAgLTExMDksNyArMTEwOSw3IEBAIGNkZWYgY2xhc3MgU2VtaWRlZmlu aXRlUHJvZ3JhbShTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2Vs Zi5fYmFja2VuZC5zb2x2ZXJfcGFyYW1ldGVyKG5hbWUsIHZhbHVlKQorIAorLSAgICBjcGRlZiBz dW0oc2VsZiwgTCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHN1bShzZWxmLCBMKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIEVmZmljaWVudGx5IGNvbXB1dGVzIHRoZSBzdW0gb2YgYSBzZXF1ZW5j ZSBvZgorICAgICAgICAgOmNsYXNzOmB+c2FnZS5udW1lcmljYWwubGluZWFyX2Z1bmN0aW9ucy5M aW5lYXJGdW5jdGlvbmAgZWxlbWVudHMuCitAQCAtMTMzMiw3ICsxMzMyLDcgQEAgY2RlZiBjbGFz cyBTRFBWYXJpYWJsZShFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNl bGYuX2RpY3QudmFsdWVzKCkKKyAKKy0gICAgY2RlZiBfbWF0cml4X3JtdWxfaW1wbChzZWxmLCBt KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3JtdWxfaW1wbChzZWxmLCBtKToKKyAgICAg ICAgICIiIgorICAgICAgICAgSW1wbGVtZW50IHRoZSBhY3Rpb24gb2YgYSBtYXRyaXggbXVsdGlw bHlpbmcgZnJvbSB0aGUgcmlnaHQuCisgICAgICAgICAiIiIKK0BAIC0xMzQ2LDcgKzEzNDYsNyBA QCBjZGVmIGNsYXNzIFNEUFZhcmlhYmxlKEVsZW1lbnQpOgorICAgICAgICAgVCA9IHNlbGYuX3Au bGluZWFyX2Z1bmN0aW9uc19wYXJlbnQoKS50ZW5zb3IoVikKKyAgICAgICAgIHJldHVybiBUKHJl c3VsdCkKKyAKKy0gICAgY2RlZiBfbWF0cml4X2xtdWxfaW1wbChzZWxmLCBtKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfbWF0cml4X2xtdWxfaW1wbChzZWxmLCBtKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSW1wbGVtZW50IHRoZSBhY3Rpb24gb2YgYSBtYXRyaXggbXVsdGlwbHlpbmcgZnJvbSB0 aGUgbGVmdC4KKyAgICAgICAgICIiIgorQEAgLTEzNjAsNyArMTM2MCw3IEBAIGNkZWYgY2xhc3Mg U0RQVmFyaWFibGUoRWxlbWVudCk6CisgICAgICAgICBUID0gc2VsZi5fcC5saW5lYXJfZnVuY3Rp b25zX3BhcmVudCgpLnRlbnNvcihWKQorICAgICAgICAgcmV0dXJuIFQocmVzdWx0KQorIAorLSAg ICBjcGRlZiBfYWN0ZWRfdXBvbl8oc2VsZiwgbWF0LCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCBtYXQsIGJpbnQgc2VsZl9vbl9sZWZ0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWN0IHdpdGggbWF0cmljZXMgb24gU0RQVmFyaWFi bGVzLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Bsb3QvY29tcGxleF9wbG90LnB5eCBiL3Ny Yy9zYWdlL3Bsb3QvY29tcGxleF9wbG90LnB5eAoraW5kZXggMDFkODA2MGVhMDEuLmYxZjI2NzFh ODAzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcGxvdC9jb21wbGV4X3Bsb3QucHl4CisrKysgYi9z cmMvc2FnZS9wbG90L2NvbXBsZXhfcGxvdC5weXgKK0BAIC00NCw3ICs0NCw3IEBAIERFRkFVTFRf TE9HQVJJVEhNSUNfQ09OVE9VUl9CQVNFID0gMgorIERFRkFVTFRfTElORUFSX0NPTlRPVVJfQkFT RSA9IDEwCisgCisgCistY2RlZiBpbmxpbmUgQ29tcGxleERvdWJsZUVsZW1lbnQgbmV3X0NERl9l bGVtZW50KGRvdWJsZSB4LCBkb3VibGUgeSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgQ29tcGxl eERvdWJsZUVsZW1lbnQgbmV3X0NERl9lbGVtZW50KGRvdWJsZSB4LCBkb3VibGUgeSk6CisgICAg IHogPSA8Q29tcGxleERvdWJsZUVsZW1lbnQ+Q29tcGxleERvdWJsZUVsZW1lbnQuX19uZXdfXyhD b21wbGV4RG91YmxlRWxlbWVudCkKKyAgICAgR1NMX1NFVF9DT01QTEVYKCZ6Ll9jb21wbGV4LCB4 LCB5KQorICAgICByZXR1cm4gegorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Bsb3QvcGxvdDNkL2lt cGxpY2l0X3N1cmZhY2UucHl4IGIvc3JjL3NhZ2UvcGxvdC9wbG90M2QvaW1wbGljaXRfc3VyZmFj ZS5weXgKK2luZGV4IGY1NzczYTYzZDA4Li5kZjI4ZjdjNmU2YiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3Bsb3QvcGxvdDNkL2ltcGxpY2l0X3N1cmZhY2UucHl4CisrKysgYi9zcmMvc2FnZS9wbG90 L3Bsb3QzZC9pbXBsaWNpdF9zdXJmYWNlLnB5eAorQEAgLTE1Myw3ICsxNTMsNyBAQCBjZGVmIGNs YXNzIFZlcnRleEluZm86CisgICAgICAgICByZXR1cm4gJzx7fSwge30sIHt9PicuZm9ybWF0KHNl bGYucHQueCwgc2VsZi5wdC55LCBzZWxmLnB0LnopCisgCisgCistY2RlZiBta19WZXJ0ZXhJbmZv KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIHBvaW50X2MgKmV2YWxfbWluLCBwb2ludF9j ICpldmFsX3NjYWxlKSBub2V4Y2VwdDoKKytjZGVmIG1rX1ZlcnRleEluZm8oZG91YmxlIHgsIGRv dWJsZSB5LCBkb3VibGUgeiwgcG9pbnRfYyAqZXZhbF9taW4sIHBvaW50X2MgKmV2YWxfc2NhbGUp OgorICAgICBjZGVmIFZlcnRleEluZm8gdgorICAgICB2ID0gVmVydGV4SW5mby5fX25ld19fKFZl cnRleEluZm8pCisgICAgIHYucHQueCA9IHgKK0BAIC00NTIsNyArNDUyLDcgQEAgY2RlZiBjbGFz cyBNYXJjaGluZ0N1YmVzVHJpYW5nbGVzKE1hcmNoaW5nQ3ViZXMpOgorIAorICAgICAgICAgICAg IHNlbGYucHJvY2Vzc19jdWJlcyhzZWxmLnNsaWNlc1swXSwgc2VsZi5zbGljZXNbMV0pCisgCist ICAgIGNwZGVmIF91cGRhdGVfeXpfdmVydGljZXMoc2VsZiwgaW50IHgsIG5wLm5kYXJyYXkgX3By ZXYsIG5wLm5kYXJyYXkgX2N1ciwgbnAubmRhcnJheSBfbmV4dCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF91cGRhdGVfeXpfdmVydGljZXMoc2VsZiwgaW50IHgsIG5wLm5kYXJyYXkgX3ByZXYsIG5w Lm5kYXJyYXkgX2N1ciwgbnAubmRhcnJheSBfbmV4dCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFRFU1RTOjoKKyAKK0BAIC01NjAsNyArNTYwLDcgQEAgY2RlZiBjbGFzcyBNYXJjaGluZ0N1YmVz VHJpYW5nbGVzKE1hcmNoaW5nQ3ViZXMpOgorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICAgel92ZXJ0aWNlc1t5LHpdID0gTm9uZQorIAorLSAgICBjcGRlZiBfdXBk YXRlX3hfdmVydGljZXMoc2VsZiwgaW50IHgsIG5wLm5kYXJyYXkgX3ByZXYsIG5wLm5kYXJyYXkg X2xlZnQsIG5wLm5kYXJyYXkgX3JpZ2h0LCBucC5uZGFycmF5IF9uZXh0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3VwZGF0ZV94X3ZlcnRpY2VzKHNlbGYsIGludCB4LCBucC5uZGFycmF5IF9wcmV2 LCBucC5uZGFycmF5IF9sZWZ0LCBucC5uZGFycmF5IF9yaWdodCwgbnAubmRhcnJheSBfbmV4dCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC02MzgsNyArNjM4LDcgQEAg Y2RlZiBjbGFzcyBNYXJjaGluZ0N1YmVzVHJpYW5nbGVzKE1hcmNoaW5nQ3ViZXMpOgorICAgICBj ZGVmIGJpbnQgaW5fcmVnaW9uKHNlbGYsIFZlcnRleEluZm8gdikgbm9leGNlcHQ6CisgICAgICAg ICByZXR1cm4gKHNlbGYucmVnaW9uKHYuZXZhbF9wdC54LCB2LmV2YWxfcHQueSwgdi5ldmFsX3B0 LnopID4gMCkKKyAKKy0gICAgY2RlZiBhcHBseV9wb2ludF9mdW5jKHNlbGYsIHBvaW50X2MgKnB0 LCBmbiwgVmVydGV4SW5mbyB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBhcHBseV9wb2ludF9mdW5j KHNlbGYsIHBvaW50X2MgKnB0LCBmbiwgVmVydGV4SW5mbyB2KToKKyAgICAgICAgIGlmIGlzaW5z dGFuY2UoZm4sIHR1cGxlKToKKyAgICAgICAgICAgICBwdFswXS54ID0gZm5bMF0odi5ldmFsX3B0 LngsIHYuZXZhbF9wdC55LCB2LmV2YWxfcHQueikKKyAgICAgICAgICAgICBwdFswXS55ID0gZm5b MV0odi5ldmFsX3B0LngsIHYuZXZhbF9wdC55LCB2LmV2YWxfcHQueikKK0BAIC02NDksNyArNjQ5 LDcgQEAgY2RlZiBjbGFzcyBNYXJjaGluZ0N1YmVzVHJpYW5nbGVzKE1hcmNoaW5nQ3ViZXMpOgor ICAgICAgICAgICAgIHB0WzBdLnkgPSB0WzFdCisgICAgICAgICAgICAgcHRbMF0ueiA9IHRbMl0K KyAKKy0gICAgY2RlZiBhcHBseV9jb2xvcl9mdW5jKHNlbGYsIGNvbG9yX2MgKnB0LCBmbiwgY20s IFZlcnRleEluZm8gdikgbm9leGNlcHQ6CisrICAgIGNkZWYgYXBwbHlfY29sb3JfZnVuYyhzZWxm LCBjb2xvcl9jICpwdCwgZm4sIGNtLCBWZXJ0ZXhJbmZvIHYpOgorICAgICAgICAgdCA9IGZuKHYu ZXZhbF9wdC54LCB2LmV2YWxfcHQueSwgdi5ldmFsX3B0LnopCisgICAgICAgICBwdFswXS5yLCBw dFswXS5nLCBwdFswXS5iLCBfID0gY20odCkKKyAKK0BAIC02NTksNyArNjU5LDcgQEAgY2RlZiBj bGFzcyBNYXJjaGluZ0N1YmVzVHJpYW5nbGVzKE1hcmNoaW5nQ3ViZXMpOgorICAgICAgICAgICAg ICAgICAgICAgICBkb3VibGUgY2VudGVyLAorICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUg bHgsIGRvdWJsZSB1eCwKKyAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGx5LCBkb3VibGUg dXksCistICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBseiwgZG91YmxlIHV6KSBub2V4Y2Vw dDoKKysgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGx6LCBkb3VibGUgdXopOgorICAgICAg ICAgIyBXaGF0IGEgbWVzcyEgIEl0IHdvdWxkIGJlIG11Y2ggbmljZXItbG9va2luZyBjb2RlIHRv IHBhc3Mgc2xpY2VzCisgICAgICAgICAjIGluIGhlcmUgYW5kIGRvIHRoZSBzdWJzY3JpcHRpbmcg aW4gaGVyZS4gIFVuZm9ydHVuYXRlbHksCisgICAgICAgICAjIHRoYXQgd291bGQgYWxzbyBiZSBt dWNoIHNsb3dlciwgYmVjYXVzZSB3ZSdkIGhhdmUgdG8gcmUtaW5pdGlhbGl6ZQorQEAgLTY4NCw3 ICs2ODQsNyBAQCBjZGVmIGNsYXNzIE1hcmNoaW5nQ3ViZXNUcmlhbmdsZXMoTWFyY2hpbmdDdWJl cyk6CisgICAgICAgICBnWzBdLnkgPSBneQorICAgICAgICAgZ1swXS56ID0gZ3oKKyAKKy0gICAg Y3BkZWYgcHJvY2Vzc19jdWJlcyhzZWxmLCBucC5uZGFycmF5IF9sZWZ0LCBucC5uZGFycmF5IF9y aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHByb2Nlc3NfY3ViZXMoc2VsZiwgbnAubmRhcnJh eSBfbGVmdCwgbnAubmRhcnJheSBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNU Uzo6CisgCitAQCAtNzg4LDcgKzc4OCw3IEBAIGNkZWYgY2xhc3MgTWFyY2hpbmdDdWJlc1RyaWFu Z2xlcyhNYXJjaGluZ0N1YmVzKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFsbF92ZXJ0ZXhfaW5mb1tteV90cmlhbmdsZXNbaSsxXV0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhbGxfdmVydGV4X2luZm9bbXlfdHJpYW5nbGVzW2krMl1d KQorIAorLSAgICBjcGRlZiBhZGRfdHJpYW5nbGUoc2VsZiwgVmVydGV4SW5mbyB2MSwgVmVydGV4 SW5mbyB2MiwgVmVydGV4SW5mbyB2Mykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF90cmlhbmds ZShzZWxmLCBWZXJ0ZXhJbmZvIHYxLCBWZXJ0ZXhJbmZvIHYyLCBWZXJ0ZXhJbmZvIHYzKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ2FsbGVkIHdoZW4gYSBuZXcgdHJpYW5nbGUgaXMgZ2VuZXJh dGVkIGJ5IHRoZSBtYXJjaGluZyBjdWJlcyBhbGdvcml0aG0KKyAgICAgICAgIHRvIHVwZGF0ZSB0 aGUgcmVzdWx0cyBhcnJheS4KK0BAIC04NDUsNyArODQ1LDcgQEAgY2RlZiBjbGFzcyBNYXJjaGlu Z0N1YmVzVHJpYW5nbGVzKE1hcmNoaW5nQ3ViZXMpOgorICAgICAgICAgc2VsZi5yZXN1bHRzLmFw cGVuZChmYWNlKQorIAorIAorLWNwZGVmIHJlbmRlcl9pbXBsaWNpdChmLCB4cmFuZ2UsIHlyYW5n ZSwgenJhbmdlLCBwbG90X3BvaW50cywgY3ViZV9tYXJjaGVycykgbm9leGNlcHQ6CisrY3BkZWYg cmVuZGVyX2ltcGxpY2l0KGYsIHhyYW5nZSwgeXJhbmdlLCB6cmFuZ2UsIHBsb3RfcG9pbnRzLCBj dWJlX21hcmNoZXJzKToKKyAgICAgIiIiCisgICAgIElOUFVUOgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3Bsb3QvcGxvdDNkL2luZGV4X2ZhY2Vfc2V0LnB5eCBiL3NyYy9zYWdlL3Bsb3QvcGxv dDNkL2luZGV4X2ZhY2Vfc2V0LnB5eAoraW5kZXggZGQ3YmZiMmQzOGEuLjQyODhkYjcwMDA1IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcGxvdC9wbG90M2QvaW5kZXhfZmFjZV9zZXQucHl4CisrKysg Yi9zcmMvc2FnZS9wbG90L3Bsb3QzZC9pbmRleF9mYWNlX3NldC5weXgKK0BAIC02OSw3ICs2OSw3 IEBAIGZyb20gc2FnZS5wbG90LnBsb3QzZC50cmFuc2Zvcm0gY2ltcG9ydCBUcmFuc2Zvcm1hdGlv bgorICMgRmFzdCByb3V0aW5lcyBmb3IgZ2VuZXJhdGluZyBzdHJpbmcgcmVwcmVzZW50YXRpb25z IG9mIHRoZSBwb2x5Z29ucy4KKyAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCistY2RlZiBpbmxpbmUgZm9ybWF0 X3RhY2h5b25fdGV4dHVyZShjb2xvcl9jIHJnYikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgZm9y bWF0X3RhY2h5b25fdGV4dHVyZShjb2xvcl9jIHJnYik6CisgICAgIGNkZWYgY2hhciByc1syMDBd CisgICAgIGNkZWYgUHlfc3NpemVfdCBjciA9IHNwcmludGZfM2QocnMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiVEVYVFVSRVxuIEFNQklFTlQgMC4zIERJRkZVU0UgMC43 IFNQRUNVTEFSIDAgT1BBQ0lUWSAxLjBcbiBDT0xPUiAlZyAlZyAlZyBcbiBURVhGVU5DIDAiLAor QEAgLTc3LDcgKzc3LDcgQEAgY2RlZiBpbmxpbmUgZm9ybWF0X3RhY2h5b25fdGV4dHVyZShjb2xv cl9jIHJnYikgbm9leGNlcHQ6CisgICAgIHJldHVybiBieXRlc190b19zdHIoUHlCeXRlc19Gcm9t U3RyaW5nQW5kU2l6ZShycywgY3IpKQorIAorIAorLWNkZWYgaW5saW5lIGZvcm1hdF90YWNoeW9u X3RyaWFuZ2xlKHBvaW50X2MgUCwgcG9pbnRfYyBRLCBwb2ludF9jIFIpIG5vZXhjZXB0OgorK2Nk ZWYgaW5saW5lIGZvcm1hdF90YWNoeW9uX3RyaWFuZ2xlKHBvaW50X2MgUCwgcG9pbnRfYyBRLCBw b2ludF9jIFIpOgorICAgICBjZGVmIGNoYXIgc3NbMjUwXQorICAgICAjIFB5Qnl0ZXNfRnJvbUZv cm1hdCBkb2Vzbid0IGRvIGZsb2F0cz8KKyAgICAgY2RlZiBQeV9zc2l6ZV90IHIgPSBzcHJpbnRm XzlkKHNzLAorQEAgLTg4LDIyICs4OCwyMiBAQCBjZGVmIGlubGluZSBmb3JtYXRfdGFjaHlvbl90 cmlhbmdsZShwb2ludF9jIFAsIHBvaW50X2MgUSwgcG9pbnRfYyBSKSBub2V4Y2VwdDoKKyAgICAg cmV0dXJuIGJ5dGVzX3RvX3N0cihQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKHNzLCByKSkKKyAK KyAKKy1jZGVmIGlubGluZSBmb3JtYXRfanNvbl92ZXJ0ZXgocG9pbnRfYyBQKSBub2V4Y2VwdDoK KytjZGVmIGlubGluZSBmb3JtYXRfanNvbl92ZXJ0ZXgocG9pbnRfYyBQKToKKyAgICAgY2RlZiBj aGFyIHNzWzEwMF0KKyAgICAgY2RlZiBQeV9zc2l6ZV90IHIgPSBzcHJpbnRmXzNkKHNzLCAneyJ4 IjolZywieSI6JWcsInoiOiVnfScsIFAueCwgUC55LCBQLnopCisgICAgIHJldHVybiBieXRlc190 b19zdHIoUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShzcywgcikpCisgCistY2RlZiBpbmxpbmUg Zm9ybWF0X2pzb25fZmFjZShmYWNlX2MgZmFjZSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgZm9y bWF0X2pzb25fZmFjZShmYWNlX2MgZmFjZSk6CisgICAgIHMgPSAiW3t9XSIuZm9ybWF0KCIsIi5q b2luKHN0cihmYWNlLnZlcnRpY2VzW2ldKSBmb3IgaSBpbiByYW5nZShmYWNlLm4pKSkKKyAgICAg cmV0dXJuIHMKKyAKKy1jZGVmIGlubGluZSBmb3JtYXRfb2JqX3ZlcnRleChwb2ludF9jIFApIG5v ZXhjZXB0OgorK2NkZWYgaW5saW5lIGZvcm1hdF9vYmpfdmVydGV4KHBvaW50X2MgUCk6CisgICAg IGNkZWYgY2hhciBzc1sxMDBdCisgICAgICMgUHlCeXRlc19Gcm9tRm9ybWF0IGRvZXNuJ3QgZG8g ZmxvYXRzPworICAgICBjZGVmIFB5X3NzaXplX3QgciA9IHNwcmludGZfM2Qoc3MsICJ2ICVnICVn ICVnIiwgUC54LCBQLnksIFAueikKKyAgICAgcmV0dXJuIGJ5dGVzX3RvX3N0cihQeUJ5dGVzX0Zy b21TdHJpbmdBbmRTaXplKHNzLCByKSkKKyAKKy1jZGVmIGlubGluZSBmb3JtYXRfb2JqX2ZhY2Uo ZmFjZV9jIGZhY2UsIGludCBvZmYpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGZvcm1hdF9vYmpf ZmFjZShmYWNlX2MgZmFjZSwgaW50IG9mZik6CisgICAgIGNkZWYgY2hhciBzc1sxMDBdCisgICAg IGNkZWYgUHlfc3NpemVfdCByLCBpCisgICAgIGlmIGZhY2UubiA9PSAzOgorQEAgLTExNSw3ICsx MTUsNyBAQCBjZGVmIGlubGluZSBmb3JtYXRfb2JqX2ZhY2UoZmFjZV9jIGZhY2UsIGludCBvZmYp IG5vZXhjZXB0OgorICAgICAjIFB5Qnl0ZXNfRnJvbUZvcm1hdCBpcyBhbG1vc3QgdHdpY2UgYXMg c2xvdworICAgICByZXR1cm4gYnl0ZXNfdG9fc3RyKFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUo c3MsIHIpKQorIAorLWNkZWYgaW5saW5lIGZvcm1hdF9vYmpfZmFjZV9iYWNrKGZhY2VfYyBmYWNl LCBpbnQgb2ZmKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBmb3JtYXRfb2JqX2ZhY2VfYmFjayhm YWNlX2MgZmFjZSwgaW50IG9mZik6CisgICAgIGNkZWYgY2hhciBzc1sxMDBdCisgICAgIGNkZWYg UHlfc3NpemVfdCByLCBpCisgICAgIGlmIGZhY2UubiA9PSAzOgorQEAgLTEyNiwxMyArMTI2LDEz IEBAIGNkZWYgaW5saW5lIGZvcm1hdF9vYmpfZmFjZV9iYWNrKGZhY2VfYyBmYWNlLCBpbnQgb2Zm KSBub2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiAiZiAiICsgIiAiLmpvaW4oc3RyKGZhY2UudmVy dGljZXNbaV0gKyBvZmYpIGZvciBpIGZyb20gZmFjZS5uID4gaSA+PSAwKQorICAgICByZXR1cm4g Ynl0ZXNfdG9fc3RyKFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoc3MsIHIpKQorIAorLWNkZWYg aW5saW5lIGZvcm1hdF9wbWVzaF92ZXJ0ZXgocG9pbnRfYyBQKSBub2V4Y2VwdDoKKytjZGVmIGlu bGluZSBmb3JtYXRfcG1lc2hfdmVydGV4KHBvaW50X2MgUCk6CisgICAgIGNkZWYgY2hhciBzc1sx MDBdCisgICAgICMgUHlCeXRlc19Gcm9tRm9ybWF0IGRvZXNuJ3QgZG8gZmxvYXRzPworICAgICBj ZGVmIFB5X3NzaXplX3QgciA9IHNwcmludGZfM2Qoc3MsICIlZyAlZyAlZyIsIFAueCwgUC55LCBQ LnopCisgICAgIHJldHVybiBieXRlc190b19zdHIoUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShz cywgcikpCisgCistY2RlZiBpbmxpbmUgZm9ybWF0X3BtZXNoX2ZhY2UoZmFjZV9jIGZhY2UsIGlu dCBoYXNfY29sb3IpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGZvcm1hdF9wbWVzaF9mYWNlKGZh Y2VfYyBmYWNlLCBpbnQgaGFzX2NvbG9yKToKKyAgICAgY2RlZiBjaGFyIHNzWzEwMF0KKyAgICAg Y2RlZiBQeV9zc2l6ZV90IHIsIGkKKyAgICAgY2RlZiBpbnQgY29sb3IKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9wbG90L3Bsb3QzZC90cmFuc2Zvcm0ucHhkIGIvc3JjL3NhZ2UvcGxvdC9wbG90M2Qv dHJhbnNmb3JtLnB4ZAoraW5kZXggODc2OTVmYzNkODcuLjM5ZmQyYmI2MzgxIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcGxvdC9wbG90M2QvdHJhbnNmb3JtLnB4ZAorKysrIGIvc3JjL3NhZ2UvcGxv dC9wbG90M2QvdHJhbnNmb3JtLnB4ZAorQEAgLTEzLDggKzEzLDggQEAgY2RlZiBjbGFzcyBUcmFu c2Zvcm1hdGlvbjoKKyAgICAgY2RlZiBtYXRyaXgKKyAgICAgY2RlZiBkb3VibGUgX21hdHJpeF9k YXRhWzEyXQorICAgICBjZGVmIG9iamVjdCBfc3ZkCistICAgIGNwZGVmIHRyYW5zZm9ybV9wb2lu dChzZWxmLCB4KSBub2V4Y2VwdAorLSAgICBjcGRlZiB0cmFuc2Zvcm1fdmVjdG9yKHNlbGYsIHYp IG5vZXhjZXB0CistICAgIGNwZGVmIHRyYW5zZm9ybV9ib3VuZGluZ19ib3goc2VsZiwgYm94KSBu b2V4Y2VwdAorKyAgICBjcGRlZiB0cmFuc2Zvcm1fcG9pbnQoc2VsZiwgeCkKKysgICAgY3BkZWYg dHJhbnNmb3JtX3ZlY3RvcihzZWxmLCB2KQorKyAgICBjcGRlZiB0cmFuc2Zvcm1fYm91bmRpbmdf Ym94KHNlbGYsIGJveCkKKyAgICAgY2RlZiB2b2lkIHRyYW5zZm9ybV9wb2ludF9jKHNlbGYsIHBv aW50X2MqIHJlcywgcG9pbnRfYyBQKSBub2V4Y2VwdAorICAgICBjZGVmIHZvaWQgdHJhbnNmb3Jt X3ZlY3Rvcl9jKHNlbGYsIHBvaW50X2MqIHJlcywgcG9pbnRfYyBQKSBub2V4Y2VwdAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3Bsb3QvcGxvdDNkL3RyYW5zZm9ybS5weXggYi9zcmMvc2FnZS9wbG90 L3Bsb3QzZC90cmFuc2Zvcm0ucHl4CitpbmRleCBiNmQ4YTJmNjQzYi4uYWQ5YWFlOTgyNzggMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9wbG90L3Bsb3QzZC90cmFuc2Zvcm0ucHl4CisrKysgYi9zcmMv c2FnZS9wbG90L3Bsb3QzZC90cmFuc2Zvcm0ucHl4CitAQCAtNzUsMTkgKzc1LDE5IEBAIGNkZWYg Y2xhc3MgVHJhbnNmb3JtYXRpb246CisgICAgICAgICBsZW5fYSA9IGEuZG90X3Byb2R1Y3QoYSkK KyAgICAgICAgIHJldHVybiBtYXgoW2FicyhsZW5fYSAtIGIuZG90X3Byb2R1Y3QoYikpIGZvciBi IGluIGJhc2lzXSkgPCBlcHMKKyAKKy0gICAgY3BkZWYgdHJhbnNmb3JtX3BvaW50KHNlbGYsIHgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiB0cmFuc2Zvcm1fcG9pbnQoc2VsZiwgeCk6CisgICAgICAg ICBjZGVmIHBvaW50X2MgcmVzLCBQCisgICAgICAgICBQLngsIFAueSwgUC56ID0geAorICAgICAg ICAgcG9pbnRfY190cmFuc2Zvcm0oJnJlcywgc2VsZi5fbWF0cml4X2RhdGEsIFApCisgICAgICAg ICByZXR1cm4gcmVzLngsIHJlcy55LCByZXMuegorIAorLSAgICBjcGRlZiB0cmFuc2Zvcm1fdmVj dG9yKHNlbGYsIHYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB0cmFuc2Zvcm1fdmVjdG9yKHNlbGYs IHYpOgorICAgICAgICAgY2RlZiBwb2ludF9jIHJlcywgUAorICAgICAgICAgUC54LCBQLnksIFAu eiA9IHYKKyAgICAgICAgIHBvaW50X2Nfc3RyZXRjaCgmcmVzLCBzZWxmLl9tYXRyaXhfZGF0YSwg UCkKKyAgICAgICAgIHJldHVybiByZXMueCwgcmVzLnksIHJlcy56CisgCistICAgIGNwZGVmIHRy YW5zZm9ybV9ib3VuZGluZ19ib3goc2VsZiwgYm94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdHJh bnNmb3JtX2JvdW5kaW5nX2JveChzZWxmLCBib3gpOgorICAgICAgICAgY2RlZiBwb2ludF9jIGxv d2VyLCB1cHBlciwgcmVzLCB0ZW1wCisgICAgICAgICBjZGVmIHBvaW50X2MgYm91bmRzWzJdCisg ICAgICAgICBib3VuZHNbMF0ueCwgYm91bmRzWzBdLnksIGJvdW5kc1swXS56ID0gYm94WzBdCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcXVhZHJhdGljX2Zvcm1zL2NvdW50X2xvY2FsXzIucHl4IGIv c3JjL3NhZ2UvcXVhZHJhdGljX2Zvcm1zL2NvdW50X2xvY2FsXzIucHl4CitpbmRleCA5YjdkM2Ux NTE3OC4uM2NlMDVhM2E0MTMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9xdWFkcmF0aWNfZm9ybXMv Y291bnRfbG9jYWxfMi5weXgKKysrKyBiL3NyYy9zYWdlL3F1YWRyYXRpY19mb3Jtcy9jb3VudF9s b2NhbF8yLnB5eAorQEAgLTg3LDcgKzg3LDcgQEAgZGVmIGNvdW50X21vZHBfX2J5X2dhdXNzX3N1 bShuLCBwLCBtLCBRZGV0KToKKyAgICAgcmV0dXJuIGNvdW50CisgCisgCistY2RlZiBDb3VudEFs bExvY2FsVHlwZXNOYWl2ZV9jZGVmKFEsIHAsIGssIG0sIHp2ZWMsIG56dmVjKSBub2V4Y2VwdDoK KytjZGVmIENvdW50QWxsTG9jYWxUeXBlc05haXZlX2NkZWYoUSwgcCwgaywgbSwgenZlYywgbnp2 ZWMpOgorICAgICAiIiIKKyAgICAgVGhpcyBDeXRob24gcm91dGluZSBpcyBkb2N1bWVudGVkIGlu IGl0cyBQeXRob24gd3JhcHBlciBtZXRob2QKKyAgICAgUXVhZHJhdGljRm9ybS5jb3VudF9jb25n cnVlbmNlX3NvbHV0aW9uc19ieV90eXBlKCkuCitAQCAtMTgxLDcgKzE4MSw3IEBAIGRlZiBDb3Vu dEFsbExvY2FsVHlwZXNOYWl2ZShRLCBwLCBrLCBtLCB6dmVjLCBuenZlYyk6CisgICAgIHJldHVy biBDb3VudEFsbExvY2FsVHlwZXNOYWl2ZV9jZGVmKFEsIHAsIGssIG0sIHp2ZWMsIG56dmVjKQor IAorIAorLWNkZWYgbG9jYWxfc29sdXRpb25fdHlwZV9jZGVmKFEsIHAsIHcsIHp2ZWMsIG56dmVj KSBub2V4Y2VwdDoKKytjZGVmIGxvY2FsX3NvbHV0aW9uX3R5cGVfY2RlZihRLCBwLCB3LCB6dmVj LCBuenZlYyk6CisgICAgICIiIgorICAgICBJbnRlcm5hbCByb3V0aW5lIHRvIGNoZWNrIGlmIGEg Z2l2ZW4gc29sdXRpb24gdmVjdG9yIGB3YCAob2YgYFEodykgPQorICAgICBtYCBtb2QgYHBea2Ap IGlzIG9mIGEgY2VydGFpbiBsb2NhbCB0eXBlIGFuZCBzYXRpc2ZpZXMgY2VydGFpbgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3F1YWRyYXRpY19mb3Jtcy9xdWFkcmF0aWNfZm9ybV9fZXZhbHVhdGUu cHl4IGIvc3JjL3NhZ2UvcXVhZHJhdGljX2Zvcm1zL3F1YWRyYXRpY19mb3JtX19ldmFsdWF0ZS5w eXgKK2luZGV4IDhhNWFlYWZkODMxLi45NWU4MmU2NjlkYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3F1YWRyYXRpY19mb3Jtcy9xdWFkcmF0aWNfZm9ybV9fZXZhbHVhdGUucHl4CisrKysgYi9zcmMv c2FnZS9xdWFkcmF0aWNfZm9ybXMvcXVhZHJhdGljX2Zvcm1fX2V2YWx1YXRlLnB5eAorQEAgLTQ0 LDcgKzQ0LDcgQEAgZGVmIFFGRXZhbHVhdGVWZWN0b3IoUSwgdik6CisgICAgIHJldHVybiBRRkV2 YWx1YXRlVmVjdG9yX2NkZWYoUSwgdikKKyAKKyAKKy1jZGVmIFFGRXZhbHVhdGVWZWN0b3JfY2Rl ZihRLCB2KSBub2V4Y2VwdDoKKytjZGVmIFFGRXZhbHVhdGVWZWN0b3JfY2RlZihRLCB2KToKKyAg ICAgciIiIgorICAgICBSb3V0aW5lIHRvIHF1aWNrbHkgZXZhbHVhdGUgYSBxdWFkcmF0aWMgZm9y bSBgUWAgb24gYSB2ZWN0b3IgYHZgLiAgU2VlCisgICAgIHRoZSBQeXRob24gd3JhcHBlciBmdW5j dGlvbiA6bWV0aDpgUUZFdmFsdWF0ZWAgYWJvdmUgZm9yIGRldGFpbHMuCitAQCAtMTExLDcgKzEx MSw3IEBAIGRlZiBRRkV2YWx1YXRlTWF0cml4KFEsIE0sIFEyKToKKyAgICAgcmV0dXJuIFFGRXZh bHVhdGVNYXRyaXhfY2RlZihRLCBNLCBRMikKKyAKKyAKKy1jZGVmIFFGRXZhbHVhdGVNYXRyaXhf Y2RlZihRLCBNLCBRMikgbm9leGNlcHQ6CisrY2RlZiBRRkV2YWx1YXRlTWF0cml4X2NkZWYoUSwg TSwgUTIpOgorICAgICByIiIiCisgICAgIFJvdXRpbmUgdG8gcXVpY2tseSBldmFsdWF0ZSBhIHF1 YWRyYXRpYyBmb3JtIGBRYCBvbiBhIG1hdHJpeCBgTWAuICBTZWUKKyAgICAgdGhlIFB5dGhvbiB3 cmFwcGVyIGZ1bmN0aW9uIDpmdW5jOmBRRkV2YWx1YXRlTWF0cml4YCBhYm92ZSBmb3IgZGV0YWls cy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhkIGIv c3JjL3NhZ2UvcXVpdmVycy9hbGdlYnJhX2VsZW1lbnRzLnB4ZAoraW5kZXggZTQ3Njk2MjcwZGEu LjNiZWI2OTkxNGQwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcXVpdmVycy9hbGdlYnJhX2VsZW1l bnRzLnB4ZAorKysrIGIvc3JjL3NhZ2UvcXVpdmVycy9hbGdlYnJhX2VsZW1lbnRzLnB4ZAorQEAg LTgzLDE0ICs4MywxNCBAQCBjZGVmIGNsYXNzIFBhdGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVu dCk6CisgICAgICMgZnVuY3Rpb25zLgorICAgICBjZGVmIHBhdGhfb3JkZXJfdCBjbXBfdGVybXMK KyAgICAgY2RlZiBsb25nIF9oYXNoCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorICAgICBj cGRlZiBzc2l6ZV90IGRlZ3JlZShzZWxmKSBleGNlcHQgLTIKKy0gICAgY3BkZWYgZGljdCBtb25v bWlhbF9jb2VmZmljaWVudHMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBjb2VmZmlj aWVudHMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBtb25vbWlhbHMoc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgbGlzdCBzdXBwb3J0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVm IGxpc3QgdGVybXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgb2JqZWN0IGNvZWZmaWNpZW50 KHNlbGYsIFF1aXZlclBhdGggUCkgbm9leGNlcHQKKy0gICAgY2RlZiBsaXN0IF9zb3J0ZWRfaXRl bXNfZm9yX3ByaW50aW5nKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgaW5saW5lIFBhdGhBbGdl YnJhRWxlbWVudCBfbmV3XyhzZWxmLCBwYXRoX2hvbW9nX3BvbHlfdCAqaCkgbm9leGNlcHQKKysg ICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZikKKysgICAgY3BkZWYgbGlz dCBjb2VmZmljaWVudHMoc2VsZikKKysgICAgY3BkZWYgbGlzdCBtb25vbWlhbHMoc2VsZikKKysg ICAgY3BkZWYgbGlzdCBzdXBwb3J0KHNlbGYpCisrICAgIGNwZGVmIGxpc3QgdGVybXMoc2VsZikK KysgICAgY3BkZWYgb2JqZWN0IGNvZWZmaWNpZW50KHNlbGYsIFF1aXZlclBhdGggUCkKKysgICAg Y2RlZiBsaXN0IF9zb3J0ZWRfaXRlbXNfZm9yX3ByaW50aW5nKHNlbGYpCisrICAgIGNkZWYgaW5s aW5lIFBhdGhBbGdlYnJhRWxlbWVudCBfbmV3XyhzZWxmLCBwYXRoX2hvbW9nX3BvbHlfdCAqaCkK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhpIGIvc3Jj L3NhZ2UvcXVpdmVycy9hbGdlYnJhX2VsZW1lbnRzLnB4aQoraW5kZXggN2I5YTk4ODNmMjguLjQ1 ZDE4NDc4ZjYwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcXVpdmVycy9hbGdlYnJhX2VsZW1lbnRz LnB4aQorKysrIGIvc3JjL3NhZ2UvcXVpdmVycy9hbGdlYnJhX2VsZW1lbnRzLnB4aQorQEAgLTg4 LDcgKzg4LDcgQEAgY2RlZiBpbmxpbmUgdm9pZCBtb25fZnJlZShwYXRoX21vbl90IE0pIG5vZXhj ZXB0OgorICAgICBiaXNlcV9kZWFsbG9jKE0ucGF0aCkKKyAKKyAjIExpbmVhcmlzYXRpb24KKy1j ZGVmIGlubGluZSB0dXBsZSBtb25fcGlja2xlKHBhdGhfbW9uX3QgTSkgbm9leGNlcHQ6CisrY2Rl ZiBpbmxpbmUgdHVwbGUgbW9uX3BpY2tsZShwYXRoX21vbl90IE0pOgorICAgICByZXR1cm4gKGJp dHNldF9waWNrbGUoTS5wYXRoLmRhdGEpIGlmIE0ucGF0aC5sZW5ndGg+MCBlbHNlICgpLAorICAg ICAgICAgICAgIE0ucGF0aC5pdGVtYml0c2l6ZSwgTS5wYXRoLmxlbmd0aCwgTS5wb3MsIE0ubF9s ZW4sIE0uc19sZW4pCisgCitAQCAtNDE5LDcgKzQxOSw3IEBAIGNkZWYgaW5saW5lIG1wX3NpemVf dCB0ZXJtX3RvdGFsX2RlZ3JlZShwYXRoX3Rlcm1fdCAqVCkgbm9leGNlcHQ6CisgICAgIHJldHVy biBULm1vbi5wYXRoLmxlbmd0aC1ULm1vbi5zX2xlbgorIAorICMgTGluZWFyaXNhdGlvbgorLWNk ZWYgaW5saW5lIHR1cGxlIHRlcm1fcGlja2xlKHBhdGhfdGVybV90ICpUKSBub2V4Y2VwdDoKKytj ZGVmIGlubGluZSB0dXBsZSB0ZXJtX3BpY2tsZShwYXRoX3Rlcm1fdCAqVCk6CisgICAgIHJldHVy biAoPG9iamVjdD5ULmNvZWYsIG1vbl9waWNrbGUoVC5tb24pKQorIAorICMgRGUtbGluZWFyaXNh dGlvbgorQEAgLTY4OSw3ICs2ODksNyBAQCBjZGVmIGJpbnQgcG9seV9pY29weV9zY2FsZShwYXRo X3BvbHlfdCAqb3V0LCBwYXRoX3BvbHlfdCAqUCwgb2JqZWN0IGNvZWYpIGV4Y2VwdAorICAgICBy ZXR1cm4gVHJ1ZQorIAorICMgTGluZWFyaXNhdGlvbiBvZiBhIHBhdGggcG9seW5vbWlhbHMKKy1j ZGVmIGxpc3QgcG9seV9waWNrbGUocGF0aF9wb2x5X3QgKlApIG5vZXhjZXB0OgorK2NkZWYgbGlz dCBwb2x5X3BpY2tsZShwYXRoX3BvbHlfdCAqUCk6CisgICAgIGNkZWYgbGlzdCBMID0gW10KKyAg ICAgY2RlZiBwYXRoX3Rlcm1fdCAqVCA9IFAubGVhZAorICAgICB3aGlsZSBUICE9IE5VTEw6CitA QCAtMTIzMiw3ICsxMjMyLDcgQEAgY2RlZiBwYXRoX2hvbW9nX3BvbHlfdCAqaG9tb2dfcG9seV9j b3B5KHBhdGhfaG9tb2dfcG9seV90ICpIKSBleGNlcHQgTlVMTDoKKyAgICAgcmV0dXJuIG91dAor IAorICMgTGluZWFyaXNhdGlvbgorLWNkZWYgbGlzdCBob21vZ19wb2x5X3BpY2tsZShwYXRoX2hv bW9nX3BvbHlfdCAqSCkgbm9leGNlcHQ6CisrY2RlZiBsaXN0IGhvbW9nX3BvbHlfcGlja2xlKHBh dGhfaG9tb2dfcG9seV90ICpIKToKKyAgICAgY2RlZiBsaXN0IEwgPSBbXQorICAgICB3aGlsZSBI ICE9IE5VTEw6CisgICAgICAgICBMLmFwcGVuZCgoSC5zdGFydCwgSC5lbmQsIHBvbHlfcGlja2xl KEgucG9seSkpKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3F1aXZlcnMvYWxnZWJyYV9lbGVtZW50 cy5weXggYi9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHl4CitpbmRleCA1NDkw NjcwMWQyNi4uM2QwNWJhN2UyNzAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2Vi cmFfZWxlbWVudHMucHl4CisrKysgYi9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMu cHl4CitAQCAtMjExLDcgKzIxMSw3IEBAIGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFFbGVtZW50KFJp bmdFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHBhdGhfYWxnZWJyYV9l bGVtZW50X3VucGlja2xlLCAoc2VsZi5fcGFyZW50LCBob21vZ19wb2x5X3BpY2tsZShzZWxmLmRh dGEpKQorIAorLSAgICBjZGVmIGxpc3QgX3NvcnRlZF9pdGVtc19mb3JfcHJpbnRpbmcoc2VsZikg bm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBfc29ydGVkX2l0ZW1zX2Zvcl9wcmludGluZyhzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGxpc3Qgb2YgcGFpcnMgYGAoTSxjKWBg LCB3aGVyZSBgYGNgYCBpcyBhIGNvZWZmaWNpZW50IGFuZCBgYE1gYAorICAgICAgICAgd2lsbCBi ZSBwYXNzZWQgdG8gYGBzZWxmLnBhcmVudCgpLl9yZXByX21vbm9taWFsYGAgcmVzcC4gdG8KK0BA IC00MDIsNyArNDAyLDcgQEAgY2RlZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1l bnQpOgorICAgICAgICAgICAgIEggPSBILm54dAorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0g ICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGRpY3Rpb25hcnkga2V5ZWQgYnkgdGhlIG1vbm9taWFscyBhcHBl YXJpbmcKKyAgICAgICAgIGluIHRoaXMgZWxlbWVudCwgdGhlIHZhbHVlcyBiZWluZyB0aGUgY29l ZmZpY2llbnRzLgorQEAgLTQ1MSw3ICs0NTEsNyBAQCBjZGVmIGNsYXNzIFBhdGhBbGdlYnJhRWxl bWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgSCA9IEgubnh0CisgICAgICAgICByZXR1 cm4gRAorIAorLSAgICBjcGRlZiBsaXN0IGNvZWZmaWNpZW50cyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbGlzdCBjb2VmZmljaWVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgbGlzdCBvZiBjb2VmZmljaWVudHMuCisgCitAQCAtNDg1LDcgKzQ4NSw3IEBA IGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAg ICBIID0gSC5ueHQKKyAgICAgICAgIHJldHVybiBMCisgCistICAgIGNwZGVmIGxpc3QgbW9ub21p YWxzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IG1vbm9taWFscyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIG1vbm9taWFscyBhcHBlYXJp bmcgaW4gdGhpcyBlbGVtZW50LgorIAorQEAgLTU0Nyw3ICs1NDcsNyBAQCBjZGVmIGNsYXNzIFBh dGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgSCA9IEgubnh0Cisg ICAgICAgICByZXR1cm4gTAorIAorLSAgICBjcGRlZiBsaXN0IHRlcm1zKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBsaXN0IHRlcm1zKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGxpc3Qgb2YgdGVybXMuCisgCitAQCAtNjAwLDcgKzYwMCw3IEBAIGNkZWYgY2xh c3MgUGF0aEFsZ2VicmFFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBIID0gSC5u eHQKKyAgICAgICAgIHJldHVybiBMCisgCistICAgIGNwZGVmIGxpc3Qgc3VwcG9ydChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBzdXBwb3J0KHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgbW9ub21pYWxzLCBhcyBlbGVtZW50cyBvZiB0aGUg dW5kZXJseWluZyBwYXJ0aWFsIHNlbWlncm91cC4KKyAKK0BAIC02ODUsNyArNjg1LDcgQEAgY2Rl ZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICAg ICByZXR1cm4gdG1wCisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ7fSBpcyBub3QgYSBzaW5n bGUgdGVybSIuZm9ybWF0KHNlbGYpKQorIAorLSAgICBjcGRlZiBvYmplY3QgY29lZmZpY2llbnQo c2VsZiwgUXVpdmVyUGF0aCBQKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0IGNvZWZmaWNp ZW50KHNlbGYsIFF1aXZlclBhdGggUCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgY29lZmZpY2llbnQgb2YgYSBtb25vbWlhbC4KKyAKK0BAIC03NzUsNyArNzc1LDcgQEAgY2Rl ZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICAg ICBUID0gVC5ueHQKKyAgICAgICAgICAgICBIID0gSC5ueHQKKyAKKy0gICAgY2RlZiBQYXRoQWxn ZWJyYUVsZW1lbnQgX25ld18oc2VsZiwgcGF0aF9ob21vZ19wb2x5X3QgKmgpIG5vZXhjZXB0Ogor KyAgICBjZGVmIFBhdGhBbGdlYnJhRWxlbWVudCBfbmV3XyhzZWxmLCBwYXRoX2hvbW9nX3BvbHlf dCAqaCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZSBhIG5ldyBwYXRoIGFsZ2VicmEg ZWxlbWVudCBmcm9tIEMgaW50ZXJmYWNlIGRhdGEuCisgICAgICAgICAiIiIKK0BAIC05NDEsNyAr OTQxLDcgQEAgY2RlZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAg ICAgICAgICAgIHNlbGYuX2hhc2ggPSBoYXNoKGZyb3plbnNldChzZWxmLm1vbm9taWFsX2NvZWZm aWNpZW50cygpLml0ZW1zKCkpKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2hhc2gKKyAKKy0gICAg Y3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEhlbHBlciBmb3IgY29tcGFyaXNvbiBvZiBwYXRoIGFsZ2VicmEgZWxlbWVudHMuCisgCitAQCAt OTk5LDcgKzk5OSw3IEBAIGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFFbGVtZW50KFJpbmdFbGVtZW50 KToKKyAgICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIDEpCisgCisgICAgICMgbmVnYXRp b24KKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTAxMyw3ICsx MDEzLDcgQEAgY2RlZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAg ICAgICAgcmV0dXJuIHNlbGYuX25ld18oaG9tb2dfcG9seV9uZWcoc2VsZi5kYXRhKSkKKyAKKyAg ICAgIyBhZGRpdGlvbgorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhB TVBMRVM6OgorIAorQEAgLTEwODksNyArMTA4OSw3IEBAIGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFF bGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgIEgxID0gSDEubnh0Cisg ICAgICAgICAgICAgICAgICAgICBIMiA9IEgyLm54dAorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxm LCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTExNzgsNyArMTE3OCw3IEBAIGNk ZWYgY2xhc3MgUGF0aEFsZ2VicmFFbGVtZW50KFJpbmdFbGVtZW50KToKKyAKKyAjIChzY2FsYXIp IG11bHRpcGxpY2F0aW9uCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTIwOCw3ICsxMjA4LDcgQEAg Y2RlZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfKG91dG54dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfKG91 dCkKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFWEFNUExFUzo6CisgCitAQCAtMTI3NSw3ICsxMjc1LDcgQEAgY2RlZiBjbGFzcyBQYXRo QWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorIAorICMgTXVsdGlwbGljYXRpb24gaW4gdGhl IGFsZ2VicmEKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC0xMzgxLDcgKzEzODEsNyBAQCBjZGVmIGNsYXNzIFBhdGhBbGdlYnJhRWxl bWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHRtcCA9IHRtcC5ueHQKKyAgICAg ICAgIHJldHVybiBzZWxmLl9uZXdfKG91dF9vcmlnKQorIAorLWNwZGVmIFBhdGhBbGdlYnJhRWxl bWVudCBwYXRoX2FsZ2VicmFfZWxlbWVudF91bnBpY2tsZShQLCBsaXN0IGRhdGEpIG5vZXhjZXB0 OgorK2NwZGVmIFBhdGhBbGdlYnJhRWxlbWVudCBwYXRoX2FsZ2VicmFfZWxlbWVudF91bnBpY2ts ZShQLCBsaXN0IGRhdGEpOgorICAgICAiIiIKKyAgICAgQXV4aWxpYXJ5IGZ1bmN0aW9uIGZvciB1 bnBpY2tsaW5nLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3F1aXZlcnMvcGF0aHMucHhkIGIv c3JjL3NhZ2UvcXVpdmVycy9wYXRocy5weGQKK2luZGV4IDg4YmZlOTJjYTBmLi41NzU3YmY2ZTIx OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3F1aXZlcnMvcGF0aHMucHhkCisrKysgYi9zcmMvc2Fn ZS9xdWl2ZXJzL3BhdGhzLnB4ZAorQEAgLTQsOSArNCw5IEBAIGZyb20gc2FnZS5kYXRhX3N0cnVj dHVyZXMuYm91bmRlZF9pbnRlZ2VyX3NlcXVlbmNlcyBjaW1wb3J0IGJpc2VxX3QKKyBjZGVmIGNs YXNzIFF1aXZlclBhdGgoTW9ub2lkRWxlbWVudCk6CisgICAgIGNkZWYgYmlzZXFfdCBfcGF0aAor ICAgICBjZGVmIGludCBfc3RhcnQsIF9lbmQKKy0gICAgY2RlZiBRdWl2ZXJQYXRoIF9uZXdfKHNl bGYsIGludCBzdGFydCwgaW50IGVuZCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwg b3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAor LSAgICBjcGRlZiB0dXBsZSBjb21wbGVtZW50KHNlbGYsIFF1aXZlclBhdGggc3VicGF0aCkgbm9l eGNlcHQKKysgICAgY2RlZiBRdWl2ZXJQYXRoIF9uZXdfKHNlbGYsIGludCBzdGFydCwgaW50IGVu ZCkKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tb2RfKHNlbGYs IHJpZ2h0KQorKyAgICBjcGRlZiB0dXBsZSBjb21wbGVtZW50KHNlbGYsIFF1aXZlclBhdGggc3Vi cGF0aCkKKyAgICAgY3BkZWYgYmludCBoYXNfc3VicGF0aChzZWxmLCBRdWl2ZXJQYXRoIHN1YnBh dGgpIGV4Y2VwdCAtMQorICAgICBjcGRlZiBiaW50IGhhc19wcmVmaXgoc2VsZiwgUXVpdmVyUGF0 aCBzdWJwYXRoKSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9xdWl2ZXJzL3BhdGhz LnB5eCBiL3NyYy9zYWdlL3F1aXZlcnMvcGF0aHMucHl4CitpbmRleCAxMmNkN2I0YWQxZS4uYWVh ZDk5NjcwYWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9xdWl2ZXJzL3BhdGhzLnB5eAorKysrIGIv c3JjL3NhZ2UvcXVpdmVycy9wYXRocy5weXgKK0BAIC0xMDksNyArMTA5LDcgQEAgY2RlZiBjbGFz cyBRdWl2ZXJQYXRoKE1vbm9pZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBiaXNl cV9kZWFsbG9jKHNlbGYuX3BhdGgpCisgCistICAgIGNkZWYgUXVpdmVyUGF0aCBfbmV3XyhzZWxm LCBpbnQgc3RhcnQsIGludCBlbmQpIG5vZXhjZXB0OgorKyAgICBjZGVmIFF1aXZlclBhdGggX25l d18oc2VsZiwgaW50IHN0YXJ0LCBpbnQgZW5kKToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVT VFM6OgorIAorQEAgLTI2MCw3ICsyNjAsNyBAQCBjZGVmIGNsYXNzIFF1aXZlclBhdGgoTW9ub2lk RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXRoLmxlbmd0 aCAhPSAwCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAg ICAgIiIiCisgICAgICAgICBDb21wYXJpc29uIGZvciA6Y2xhc3M6YFF1aXZlclBhdGhzYC4KKyAK K0BAIC00NjUsNyArNDY1LDcgQEAgY2RlZiBjbGFzcyBRdWl2ZXJQYXRoKE1vbm9pZEVsZW1lbnQp OgorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fcGF0aC5sZW5ndGgpOgorICAgICAgICAg ICAgIHlpZWxkIEVbYmlzZXFfZ2V0aXRlbShzZWxmLl9wYXRoLCBpKV0KKyAKKy0gICAgY3BkZWYg X211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhl cik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBvc2UgdHdvIHBhdGhzLgorIAorQEAgLTUw Myw3ICs1MDMsNyBAQCBjZGVmIGNsYXNzIFF1aXZlclBhdGgoTW9ub2lkRWxlbWVudCk6CisgICAg ICAgICBiaXNlcV9pbml0X2NvbmNhdChPVVQuX3BhdGgsIHNlbGYuX3BhdGgscmlnaHQuX3BhdGgp CisgICAgICAgICByZXR1cm4gT1VUCisgCistICAgIGNwZGVmIF9tb2RfKHNlbGYsIG90aGVyKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gd2hhdCByZW1haW5zIG9mIHRoaXMgcGF0aCBhZnRlciByZW1vdmluZyB0 aGUgaW5pdGlhbCBzZWdtZW50IGBgb3RoZXJgYC4KKyAKK0BAIC02MDYsNyArNjA2LDcgQEAgY2Rl ZiBjbGFzcyBRdWl2ZXJQYXRoKE1vbm9pZEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiAo Tm9uZSwgTm9uZSwgTm9uZSkKKyAgICAgICAgIHJldHVybiAoc2VsZls6aV0sIHNlbGZbaTpdLCBQ W3NlbGYuX3BhdGgubGVuZ3RoLWk6XSkKKyAKKy0gICAgY3BkZWYgdHVwbGUgY29tcGxlbWVudChz ZWxmLCBRdWl2ZXJQYXRoIHN1YnBhdGgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB0dXBsZSBjb21w bGVtZW50KHNlbGYsIFF1aXZlclBhdGggc3VicGF0aCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBhIHBhaXIgYGAoYSxiKWBgIG9mIHBhdGhzIHMudC4gYGBzZWxmID0gYSpzdWJwYXRo KmJgYCwKKyAgICAgICAgIG9yIGBgKE5vbmUsIE5vbmUpYGAgaWYgYGBzdWJwYXRoYGAgaXMgbm90 IGEgc3VicGF0aCBvZiB0aGlzIHBhdGguCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29t cGxleF9hcmIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHhkCitpbmRleCBkOTg1 NzQ1YzFmNS4uMDZkZDhlZTA4ZWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4 X2FyYi5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfYXJiLnB4ZAorQEAgLTE0LDE1 ICsxNCwxNSBAQCBjZGVmIGludCBhY2JfdG9fQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50KAor IAorIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgorICAgICBjZGVmIGFjYl90 IHZhbHVlCistICAgIGNkZWYgQ29tcGxleEJhbGwgX25ldyhzZWxmKSBub2V4Y2VwdAorLSAgICBj cGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwg b3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIENvbXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudCBf Y29tcGxleF9tcGZpXyhzZWxmLCBwYXJlbnQpIG5vZXhjZXB0CistICAgIGNwZGVmIFJlYWxCYWxs IHJlYWwoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgUmVhbEJhbGwgaW1hZyhzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBwb3coc2VsZiwgZXhwbywgYW5hbHl0aWM9Pykgbm9leGNlcHQKKysg ICAgY2RlZiBDb21wbGV4QmFsbCBfbmV3KHNlbGYpCisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90 aGVyKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgQ29tcGxleElu dGVydmFsRmllbGRFbGVtZW50IF9jb21wbGV4X21wZmlfKHNlbGYsIHBhcmVudCkKKysgICAgY3Bk ZWYgUmVhbEJhbGwgcmVhbChzZWxmKQorKyAgICBjcGRlZiBSZWFsQmFsbCBpbWFnKHNlbGYpCisr ICAgIGNwZGVmIHBvdyhzZWxmLCBleHBvLCBhbmFseXRpYz0/KQorIAorLSAgICBjZGVmIGlubGlu ZSBDb21wbGV4QmFsbCBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBDb21w bGV4QmFsbCBfbmV3KHNlbGYpOgorICAgICAgICAgY2RlZiBDb21wbGV4QmFsbCByZXMgPSBDb21w bGV4QmFsbC5fX25ld19fKENvbXBsZXhCYWxsKQorICAgICAgICAgcmVzLl9wYXJlbnQgPSBzZWxm Ll9wYXJlbnQKKyAgICAgICAgIHJldHVybiByZXMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9jb21wbGV4X2FyYi5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5weXgKK2luZGV4 IDQ2YzAxZGE0ZWI2Li4zZWQ3ZGU2NDA5YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Nv bXBsZXhfYXJiLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHl4CitAQCAt MTI5Myw3ICsxMjkzLDcgQEAgY2RlZiBiaW50IGFyYl9ndF9uZWdfb25lKGFyYl90IGIpIG5vZXhj ZXB0OgorICAgICBhcmJfY2xlYXIobmVnX29uZSkKKyAgICAgcmV0dXJuIHJlcworIAorLWNkZWYg aW5saW5lIHJlYWxfYmFsbF9maWVsZChDb21wbGV4QmFsbCBiYWxsKSBub2V4Y2VwdDoKKytjZGVm IGlubGluZSByZWFsX2JhbGxfZmllbGQoQ29tcGxleEJhbGwgYmFsbCk6CisgICAgIHJldHVybiBi YWxsLl9wYXJlbnQuX2Jhc2UKKyAKKyBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVtZW50 KToKK0BAIC0xNTQ2LDcgKzE1NDYsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVt ZW50KToKKyAKKyAgICAgIyBDb252ZXJzaW9ucworIAorLSAgICBjcGRlZiBDb21wbGV4SW50ZXJ2 YWxGaWVsZEVsZW1lbnQgX2NvbXBsZXhfbXBmaV8oc2VsZiwgcGFyZW50KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50IF9jb21wbGV4X21wZmlfKHNlbGYs IHBhcmVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiA6Y2xhc3M6YENvbXBsZXhJ bnRlcnZhbEZpZWxkRWxlbWVudGAgb2YgdGhlIHNhbWUgdmFsdWUuCisgCitAQCAtMTgwNSw3ICsx ODA1LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVudCk6CisgCisgICAgICMg UmVhbCBhbmQgaW1hZ2luYXJ5IHBhcnQsIG1pZHBvaW50LCByYWRpdXMKKyAKKy0gICAgY3BkZWYg UmVhbEJhbGwgcmVhbChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUmVhbEJhbGwgcmVhbChz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSByZWFsIHBhcnQgb2YgdGhp cyBiYWxsLgorIAorQEAgLTE4MjYsNyArMTgyNiw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwo UmluZ0VsZW1lbnQpOgorICAgICAgICAgYXJiX3NldChyLnZhbHVlLCBhY2JfcmVhbHJlZihzZWxm LnZhbHVlKSkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIFJlYWxCYWxsIGltYWco c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFJlYWxCYWxsIGltYWcoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW1hZ2luYXJ5IHBhcnQgb2YgdGhpcyBiYWxsLgor IAorQEAgLTIzMzEsNyArMjMzMSw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1l bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gYWNiX2lzX3JlYWwoc2VsZi52YWx1 ZSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIENvbXBhcmUgYGBsZWZ0YGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0yNjE4 LDcgKzI2MTgsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVtZW50KToKKyAgICAg ICAgIGFjYl9jb25qKHJlcy52YWx1ZSwgc2VsZi52YWx1ZSkKKyAgICAgICAgIHJldHVybiByZXMK KyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf YWRkXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3Vt IG9mIHR3byBiYWxscywgcm91bmRlZCB0byB0aGUgYW1iaWVudCBmaWVsZCdzIHByZWNpc2lvbi4K KyAKK0BAIC0yNjM2LDcgKzI2MzYsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVt ZW50KToKKyAgICAgICAgIGlmIF9kb19zaWcocHJlYyhzZWxmKSk6IHNpZ19vZmYoKQorICAgICAg ICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBkaWZmZXJlbmNlIG9mIHR3byBiYWxscywgcm91bmRlZCB0byB0aGUgYW1iaWVu dCBmaWVsZCdzCisgICAgICAgICBwcmVjaXNpb24uCitAQCAtMjY3Nyw3ICsyNjc3LDcgQEAgY2Rl ZiBjbGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVudCk6CisgICAgICAgICBpZiBfZG9fc2lnKHBy ZWMoc2VsZikpOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYg X211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhl cik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0d28gYmFs bHMsIHJvdW5kZWQgdG8gdGhlIGFtYmllbnQgZmllbGQncworICAgICAgICAgcHJlY2lzaW9uLgor QEAgLTI3NzcsNyArMjc3Nyw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQp OgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigidW5zdXBwb3J0ZWQgb3BlcmFuZCB0eXBl KHMpIGZvciA+PjogJ3t9JyBhbmQgJ3t9JyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LmZvcm1hdCh0eXBlKHZhbCkuX19uYW1lX18sIHR5cGUoc2hpZnQpLl9fbmFtZV9fKSkKKyAKKy0g ICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2Xyhz ZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQg b2YgdHdvIGJhbGxzLCByb3VuZGVkIHRvIHRoZSBhbWJpZW50IGZpZWxkJ3MKKyAgICAgICAgIHBy ZWNpc2lvbi4KK0BAIC0yODQ0LDcgKzI4NDQsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJp bmdFbGVtZW50KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNhZ2Uuc3Ry dWN0dXJlLmVsZW1lbnQuYmluX29wKGJhc2UsIGV4cG8sIG9wZXJhdG9yLnBvdykKKyAKKy0gICAg Y3BkZWYgcG93KHNlbGYsIGV4cG8sIGFuYWx5dGljPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgcG93KHNlbGYsIGV4cG8sIGFuYWx5dGljPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJhaXNlIHRoaXMgYmFsbCB0byB0aGUgcG93ZXIgb2YgYGBleHBvYGAuCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9jb252ZXJzaW9uLnB4ZCBiL3NyYy9zYWdlL3Jp bmdzL2NvbXBsZXhfY29udmVyc2lvbi5weGQKK2luZGV4IGQ2MTQ0OTc0ZjlhLi4yMDUzMDA1ZTM0 MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfY29udmVyc2lvbi5weGQKKysr KyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfY29udmVyc2lvbi5weGQKK0BAIC00LDQgKzQsNCBA QCBmcm9tIHNhZ2UuY2F0ZWdvcmllcy5tYXAgY2ltcG9ydCBNYXAKKyAKKyBjZGVmIGNsYXNzIEND dG9DREYoTWFwKToKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNl cHQKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X2NvbnZlcnNpb24ucHl4IGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxl eF9jb252ZXJzaW9uLnB5eAoraW5kZXggMzljOGI2M2ViNTUuLmQ2OTJlMjgwMWQ3IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9jb252ZXJzaW9uLnB5eAorKysrIGIvc3JjL3Nh Z2UvcmluZ3MvY29tcGxleF9jb252ZXJzaW9uLnB5eAorQEAgLTUsNyArNSw3IEBAIGZyb20gc2Fn ZS5saWJzLmdzbC5jb21wbGV4IGNpbXBvcnQgR1NMX1NFVF9DT01QTEVYCisgCisgY2RlZiBjbGFz cyBDQ3RvQ0RGKE1hcCk6CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorICAgICAgICAgICAgIHNhZ2U6IGZyb20gc2FnZS5yaW5n cy5jb21wbGV4X2NvbnZlcnNpb24gaW1wb3J0IENDdG9DREYKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9jb21wbGV4X2RvdWJsZS5weGQgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2RvdWJs ZS5weGQKK2luZGV4IGYyYWY0YmQ2N2I3Li43MzUyNTIwYzc2OSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL2NvbXBsZXhfZG91YmxlLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxl eF9kb3VibGUucHhkCitAQCAtMTAsMTAgKzEwLDEwIEBAIGNkZWYgY2xhc3MgQ29tcGxleERvdWJs ZUZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLkNvbXBsZXhEb3VibGVGaWVsZCk6CisgCisgY2Rl ZiBjbGFzcyBDb21wbGV4RG91YmxlRWxlbWVudChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxk RWxlbWVudCk6CisgICAgIGNkZWYgZ3NsX2NvbXBsZXggX2NvbXBsZXgKKy0gICAgY2RlZiBDb21w bGV4RG91YmxlRWxlbWVudCBfbmV3X2Moc2VsZiwgZ3NsX2NvbXBsZXggeCkgbm9leGNlcHQKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNl bGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikgbm9leGNl cHQKKysgICAgY2RlZiBDb21wbGV4RG91YmxlRWxlbWVudCBfbmV3X2Moc2VsZiwgZ3NsX2NvbXBs ZXggeCkKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNl bGYsIG90aGVyKQorKyAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikKKyAKKyAKKy1jZGVmIENv bXBsZXhEb3VibGVFbGVtZW50IG5ld19Db21wbGV4RG91YmxlRWxlbWVudCgpIG5vZXhjZXB0Cisr Y2RlZiBDb21wbGV4RG91YmxlRWxlbWVudCBuZXdfQ29tcGxleERvdWJsZUVsZW1lbnQoKQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfZG91YmxlLnB5eCBiL3NyYy9zYWdlL3Jp bmdzL2NvbXBsZXhfZG91YmxlLnB5eAoraW5kZXggYTE0ZDhhYzdlYzkuLjUyYjE4YTJhY2I3IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9kb3VibGUucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X2RvdWJsZS5weXgKK0BAIC0zNzYsNyArMzc2LDcgQEAgY2RlZiBj bGFzcyBDb21wbGV4RG91YmxlRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuQ29tcGxleERvdWJs ZUZpZWxkKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIENvbXBsZXhEb3Vi bGVFbGVtZW50KHgsIDApCisgCistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjYW5vbmljYWwgY29lcmNlIG9mIGB4YCBpbnRv IHRoZSBjb21wbGV4IGRvdWJsZSBmaWVsZCwgaWYKKyAgICAgICAgIGl0IGlzIGRlZmluZWQsIG90 aGVyd2lzZSByYWlzZSBhIGBgVHlwZUVycm9yYGAuCitAQCAtNjkwLDcgKzY5MCw3IEBAIGNkZWYg Y2xhc3MgQ29tcGxleERvdWJsZUZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLkNvbXBsZXhEb3Vi bGVGaWVsZCk6CisgICAgICAgICByZXR1cm4gRmFjdG9yaXphdGlvbihbKHggLSBhLCAxKSBmb3Ig YSBpbiByb290c10sIHVuaXQpCisgCisgCistY2RlZiBDb21wbGV4RG91YmxlRWxlbWVudCBuZXdf Q29tcGxleERvdWJsZUVsZW1lbnQoKSBub2V4Y2VwdDoKKytjZGVmIENvbXBsZXhEb3VibGVFbGVt ZW50IG5ld19Db21wbGV4RG91YmxlRWxlbWVudCgpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlcyBh IG5ldyAoZW1wdHkpIDpjbGFzczpgQ29tcGxleERvdWJsZUVsZW1lbnRgLgorICAgICAiIiIKK0BA IC03NjAsNyArNzYwLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4RG91YmxlRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgcmV0dXJuIChDb21wbGV4RG91YmxlRWxlbWVudCwKKyAgICAgICAg ICAgICAgICAgKEdTTF9SRUFMKHNlbGYuX2NvbXBsZXgpLCBHU0xfSU1BRyhzZWxmLl9jb21wbGV4 KSkpCisgCistICAgIGNkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgX25ld19jKHNlbGYsIGdzbF9j b21wbGV4IHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IF9uZXdf YyhzZWxmLCBnc2xfY29tcGxleCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQy1sZXZlbCBj b2RlIGZvciBjcmVhdGluZyBhIDpjbGFzczpgQ29tcGxleERvdWJsZUVsZW1lbnRgIGZyb20gYQor ICAgICAgICAgYGBnc2xfY29tcGxleGBgLgorQEAgLTc4NSw3ICs3ODUsNyBAQCBjZGVmIGNsYXNz IENvbXBsZXhEb3VibGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBoYXNoKGNvbXBsZXgoc2VsZikpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhs ZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQs IHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBXZSBvcmRlciB0aGUgY29t cGxleCBudW1iZXJzIGluIGRpY3Rpb25hcnkgb3JkZXIgYnkgcmVhbCBwYXJ0cyB0aGVuCisgICAg ICAgICBpbWFnaW5hcnkgcGFydHMuCitAQCAtMTE1Nyw3ICsxMTU3LDcgQEAgY2RlZiBjbGFzcyBD b21wbGV4RG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAjIEFyaXRobWV0aWMKKyAg ICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEFkZCBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTExNjksNyArMTE2OSw3IEBA IGNkZWYgY2xhc3MgQ29tcGxleERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyhnc2xfY29tcGxleF9hZGQoc2VsZi5fY29tcGxleCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxDb21wbGV4RG91YmxlRWxl bWVudD5yaWdodCkuX2NvbXBsZXgpKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgU3VidHJhY3QgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0xMTgxLDcg KzExODEsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhEb3VibGVFbGVtZW50KEZpZWxkRWxlbWVudCk6 CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoZ3NsX2NvbXBsZXhfc3ViKHNlbGYuX2NvbXBs ZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPENvbXBsZXhEb3VibGVFbGVt ZW50PnJpZ2h0KS5fY29tcGxleCkpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBNdWx0aXBseSBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTExOTMsNyAr MTE5Myw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToK KyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhnc2xfY29tcGxleF9tdWwoc2VsZi5fY29tcGxl eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICg8Q29tcGxleERvdWJsZUVsZW1lbnQ+cmlnaHQp Ll9jb21wbGV4KSkKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERp dmlkZSBgYHNlbGZgYCBieSBgYHJpZ2h0YGAuCisgCitAQCAtMTIyNyw3ICsxMjI3LDcgQEAgY2Rl ZiBjbGFzcyBDb21wbGV4RG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoZ3NsX2NvbXBsZXhfaW52ZXJzZShzZWxmLl9j b21wbGV4KSkKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVy bnMgdGhlIG5lZ2F0aXZlIG9mIHRoZSBjb21wbGV4IG51bWJlciBgemA6CisgCitAQCAtMTYxNCw3 ICsxNjE0LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4RG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5yZWFsKCkuaXNfTmFOKCkgb3Ig c2VsZi5pbWFnKCkuaXNfTmFOKCkKKyAKKy0gICAgY3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisg ICAgICAgICBUaGUgY29tcGxleCBudW1iZXIgYGBzZWxmYGAgcmFpc2VkIHRvIHRoZSBwb3dlciBg YG90aGVyYGAuCisgCitAQCAtMTY4MCw3ICsxNjgwLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4RG91 YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgeiA9IDxDb21wbGV4RG91YmxlRWxl bWVudD5vdGhlcgorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGdzbF9jb21wbGV4X3Bvdyhz ZWxmLl9jb21wbGV4LCB6Ll9jb21wbGV4KSkKKyAKKy0gICAgY2RlZiBfcG93X2xvbmcoc2VsZiwg bG9uZyBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3Bvd19sb25nKHNlbGYsIGxvbmcgb3Ro ZXIpOgorICAgICAgICAgaWYgb3RoZXIgPT0gMToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgor ICAgICAgICAgZWxpZiBvdGhlciA9PSAwOgorQEAgLTE2OTYsNyArMTY5Niw3IEBAIGNkZWYgY2xh c3MgQ29tcGxleERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICByZXMg PSBnc2xfY29tcGxleF9wb3dfcmVhbChzZWxmLl9jb21wbGV4LCBvdGhlcikKKyAgICAgICAgIHJl dHVybiBzZWxmLl9uZXdfYyhyZXMpCisgCistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG90aGVy KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgb3RoZXIpOgorICAgICAgICAg aWYgbm90IEdTTF9JTUFHKHNlbGYuX2NvbXBsZXgpOgorICAgICAgICAgICAgICMgSWYgc2VsZiBp cyByZWFsLCB0aGUgcmVzdWx0IHNob3VsZCBiZSByZWFsIHRvbworICAgICAgICAgICAgIHJlYWwg PSBHU0xfUkVBTChzZWxmLl9jb21wbGV4KSAqKiA8ZG91YmxlPm90aGVyCitAQCAtMjUxNCw3ICsy NTE0LDcgQEAgY2RlZiBjbGFzcyBGbG9hdFRvQ0RGKE1vcnBoaXNtKToKKyAgICAgICAgICAgICBS ID0gU2V0X1B5dGhvblR5cGUoUikKKyAgICAgICAgIE1vcnBoaXNtLl9faW5pdF9fKHNlbGYsIEhv bShSLCBDREYpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIENyZWF0ZSBhbiA6Y2xhc3M6YENvbXBsZXhEb3VibGVFbGVtZW50YC4KKyAKK0BAIC0y NTY1LDcgKzI1NjUsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhUb0NERihNb3JwaGlzbSk6CisgICAg ICAgICAgICAgUiA9IFNldF9QeXRob25UeXBlKFIpCisgICAgICAgICBNb3JwaGlzbS5fX2luaXRf XyhzZWxmLCBIb20oUiwgQ0RGKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg eCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAg ICAgIiIiCisgICAgICAgICBDcmVhdGUgYW4gOmNsYXNzOmBDb21wbGV4RG91YmxlRWxlbWVudGAu CisgCitAQCAtMjYyOSw3ICsyNjI5LDcgQEAgY2RlZiBpbmxpbmUgZG91YmxlIGNvbXBsZXggZXh0 cmFjdF9kb3VibGVfY29tcGxleChDb21wbGV4RG91YmxlRWxlbWVudCB4KSBub2V4Y2UKKyAgICAg cmV0dXJuIHoKKyAKKyAKKy1jZGVmIGlubGluZSBDb21wbGV4RG91YmxlRWxlbWVudCBDb21wbGV4 RG91YmxlRWxlbWVudF9mcm9tX2RvdWJsZXMoZG91YmxlIHJlLCBkb3VibGUgaW0pIG5vZXhjZXB0 OgorK2NkZWYgaW5saW5lIENvbXBsZXhEb3VibGVFbGVtZW50IENvbXBsZXhEb3VibGVFbGVtZW50 X2Zyb21fZG91Ymxlcyhkb3VibGUgcmUsIGRvdWJsZSBpbSk6CisgICAgICIiIgorICAgICBDcmVh dGUgYSBuZXcgOmNsYXNzOmBDb21wbGV4RG91YmxlRWxlbWVudGAgd2l0aCB0aGUgc3BlY2lmaWVk IHJlYWwgYW5kCisgICAgIGltYWdpbmFyeSBwYXJ0cy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9jb21wbGV4X2ludGVydmFsLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfaW50ZXJ2 YWwucHhkCitpbmRleCA2MGQ4YzAxMGNkOC4uZjVjNTlkZTRkN2EgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X2ludGVydmFsLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvY29t cGxleF9pbnRlcnZhbC5weGQKK0BAIC0xMSw3ICsxMSw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleElu dGVydmFsRmllbGRFbGVtZW50KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToK KyAgICAgY2RlZiBtcGZyX3ByZWNfdCBfcHJlYworICAgICBjZGVmIG9iamVjdCBfbXVsdGlwbGlj YXRpdmVfb3JkZXIKKyAKKy0gICAgY2RlZiBpbmxpbmUgQ29tcGxleEludGVydmFsRmllbGRFbGVt ZW50IF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIENvbXBsZXhJbnRlcnZh bEZpZWxkRWxlbWVudCBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBRdWlja2x5 IGNyZWF0ZSBhIG5ldyBjb21wbGV4IGludGVydmFsIHdpdGggdGhlIHNhbWUgcGFyZW50IGFzCisg ICAgICAgICBgYHNlbGZgYC4KK0BAIC0yMCw3ICsyMCw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleElu dGVydmFsRmllbGRFbGVtZW50KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToK KyAgICAgICAgIGNkZWYgb2JqZWN0IF9tdWx0aXBsaWNhdGl2ZV9vcmRlciA9IE5vbmUKKyAgICAg ICAgIHJldHVybiB0Ll9fbmV3X18odCwgc2VsZi5fcGFyZW50KQorIAorLSAgICBjZGVmIGlubGlu ZSBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgX25ld19yZWFsKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGlubGluZSBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgX25ld19yZWFsKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBRdWlja2x5IGNyZWF0ZSBhIG5ldyByZWFsIGludGVydmFs IHdpdGggdGhlIHNhbWUgcHJlY2lzaW9uIGFzCisgICAgICAgICBgYHNlbGZgYC4KK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2ludGVydmFsLnB5eCBiL3NyYy9zYWdlL3Jpbmdz L2NvbXBsZXhfaW50ZXJ2YWwucHl4CitpbmRleCAwMjM1ZWE1MmM2OS4uNzc4ODBhODlkN2QgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2ludGVydmFsLnB5eAorKysrIGIvc3Jj L3NhZ2UvcmluZ3MvY29tcGxleF9pbnRlcnZhbC5weXgKK0BAIC02ODEsNyArNjgxLDcgQEAgY2Rl ZiBjbGFzcyBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIG1wZmlfaGFzX3plcm8oc2VsZi5fX3JlKSBhbmQgbXBm aV9oYXNfemVybyhzZWxmLl9faW0pCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBBZGQgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC02OTUsNyArNjk1LDcg QEAgY2RlZiBjbGFzcyBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToK KyAgICAgICAgIG1wZmlfYWRkKHguX19pbSwgc2VsZi5fX2ltLCAoPENvbXBsZXhJbnRlcnZhbEZp ZWxkRWxlbWVudD5yaWdodCkuX19pbSkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVm IF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCBgYHNlbGZgYCBieSBgYHJpZ2h0 YGAuCisgCitAQCAtNzA5LDcgKzcwOSw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEludGVydmFsRmll bGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBtcGZpX3N1Yih4Ll9faW0sIHNlbGYu X19pbSwgKDxDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQ+cmlnaHQpLl9faW0pCisgICAgICAg ICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVs dGlwbHkgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC03NzksNyArNzc5LDcgQEAgY2Rl ZiBjbGFzcyBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAg ICAgIG1wZmlfY2xlYXIodCkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9kaXZf KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgYGBzZWxmYGAgYnkgYGByaWdodGBgLgorIAor QEAgLTE1MTIsNyArMTUxMiw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEludGVydmFsRmllbGRFbGVt ZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBib29sKHNl bGYucmVhbCgpKSBvciBib29sKHNlbGYuaW1hZygpKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8o bGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0 LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEFzIHdpdGggdGhlIHJl YWwgaW50ZXJ2YWwgZmllbGRzIHRoaXMgbmV2ZXIgcmV0dXJucyBmYWxzZSBwb3NpdGl2ZXMuCisg CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHhkIGIvc3JjL3NhZ2Uv cmluZ3MvY29tcGxleF9tcGMucHhkCitpbmRleCA2MGIzZTczOWY4My4uMWM2NTYxODU3OGIgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weGQKKysrKyBiL3NyYy9zYWdl L3JpbmdzL2NvbXBsZXhfbXBjLnB4ZAorQEAgLTYsOSArNiw5IEBAIGZyb20gc2FnZS5yaW5ncy5y aW5nIGNpbXBvcnQgRmllbGQKKyBjZGVmIGNsYXNzIE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVj dHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgIGNkZWYgbXBjX3QgdmFsdWUKKyAgICAg Y2RlZiBjaGFyIGluaXQKKy0gICAgY2RlZiBNUENvbXBsZXhOdW1iZXIgX25ldyhzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYg X211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNkZWYgTVBDb21wbGV4TnVtYmVyIF9u ZXcoc2VsZikKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxf KHNlbGYsIG90aGVyKQorIAorIGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3MoRmllbGQp OgorICAgICBjZGVmIHJlYWRvbmx5IGludCBfcHJlYworQEAgLTE2LDUgKzE2LDUgQEAgY2RlZiBj bGFzcyBNUENvbXBsZXhGaWVsZF9jbGFzcyhGaWVsZCk6CisgICAgIGNkZWYgb2JqZWN0IF9fcm5k X3N0cgorICAgICBjZGVmIG9iamVjdCBfX3JlYWxfZmllbGQKKyAgICAgY2RlZiBvYmplY3QgX19p bWFnX2ZpZWxkCistICAgIGNkZWYgTVBDb21wbGV4TnVtYmVyIF9uZXcoc2VsZikgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2FuX2VsZW1lbnRfKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgTVBDb21w bGV4TnVtYmVyIF9uZXcoc2VsZikKKysgICAgY3BkZWYgX2FuX2VsZW1lbnRfKHNlbGYpCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHl4IGIvc3JjL3NhZ2UvcmluZ3Mv Y29tcGxleF9tcGMucHl4CitpbmRleCA0NGYyNWZlZThjMi4uMjFkZTc4MTA2YzEgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L2NvbXBsZXhfbXBjLnB5eAorQEAgLTE0NCw3ICsxNDQsNyBAQCBjb21wbGV4X3RlbiA9ICcoP1A8 aW1fZmlyc3Q+KD9QPGltX2ZpcnN0X2ltX3NpZ24+JyArIHNpZ24gKyByJyk/XHMqKD9QPGltX2Zp cnN0XworICAgICByJyhccyooP1A8cmVfZmlyc3RfaW1fc2lnbj4nICsgc2lnbiArIHInKVxzKig/ UDxyZV9maXJzdF9pbV9hYnM+JyArIGltYWdpbmFyeV90ZW4gKyAnKSk/KScKKyByZV9jb21wbGV4 X3RlbiA9IHJlLmNvbXBpbGUocideXHMqKD86JyArIGNvbXBsZXhfdGVuICsgcicpXHMqJCcsIHJl LkkpCisgCistY3BkZWYgaW5saW5lIHNwbGl0X2NvbXBsZXhfc3RyaW5nKHN0cmluZywgaW50IGJh c2U9MTApIG5vZXhjZXB0OgorK2NwZGVmIGlubGluZSBzcGxpdF9jb21wbGV4X3N0cmluZyhzdHJp bmcsIGludCBiYXNlPTEwKToKKyAgICAgIiIiCisgICAgIFNwbGl0IGFuZCByZXR1cm4gaW4gdGhh dCBvcmRlciB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5IHBhcnRzCisgICAgIG9mIGEgY29tcGxleCBp biBhIHN0cmluZy4KK0BAIC0zMjIsNyArMzIyLDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhGaWVs ZF9jbGFzcyhGaWVsZCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9RmllbGRz KCkuSW5maW5pdGUoKSkKKyAgICAgICAgIHNlbGYuX3BvcHVsYXRlX2NvZXJjaW9uX2xpc3RzXyhj b2VyY2VfbGlzdD1bTVBGUnRvTVBDKHNlbGYuX3JlYWxfZmllbGQoKSwgc2VsZildKQorIAorLSAg ICBjZGVmIE1QQ29tcGxleE51bWJlciBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIE1Q Q29tcGxleE51bWJlciBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g YSBuZXcgY29tcGxleCBudW1iZXIgd2l0aCBwYXJlbnQgYGBzZWxmYC4KKyAgICAgICAgICIiIgor QEAgLTQzNiw3ICs0MzYsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKEZpZWxk KToKKyAgICAgICAgIHp6Ll9zZXQoeikKKyAgICAgICAgIHJldHVybiB6egorIAorLSAgICBjcGRl ZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJj ZV9tYXBfZnJvbV8oc2VsZiwgUyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENhbm9uaWNhbCBj b2VyY2lvbiBvZiBgemAgdG8gdGhpcyBtcGMgY29tcGxleCBmaWVsZC4KKyAKK0BAIC01MzgsNyAr NTM4LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhGaWVsZF9jbGFzcyhGaWVsZCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiAxCisgCistICAgIGNwZGVmIF9hbl9lbGVtZW50XyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FuX2VsZW1lbnRfKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gYW4gZWxlbWVudCBvZiB0aGlzIGNvbXBsZXggZmllbGQuCisgCitA QCAtNjk4LDcgKzY5OCw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0 dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgQSBmbG9hdGluZyBwb2ludCBhcHByb3hp bWF0aW9uIHRvIGEgY29tcGxleCBudW1iZXIgdXNpbmcgYW55IHNwZWNpZmllZAorICAgICBwcmVj aXNpb24gY29tbW9uIHRvIGJvdGggcmVhbCBhbmQgaW1hZ2luYXJ5IHBhcnQuCisgICAgICIiIgor LSAgICBjZGVmIE1QQ29tcGxleE51bWJlciBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVm IE1QQ29tcGxleE51bWJlciBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gYSBuZXcgY29tcGxleCBudW1iZXIgd2l0aCBzYW1lIHBhcmVudCBhcyBgYHNlbGZgYC4KKyAg ICAgICAgICIiIgorQEAgLTEyNTgsNyArMTI1OCw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVt YmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIGdtcHkyLkdNUHlfTVBDX0Zyb21fbXBmcihzZWxmLnZhbHVlLnJlLCBz ZWxmLnZhbHVlLmltKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBv cCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmUgYGBzZWxmYGAgdG8gYGBvdGhlcmBgLgor IAorQEAgLTEzNzUsNyArMTM3NSw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVtYmVyKHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgIyBCYXNpYyBBcml0aG1ldGlj CisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistICAgIGNwZGVmIF9h ZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgdHdvIGNvbXBsZXggbnVtYmVycyB3aXRoIHRo ZSBzYW1lIHBhcmVudC4KKyAKK0BAIC0xMzkwLDcgKzEzOTAsNyBAQCBjZGVmIGNsYXNzIE1QQ29t cGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAg ICBtcGNfYWRkKHoudmFsdWUsIHNlbGYudmFsdWUsICg8TVBDb21wbGV4TnVtYmVyPnJpZ2h0KS52 YWx1ZSwgKDxNUENvbXBsZXhGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcm5kKQorICAgICAg ICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1 YnRyYWN0IHR3byBjb21wbGV4IG51bWJlcnMgd2l0aCB0aGUgc2FtZSBwYXJlbnQuCisgCitAQCAt MTQwNSw3ICsxNDA1LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgbXBjX3N1Yih6LnZhbHVlLCBzZWxm LnZhbHVlLCAoPE1QQ29tcGxleE51bWJlcj5yaWdodCkudmFsdWUsICg8TVBDb21wbGV4RmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fX3JuZCkKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNw ZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSB0d28gY29tcGxleCBudW1i ZXJzIHdpdGggdGhlIHNhbWUgcGFyZW50LgorIAorQEAgLTE0MjAsNyArMTQyMCw3IEBAIGNkZWYg Y2xhc3MgTVBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50 KToKKyAgICAgICAgIG1wY19tdWwoei52YWx1ZSwgc2VsZi52YWx1ZSwgKDxNUENvbXBsZXhOdW1i ZXI+cmlnaHQpLnZhbHVlLCAoPE1QQ29tcGxleEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19y bmQpCisgICAgICAgICByZXR1cm4gegorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgRGl2aWRlIHR3byBjb21wbGV4IG51bWJlcnMgd2l0aCB0aGUgc2FtZSBwYXJlbnQu CisgCitAQCAtMTQzOSw3ICsxNDM5LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2Fn ZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIG1wY19kaXYo ei52YWx1ZSwgc2VsZi52YWx1ZSwgeC52YWx1ZSwgKDxNUENvbXBsZXhGaWVsZF9jbGFzcz5zZWxm Ll9wYXJlbnQpLl9fcm5kKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX25lZ18o c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIG5lZ2F0aXZlIG9mIHRoaXMgY29tcGxleCBudW1iZXIuCisgCitA QCAtMjQ0NCw3ICsyNDQ0LDcgQEAgX19jcmVhdGVfTVBDb21wbGV4TnVtYmVyX3ZlcnNpb24wID0g X19jcmVhdGVfX01QQ29tcGxleE51bWJlcl92ZXJzaW9uMAorICMqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorIAorIGNkZWYgY2xhc3MgTVBDdG9NUEMoTWFwKToKKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHop OgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjQ4MSw3ICsyNDgx LDcgQEAgY2RlZiBjbGFzcyBNUEN0b01QQyhNYXApOgorICAgICAgICAgcmV0dXJuIE1QQ3RvTVBD KHNlbGYuY29kb21haW4oKSwgc2VsZi5kb21haW4oKSkKKyAKKyBjZGVmIGNsYXNzIElOVEVHRVJ0 b01QQyhNYXApOgorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNTA0LDcgKzI1MDQsNyBAQCBjZGVmIGNsYXNzIElOVEVH RVJ0b01QQyhNYXApOgorICAgICAgICAgcmV0dXJuIHkKKyAKKyBjZGVmIGNsYXNzIE1QRlJ0b01Q QyhNYXApOgorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEVYQU1QTEVTOjoKKyAKK0BAIC0yNTI4LDcgKzI1MjgsNyBAQCBjZGVmIGNsYXNzIE1QRlJ0b01Q QyhNYXApOgorICAgICAgICAgcmV0dXJuIHkKKyAKKyBjZGVmIGNsYXNzIENDdG9NUEMoTWFwKToK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeikgbm9leGNlcHQ6CisrICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIHopOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExF Uzo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGZyLnB4ZCBiL3Ny Yy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weGQKK2luZGV4IDk1OTcyYzUyYmI1Li4zODVmZWVj OGMzNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weGQKK0BAIC05LDkgKzksOSBAQCBjZGVmIGNs YXNzIENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgor ICAgICBjZGVmIG1wZnJfcHJlY190IF9wcmVjCisgICAgIGNkZWYgb2JqZWN0IF9tdWx0aXBsaWNh dGl2ZV9vcmRlcgorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0g ICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNkZWYgUmVhbE51bWJl ciBhYnNfYyhDb21wbGV4TnVtYmVyIHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgUmVhbE51bWJl ciBub3JtX2MoQ29tcGxleE51bWJlciBzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYgUmVh bE51bWJlciBhYnNfYyhDb21wbGV4TnVtYmVyIHNlbGYpCisrICAgIGNkZWYgUmVhbE51bWJlciBu b3JtX2MoQ29tcGxleE51bWJlciBzZWxmKQorIAorLSAgICBjZGVmIENvbXBsZXhOdW1iZXIgX25l dyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIENvbXBsZXhOdW1iZXIgX25ldyhzZWxmKQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weXggYi9zcmMvc2FnZS9yaW5n cy9jb21wbGV4X21wZnIucHl4CitpbmRleCA4NzJjYThjNjBhMy4uMzg3NmFkNjI3MmQgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHl4CisrKysgYi9zcmMvc2FnZS9y aW5ncy9jb21wbGV4X21wZnIucHl4CitAQCAtODczLDcgKzg3Myw3IEBAIGNkZWYgY2xhc3MgQ29t cGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAg ICBUcnVlCisgICAgICIiIgorIAorLSAgICBjZGVmIENvbXBsZXhOdW1iZXIgX25ldyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBDb21wbGV4TnVtYmVyIF9uZXcoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRlcyBhIG5ldyBpbml0aWFsaXplZCBjb21wbGV4IG51 bWJlciB3aXRoIHRoZSBzYW1lCisgICAgICAgICBwYXJlbnQgYXMgYGBzZWxmYGAuCitAQCAtMTQ2 Niw3ICsxNDY2LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgIGltcG9ydCBzeW1weQorICAgICAgICAgcmV0 dXJuIHNlbGYucmVhbCgpLl9zeW1weV8oKSArIHNlbGYuaW1hZygpLl9zeW1weV8oKSAqIHN5bXB5 LkkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBgYHNlbGZg YCB0byBgYHJpZ2h0YGAuCisgCitAQCAtMTQ4MSw3ICsxNDgxLDcgQEAgY2RlZiBjbGFzcyBDb21w bGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAg IG1wZnJfYWRkKHguX19pbSwgc2VsZi5fX2ltLCAoPENvbXBsZXhOdW1iZXI+cmlnaHQpLl9faW0s IHJuZCkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIi CisgICAgICAgICBTdWJ0cmFjdCBgYHJpZ2h0YGAgZnJvbSBgYHNlbGZgYC4KKyAKK0BAIC0xNDk2 LDcgKzE0OTYsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgbXBmcl9zdWIoeC5fX2ltLCBzZWxmLl9faW0s ICg8Q29tcGxleE51bWJlcj5yaWdodCkuX19pbSwgcm5kKQorICAgICAgICAgcmV0dXJuIHgKKyAK Ky0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVs XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IGBgc2VsZmBg IGJ5IGBgcmlnaHRgYC4KKyAKK0BAIC0xNTY1LDcgKzE1NjUsNyBAQCBjZGVmIGNsYXNzIENvbXBs ZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5ub3JtX2MoKQorIAorLSAgICBjZGVmIFJlYWxOdW1i ZXIgbm9ybV9jKENvbXBsZXhOdW1iZXIgc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgUmVhbE51 bWJlciBub3JtX2MoQ29tcGxleE51bWJlciBzZWxmKToKKyAgICAgICAgIGNkZWYgUmVhbE51bWJl ciB4CisgICAgICAgICB4ID0gUmVhbE51bWJlcihzZWxmLl9wYXJlbnQuX3JlYWxfZmllbGQoKSwg Tm9uZSkKKyAKK0BAIC0xNTgyLDcgKzE1ODIsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhOdW1iZXIo c2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgbXBmcl9jbGVh cih0MSkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNkZWYgUmVhbE51bWJlciBhYnNfYyhD b21wbGV4TnVtYmVyIHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIFJlYWxOdW1iZXIgYWJzX2Mo Q29tcGxleE51bWJlciBzZWxmKToKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4CisgICAgICAg ICB4ID0gUmVhbE51bWJlcihzZWxmLl9wYXJlbnQuX3JlYWxfZmllbGQoKSwgTm9uZSkKKyAKK0BA IC0xNjAwLDcgKzE2MDAsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgbXBmcl9jbGVhcih0MSkKKyAgICAg ICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBE aXZpZGUgYGBzZWxmYGAgYnkgYGByaWdodGBgLgorIAorQEAgLTE5NTcsNyArMTk1Nyw3IEBAIGNk ZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVu dCk6CisgICAgICAgICByZXR1cm4gY29tcGxleChtcGZyX2dldF9kKHNlbGYuX19yZSwgcm5kKSwK KyAgICAgICAgICAgICAgICAgICAgICAgIG1wZnJfZ2V0X2Qoc2VsZi5fX2ltLCBybmQpKQorIAor LSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQ29tcGFyZSBgYGxlZnRgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTMzNDYsNyArMzM0 Niw3IEBAIGNkZWYgY2xhc3MgUlJ0b0NDKE1hcCk6CisgICAgICAgICBzZWxmLl96ZXJvID0gQ29t cGxleE51bWJlcihDQywgMCkKKyAgICAgICAgIHNlbGYuX3JlcHJfdHlwZV9zdHIgPSAiTmF0dXJh bCIKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQSBo ZWxwZXIgZm9yIHBpY2tsaW5nIGFuZCBjb3B5aW5nLgorIAorQEAgLTMzNzIsNyArMzM3Miw3IEBA IGNkZWYgY2xhc3MgUlJ0b0NDKE1hcCk6CisgICAgICAgICBzbG90c1snX3plcm8nXSA9IHNlbGYu X3plcm8KKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2Vs ZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBBIGhlbHBlciBmb3IgdW5w aWNrbGluZyBhbmQgY29weWluZy4KKyAKK0BAIC0zMzkxLDcgKzMzOTEsNyBAQCBjZGVmIGNsYXNz IFJSdG9DQyhNYXApOgorICAgICAgICAgTWFwLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQor ICAgICAgICAgc2VsZi5femVybyA9IF9zbG90c1snX3plcm8nXQorIAorLSAgICBjcGRlZiBFbGVt ZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9mYWN0b3JpbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmFjdG9y aW50LnB5eAoraW5kZXggMzM5ZDJjMjJiMmQuLjM1NzFjNzRiZDhkIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvZmFjdG9yaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmFjdG9yaW50 LnB5eAorQEAgLTMwLDcgKzMwLDcgQEAgZnJvbSBzYWdlLm1pc2MubWlzY19jIGltcG9ydCBwcm9k CisgY2RlZiBleHRlcm4gZnJvbSAibGltaXRzLmgiOgorICAgICBsb25nIExPTkdfTUFYCisgCist Y3BkZWYgYXVyaWZldWlsbGlhbihuLCBtLCBGPU5vbmUsIGJpbnQgY2hlY2s9VHJ1ZSkgbm9leGNl cHQ6CisrY3BkZWYgYXVyaWZldWlsbGlhbihuLCBtLCBGPU5vbmUsIGJpbnQgY2hlY2s9VHJ1ZSk6 CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBBdXJpZmV1aWxsaWFuIGZhY3RvcnMgYEZfbl5c cG0obV4ybilgLgorIAorQEAgLTEyMCw3ICsxMjAsNyBAQCBjcGRlZiBhdXJpZmV1aWxsaWFuKG4s IG0sIEY9Tm9uZSwgYmludCBjaGVjaz1UcnVlKSBub2V4Y2VwdDoKKyAgICAgYXNzZXJ0IChub3Qg Y2hlY2sgb3IgRm0uZGl2aWRlcyhGKSkKKyAgICAgcmV0dXJuIFtGbSwgRiAvLyBGbV0KKyAKKy1j cGRlZiBmYWN0b3JfYXVyaWZldWlsbGlhbihuLCBjaGVjaz1UcnVlKSBub2V4Y2VwdDoKKytjcGRl ZiBmYWN0b3JfYXVyaWZldWlsbGlhbihuLCBjaGVjaz1UcnVlKToKKyAgICAgciIiIgorICAgICBS ZXR1cm4gQXVyaWZldWlsbGlhbiBmYWN0b3JzIG9mIGBuYCBpZiBgbiA9IHheeygyay0xKXh9IFxw bSAxYAorICAgICAod2hlcmUgdGhlIHNpZ24gaXMgJy0nIGlmIHggPSAxIG1vZCA0LCBhbmQgJysn IG90aGVyd2lzZSkgZWxzZSBgbmAKK0BAIC0yNTIsNyArMjUyLDcgQEAgZGVmIGZhY3Rvcl9jdW5u aW5naGFtKG0sIHByb29mPU5vbmUpOgorICAgICBlbHNlOgorICAgICAgICAgcmV0dXJuIEludGVn ZXJGYWN0b3JpemF0aW9uKEwpKm4uZmFjdG9yKHByb29mPXByb29mKQorIAorLWNwZGVmIGZhY3Rv cl90cmlhbF9kaXZpc2lvbihtLCBsb25nIGxpbWl0PUxPTkdfTUFYKSBub2V4Y2VwdDoKKytjcGRl ZiBmYWN0b3JfdHJpYWxfZGl2aXNpb24obSwgbG9uZyBsaW1pdD1MT05HX01BWCk6CisgICAgIHIi IiIKKyAgICAgUmV0dXJuIHBhcnRpYWwgZmFjdG9yaXphdGlvbiBvZiBgYHNlbGZgYCBvYnRhaW5l ZCB1c2luZyB0cmlhbCBkaXZpc2lvbgorICAgICBmb3IgYWxsIHByaW1lcyB1cCB0byBgYGxpbWl0 YGAsIHdoZXJlIGBgbGltaXRgYCBtdXN0IGZpdCBpbiBhIEMgYGBzaWduZWQgbG9uZ2BgLgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zhc3RfYXJpdGgucHhkIGIvc3JjL3NhZ2UvcmluZ3Mv ZmFzdF9hcml0aC5weGQKK2luZGV4IGMxM2U1ZTM2NTQ4Li43YTk5ZTY1OGI5MSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL2Zhc3RfYXJpdGgucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9m YXN0X2FyaXRoLnB4ZAorQEAgLTEsNCArMSw0IEBACistY3BkZWYgcHJpbWVfcmFuZ2Uoc3RhcnQs IHN0b3A9KiwgYWxnb3JpdGhtPSosIGJpbnQgcHlfaW50cz0qKSBub2V4Y2VwdAorK2NwZGVmIHBy aW1lX3JhbmdlKHN0YXJ0LCBzdG9wPSosIGFsZ29yaXRobT0qLCBiaW50IHB5X2ludHM9KikKKyAK KyBjZGVmIGNsYXNzIGFyaXRoX2ludDoKKyAgICAgY2RlZiBpbnQgYWJzX2ludChzZWxmLCBpbnQg eCkgZXhjZXB0IC0xCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmFzdF9hcml0aC5weXgg Yi9zcmMvc2FnZS9yaW5ncy9mYXN0X2FyaXRoLnB5eAoraW5kZXggZmFlOTY2ZTRmNmMuLjQ3OTYx MjJjMWI2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmFzdF9hcml0aC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL2Zhc3RfYXJpdGgucHl4CitAQCAtNDAsNyArNDAsNyBAQCBmcm9tIGxp YmMubWF0aCBjaW1wb3J0IHNxcnQKKyAKKyBmcm9tIHNhZ2UucmluZ3MuaW50ZWdlciBjaW1wb3J0 IEludGVnZXIKKyAKKy1jcGRlZiBwcmltZV9yYW5nZShzdGFydCwgc3RvcD1Ob25lLCBhbGdvcml0 aG09Tm9uZSwgYmludCBweV9pbnRzPUZhbHNlKSBub2V4Y2VwdDoKKytjcGRlZiBwcmltZV9yYW5n ZShzdGFydCwgc3RvcD1Ob25lLCBhbGdvcml0aG09Tm9uZSwgYmludCBweV9pbnRzPUZhbHNlKToK KyAgICAgciIiIgorICAgICBSZXR1cm4gYSBsaXN0IG9mIGFsbCBwcmltZXMgYmV0d2VlbiBgYHN0 YXJ0YGAgYW5kIGBgc3RvcCAtIDFgYCwgaW5jbHVzaXZlLgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2Jhc2UucHhkIGIvc3JjL3NhZ2UvcmluZ3Mv ZmluaXRlX3JpbmdzL2VsZW1lbnRfYmFzZS5weGQKK2luZGV4IGVjMDlmOWNjNzY5Li5jMjE0ZTQ3 NDVhOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2Jh c2UucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9iYXNlLnB4 ZAorQEAgLTgsNSArOCw1IEBAIGNkZWYgY2xhc3MgRmluaXRlUG9seUV4dEVsZW1lbnQoRmluaXRl UmluZ0VsZW1lbnQpOgorICAgICBwYXNzCisgCisgY2RlZiBjbGFzcyBDYWNoZV9iYXNlKFNhZ2VP YmplY3QpOgorLSAgICBjcGRlZiBGaW5pdGVQb2x5RXh0RWxlbWVudCBmZXRjaF9pbnQoc2VsZiwg bnVtYmVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBGaW5pdGVQb2x5RXh0RWxlbWVudCBmZXRjaF9p bnQoc2VsZiwgbnVtYmVyKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9y aW5ncy9lbGVtZW50X2Jhc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1l bnRfYmFzZS5weXgKK2luZGV4IDFkMGRkMmI1NjNhLi5mNmUwODMyMGU1ZSAxMDA3NTUKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2Jhc2UucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9iYXNlLnB5eAorQEAgLTExMzYsNyArMTEz Niw3IEBAIGNkZWYgY2xhc3MgRmluaXRlUG9seUV4dEVsZW1lbnQoRmluaXRlUmluZ0VsZW1lbnQp OgorICAgICAgICAgcmV0dXJuIHNlbGYudG9faW50ZWdlcigpLnRvX2J5dGVzKGxlbmd0aD1sZW5n dGgsIGJ5dGVvcmRlcj1ieXRlb3JkZXIpCisgCisgY2RlZiBjbGFzcyBDYWNoZV9iYXNlKFNhZ2VP YmplY3QpOgorLSAgICBjcGRlZiBGaW5pdGVQb2x5RXh0RWxlbWVudCBmZXRjaF9pbnQoc2VsZiwg bnVtYmVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRmluaXRlUG9seUV4dEVsZW1lbnQgZmV0Y2hf aW50KHNlbGYsIG51bWJlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBHaXZlbiBhbiBpbnRl Z2VyIGxlc3MgdGhhbiBgcF5uYCB3aXRoIGJhc2UgYDJgCisgICAgICAgICByZXByZXNlbnRhdGlv biBgYV8wICsgYV8xIFxjZG90IDIgKyBcY2RvdHMgKyBhX2sgMl5rYCwgdGhpcyByZXR1cm5zCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfZ2l2YXJvLnB4 ZCBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2dpdmFyby5weGQKK2luZGV4 IDFlNWM0YjQ2NTI3Li40YjFlMDQzMGExYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zp bml0ZV9yaW5ncy9lbGVtZW50X2dpdmFyby5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0 ZV9yaW5ncy9lbGVtZW50X2dpdmFyby5weGQKK0BAIC02Miw3ICs2Miw3IEBAIGNkZWYgY2xhc3Mg RmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChGaW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAgIGNk ZWYgaW50IGVsZW1lbnQKKyAgICAgY2RlZiBDYWNoZV9naXZhcm8gX2NhY2hlCisgICAgIGNkZWYg b2JqZWN0IF9tdWx0aXBsaWNhdGl2ZV9vcmRlcgorLSAgICBjZGVmIEZpbml0ZUZpZWxkX2dpdmFy b0VsZW1lbnQgX25ld19jKHNlbGYsIGludCB2YWx1ZSkgbm9leGNlcHQKKysgICAgY2RlZiBGaW5p dGVGaWVsZF9naXZhcm9FbGVtZW50IF9uZXdfYyhzZWxmLCBpbnQgdmFsdWUpCisgCisgY2RlZiBj bGFzcyBDYWNoZV9naXZhcm8oQ2FjaGVfYmFzZSk6CisgICAgIGNkZWYgR2l2YXJvR2ZxICpvYmpl Y3RwdHIgIyBDKysgb2JqZWN0CitAQCAtNzMsMTMgKzczLDEzIEBAIGNkZWYgY2xhc3MgQ2FjaGVf Z2l2YXJvKENhY2hlX2Jhc2UpOgorICAgICBjZGVmIGJpbnQgX2hhc19hcnJheQorICAgICBjZGVm IGJpbnQgX2lzX2NvbndheQorICAgICBjZGVmIFBhcmVudCBwYXJlbnQKKy0gICAgY2RlZiBnZW5f YXJyYXkoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBnZW5fYXJyYXkoc2VsZikKKyAgICAgY3Bk ZWYgaW50IGV4cG9uZW50KHNlbGYpIG5vZXhjZXB0CisgICAgIGNwZGVmIGludCBvcmRlcl9jKHNl bGYpIG5vZXhjZXB0CisgICAgIGNwZGVmIGludCBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IGdlbihzZWxmKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IGVsZW1lbnRfZnJvbV9kYXRh KHNlbGYsIGUpIG5vZXhjZXB0CistICAgIGNkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBf bmV3X2Moc2VsZiwgaW50IHZhbHVlKSBub2V4Y2VwdAorKyAgICBjcGRlZiBGaW5pdGVGaWVsZF9n aXZhcm9FbGVtZW50IGdlbihzZWxmKQorKyAgICBjcGRlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVt ZW50IGVsZW1lbnRfZnJvbV9kYXRhKHNlbGYsIGUpCisrICAgIGNkZWYgRmluaXRlRmllbGRfZ2l2 YXJvRWxlbWVudCBfbmV3X2Moc2VsZiwgaW50IHZhbHVlKQorICAgICBjcGRlZiBpbnQgaW50X3Rv X2xvZyhzZWxmLCBpbnQgaSkgZXhjZXB0IC0xCisgICAgIGNwZGVmIGludCBsb2dfdG9faW50KHNl bGYsIGludCBpKSBleGNlcHQgLTEKKyAKK0BAIC04Nyw0ICs4Nyw0IEBAIGNkZWYgY2xhc3MgRmlu aXRlRmllbGRfZ2l2YXJvX2l0ZXJhdG9yOgorICAgICBjZGVmIGludCBpdGVyYXRvcgorICAgICBj ZGVmIENhY2hlX2dpdmFybyBfY2FjaGUKKyAKKy1jZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1l bnQgbWFrZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KENhY2hlX2dpdmFybyBjYWNoZSwgaW50 IHgpIG5vZXhjZXB0CisrY2RlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IG1ha2VfRmluaXRl RmllbGRfZ2l2YXJvRWxlbWVudChDYWNoZV9naXZhcm8gY2FjaGUsIGludCB4KQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2dpdmFyby5weXggYi9zcmMv c2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9naXZhcm8ucHl4CitpbmRleCBmYzUzYzMw ZDE4MC4uYzliOWUzMjMxODEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmlu Z3MvZWxlbWVudF9naXZhcm8ucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3Mv ZWxlbWVudF9naXZhcm8ucHl4CitAQCAtMjA5LDcgKzIwOSw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVf Z2l2YXJvKENhY2hlX2Jhc2UpOgorICAgICAgICAgICAgIHNlbGYuX2FycmF5ID0gc2VsZi5nZW5f YXJyYXkoKQorICAgICAgICAgICAgIHNlbGYuX2hhc19hcnJheSA9IFRydWUKKyAKKy0gICAgY2Rl ZiBnZW5fYXJyYXkoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2VuX2FycmF5KHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBHZW5lcmF0ZXMgYW4gYXJyYXkvbGlzdC90dXBsZSBjb250 YWluaW5nIGFsbCBlbGVtZW50cyBvZiBgYHNlbGZgYAorICAgICAgICAgaW5kZXhlZCBieSB0aGVp ciBwb3dlciB3aXRoIHJlc3BlY3QgdG8gdGhlIGludGVybmFsIGdlbmVyYXRvci4KK0BAIC0yOTYs NyArMjk2LDcgQEAgY2RlZiBjbGFzcyBDYWNoZV9naXZhcm8oQ2FjaGVfYmFzZSk6CisgICAgICAg ICBzZWxmLm9iamVjdHB0ci5yYW5kb20oZ2VuZXJhdG9yLCByZXMpCisgICAgICAgICByZXR1cm4g bWFrZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KHNlbGYsIHJlcykKKyAKKy0gICAgY3BkZWYg RmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBlbGVtZW50X2Zyb21fZGF0YShzZWxmLCBlKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBlbGVtZW50X2Zyb21f ZGF0YShzZWxmLCBlKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29lcmNlcyBzZXZlcmFsIGRh dGEgdHlwZXMgdG8gYGBzZWxmYGAuCisgCitAQCAtNDcxLDcgKzQ3MSw3IEBAIGNkZWYgY2xhc3Mg Q2FjaGVfZ2l2YXJvKENhY2hlX2Jhc2UpOgorIAorICAgICAgICAgcmV0dXJuIG1ha2VfRmluaXRl RmllbGRfZ2l2YXJvRWxlbWVudChzZWxmLCByZXMpCisgCistICAgIGNwZGVmIEZpbml0ZUZpZWxk X2dpdmFyb0VsZW1lbnQgZ2VuKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBGaW5pdGVGaWVs ZF9naXZhcm9FbGVtZW50IGdlbihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IGEgZ2VuZXJhdG9yIG9mIHRoZSBmaWVsZC4KKyAKK0BAIC01NTEsNyArNTUxLDcgQEAgY2RlZiBj bGFzcyBDYWNoZV9naXZhcm8oQ2FjaGVfYmFzZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByCisgCistICAgIGNwZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgZmV0 Y2hfaW50KHNlbGYsIG51bWJlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEZpbml0ZUZpZWxkX2dp dmFyb0VsZW1lbnQgZmV0Y2hfaW50KHNlbGYsIG51bWJlcik6CisgICAgICAgICByIiIiCisgICAg ICAgICBHaXZlbiBhbiBpbnRlZ2VyIGBgbmBgIHJldHVybiBhIGZpbml0ZSBmaWVsZCBlbGVtZW50 IGluIGBgc2VsZmBgCisgICAgICAgICB3aGljaCBlcXVhbHMgYGBuYGAgdW5kZXIgdGhlIGNvbmRp dGlvbiB0aGF0IDptZXRoOmBnZW4oKWAgaXMgc2V0IHRvCitAQCAtNzU5LDcgKzc1OSw3IEBAIGNk ZWYgY2xhc3MgQ2FjaGVfZ2l2YXJvKENhY2hlX2Jhc2UpOgorICAgICAgICAgICAgIHJlcCA9ICdp bnQnCisgICAgICAgICByZXR1cm4gdW5waWNrbGVfQ2FjaGVfZ2l2YXJvLCAoc2VsZi5wYXJlbnQs IHAsIGssIHNlbGYucGFyZW50LnBvbHlub21pYWwoKSwgcmVwLCBzZWxmLl9oYXNfYXJyYXkpCisg CistICAgIGNkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBfbmV3X2Moc2VsZiwgaW50IHZh bHVlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IF9uZXdf YyhzZWxmLCBpbnQgdmFsdWUpOgorICAgICAgICAgcmV0dXJuIG1ha2VfRmluaXRlRmllbGRfZ2l2 YXJvRWxlbWVudChzZWxmLCB2YWx1ZSkKKyAKKyAKK0BAIC04NzcsNyArODc3LDcgQEAgY2RlZiBj bGFzcyBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAg ICAgICAgIHNlbGYuX2NhY2hlID0gcGFyZW50Ll9jYWNoZQorICAgICAgICAgc2VsZi5lbGVtZW50 ID0gMAorIAorLSAgICBjZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgX25ld19jKHNlbGYs IGludCB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVu dCBfbmV3X2Moc2VsZiwgaW50IHZhbHVlKToKKyAgICAgICAgIHJldHVybiBtYWtlX0Zpbml0ZUZp ZWxkX2dpdmFyb0VsZW1lbnQoc2VsZi5fY2FjaGUsIHZhbHVlKQorIAorICAgICBkZWYgX19kZWFs bG9jX18oRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBzZWxmKToKK0BAIC0xMDgxLDcgKzEwODEs NyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQoRmluaXRlUG9seUV4dEVs ZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJt dXN0IGJlIGEgcGVyZmVjdCBzcXVhcmUuIikKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEFkZCB0d28gZWxlbWVudHMuCisgCitAQCAtMTA5Niw3ICsxMDk2LDcgQEAg Y2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KEZpbml0ZVBvbHlFeHRFbGVtZW50 KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxGaW5pdGVGaWVsZF9naXZh cm9FbGVtZW50PnJpZ2h0KS5lbGVtZW50KQorICAgICAgICAgcmV0dXJuIG1ha2VfRmluaXRlRmll bGRfZ2l2YXJvRWxlbWVudChzZWxmLl9jYWNoZSwgcikKKyAKKy0gICAgY3BkZWYgX211bF8oc2Vs ZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IHR3byBlbGVtZW50cy4KKyAKK0BAIC0xMTEzLDcg KzExMTMsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQoRmluaXRlUG9s eUV4dEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPEZpbml0 ZUZpZWxkX2dpdmFyb0VsZW1lbnQ+cmlnaHQpLmVsZW1lbnQpCisgICAgICAgICByZXR1cm4gbWFr ZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KHNlbGYuX2NhY2hlLCByKQorIAorLSAgICBjcGRl ZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlIHR3byBlbGVtZW50cworIAorQEAg LTExMzUsNyArMTEzNSw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChG aW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg8RmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudD5yaWdodCkuZWxlbWVudCkKKyAgICAgICAgIHJl dHVybiBtYWtlX0Zpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQoc2VsZi5fY2FjaGUsIHIpCisgCist ICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCB0d28gZWxlbWVu dHMuCisgCitAQCAtMTI4Niw3ICsxMjg2LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9naXZh cm9FbGVtZW50KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1cm4gbWFr ZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KGNhY2hlLCBjYWNoZS5vYmplY3RwdHIub25lKQor ICAgICAgICAgcmV0dXJuIG1ha2VfRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChjYWNoZSwgcikK KyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIENvbXBhcmlzb24gb2YgZmluaXRlIGZpZWxkIGVsZW1lbnRzIGlzIGNvcnJlY3Qg b3IgZXF1YWxpdHkKKyAgICAgICAgIHRlc3RzIGFuZCBzb21ld2hhdCByYW5kb20gZm9yIGBgPGBg IGFuZCBgYD5gYCB0eXBlIG9mCitAQCAtMTc0Myw3ICsxNzQzLDcgQEAgZGVmIHVucGlja2xlX0Zp bml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQocGFyZW50LCBpbnQgeCk6CisgZnJvbSBzYWdlLm1pc2Mu cGVyc2lzdCBpbXBvcnQgcmVnaXN0ZXJfdW5waWNrbGVfb3ZlcnJpZGUKKyByZWdpc3Rlcl91bnBp Y2tsZV9vdmVycmlkZSgnc2FnZS5yaW5ncy5maW5pdGVfZmllbGRfZ2l2YXJvJywgJ3VucGlja2xl X0Zpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQnLCB1bnBpY2tsZV9GaW5pdGVGaWVsZF9naXZhcm9F bGVtZW50KQorIAorLWNkZWYgaW5saW5lIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgbWFrZV9G aW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KENhY2hlX2dpdmFybyBjYWNoZSwgaW50IHgpIG5vZXhj ZXB0OgorK2NkZWYgaW5saW5lIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgbWFrZV9GaW5pdGVG aWVsZF9naXZhcm9FbGVtZW50KENhY2hlX2dpdmFybyBjYWNoZSwgaW50IHgpOgorICAgICBjZGVm IEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgeQorIAorICAgICBpZiBjYWNoZS5faGFzX2FycmF5 OgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X250bF9n ZjJlLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X250bF9nZjJlLnB4 ZAoraW5kZXggYjY5OWY2ZTNlZjYuLmU5ODc0NDQxM2I1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfbnRsX2dmMmUucHhkCisrKysgYi9zcmMvc2FnZS9y aW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9udGxfZ2YyZS5weGQKK0BAIC0xMyw5ICsxMyw5IEBA IGNkZWYgY2xhc3MgQ2FjaGVfbnRsX2dmMmUoQ2FjaGVfYmFzZSk6CisgICAgIGNkZWYgcHVibGlj IEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudCBfZ2VuCisgICAgIGNkZWYgSW50ZWdlciBfb3Jk ZXIKKyAgICAgY2RlZiBJbnRlZ2VyIF9kZWdyZWUKKy0gICAgY2RlZiBGaW5pdGVGaWVsZF9udGxf Z2YyZUVsZW1lbnQgX25ldyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIEZpbml0ZUZpZWxkX250 bF9nZjJlRWxlbWVudCBfbmV3KHNlbGYpCisgCisgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9udGxf Z2YyZUVsZW1lbnQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICBjZGVmIEdGMkVfYyB4Cisg ICAgIGNkZWYgQ2FjaGVfbnRsX2dmMmUgX2NhY2hlCistICAgIGNkZWYgRmluaXRlRmllbGRfbnRs X2dmMmVFbGVtZW50IF9uZXcoRmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50IHNlbGYpIG5vZXhj ZXB0CisrICAgIGNkZWYgRmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50IF9uZXcoRmluaXRlRmll bGRfbnRsX2dmMmVFbGVtZW50IHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmlu aXRlX3JpbmdzL2VsZW1lbnRfbnRsX2dmMmUucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jp bmdzL2VsZW1lbnRfbnRsX2dmMmUucHl4CitpbmRleCA0ZTEwZWY5MjdhOS4uMzk5YmI3NjgxNWIg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9udGxfZ2Yy ZS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X250bF9nZjJl LnB5eAorQEAgLTk2LDcgKzk2LDcgQEAgY2RlZiBpbnQgbGF0ZV9pbXBvcnQoKSBleGNlcHQgLTE6 CisgY2RlZiBleHRlcm4gZnJvbSAiYXJwYS9pbmV0LmgiOgorICAgICB1bnNpZ25lZCBpbnQgaHRv bmwodW5zaWduZWQgaW50KQorIAorLWNkZWYgbGl0dGxlX2VuZGlhbigpIG5vZXhjZXB0OgorK2Nk ZWYgbGl0dGxlX2VuZGlhbigpOgorICAgICByZXR1cm4gaHRvbmwoMSkgIT0gMQorIAorIGNkZWYg dW5zaWduZWQgaW50IHN3aXRjaF9lbmRpYW5lc3ModW5zaWduZWQgaW50IGkpIG5vZXhjZXB0Ogor QEAgLTIwNSw3ICsyMDUsNyBAQCBjZGVmIGNsYXNzIENhY2hlX250bF9nZjJlKENhY2hlX2Jhc2Up OgorICAgICAgICAgbW9kX3BvbHkgPSBHRjJYTW9kdWx1c19HRjJYKG1vZHVsdXMpCisgICAgICAg ICBwcmludChjY3JlcHIobW9kX3BvbHkpKQorIAorLSAgICBjZGVmIEZpbml0ZUZpZWxkX250bF9n ZjJlRWxlbWVudCBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIEZpbml0ZUZpZWxkX250 bF9nZjJlRWxlbWVudCBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g YSBuZXcgZWxlbWVudCBpbiBgYHNlbGZgYC4gVXNlIHRoaXMgbWV0aG9kIHRvIGNvbnN0cnVjdAor ICAgICAgICAgJ2VtcHR5JyBlbGVtZW50cy4KK0BAIC0zNzcsNyArMzc3LDcgQEAgY2RlZiBjbGFz cyBDYWNoZV9udGxfZ2YyZShDYWNoZV9iYXNlKToKKyAKKyAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoIkNhbm5vdCBjb2VyY2UgZWxlbWVudCAlcyB0byB0aGlzIGZpZWxkLiIgJSBlKQorIAorLSAg ICBjcGRlZiBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgZmV0Y2hfaW50KHNlbGYsIG51bWJl cikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudCBmZXRj aF9pbnQoc2VsZiwgbnVtYmVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVuIGFuIGlu dGVnZXIgbGVzcyB0aGFuIGBwXm5gIHdpdGggYmFzZSBgMmAKKyAgICAgICAgIHJlcHJlc2VudGF0 aW9uIGBhXzAgKyBhXzEgXGNkb3QgMiArIFxjZG90cyArIGFfayAyXmtgLCB0aGlzIHJldHVybnMK K0BAIC01MTEsNyArNTExLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1l bnQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBh cmVudAorICAgICAgICAgICAgICg8Q2FjaGVfbnRsX2dmMmU+c2VsZi5fcGFyZW50Ll9jYWNoZSku Ri5yZXN0b3JlKCkKKyAKKy0gICAgY2RlZiBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgX25l dyhGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg RmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50IF9uZXcoRmluaXRlRmllbGRfbnRsX2dmMmVFbGVt ZW50IHNlbGYpOgorICAgICAgICAgY2RlZiBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgeQor ICAgICAgICAgKDxDYWNoZV9udGxfZ2YyZT5zZWxmLl9wYXJlbnQuX2NhY2hlKS5GLnJlc3RvcmUo KQorICAgICAgICAgeSA9IEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudC5fX25ld19fKEZpbml0 ZUZpZWxkX250bF9nZjJlRWxlbWVudCkKK0BAIC02NTcsNyArNjU3LDcgQEAgY2RlZiBjbGFzcyBG aW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gYQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxm LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgQWRkIHR3byBlbGVtZW50cy4KKyAKK0BAIC02NzMsNyArNjczLDcg QEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQoRmluaXRlUG9seUV4dEVs ZW1lbnQpOgorICAgICAgICAgR0YyRV9hZGQoci54LCAoPEZpbml0ZUZpZWxkX250bF9nZjJlRWxl bWVudD5zZWxmKS54LCAoPEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudD5yaWdodCkueCkKKyAg ICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBNdWx0aXBseSB0d28gZWxlbWVudHMuCisgCitAQCAtNjg5LDcgKzY4OSw3IEBAIGNkZWYgY2xh c3MgRmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAg ICAgICAgIEdGMkVfbXVsKHIueCwgKDxGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQ+c2VsZiku eCwgKDxGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQ+cmlnaHQpLngpCisgICAgICAgICByZXR1 cm4gcgorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9kaXZfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlIHR3 byBlbGVtZW50cy4KKyAKK0BAIC03MTIsNyArNzEyLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVs ZF9udGxfZ2YyZUVsZW1lbnQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgR0YyRV9k aXYoci54LCBzZWxmLngsIG8ueCkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9z dWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCB0d28gZWxlbWVudHMuCisgCitAQCAt NzYxLDcgKzc2MSw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50KEZp bml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAgIGNkZWYgRmluaXRlRmllbGRfbnRsX2dmMmVF bGVtZW50IG8gPSBzZWxmLl9wYXJlbnQuX2NhY2hlLl9vbmVfZWxlbWVudAorICAgICAgICAgcmV0 dXJuIG8uX2Rpdl8oc2VsZikKKyAKKy0gICAgY2RlZiBfcG93X2xvbmcoc2VsZiwgbG9uZyBuKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfcG93X2xvbmcoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTgwMCw3ICs4MDAsNyBAQCBjZGVmIGNsYXNz IEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudChGaW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAg ICAgICBHRjJFX3Bvd2VyKHIueCwgc2VsZi54LCBuKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0g ICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIENvbXBhcmlzb24gb2YgZmluaXRlIGZpZWxkIGVsZW1lbnRzLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X3BhcmlfZmZlbHQucHhkIGIvc3Jj L3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfcGFyaV9mZmVsdC5weGQKK2luZGV4IGY4 MGFlYjU1NTMyLi4wNmFhYmNhYTZkNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0 ZV9yaW5ncy9lbGVtZW50X3BhcmlfZmZlbHQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5p dGVfcmluZ3MvZWxlbWVudF9wYXJpX2ZmZWx0LnB4ZAorQEAgLTcsNiArNyw2IEBAIGNkZWYgY2xh c3MgRmluaXRlRmllbGRFbGVtZW50X3BhcmlfZmZlbHQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgor ICAgICAjIFRoaXMgaG9sZHMgYSByZWZlcmVuY2UgdG8gYSBQQVJJIGNsb25lLgorICAgICBjZGVm IEdFTiB2YWwKKyAKKy0gICAgY2RlZiBGaW5pdGVGaWVsZEVsZW1lbnRfcGFyaV9mZmVsdCBfbmV3 KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgRmluaXRlRmllbGRFbGVtZW50X3BhcmlfZmZlbHQg X25ldyhzZWxmKQorICAgICBjZGVmIHZvaWQgY29uc3RydWN0KHNlbGYsIEdFTiBnKSBub2V4Y2Vw dAorICAgICBjZGVmIGludCBjb25zdHJ1Y3RfZnJvbShzZWxmLCB4KSBleGNlcHQgLTEKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9wYXJpX2ZmZWx0LnB5 eCBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X3BhcmlfZmZlbHQucHl4Citp bmRleCBiNzg2YWRhMDBkZS4uOTg5YjBlMjBiOWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9maW5pdGVfcmluZ3MvZWxlbWVudF9wYXJpX2ZmZWx0LnB5eAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfcGFyaV9mZmVsdC5weXgKK0BAIC0zNDUsNyArMzQ1LDcg QEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZEVsZW1lbnRfcGFyaV9mZmVsdChGaW5pdGVQb2x5RXh0 RWxlbWVudCk6CisgICAgICAgICBpZiBzZWxmLnZhbCBpcyBub3QgTlVMTDoKKyAgICAgICAgICAg ICBndW5jbG9uZV9kZWVwKHNlbGYudmFsKQorIAorLSAgICBjZGVmIEZpbml0ZUZpZWxkRWxlbWVu dF9wYXJpX2ZmZWx0IF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgRmluaXRlRmllbGRF bGVtZW50X3BhcmlfZmZlbHQgX25ldyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3Jl YXRlIGFuIGVtcHR5IGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBwYXJlbnQgYXMgYGBzZWxmYGAuCisg ICAgICAgICAiIiIKK0BAIC01OTksNyArNTk5LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZEVs ZW1lbnRfcGFyaV9mZmVsdChGaW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAgICAgICAjIGltbXV0 YWJsZQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYs IG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3Ro ZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmlzb24gb2YgZmluaXRl IGZpZWxkIGVsZW1lbnRzLgorIAorQEAgLTY2MCw3ICs2NjAsNyBAQCBjZGVmIGNsYXNzIEZpbml0 ZUZpZWxkRWxlbWVudF9wYXJpX2ZmZWx0KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgcikKKyAKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZGl0aW9uLgorIAorQEAgLTY3Niw3 ICs2NzYsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkRWxlbWVudF9wYXJpX2ZmZWx0KEZpbml0 ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPEZpbml0ZUZp ZWxkRWxlbWVudF9wYXJpX2ZmZWx0PnJpZ2h0KS52YWwpKQorICAgICAgICAgcmV0dXJuIHgKKyAK Ky0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3Vi XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0aW9uLgorIAor QEAgLTY5Miw3ICs2OTIsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkRWxlbWVudF9wYXJpX2Zm ZWx0KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo PEZpbml0ZUZpZWxkRWxlbWVudF9wYXJpX2ZmZWx0PnJpZ2h0KS52YWwpKQorICAgICAgICAgcmV0 dXJuIHgKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGxp Y2F0aW9uLgorIAorQEAgLTcwOCw3ICs3MDgsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkRWxl bWVudF9wYXJpX2ZmZWx0KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoPEZpbml0ZUZpZWxkRWxlbWVudF9wYXJpX2ZmZWx0PnJpZ2h0KS52YWwpKQor ICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIERpdmlzaW9uLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5n cy9maW5pdGVfZmllbGRfYmFzZS5weXggYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmlu aXRlX2ZpZWxkX2Jhc2UucHl4CitpbmRleCAwMGIzMGJiNWE0NC4uMjQzYmY4NWUxY2YgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2ZpZWxkX2Jhc2UucHl4 CisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2ZpZWxkX2Jhc2UucHl4 CitAQCAtMTMxOCw3ICsxMzE4LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZChGaWVsZCk6Cisg CisgICAgICAgICByZXR1cm4gViwgcGhpLCBwc2kKKyAKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBf ZnJvbV8oc2VsZiwgUikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNl bGYsIFIpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ2Fub25pY2FsIGNvZXJjaW9uIHRvIGBg c2VsZmBgLgorIAorQEAgLTEzODksNyArMTM4OSw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGQo RmllbGQpOgorICAgICAgICAgICAgICAgICAgICAgICBhbmQgaGFzYXR0cihzZWxmLCAnX3ByZWZp eCcpIGFuZCBoYXNhdHRyKFIsICdfcHJlZml4JykpOgorICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFIuaG9tKChzZWxmLmdlbigpICoqICgoc2VsZi5vcmRlcigpIC0gMSkvLyhSLm9yZGVyKCkg LSAxKSksKSkKKyAKKy0gICAgY3BkZWYgX2NvbnZlcnRfbWFwX2Zyb21fKHNlbGYsIFIpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfY29udmVydF9tYXBfZnJvbV8oc2VsZiwgUik6CisgICAgICAgICAi IiIKKyAgICAgICAgIENvbnZlcnNpb24gZnJvbSBwLWFkaWMgZmllbGRzLgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkLnB4ZCBiL3Ny Yy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkLnB4ZAoraW5kZXggNjRk YTgwOTAyNGYuLjE5OWQ2NTVkNmQ2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRl X3JpbmdzL2hvbV9maW5pdGVfZmllbGQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVf cmluZ3MvaG9tX2Zpbml0ZV9maWVsZC5weGQKK0BAIC0xMSw3ICsxMSw3IEBAIGNkZWYgY2xhc3Mg RmluaXRlRmllbGRIb21vbW9ycGhpc21fZ2VuZXJpYyhSaW5nSG9tb21vcnBoaXNtX2ltX2dlbnMp OgorICAgICBjZGVmIF9nZW4KKyAgICAgY2RlZiBfc2VjdGlvbl9jbGFzcworIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdAorKyAgICBjcGRlZiBFbGVtZW50IF9j YWxsXyhzZWxmLCB4KQorIAorIAorIGNkZWYgY2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNtX2Zp bml0ZV9maWVsZChGcm9iZW5pdXNFbmRvbW9ycGhpc21fZ2VuZXJpYyk6CitAQCAtMTksNCArMTks NCBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9maW5pdGVfZmllbGQoRnJvYmVu aXVzRW5kb21vcnBoaXNtX2dlbmVyaWMpOgorICAgICBjZGVmIGxvbmcgX2RlZ3JlZV9maXhlZAor ICAgICBjZGVmIGxvbmcgX29yZGVyCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpIG5vZXhjZXB0CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGQucHl4IGIv c3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGQucHl4CitpbmRleCBi N2JiZDQxNzI3My4uOGE4M2JmNDg3NjYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5p dGVfcmluZ3MvaG9tX2Zpbml0ZV9maWVsZC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0 ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkLnB5eAorQEAgLTEyNCw3ICsxMjQsNyBAQCBjZGVmIGNs YXNzIFNlY3Rpb25GaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV9nZW5lcmljKFNlY3Rpb24pOgorICAg ICAiIiIKKyAgICAgQSBjbGFzcyBpbXBsZW1lbnRpbmcgc2VjdGlvbnMgb2YgZW1iZWRkaW5ncyBi ZXR3ZWVuIGZpbml0ZSBmaWVsZHMuCisgICAgICIiIgorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCB4KSBub2V4Y2VwdDogICMgTm90IG9wdGltaXplZAorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCB4KTogICMgTm90IG9wdGltaXplZAorICAgICAgICAgIiIiCisgICAgICAg ICBURVNUUzo6CisgCitAQCAtMjk5LDcgKzI5OSw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRI b21vbW9ycGhpc21fZ2VuZXJpYyhSaW5nSG9tb21vcnBoaXNtX2ltX2dlbnMpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5kb21haW4oKS5fbGF0ZXhfKCkgKyAiIFxcaG9va3Jp Z2h0YXJyb3cgIiArIHNlbGYuY29kb21haW4oKS5fbGF0ZXhfKCkKKyAKKy0gICAgY3BkZWYgRWxl bWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNDM2LDcg KzQzNiw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRIb21vbW9ycGhpc21fZ2VuZXJpYyhSaW5n SG9tb21vcnBoaXNtX2ltX2dlbnMpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gTW9y cGhpc20uX19oYXNoX18oc2VsZikKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIEhlbHBlciBmdW5jdGlvbiBmb3IgY29weWluZyBhbmQgcGlja2xpbmcK KyAKK0BAIC00NjQsNyArNDY0LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZEhvbW9tb3JwaGlz bV9nZW5lcmljKFJpbmdIb21vbW9ycGhpc21faW1fZ2Vucyk6CisgICAgICAgICBzbG90c1snX3Nl Y3Rpb25fY2xhc3MnXSA9IHNlbGYuX3NlY3Rpb25fY2xhc3MKKyAgICAgICAgIHJldHVybiBzbG90 cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBzbG90cykgbm9leGNlcHQ6 CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IHNsb3RzKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIEhlbHBlciBmdW5jdGlvbiBmb3IgY29weWluZyBhbmQgcGlja2xpbmcKKyAK K0BAIC02MTksNyArNjE5LDcgQEAgY2RlZiBjbGFzcyBGcm9iZW5pdXNFbmRvbW9ycGhpc21fZmlu aXRlX2ZpZWxkKEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9nZW5lcmljKToKKyAgICAgICAgIHJldHVy biBzCisgCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAg ICAgVEVTVFM6OgorIAorQEAgLTg0Miw3ICs4NDIsNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0Vu ZG9tb3JwaGlzbV9maW5pdGVfZmllbGQoRnJvYmVuaXVzRW5kb21vcnBoaXNtX2dlbmVyaWMpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gTW9ycGhpc20uX19oYXNoX18oc2VsZikKKyAK Ky0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3Qgc2xvdHMpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBzbG90cyk6CisgICAgICAgICByIiIiCisg ICAgICAgICBIZWxwZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGRfZ2l2 YXJvLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkX2dp dmFyby5weGQKK2luZGV4IGY1YTcwYzk3NWY5Li5kYzQwMWQ1MjZjMCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkX2dpdmFyby5weGQKKysr KyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkX2dpdmFyby5w eGQKK0BAIC0xMSw3ICsxMSw3IEBAIGNkZWYgY2xhc3MgU2VjdGlvbkZpbml0ZUZpZWxkSG9tb21v cnBoaXNtX2dpdmFybyhTZWN0aW9uRmluaXRlRmllbGRIb21vbW9ycGhpc21fCisgICAgIGNkZWYg bG9uZyBfcG93ZXIKKyAgICAgY2RlZiBDYWNoZV9naXZhcm8gX2NvZG9tYWluX2NhY2hlCisgCist ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0CisrICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfKHNlbGYsIHgpCisgCisgCisgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZEhvbW9t b3JwaGlzbV9naXZhcm8oRmluaXRlRmllbGRIb21vbW9ycGhpc21fZ2VuZXJpYyk6CitAQCAtMjAs NyArMjAsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkSG9tb21vcnBoaXNtX2dpdmFybyhGaW5p dGVGaWVsZEhvbW9tb3JwaGlzbV9nZW5lcmljKToKKyAgICAgY2RlZiBsb25nIF9wb3dlcgorICAg ICBjZGVmIENhY2hlX2dpdmFybyBfY29kb21haW5fY2FjaGUKKyAKKy0gICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgeCkKKyAKKyAKKyBjZGVmIGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9naXZhcm8oRnJv YmVuaXVzRW5kb21vcnBoaXNtX2Zpbml0ZV9maWVsZCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGRfZ2l2YXJvLnB5eCBiL3NyYy9zYWdl L3JpbmdzL2Zpbml0ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkX2dpdmFyby5weXgKK2luZGV4IGVl YmQyMDA1NmU3Li4wZTY3Y2I2ZjEyMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0 ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkX2dpdmFyby5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L2Zpbml0ZV9yaW5ncy9ob21fZmluaXRlX2ZpZWxkX2dpdmFyby5weXgKK0BAIC0xMDAsNyArMTAw LDcgQEAgY2RlZiBjbGFzcyBTZWN0aW9uRmluaXRlRmllbGRIb21vbW9ycGhpc21fZ2l2YXJvKFNl Y3Rpb25GaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV8KKyAgICAgICAgIHNlbGYuX2NvZG9tYWluX2Nh Y2hlID0gKDxGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50PihzZWxmLl9jb2RvbWFpbi5nZW4oKSkp Ll9jYWNoZQorIAorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xODIsNyArMTgyLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVG aWVsZEhvbW9tb3JwaGlzbV9naXZhcm8oRmluaXRlRmllbGRIb21vbW9ycGhpc21fZ2VuZXJpYyk6 CisgICAgICAgICBzZWxmLl9vcmRlcl9jb2RvbWFpbiA9IGNvZG9tYWluLmNhcmRpbmFsaXR5KCkg LSAxCisgCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAg ICAgVEVTVFM6OgorIAorQEAgLTI3Myw3ICsyNzMsNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0Vu ZG9tb3JwaGlzbV9naXZhcm8oRnJvYmVuaXVzRW5kb21vcnBoaXNtX2Zpbml0ZV9maWVsZCk6Cisg CisgCisgIyBjb3BpZWQgZnJvbSBlbGVtZW50X2dpdmFyby5weXgKKy1jZGVmIGlubGluZSBGaW5p dGVGaWVsZF9naXZhcm9FbGVtZW50IG1ha2VfRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChDYWNo ZV9naXZhcm8gY2FjaGUsIGludCB4KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBGaW5pdGVGaWVs ZF9naXZhcm9FbGVtZW50IG1ha2VfRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChDYWNoZV9naXZh cm8gY2FjaGUsIGludCB4KToKKyAgICAgY2RlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IHkK KyAKKyAgICAgaWYgY2FjaGUuX2hhc19hcnJheToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9maW5pdGVfcmluZ3MvaG9tX3ByaW1lX2Zpbml0ZV9maWVsZC5weXggYi9zcmMvc2FnZS9yaW5n cy9maW5pdGVfcmluZ3MvaG9tX3ByaW1lX2Zpbml0ZV9maWVsZC5weXgKK2luZGV4IDRmYzJjODMy ZjkwLi5lNDVkZTFkODNmOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5n cy9ob21fcHJpbWVfZmluaXRlX2ZpZWxkLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRl X3JpbmdzL2hvbV9wcmltZV9maW5pdGVfZmllbGQucHl4CitAQCAtMzUsNyArMzUsNyBAQCBmcm9t IHNhZ2UucmluZ3MuZmluaXRlX3JpbmdzLmZpbml0ZV9maWVsZF9iYXNlIGltcG9ydCBGaW5pdGVG aWVsZAorIAorIAorIGNkZWYgY2xhc3MgU2VjdGlvbkZpbml0ZUZpZWxkSG9tb21vcnBoaXNtX3By aW1lKFNlY3Rpb25GaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV9nZW5lcmljKToKKy0gICAgY3BkZWYg RWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfKHNlbGYsIHgpOgorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9j b2RvbWFpbi5fZWxlbWVudF9jb25zdHJ1Y3Rvcl8oeCkKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJy b3I6CitAQCAtNzUsNyArNzUsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkSG9tb21vcnBoaXNt X3ByaW1lKEZpbml0ZUZpZWxkSG9tb21vcnBoaXNtX2dlbmVyaWMpOgorICAgICAgICAgRmluaXRl RmllbGRIb21vbW9ycGhpc21fZ2VuZXJpYy5fX2luaXRfXyhzZWxmLCBwYXJlbnQsIGltX2dlbnMs IGJhc2VfbWFwPWJhc2VfbWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGVjaz1jaGVjaywgc2VjdGlvbl9jbGFzcz1zZWN0aW9uX2NsYXNzKQor IAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RT OjoKKyAKK0BAIC0xMDQsNyArMTA0LDcgQEAgY2RlZiBjbGFzcyBGcm9iZW5pdXNFbmRvbW9ycGhp c21fcHJpbWUoRnJvYmVuaXVzRW5kb21vcnBoaXNtX2Zpbml0ZV9maWVsZCk6CisgICAgICAgICBz ZWxmLl9vcmRlciA9IDEKKyAgICAgICAgIHNlbGYuX3Bvd2VyID0gMAorIAorLSAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHhkIGIvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB4ZAoraW5kZXggNWQxNmJhZDg4MGUu LjM0ZTcyNDcyYTNlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2lu dGVnZXJfbW9kLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJf bW9kLnB4ZAorQEAgLTEwLDcgKzEwLDcgQEAgY2RlZiBjbGFzcyBOYXRpdmVJbnRTdHJ1Y3Q6Cisg ICAgIGNkZWYgaW50X2Zhc3Q2NF90IGludDY0CisgICAgIGNkZWYgcmVhZG9ubHkgbGlzdCB0YWJs ZSAgICAgIyBsaXN0IG9mIGVsZW1lbnRzIG9mIEludGVnZXJNb2RSaW5nKG4pCisgICAgIGNkZWYg cmVhZG9ubHkgbGlzdCBpbnZlcnNlcyAgIyBsaXN0IG9mIGludmVyc2VzIChOb25lIGlmIG5vdCBp bnZlcnRpYmxlKQorLSAgICBjZGVmIGlubGluZSB0eXBlIGVsZW1lbnRfY2xhc3Moc2VsZikgbm9l eGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIHR5cGUgZWxlbWVudF9jbGFzcyhzZWxmKToKKyAgICAg ICAgIGlmIHNlbGYuaW50MzIgPiAwOgorICAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyTW9kX2lu dAorICAgICAgICAgZWxpZiBzZWxmLmludDY0ID4gMDoKK0BAIC0yMSwzNCArMjEsMzQgQEAgY2Rl ZiBjbGFzcyBOYXRpdmVJbnRTdHJ1Y3Q6CisgCisgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3Ry YWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgY2RlZiBOYXRpdmVJbnRTdHJ1Y3QgX21vZHVs dXMKKy0gICAgY2RlZiBfbmV3X2NfZnJvbV9sb25nKHNlbGYsIGxvbmcgdmFsdWUpIG5vZXhjZXB0 CistICAgIGNkZWYgSW50ZWdlck1vZF9hYnN0cmFjdCBfbmV3X2NfZmFzdChzZWxmLCB1bnNpZ25l ZCBsb25nIHZhbHVlKSBub2V4Y2VwdAorKyAgICBjZGVmIF9uZXdfY19mcm9tX2xvbmcoc2VsZiwg bG9uZyB2YWx1ZSkKKysgICAgY2RlZiBJbnRlZ2VyTW9kX2Fic3RyYWN0IF9uZXdfY19mYXN0KHNl bGYsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9tcHooc2Vs ZiwgbXB6X3QgdmFsdWUpIG5vZXhjZXB0CisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9sb25nKHNl bGYsIGxvbmcgdmFsdWUpIG5vZXhjZXB0CisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV91bG9uZ19m YXN0KHNlbGYsIHVuc2lnbmVkIGxvbmcgdmFsdWUpIG5vZXhjZXB0CisgICAgIGNkZWYgYmludCBp c19zcXVhcmVfYyhzZWxmKSBleGNlcHQgLTIKKyAgICAgY3BkZWYgYmludCBpc19vbmUoc2VsZikg bm9leGNlcHQKKyAgICAgY3BkZWYgYmludCBpc191bml0KHNlbGYpIG5vZXhjZXB0CistICAgIGNw ZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9mbG9vcmRp dl8oc2VsZiwgb3RoZXIpCisgCisgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9k X2Fic3RyYWN0KToKKyAgICAgY2RlZiBtcHpfdCB2YWx1ZQorLSAgICBjZGVmIEludGVnZXJNb2Rf Z21wIF9uZXdfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIHNoaWZ0KEludGVnZXJNb2RfZ21w IHNlbGYsIGxvbmcgaykgbm9leGNlcHQKKysgICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCBfbmV3X2Mo c2VsZikKKysgICAgY2RlZiBzaGlmdChJbnRlZ2VyTW9kX2dtcCBzZWxmLCBsb25nIGspCisgCisg Y2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgY2Rl ZiBpbnRfZmFzdDMyX3QgaXZhbHVlCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9pbnQoSW50ZWdl ck1vZF9pbnQgc2VsZiwgaW50X2Zhc3QzMl90IHZhbHVlKSBub2V4Y2VwdAorICAgICBjZGVmIGlu dF9mYXN0MzJfdCBnZXRfaW50X3ZhbHVlKEludGVnZXJNb2RfaW50IHNlbGYpIG5vZXhjZXB0Cist ICAgIGNkZWYgSW50ZWdlck1vZF9pbnQgX25ld19jKHNlbGYsIGludF9mYXN0MzJfdCB2YWx1ZSkg bm9leGNlcHQKKy0gICAgY2RlZiBzaGlmdChJbnRlZ2VyTW9kX2ludCBzZWxmLCBpbnQgaykgbm9l eGNlcHQKKysgICAgY2RlZiBJbnRlZ2VyTW9kX2ludCBfbmV3X2Moc2VsZiwgaW50X2Zhc3QzMl90 IHZhbHVlKQorKyAgICBjZGVmIHNoaWZ0KEludGVnZXJNb2RfaW50IHNlbGYsIGludCBrKQorIAor IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAg Y2RlZiBpbnRfZmFzdDY0X3QgaXZhbHVlCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9pbnQoSW50 ZWdlck1vZF9pbnQ2NCBzZWxmLCBpbnRfZmFzdDY0X3QgdmFsdWUpIG5vZXhjZXB0CisgICAgIGNk ZWYgaW50X2Zhc3Q2NF90IGdldF9pbnRfdmFsdWUoSW50ZWdlck1vZF9pbnQ2NCBzZWxmKSBub2V4 Y2VwdAorLSAgICBjZGVmIEludGVnZXJNb2RfaW50NjQgX25ld19jKHNlbGYsIGludF9mYXN0NjRf dCB2YWx1ZSkgbm9leGNlcHQKKy0gICAgY2RlZiBzaGlmdChJbnRlZ2VyTW9kX2ludDY0IHNlbGYs IGludCBrKSBub2V4Y2VwdAorKyAgICBjZGVmIEludGVnZXJNb2RfaW50NjQgX25ld19jKHNlbGYs IGludF9mYXN0NjRfdCB2YWx1ZSkKKysgICAgY2RlZiBzaGlmdChJbnRlZ2VyTW9kX2ludDY0IHNl bGYsIGludCBrKQorIAorIAorIGNkZWYgaW50X2Zhc3QzMl90IG1vZF9pbnZlcnNlX2ludChpbnRf ZmFzdDMyX3QgeCwgaW50X2Zhc3QzMl90IG4pIGV4Y2VwdCAwCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2Zp bml0ZV9yaW5ncy9pbnRlZ2VyX21vZC5weXgKK2luZGV4IDczNzQ2OTA1ODIxLi45YTNmMDJiNmVm MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9pbnRlZ2VyX21vZC5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9pbnRlZ2VyX21vZC5weXgKK0BA IC0yMTksNyArMjE5LDcgQEAgZGVmIGlzX0ludGVnZXJNb2QoeCk6CisgICAgIHJldHVybiBpc2lu c3RhbmNlKHgsIEludGVnZXJNb2RfYWJzdHJhY3QpCisgCisgCistY2RlZiBpbmxpbmUgaW52ZXJz ZV9vcl9Ob25lKHgpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGludmVyc2Vfb3JfTm9uZSh4KToK KyAgICAgdHJ5OgorICAgICAgICAgcmV0dXJuIH54CisgICAgIGV4Y2VwdCBBcml0aG1ldGljRXJy b3I6CitAQCAtMzkzLDcgKzM5Myw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChG aW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAg c2VsZi5zZXRfZnJvbV9tcHooei52YWx1ZSkKKyAKKy0gICAgY2RlZiBJbnRlZ2VyTW9kX2Fic3Ry YWN0IF9uZXdfY19mYXN0KHNlbGYsIHVuc2lnbmVkIGxvbmcgdmFsdWUpIG5vZXhjZXB0OgorKyAg ICBjZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgX25ld19jX2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9u ZyB2YWx1ZSk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikKKyAgICAgICAgIHgg PSA8SW50ZWdlck1vZF9hYnN0cmFjdD50Ll9fbmV3X18odCkKKyAgICAgICAgIHguX3BhcmVudCA9 IHNlbGYuX3BhcmVudAorQEAgLTQwMSw3ICs0MDEsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2Rf YWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgeC5zZXRfZnJvbV91bG9uZ19m YXN0KHZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY2RlZiBfbmV3X2NfZnJvbV9s b25nKHNlbGYsIGxvbmcgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZXdfY19mcm9tX2xv bmcoc2VsZiwgbG9uZyB2YWx1ZSk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikK KyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9hYnN0cmFjdCB4ID0gPEludGVnZXJNb2RfYWJzdHJh Y3Q+dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKK0BAIC0x OTE3LDcgKzE5MTcsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmlu Z0VsZW1lbnQpOgorICAgICAgICAgICAgICAgICByZXR1cm4gaW5maW5pdHkKKyAgICAgICAgIHJl dHVybiByCisgCistICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgRXhhY3QgZGl2aXNpb24gZm9yIHByaW1lIG1vZHVsaSwgZm9yIGNvbXBhdGliaWxpdHkgd2l0 aCBvdGhlciBmaWVsZHMuCisgCitAQCAtMTk3Niw3ICsxOTc2LDcgQEAgY2RlZiBjbGFzcyBJbnRl Z2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgZGVmIF9fY2luaXRfXyhzZWxm KToKKyAgICAgICAgIG1wel9pbml0KHNlbGYudmFsdWUpCisgCistICAgIGNkZWYgSW50ZWdlck1v ZF9nbXAgX25ld19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIEludGVnZXJNb2RfZ21wIF9u ZXdfYyhzZWxmKToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgeAorICAgICAgICAgeCA9 IEludGVnZXJNb2RfZ21wLl9fbmV3X18oSW50ZWdlck1vZF9nbXApCisgICAgICAgICB4Ll9tb2R1 bHVzID0gc2VsZi5fbW9kdWx1cworQEAgLTIwMzMsNyArMjAzMyw3IEBAIGNkZWYgY2xhc3MgSW50 ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IHJldHVybiBzZWxmLnNoaWZ0KC1sb25nKGspKQorIAorLSAgICBjZGVmIHNoaWZ0KEludGVnZXJN b2RfZ21wIHNlbGYsIGxvbmcgaykgbm9leGNlcHQ6CisrICAgIGNkZWYgc2hpZnQoSW50ZWdlck1v ZF9nbXAgc2VsZiwgbG9uZyBrKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFBlcmZvcm1zIGEg Yml0LXNoaWZ0IHNwZWNpZmllZCBieSBgYGtgYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0yMDc1LDcg KzIwNzUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RfYWJzdHJhY3Qp OgorICAgICAgICAgICAgICAgICBtcHpfZmRpdl9xXzJleHAoeC52YWx1ZSwgc2VsZi52YWx1ZSwg LWspCisgICAgICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQs IHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmln aHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0y MTc2LDcgKzIxNzYsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RfYWJz dHJhY3QpOgorICAgICAgICAgIyBpbW11dGFibGUKKyAgICAgICAgIHJldHVybiBzZWxmCisgCist ICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAt MjE5MSw3ICsyMTkxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fi c3RyYWN0KToKKyAgICAgICAgICAgICBtcHpfc3ViKHgudmFsdWUsIHgudmFsdWUsIHNlbGYuX21v ZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRl ZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTIyMDYsNyAr MjIwNiw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6 CisgICAgICAgICAgICAgbXB6X2FkZCh4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNh Z2VJbnRlZ2VyLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX25lZ18o c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjIyMiw3ICsyMjIyLDcgQEAgY2RlZiBjbGFzcyBJ bnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIG1wel9zdWIoeC52 YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSwgc2VsZi52YWx1ZSkKKyAgICAg ICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBF WEFNUExFUzo6CisgCitAQCAtMjIzNiw3ICsyMjM2LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIG1wel9mZGl2X3IoeC52YWx1ZSwg eC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAgICAgICAgIHJldHVy biB4CisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6 CisgCitAQCAtMjQyMCw3ICsyNDIwLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRl Z2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIFRydWUKKyAgICAgIiIiCisgCistICAgIGNkZWYg SW50ZWdlck1vZF9pbnQgX25ld19jKHNlbGYsIGludF9mYXN0MzJfdCB2YWx1ZSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgSW50ZWdlck1vZF9pbnQgX25ld19jKHNlbGYsIGludF9mYXN0MzJfdCB2YWx1 ZSk6CisgICAgICAgICBpZiBzZWxmLl9tb2R1bHVzLnRhYmxlIGlzIG5vdCBOb25lOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmLl9tb2R1bHVzLnRhYmxlW3ZhbHVlXQorICAgICAgICAgY2RlZiBJ bnRlZ2VyTW9kX2ludCB4ID0gSW50ZWdlck1vZF9pbnQuX19uZXdfXyhJbnRlZ2VyTW9kX2ludCkK K0BAIC0yNDUxLDcgKzI0NTEsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJN b2RfYWJzdHJhY3QpOgorICAgICBjZGVmIGludF9mYXN0MzJfdCBnZXRfaW50X3ZhbHVlKEludGVn ZXJNb2RfaW50IHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgcmV0dXJuIHNlbGYuaXZhbHVlCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjU3NSw3ICsyNTc1LDcgQEAgY2RlZiBjbGFzcyBJ bnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICMgaW1tdXRhYmxl CisgICAgICAgICByZXR1cm4gc2VsZgorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI1ODksNyArMjU4OSw3IEBAIGNkZWYgY2xhc3Mg SW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgeCA9IHgg LSBzZWxmLl9tb2R1bHVzLmludDMyCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAK Ky0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3Vi XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BA IC0yNjAzLDcgKzI2MDMsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2Rf YWJzdHJhY3QpOgorICAgICAgICAgICAgIHggPSB4ICsgc2VsZi5fbW9kdWx1cy5pbnQzMgorICAg ICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHgpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg RVhBTVBMRVM6OgorIAorQEAgLTI2MTYsNyArMjYxNiw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1v ZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAg ICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9tb2R1bHVzLmludDMyIC0gc2VsZi5pdmFs dWUpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6 CisgCitAQCAtMjYyNiw3ICsyNjI2LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRl Z2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKChzZWxmLml2YWx1ZSAqICg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZSkgJSBzZWxm Ll9tb2R1bHVzLmludDMyKQorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgRVhBTVBMRVM6OgorIAorQEAgLTI2OTksNyArMjY5OSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdl ck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLnNoaWZ0KC1pbnQoaykpCisgCistICAgIGNkZWYgc2hpZnQoSW50ZWdlck1vZF9p bnQgc2VsZiwgaW50IGspIG5vZXhjZXB0OgorKyAgICBjZGVmIHNoaWZ0KEludGVnZXJNb2RfaW50 IHNlbGYsIGludCBrKToKKyAgICAgICAgICIiIgorICAgICAgICAgUGVyZm9ybXMgYSBiaXQtc2hp ZnQgc3BlY2lmaWVkIGJ5IGBga2BgIG9uIGBgc2VsZmBgLgorIAorQEAgLTMyNTIsNyArMzI1Miw3 IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAg ICAgLSBSb2JlcnQgQnJhZHNoYXcgKDIwMDYtMDktMTQpCisgICAgICIiIgorIAorLSAgICBjZGVm IEludGVnZXJNb2RfaW50NjQgX25ld19jKHNlbGYsIGludF9mYXN0NjRfdCB2YWx1ZSkgbm9leGNl cHQ6CisrICAgIGNkZWYgSW50ZWdlck1vZF9pbnQ2NCBfbmV3X2Moc2VsZiwgaW50X2Zhc3Q2NF90 IHZhbHVlKToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9pbnQ2NCB4CisgICAgICAgICB4ID0g SW50ZWdlck1vZF9pbnQ2NC5fX25ld19fKEludGVnZXJNb2RfaW50NjQpCisgICAgICAgICB4Ll9t b2R1bHVzID0gc2VsZi5fbW9kdWx1cworQEAgLTMyODIsNyArMzI4Miw3IEBAIGNkZWYgY2xhc3Mg SW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgY2RlZiBpbnRfZmFz dDY0X3QgZ2V0X2ludF92YWx1ZShJbnRlZ2VyTW9kX2ludDY0IHNlbGYpIG5vZXhjZXB0OgorICAg ICAgICAgcmV0dXJuIHNlbGYuaXZhbHVlCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBy aWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0 LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzQx MSw3ICszNDExLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJz dHJhY3QpOgorICAgICAgICAgIyBpbW11dGFibGUKKyAgICAgICAgIHJldHVybiBzZWxmCisgCist ICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAt MzQyNSw3ICszNDI1LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2Rf YWJzdHJhY3QpOgorICAgICAgICAgICAgIHggPSB4IC0gc2VsZi5fbW9kdWx1cy5pbnQ2NAorICAg ICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHgpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAg IiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzQzOSw3ICszNDM5LDcgQEAgY2RlZiBj bGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAg IHggPSB4ICsgc2VsZi5fbW9kdWx1cy5pbnQ2NAorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19j KHgpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVn XyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTM0NTIs NyArMzQ1Miw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3Ry YWN0KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKHNlbGYuX21vZHVsdXMuaW50NjQgLSBzZWxmLml2YWx1ZSkKKyAKKy0gICAgY3BkZWYgX211 bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zNDYzLDcgKzM0NjMs NyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6Cisg ICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogKDxJbnRlZ2VyTW9kX2lu dDY0PnJpZ2h0KS5pdmFsdWUpICUgc2VsZi5fbW9kdWx1cy5pbnQ2NCkKKyAKKyAKKy0gICAgY3Bk ZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBy aWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zNTE5LDcg KzM1MTksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnNoaWZ0KC1pbnQoaykpCisg CistICAgIGNkZWYgc2hpZnQoSW50ZWdlck1vZF9pbnQ2NCBzZWxmLCBpbnQgaykgbm9leGNlcHQ6 CisrICAgIGNkZWYgc2hpZnQoSW50ZWdlck1vZF9pbnQ2NCBzZWxmLCBpbnQgayk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFBlcmZvcm1zIGEgYml0LXNoaWZ0IHNwZWNpZmllZCBieSBgYGtgYCBv biBgYHNlbGZgYC4KKyAKK0BAIC0zOTk1LDcgKzM5OTUsNyBAQCBkZWYgc3F1YXJlX3Jvb3RfbW9k X3ByaW1lX3Bvd2VyKEludGVnZXJNb2RfYWJzdHJhY3QgYSwgcCwgZSk6CisgICAgICAgICB4ICo9 IHAqKih2YWwvLzIpCisgICAgIHJldHVybiB4CisgCistY3BkZWYgc3F1YXJlX3Jvb3RfbW9kX3By aW1lKEludGVnZXJNb2RfYWJzdHJhY3QgYSwgcD1Ob25lKSBub2V4Y2VwdDoKKytjcGRlZiBzcXVh cmVfcm9vdF9tb2RfcHJpbWUoSW50ZWdlck1vZF9hYnN0cmFjdCBhLCBwPU5vbmUpOgorICAgICBy IiIiCisgICAgIENhbGN1bGF0ZXMgdGhlIHNxdWFyZSByb290IG9mIGBhYCwgd2hlcmUgYGFgIGlz IGFuCisgICAgIGludGVnZXIgbW9kIGBwYDsgaWYgYGFgIGlzIG5vdCBhIHBlcmZlY3Qgc3F1YXJl LAorQEAgLTQyNzAsNyArNDI3MCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9ob20oTW9ycGhp c20pOgorICAgICAgICAgc2VsZi56ZXJvID0gQy5fZWxlbWVudF9jb25zdHJ1Y3Rvcl8oMCkKKyAg ICAgICAgIHNlbGYubW9kdWx1cyA9IEMuX3B5eF9vcmRlcgorIAorLSAgICBjZGVmIGRpY3QgX2V4 dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIHBpY2tsaW5nIGFuZCBjb3B5 aW5nLgorIAorQEAgLTQyOTcsNyArNDI5Nyw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9ob20o TW9ycGhpc20pOgorICAgICAgICAgc2xvdHNbJ21vZHVsdXMnXSA9IHNlbGYubW9kdWx1cworICAg ICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgcGlja2xpbmcgYW5kIGNv cHlpbmcuCisgCitAQCAtNDMyNSw3ICs0MzI1LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2hv bShNb3JwaGlzbSk6CisgICAgICAgICBzZWxmLnplcm8gPSBfc2xvdHNbJ3plcm8nXQorICAgICAg ICAgc2VsZi5tb2R1bHVzID0gX3Nsb3RzWydtb2R1bHVzJ10KKyAKKy0gICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpOgorICAgICAgICAgcmV0dXJuIEludGVnZXJNb2Qoc2VsZi5fY29kb21haW4sIHgpCisg CisgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX3RvX0ludGVnZXJNb2QoSW50ZWdlck1vZF9ob20pOgor QEAgLTQzNTYsNyArNDM1Niw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF90b19JbnRlZ2VyTW9k KEludGVnZXJNb2RfaG9tKToKKyAgICAgICAgIGltcG9ydCBzYWdlLmNhdGVnb3JpZXMuaG9tc2V0 CisgICAgICAgICBJbnRlZ2VyTW9kX2hvbS5fX2luaXRfXyhzZWxmLCBzYWdlLmNhdGVnb3JpZXMu aG9tc2V0LkhvbShSLCBTKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAg Y2RlZiBJbnRlZ2VyTW9kX2Fic3RyYWN0IGEKKyAgICAgICAgIHplcm8gPSA8SW50ZWdlck1vZF9h YnN0cmFjdD5zZWxmLnplcm8KKyAgICAgICAgIGNkZWYgdW5zaWduZWQgbG9uZyB2YWx1ZQorQEAg LTQ0MjQsNyArNDQyNCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcl90b19JbnRlZ2VyTW9kKEludGVn ZXJNb2RfaG9tKToKKyAgICAgICAgIGltcG9ydCBzYWdlLmNhdGVnb3JpZXMuaG9tc2V0CisgICAg ICAgICBJbnRlZ2VyTW9kX2hvbS5fX2luaXRfXyhzZWxmLCBzYWdlLmNhdGVnb3JpZXMuaG9tc2V0 LkhvbShpbnRlZ2VyX3JpbmcuWlosIFIpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6Cisg ICAgICAgICBjZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgYQorICAgICAgICAgY2RlZiBQeV9zc2l6 ZV90IHJlcworICAgICAgICAgaWYgc2VsZi5tb2R1bHVzLnRhYmxlIGlzIG5vdCBOb25lOgorQEAg LTQ0OTYsNyArNDQ5Niw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF90b19JbnRlZ2VyKE1hcCk6 CisgICAgICAgICBmcm9tIHNhZ2UuY2F0ZWdvcmllcy5zZXRzX2NhdCBpbXBvcnQgU2V0cworICAg ICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgc2FnZS5jYXRlZ29yaWVzLmhvbXNldC5Ib20o UiwgaW50ZWdlcl9yaW5nLlpaLCBTZXRzKCkpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6 CisgICAgICAgICBjZGVmIEludGVnZXIgYW5zID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisg ICAgICAgICBpZiBpc2luc3RhbmNlKHgsIEludGVnZXJNb2RfZ21wKToKKyAgICAgICAgICAgICBt cHpfc2V0KGFucy52YWx1ZSwgKDxJbnRlZ2VyTW9kX2dtcD54KS52YWx1ZSkKK0BAIC00NTM1LDcg KzQ1MzUsNyBAQCBjZGVmIGNsYXNzIEludF90b19JbnRlZ2VyTW9kKEludGVnZXJNb2RfaG9tKToK KyAgICAgICAgIGZyb20gc2FnZS5zZXRzLnB5dGhvbmNsYXNzIGltcG9ydCBTZXRfUHl0aG9uVHlw ZQorICAgICAgICAgSW50ZWdlck1vZF9ob20uX19pbml0X18oc2VsZiwgc2FnZS5jYXRlZ29yaWVz LmhvbXNldC5Ib20oU2V0X1B5dGhvblR5cGUoaW50KSwgUikpCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9hYnN0cmFjdCBhCisgICAgICAgICB6 ZXJvID0gPEludGVnZXJNb2RfYWJzdHJhY3Q+c2VsZi56ZXJvCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL3Jlc2lkdWVfZmllbGQucHl4IGIvc3JjL3NhZ2Uvcmlu Z3MvZmluaXRlX3JpbmdzL3Jlc2lkdWVfZmllbGQucHl4CitpbmRleCBiYjEwYzVjZDQxNy4uODNk NzhhYmIyYWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvcmVzaWR1 ZV9maWVsZC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9yZXNpZHVlX2Zp ZWxkLnB5eAorQEAgLTk5NSw3ICs5OTUsNyBAQCBjZGVmIGNsYXNzIFJlZHVjdGlvbk1hcChNYXAp OgorICAgICAgICAgc2VsZi5fcmVwcl90eXBlX3N0ciA9ICJQYXJ0aWFsbHkgZGVmaW5lZCByZWR1 Y3Rpb24iCisgICAgICAgICBNYXAuX19pbml0X18oc2VsZiwgSG9tKEssIEYsIFNldHNXaXRoUGFy dGlhbE1hcHMoKSkpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNl cHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTAyNiw3ICsx MDI2LDcgQEAgY2RlZiBjbGFzcyBSZWR1Y3Rpb25NYXAoTWFwKToKKyAgICAgICAgIHNsb3RzWydf c2VjdGlvbiddID0gc2VsZi5fc2VjdGlvbgorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAg IGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNk ZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTA1Niw3ICsxMDU2 LDcgQEAgY2RlZiBjbGFzcyBSZWR1Y3Rpb25NYXAoTWFwKToKKyAgICAgICAgIHNlbGYuX1BCID0g X3Nsb3RzWydfUEInXQorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IF9zbG90c1snX3NlY3Rpb24n XQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFw cGx5IHRoaXMgcmVkdWN0aW9uIG1hcCB0byBhbiBlbGVtZW50IHRoYXQgY29lcmNlcyBpbnRvIHRo ZSBnbG9iYWwKKyAgICAgICAgIGZpZWxkLgorQEAgLTEzMDUsNyArMTMwNSw3IEBAIGNkZWYgY2xh c3MgUmVzaWR1ZUZpZWxkSG9tb21vcnBoaXNtX2dsb2JhbChSaW5nSG9tb21vcnBoaXNtKToKKyAg ICAgICAgIHNlbGYuX3JlcHJfdHlwZV9zdHIgPSAiUmVkdWN0aW9uIgorICAgICAgICAgUmluZ0hv bW9tb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBIb20oSyxGKSkKKyAKKy0gICAgY2RlZiBkaWN0IF9l eHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNr bGluZy4KKyAKK0BAIC0xMzM4LDcgKzEzMzgsNyBAQCBjZGVmIGNsYXNzIFJlc2lkdWVGaWVsZEhv bW9tb3JwaGlzbV9nbG9iYWwoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzbG90c1snX3Nl Y3Rpb24nXSA9IHNlbGYuX3NlY3Rpb24KKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBj ZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAg ICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTEzNzAsNyArMTM3MCw3 IEBAIGNkZWYgY2xhc3MgUmVzaWR1ZUZpZWxkSG9tb21vcnBoaXNtX2dsb2JhbChSaW5nSG9tb21v cnBoaXNtKToKKyAgICAgICAgIHNlbGYuX1BCID0gX3Nsb3RzWydfUEInXQorICAgICAgICAgc2Vs Zi5fc2VjdGlvbiA9IF9zbG90c1snX3NlY3Rpb24nXQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9j YWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg eCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFwcGxpZXMgdGhpcyBtb3JwaGlzbSB0byBhbiBl bGVtZW50LgorIAorQEAgLTE1NzQsNyArMTU3NCw3IEBAIGNkZWYgY2xhc3MgTGlmdGluZ01hcChT ZWN0aW9uKToKKyAgICAgICAgIHNlbGYuX1BCID0gUEIKKyAgICAgICAgIFNlY3Rpb24uX19pbml0 X18oc2VsZiwgcmVkdWN0aW9uKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE2 MDAsNyArMTYwMCw3IEBAIGNkZWYgY2xhc3MgTGlmdGluZ01hcChTZWN0aW9uKToKKyAgICAgICAg IHNsb3RzWydfUEInXSA9IHNlbGYuX1BCCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0gICAg Y2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAg ICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xNjI1LDcgKzE2MjUs NyBAQCBjZGVmIGNsYXNzIExpZnRpbmdNYXAoU2VjdGlvbik6CisgICAgICAgICBzZWxmLl90b19v cmRlciA9IF9zbG90c1snX3RvX29yZGVyJ10KKyAgICAgICAgIHNlbGYuX1BCID0gX3Nsb3RzWydf UEInXQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IExpZnQgZnJvbSB0aGlzIHJlc2lkdWUgY2xhc3MgZmllbGQgdG8gdGhlIG51bWJlciBmaWVsZC4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHhkIGIv c3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfRnBULnB4ZAoraW5kZXggYTM4NWEzZDc3NDIu LjdkNWQ5NjBhMGNhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRf RnBULnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfRnBULnB4ZAorQEAg LTEwLDE0ICsxMCwxNCBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAg ICAgY2RlZiBiaW50IGluaXRpYWxpemVkCisgICAgIGNkZWYgbG9uZyBwCisgCistICAgIGNkZWYg RnBURWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwg b3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAor LSAgICBjZGVmIEZwVEVsZW1lbnQgX2NvcHlfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBu dW1lcmF0b3Ioc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGVub21pbmF0b3Ioc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgRnBURWxlbWVudCBuZXh0KHNlbGYpIG5vZXhjZXB0CistICAgIGNw ZGVmIF9zcXJ0X29yX05vbmUoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBGcFRFbGVtZW50IF9u ZXdfYyhzZWxmKQorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211 bF8oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYgRnBURWxlbWVudCBfY29weV9jKHNlbGYpCisrICAg IGNwZGVmIG51bWVyYXRvcihzZWxmKQorKyAgICBjcGRlZiBkZW5vbWluYXRvcihzZWxmKQorKyAg ICBjcGRlZiBGcFRFbGVtZW50IG5leHQoc2VsZikKKysgICAgY3BkZWYgX3NxcnRfb3JfTm9uZShz ZWxmKQorICAgICBjcGRlZiBiaW50IGlzX3NxdWFyZShzZWxmKSBub2V4Y2VwdAorIAorIGNkZWYg Y2xhc3MgRnBUX2l0ZXI6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmll bGRfRnBULnB5eCBiL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weXgKK2luZGV4 IDNlYTUzZTU4OWI4Li5hMGZkN2RiYzhjZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zy YWN0aW9uX2ZpZWxkX0ZwVC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxk X0ZwVC5weXgKK0BAIC0xNjAsNyArMTYwLDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxk RWxlbWVudCk6CisgICAgICAgICByZXR1cm4gKHVucGlja2xlX0ZwVF9lbGVtZW50LAorICAgICAg ICAgICAgICAgICAoc2VsZi5fcGFyZW50LCBzZWxmLm51bWVyKCksIHNlbGYuZGVub20oKSkpCisg CistICAgIGNkZWYgRnBURWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg RnBURWxlbWVudCBfbmV3X2Moc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZXMg YSBuZXcgRnBURWxlbWVudCBpbiB0aGUgc2FtZSBmaWVsZCwgbGVhdmluZyB0aGUgdmFsdWUgdG8g YmUgaW5pdGlhbGl6ZWQuCisgICAgICAgICAiIiIKK0BAIC0xNzIsNyArMTcyLDcgQEAgY2RlZiBj bGFzcyBGcFRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICB4LmluaXRpYWxpemVkID0g VHJ1ZQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY2RlZiBGcFRFbGVtZW50IF9jb3B5X2Mo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgRnBURWxlbWVudCBfY29weV9jKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEgbmV3IEZwVEVsZW1lbnQgaW4gdGhlIHNhbWUg ZmllbGQsIHdpdGggdGhlIHNhbWUgdmFsdWUgYXMgc2VsZi4KKyAgICAgICAgICIiIgorQEAgLTE5 OSw3ICsxOTksNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubnVtZXJhdG9yKCkKKyAKKy0gICAgY3BkZWYg bnVtZXJhdG9yKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBudW1lcmF0b3Ioc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbnVtZXJhdG9yIG9mIHRoaXMgZWxlbWVu dCwgYXMgYW4gZWxlbWVudCBvZiB0aGUgcG9seW5vbWlhbCByaW5nLgorIAorQEAgLTIzMCw3ICsy MzAsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuZGVub21pbmF0b3IoKQorIAorLSAgICBjcGRlZiBkZW5v bWluYXRvcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGVub21pbmF0b3Ioc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGVub21pbmF0b3Igb2YgdGhpcyBlbGVt ZW50LCBhcyBhbiBlbGVtZW50IG9mIHRoZSBwb2x5bm9taWFsIHJpbmcuCisgCitAQCAtMzU4LDcg KzM1OCw3IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gIlxcZnJhY3slc317JXN9IiAlIChzZWxmLm51bWVy KCkuX2xhdGV4XygpLCBzZWxmLmRlbm9tKCkuX2xhdGV4XygpKQorIAorLSAgICBjcGRlZiBfcmlj aGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21w XyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSB0 aGlzIHdpdGggYW5vdGhlciBlbGVtZW50LgorIAorQEAgLTQ2Myw3ICs0NjMsNyBAQCBjZGVmIGNs YXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIG5tb2RfcG9seV9zd2FwKHgu X251bWVyLCB4Ll9kZW5vbSkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9hZGRf KHNlbGYsIF9vdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9vdGhlcik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHRoaXMgZnJhY3Rpb24g ZmllbGQgZWxlbWVudCBhbmQgYW5vdGhlci4KKyAKK0BAIC00OTEsNyArNDkxLDcgQEAgY2RlZiBj bGFzcyBGcFRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBub3JtYWxpemUoeC5fbnVt ZXIsIHguX2Rlbm9tLCBzZWxmLnApCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBf c3ViXyhzZWxmLCBfb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfb3Ro ZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdGhp cyBmcmFjdGlvbiBmaWVsZCBlbGVtZW50IGFuZCBhbm90aGVyLgorIAorQEAgLTUxMyw3ICs1MTMs NyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIG5vcm1h bGl6ZSh4Ll9udW1lciwgeC5fZGVub20sIHNlbGYucCkKKyAgICAgICAgIHJldHVybiB4CisgCist ICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9vdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxf KHNlbGYsIF9vdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVj dCBvZiB0aGlzIGZyYWN0aW9uIGZpZWxkIGVsZW1lbnQgYW5kIGFub3RoZXIuCisgCitAQCAtNTMz LDcgKzUzMyw3IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAg ICAgbm9ybWFsaXplKHguX251bWVyLCB4Ll9kZW5vbSwgc2VsZi5wKQorICAgICAgICAgcmV0dXJu IHgKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgX290aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2Rpdl8oc2VsZiwgX290aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBxdW90aWVudCBvZiB0aGlzIGZyYWN0aW9uIGZpZWxkIGVsZW1lbnQgYW5kIGFub3RoZXIuCisg CitAQCAtNTU3LDcgKzU1Nyw3IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgbm9ybWFsaXplKHguX251bWVyLCB4Ll9kZW5vbSwgc2VsZi5wKQorICAgICAg ICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgRnBURWxlbWVudCBuZXh0KHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBGcFRFbGVtZW50IG5leHQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEl0ZXJhdGUgdGhyb3VnaCBhbGwgcG9seW5vbWlhbHMsIHJldHVybmluZyB0aGUgIm5leHQi IHBvbHlub21pYWwgYWZ0ZXIgdGhpcyBvbmUuCisgCitAQCAtNjYzLDcgKzY2Myw3IEBAIGNkZWYg Y2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgbm1v ZF9wb2x5X2NsZWFyKGcpCisgICAgICAgICByZXR1cm4gbmV4dAorIAorLSAgICBjcGRlZiBfc3Fy dF9vcl9Ob25lKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3FydF9vcl9Ob25lKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHNxdWFyZSByb290IG9mIGBgc2Vs ZmBgLCBvciBgYE5vbmVgYC4KKyAKK0BAIC0xMDUyLDcgKzEwNTIsNyBAQCBjZGVmIGNsYXNzIFBv bHlyaW5nX0ZwVF9jb2VyY2UoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBSaW5nSG9tb21v cnBoaXNtLl9faW5pdF9fKHNlbGYsIFIucmluZ19vZl9pbnRlZ2VycygpLkhvbShSKSkKKyAgICAg ICAgIHNlbGYucCA9IFIuYmFzZV9yaW5nKCkuY2hhcmFjdGVyaXN0aWMoKQorIAorLSAgICBjZGVm IGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJh X3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcg YW5kIHBpY2tsaW5nLgorIAorQEAgLTEwNjgsNyArMTA2OCw3IEBAIGNkZWYgY2xhc3MgUG9seXJp bmdfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNsb3RzWydwJ10gPSBz ZWxmLnAKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2Vs ZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlp bmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTEwODMsNyArMTA4Myw3IEBAIGNkZWYgY2xhc3MgUG9s eXJpbmdfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYucCA9IF9z bG90c1sncCddCisgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwg X3Nsb3RzKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAg ICAgICAgQXBwbGllcyB0aGUgY29lcmNpb24uCisgCitAQCAtMTEwNiw3ICsxMTA2LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5cmluZ19GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAg YW5zLmluaXRpYWxpemVkID0gVHJ1ZQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdz PSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBhbGxv d3MgdGhlIG1hcCB0byB0YWtlIG11bHRpcGxlIGFyZ3VtZW50cywKKyAgICAgICAgIHVzdWFsbHkg dXNlZCB0byBzcGVjaWZ5IGJvdGggbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvci4KK0BAIC0xMjU1 LDcgKzEyNTUsNyBAQCBjZGVmIGNsYXNzIEZwVF9Qb2x5cmluZ19zZWN0aW9uKFNlY3Rpb24pOgor ICAgICAgICAgc2VsZi5wID0gZi5wCisgICAgICAgICBTZWN0aW9uLl9faW5pdF9fKHNlbGYsIGYp CisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTI3Nyw3ICsxMjc3LDcgQEAgY2Rl ZiBjbGFzcyBGcFRfUG9seXJpbmdfc2VjdGlvbihTZWN0aW9uKToKKyAgICAgICAgIHNsb3RzWydw J10gPSBzZWxmLnAKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVmIF91cGRhdGVf c2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xv dHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9y IGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTEyOTgsNyArMTI5OCw3IEBAIGNkZWYgY2xh c3MgRnBUX1BvbHlyaW5nX3NlY3Rpb24oU2VjdGlvbik6CisgICAgICAgICBzZWxmLnAgPSBfc2xv dHNbJ3AnXQorICAgICAgICAgU2VjdGlvbi5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFwcGxp ZXMgdGhlIHNlY3Rpb24uCisgCitAQCAtMTM3MCw3ICsxMzcwLDcgQEAgY2RlZiBjbGFzcyBGcF9G cFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5f X2luaXRfXyhzZWxmLCBSLmJhc2VfcmluZygpLkhvbShSKSkKKyAgICAgICAgIHNlbGYucCA9IFIu YmFzZV9yaW5nKCkuY2hhcmFjdGVyaXN0aWMoKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Ns b3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgor IAorQEAgLTEzODksNyArMTM4OSw3IEBAIGNkZWYgY2xhc3MgRnBfRnBUX2NvZXJjZShSaW5nSG9t b21vcnBoaXNtKToKKyAgICAgICAgIHNsb3RzWydwJ10gPSBzZWxmLnAKKyAgICAgICAgIHJldHVy biBzbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5v ZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAg ICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAor QEAgLTE0MDcsNyArMTQwNyw3IEBAIGNkZWYgY2xhc3MgRnBfRnBUX2NvZXJjZShSaW5nSG9tb21v cnBoaXNtKToKKyAgICAgICAgIHNlbGYucCA9IF9zbG90c1sncCddCisgICAgICAgICBSaW5nSG9t b21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjcGRlZiBFbGVt ZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAgICAgICAgQXBwbGllcyB0aGUgY29lcmNpb24u CisgCitAQCAtMTQzMCw3ICsxNDMwLDcgQEAgY2RlZiBjbGFzcyBGcF9GcFRfY29lcmNlKFJpbmdI b21vbW9ycGhpc20pOgorICAgICAgICAgYW5zLmluaXRpYWxpemVkID0gVHJ1ZQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBf eCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf d2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAg ICAgICAgVGhpcyBmdW5jdGlvbiBhbGxvd3MgdGhlIG1hcCB0byB0YWtlIG11bHRpcGxlIGFyZ3Vt ZW50cywgdXN1YWxseSB1c2VkIHRvIHNwZWNpZnkgYm90aCBudW1lcmF0b3IgYW5kIGRlbm9taW5h dG9yLgorIAorQEAgLTE1NTgsNyArMTU1OCw3IEBAIGNkZWYgY2xhc3MgRnBUX0ZwX3NlY3Rpb24o U2VjdGlvbik6CisgICAgICAgICBzZWxmLnAgPSBmLnAKKyAgICAgICAgIFNlY3Rpb24uX19pbml0 X18oc2VsZiwgZikKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xNTg2LDcgKzE1 ODYsNyBAQCBjZGVmIGNsYXNzIEZwVF9GcF9zZWN0aW9uKFNlY3Rpb24pOgorICAgICAgICAgc2xv dHNbJ3AnXSA9IHNlbGYucAorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3Vw ZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0 ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTYxMyw3ICsxNjEzLDcgQEAgY2Rl ZiBjbGFzcyBGcFRfRnBfc2VjdGlvbihTZWN0aW9uKToKKyAgICAgICAgIHNlbGYucCA9IF9zbG90 c1sncCddCisgICAgICAgICBTZWN0aW9uLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAor LSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAgICAgICAgQXBwbGll cyB0aGUgc2VjdGlvbi4KKyAKK0BAIC0xNjkyLDcgKzE2OTIsNyBAQCBjZGVmIGNsYXNzIFpaX0Zw VF9jb2VyY2UoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl9f aW5pdF9fKHNlbGYsIFpaLkhvbShSKSkKKyAgICAgICAgIHNlbGYucCA9IFIuYmFzZV9yaW5nKCku Y2hhcmFjdGVyaXN0aWMoKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE3MTMs NyArMTcxMyw3IEBAIGNkZWYgY2xhc3MgWlpfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToK KyAgICAgICAgIHNsb3RzWydwJ10gPSBzZWxmLnAKKyAgICAgICAgIHJldHVybiBzbG90cworIAor LSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisg ICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE3MzMsNyAr MTczMyw3IEBAIGNkZWYgY2xhc3MgWlpfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKKyAg ICAgICAgIHNlbGYucCA9IF9zbG90c1sncCddCisgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl91 cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KToK KyAgICAgICAgICIiIgorICAgICAgICAgQXBwbGllcyB0aGUgY29lcmNpb24uCisgCitAQCAtMTc1 Niw3ICsxNzU2LDcgQEAgY2RlZiBjbGFzcyBaWl9GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20p OgorICAgICAgICAgYW5zLmluaXRpYWxpemVkID0gVHJ1ZQorICAgICAgICAgcmV0dXJuIGFucwor IAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwg a3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNl bGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBm dW5jdGlvbiBhbGxvd3MgdGhlIG1hcCB0byB0YWtlIG11bHRpcGxlIGFyZ3VtZW50cywgdXN1YWxs eSB1c2VkIHRvIHNwZWNpZnkgYm90aCBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yLgorIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX2VsZW1lbnQucHl4IGIvc3Jj L3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5weXgKK2luZGV4IDJhYmI4YzRkMzI2 Li5lYTMyM2UyNzA5ZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxk X2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9lbGVtZW50 LnB5eAorQEAgLTE2MCw3ICsxNjAsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50 KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBuZGVuID0gY29kb21haW4uY29lcmNlKHNlbGYuX2Rl bm9taW5hdG9yLl9pbV9nZW5zXyhjb2RvbWFpbiwgaW1fZ2VucywgYmFzZV9tYXA9YmFzZV9tYXAp KQorICAgICAgICAgcmV0dXJuIGNvZG9tYWluLmNvZXJjZShubnVtL25kZW4pCisgCistICAgIGNw ZGVmIHJlZHVjZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVkdWNlKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZWR1Y2UgdGhpcyBmcmFjdGlvbi4KKyAKK0BAIC01ODQsNyAr NTg0LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgor IAorICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIENvbXB1dGUgdGhlIHN1bSBvZiBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAg LTY2OSw3ICs2NjksNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxl bWVudCk6CisgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50LCBybnVt KnNkZW4gKyByZGVuKnNudW0sIHJkZW4qc2RlbiwKKyAgICAgICAgICAgICBjb2VyY2U9RmFsc2Us IHJlZHVjZT1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IENvbXB1dGVzIHRoZSBwcm9kdWN0IG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAt NzM1LDcgKzczNSw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIHJudW0g KiBzbnVtLCByZGVuICogc2RlbiwKKyAgICAgICAgICAgICBjb2VyY2U9RmFsc2UsIHJlZHVjZT1G YWxzZSkKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGVz IHRoZSBxdW90aWVudCBvZiBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTk3MCw3ICs5 NzAsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6Cisg ICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50LAorICAgICAgICAgICAg IHNlbGYuX2Rlbm9taW5hdG9yLCBzZWxmLl9udW1lcmF0b3IsIGNvZXJjZT1GYWxzZSwgcmVkdWNl PUZhbHNlKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAg ICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEyMDcsNyArMTIwNyw3IEBAIGNk ZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnRfMXBvbHlfZmllbGQoRnJhY3Rpb25GaWVsZEVs ZW1lbnQpOgorICAgICAgICAgaWYgbm90IHJlZHVjZToKKyAgICAgICAgICAgICBzZWxmLm5vcm1h bGl6ZV9sZWFkaW5nX2NvZWZmaWNpZW50cygpCisgCistICAgIGNkZWYgbm9ybWFsaXplX2xlYWRp bmdfY29lZmZpY2llbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG5vcm1hbGl6ZV9sZWFk aW5nX2NvZWZmaWNpZW50cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2VlIDptZXRo OmByZWR1Y2VgLgorICAgICAgICAgIiIiCitAQCAtMTI1Miw3ICsxMjUyLDcgQEAgY2RlZiBjbGFz cyBGcmFjdGlvbkZpZWxkRWxlbWVudF8xcG9seV9maWVsZChGcmFjdGlvbkZpZWxkRWxlbWVudCk6 CisgICAgICAgICBMLnNvcnQoKQorICAgICAgICAgcmV0dXJuIEwKKyAKKy0gICAgY3BkZWYgcmVk dWNlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2Uoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFBpY2sgYSBub3JtYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHNlbGYuCisg CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZWxlbWVudC5weGQg Yi9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50LnB4ZAoraW5kZXggOWZmZGJk NDgzODMuLjA5YWM5MjIxZTc2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25f ZmllbGQvZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2Vs ZW1lbnQucHhkCitAQCAtNSw2ICs1LDYgQEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVu dChGaWVsZEVsZW1lbnQpOgorICAgICBjZGVmIHJlYWRvbmx5IG9iamVjdCBfeAorICAgICBjZGVm IHJlYWRvbmx5IG9iamVjdCBfbWF0cml4CisgCistICAgIGNkZWYgRnVuY3Rpb25GaWVsZEVsZW1l bnQgX25ld19jKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQg X25ld19jKHNlbGYpCisgICAgIGNwZGVmIGJpbnQgaXNfbnRoX3Bvd2VyKHNlbGYsIG4pIG5vZXhj ZXB0CistICAgIGNwZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50IG50aF9yb290KHNlbGYsIG4pIG5v ZXhjZXB0CisrICAgIGNwZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50IG50aF9yb290KHNlbGYsIG4p CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZWxlbWVudC5weXgg Yi9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50LnB5eAoraW5kZXggZDljMjg0 ZDYxZTYuLjI3NjViODA1YWJhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25f ZmllbGQvZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2Vs ZW1lbnQucHl4CitAQCAtMTIyLDcgKzEyMiw3IEBAIGNkZWYgY2xhc3MgRnVuY3Rpb25GaWVsZEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIHJldHVybiAobWFrZV9GdW5jdGlvbkZpZWxk RWxlbWVudCwKKyAgICAgICAgICAgICAgICAgKHNlbGYuX3BhcmVudCwgdHlwZShzZWxmKSwgc2Vs Zi5feCkpCisgCistICAgIGNkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgX25ld19jKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50IF9uZXdfYyhzZWxmKToKKyAg ICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxmKQorICAgICAgICAgY2RlZiBGdW5jdGlvbkZp ZWxkRWxlbWVudCB4ID0gPEZ1bmN0aW9uRmllbGRFbGVtZW50PnQuX19uZXdfXyh0KQorICAgICAg ICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50CitAQCAtNjk4LDcgKzY5OCw3IEBAIGNkZWYgY2xh c3MgRnVuY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiaXNfbnRoX3Bvd2VyKCkgbm90IGltcGxl bWVudGVkIGZvciBnZW5lcmljIGVsZW1lbnRzIikKKyAKKy0gICAgY3BkZWYgRnVuY3Rpb25GaWVs ZEVsZW1lbnQgbnRoX3Jvb3Qoc2VsZiwgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEZ1bmN0aW9u RmllbGRFbGVtZW50IG50aF9yb290KHNlbGYsIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gYW4gYGBuYGAtdGggcm9vdCBvZiB0aGlzIGVsZW1lbnQgaW4gdGhlIGZ1bmN0aW9uIGZp ZWxkLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2VsZW1l bnRfcG9seW1vZC5weXggYi9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50X3Bv bHltb2QucHl4CitpbmRleCBjNmZkZWE4M2IwOS4uN2E3NWJmZTk3OGUgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50X3BvbHltb2QucHl4CisrKysgYi9z cmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50X3BvbHltb2QucHl4CitAQCAtMTEy LDcgKzExMiw3IEBAIGNkZWYgY2xhc3MgRnVuY3Rpb25GaWVsZEVsZW1lbnRfcG9seW1vZChGdW5j dGlvbkZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBoYXNoKHNl bGYuX3gpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAg ICAgIiIiCisgICAgICAgICBEbyByaWNoIGNvbXBhcmlzb24gd2l0aCB0aGUgb3RoZXIgZWxlbWVu dCB3aXRoIHJlc3BlY3QgdG8gYGBvcGBgCisgCitAQCAtMTI5LDcgKzEyOSw3IEBAIGNkZWYgY2xh c3MgRnVuY3Rpb25GaWVsZEVsZW1lbnRfcG9seW1vZChGdW5jdGlvbkZpZWxkRWxlbWVudCk6Cisg ICAgICAgICBjZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50IHJpZ2h0ID0gPEZ1bmN0aW9uRmllbGRF bGVtZW50Pm90aGVyCisgICAgICAgICByZXR1cm4gcmljaGNtcChsZWZ0Ll94LCByaWdodC5feCwg b3ApCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgdGhlIGVs ZW1lbnQgd2l0aCB0aGUgb3RoZXIgZWxlbWVudC4KKyAKK0BAIC0xNTIsNyArMTUyLDcgQEAgY2Rl ZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVudF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRFbGVtZW50 KToKKyAgICAgICAgIHJlcy5feCA9IHNlbGYuX3ggKyAoPEZ1bmN0aW9uRmllbGRFbGVtZW50PnJp Z2h0KS5feAorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBy aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgU3VidHJhY3QgdGhlIG90aGVyIGVsZW1lbnQgZnJvbSB0aGUgZWxlbWVu dC4KKyAKK0BAIC0xNzMsNyArMTczLDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVu dF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAgIHJlcy5feCA9IHNlbGYu X3ggLSAoPEZ1bmN0aW9uRmllbGRFbGVtZW50PnJpZ2h0KS5feAorICAgICAgICAgcmV0dXJuIHJl cworIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgdGhl IGVsZW1lbnQgd2l0aCB0aGUgb3RoZXIgZWxlbWVudC4KKyAKK0BAIC0xOTIsNyArMTkyLDcgQEAg Y2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVudF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRFbGVt ZW50KToKKyAgICAgICAgIHJlcy5feCA9IChzZWxmLl94ICogKDxGdW5jdGlvbkZpZWxkRWxlbWVu dD5yaWdodCkuX3gpICUgc2VsZi5fcGFyZW50LnBvbHlub21pYWwoKQorICAgICAgICAgcmV0dXJu IHJlcworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlIHRo ZSBlbGVtZW50IHdpdGggdGhlIG90aGVyIGVsZW1lbnQuCisgCitAQCAtMjMxLDcgKzIzMSw3IEBA IGNkZWYgY2xhc3MgRnVuY3Rpb25GaWVsZEVsZW1lbnRfcG9seW1vZChGdW5jdGlvbkZpZWxkRWxl bWVudCk6CisgICAgICAgICBQID0gc2VsZi5fcGFyZW50CisgICAgICAgICByZXR1cm4gUChzZWxm Ll94LnhnY2QoUC5fcG9seW5vbWlhbClbMV0pCisgCistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgdGhlIGNvZWZmaWNpZW50cyByZXByZXNlbnRpbmcg dGhlIGVsZW1lbnQuCisgCitAQCAtMjUxLDcgKzI1MSw3IEBAIGNkZWYgY2xhc3MgRnVuY3Rpb25G aWVsZEVsZW1lbnRfcG9seW1vZChGdW5jdGlvbkZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLl94LnBhZGRlZF9saXN0KHNlbGYuX3BhcmVudC5kZWdyZWUo KSkKKyAKKy0gICAgY3BkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgbnRoX3Jvb3Qoc2VsZiwgbikg bm9leGNlcHQ6CisrICAgIGNwZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50IG50aF9yb290KHNlbGYs IG4pOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGBgbmBgLXRoIHJvb3Qgb2Yg dGhpcyBlbGVtZW50IGluIHRoZSBmdW5jdGlvbiBmaWVsZC4KKyAKK0BAIC0zNjcsNyArMzY3LDcg QEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVudF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRF bGVtZW50KToKKyAKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImlzX250aF9w b3dlcigpIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBuIikKKyAKKy0gICAgY2RlZiBGdW5jdGlv bkZpZWxkRWxlbWVudCBfcHRoX3Jvb3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgRnVuY3Rp b25GaWVsZEVsZW1lbnQgX3B0aF9yb290KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg SGVscGVyIG1ldGhvZCBmb3IgOm1ldGg6YG50aF9yb290YCBhbmQgOm1ldGg6YGlzX250aF9wb3dl cmAgd2hpY2gKKyAgICAgICAgIGNvbXB1dGVzIGEgYHBgLXRoIHJvb3QgaWYgdGhlIGNoYXJhY3Rl cmlzdGljIGlzIGBwYCBhbmQgdGhlIGNvbnN0YW50CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvZnVuY3Rpb25fZmllbGQvZWxlbWVudF9yYXRpb25hbC5weXggYi9zcmMvc2FnZS9yaW5ncy9m dW5jdGlvbl9maWVsZC9lbGVtZW50X3JhdGlvbmFsLnB5eAoraW5kZXggOTg2YTQ2MzAwYjguLjQw ZDBkOTczNGVmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZWxl bWVudF9yYXRpb25hbC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2Vs ZW1lbnRfcmF0aW9uYWwucHl4CitAQCAtODUsNyArODUsNyBAQCBjZGVmIGNsYXNzIEZ1bmN0aW9u RmllbGRFbGVtZW50X3JhdGlvbmFsKEZ1bmN0aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuX3gKKyAKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBhIGxpc3Qgd2l0aCBqdXN0IHRoZSBlbGVtZW50LgorIAorQEAgLTE0Myw3 ICsxNDMsNyBAQCBjZGVmIGNsYXNzIEZ1bmN0aW9uRmllbGRFbGVtZW50X3JhdGlvbmFsKEZ1bmN0 aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGhhc2goc2Vs Zi5feCkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIENvbXBhcmUgdGhlIGVsZW1lbnQgd2l0aCB0aGUgb3RoZXIgZWxlbWVu dCB3aXRoIHJlc3BlY3QgdG8gYGBvcGBgCisgCitAQCAtMTc0LDcgKzE3NCw3IEBAIGNkZWYgY2xh c3MgRnVuY3Rpb25GaWVsZEVsZW1lbnRfcmF0aW9uYWwoRnVuY3Rpb25GaWVsZEVsZW1lbnQpOgor ICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVt ZW50ZWQKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0aGUg ZWxlbWVudCB3aXRoIHRoZSBvdGhlciBlbGVtZW50LgorIAorQEAgLTE5Miw3ICsxOTIsNyBAQCBj ZGVmIGNsYXNzIEZ1bmN0aW9uRmllbGRFbGVtZW50X3JhdGlvbmFsKEZ1bmN0aW9uRmllbGRFbGVt ZW50KToKKyAgICAgICAgIHJlcy5feCA9IHNlbGYuX3ggKyAoPEZ1bmN0aW9uRmllbGRFbGVtZW50 PnJpZ2h0KS5feAorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxm LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgU3VidHJhY3QgdGhlIG90aGVyIGVsZW1lbnQgZnJvbSB0aGUgZWxl bWVudC4KKyAKK0BAIC0yMTAsNyArMjEwLDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxl bWVudF9yYXRpb25hbChGdW5jdGlvbkZpZWxkRWxlbWVudCk6CisgICAgICAgICByZXMuX3ggPSBz ZWxmLl94IC0gKDxGdW5jdGlvbkZpZWxkRWxlbWVudD5yaWdodCkuX3gKKyAgICAgICAgIHJldHVy biByZXMKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5 IHRoZSBlbGVtZW50IHdpdGggdGhlIG90aGVyIGVsZW1lbnQKKyAKK0BAIC0yMjgsNyArMjI4LDcg QEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVudF9yYXRpb25hbChGdW5jdGlvbkZpZWxk RWxlbWVudCk6CisgICAgICAgICByZXMuX3ggPSBzZWxmLl94ICogKDxGdW5jdGlvbkZpZWxkRWxl bWVudD5yaWdodCkuX3gKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX2Rpdl8o c2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIERpdmlkZSB0aGUgZWxlbWVudCB3aXRoIHRoZSBvdGhlciBl bGVtZW50CisgCitAQCAtNDEyLDcgKzQxMiw3IEBAIGNkZWYgY2xhc3MgRnVuY3Rpb25GaWVsZEVs ZW1lbnRfcmF0aW9uYWwoRnVuY3Rpb25GaWVsZEVsZW1lbnQpOgorIAorICAgICAgICAgcmFpc2Ug Tm90SW1wbGVtZW50ZWRFcnJvcigiaXNfbnRoX3Bvd2VyKCkgbm90IGltcGxlbWVudGVkIGZvciB0 aGUgZ2l2ZW4gbiIpCisgCistICAgIGNwZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50IG50aF9yb290 KHNlbGYsIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBGdW5jdGlvbkZpZWxkRWxlbWVudCBudGhf cm9vdChzZWxmLCBuKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBgYG5gYC10 aCByb290IG9mIHRoaXMgZWxlbWVudCBpbiB0aGUgZnVuY3Rpb24gZmllbGQuCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlci5weGQgYi9zcmMvc2FnZS9yaW5ncy9pbnRlZ2Vy LnB4ZAoraW5kZXggMmY4MWMxNjQ5NDMuLjk1YzA2NTViM2RkIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvaW50ZWdlci5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXIucHhkCitA QCAtMTEsMzQgKzExLDM0IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihFdWNsaWRlYW5Eb21haW5FbGVt ZW50KToKKyAgICAgY2RlZiBfX21wel9zdHJ1Y3QgdmFsdWVbMV0KKyAKKyAgICAgY2RlZiB2b2lk IHNldF9mcm9tX21weihzZWxmLCBtcHpfdCB2YWx1ZSkgbm9leGNlcHQKKy0gICAgY2RlZiBoYXNo X2Moc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBoYXNoX2Moc2VsZikKKyAKKy0gICAgY3BkZWYg X19wYXJpX18oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgX19wYXJpX18oc2VsZikKKyAKKy0g ICAgY3BkZWYgX3NoaWZ0X2hlbHBlcihJbnRlZ2VyIHNlbGYsIHksIGludCBzaWduKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211 bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKSBu b2V4Y2VwdAorLSAgICBjZGVmIF9hbmQoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIG90aGVyKSBub2V4 Y2VwdAorLSAgICBjZGVmIF9vcihJbnRlZ2VyIHNlbGYsIEludGVnZXIgb3RoZXIpIG5vZXhjZXB0 CistICAgIGNkZWYgX3hvcihJbnRlZ2VyIHNlbGYsIEludGVnZXIgb3RoZXIpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIF9zaGlmdF9oZWxwZXIoSW50ZWdlciBzZWxmLCB5LCBpbnQgc2lnbikKKysgICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQor KyAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikKKysgICAgY2RlZiBfYW5kKEludGVnZXIgc2Vs ZiwgSW50ZWdlciBvdGhlcikKKysgICAgY2RlZiBfb3IoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIG90 aGVyKQorKyAgICBjZGVmIF94b3IoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIG90aGVyKQorIAorICAg ICBjcGRlZiBzaXplX3QgX2V4YWN0X2xvZ19sb2cyX2l0ZXIoc2VsZixJbnRlZ2VyIG0pIG5vZXhj ZXB0CisgICAgIGNwZGVmIHNpemVfdCBfZXhhY3RfbG9nX21wZmlfbG9nKHNlbGYsbSkgbm9leGNl cHQKKy0gICAgY3BkZWYgUmluZ0VsZW1lbnQgX3ZhbHVhdGlvbihJbnRlZ2VyIHNlbGYsIEludGVn ZXIgcCkgbm9leGNlcHQKKy0gICAgY2RlZiBvYmplY3QgX3ZhbF91bml0KEludGVnZXIgc2VsZiwg SW50ZWdlciBwKSBub2V4Y2VwdAorLSAgICBjZGVmIEludGVnZXIgX2RpdmlkZV9rbm93aW5nX2Rp dmlzaWJsZV9ieShJbnRlZ2VyIHNlbGYsIEludGVnZXIgcmlnaHQpIG5vZXhjZXB0CisrICAgIGNw ZGVmIFJpbmdFbGVtZW50IF92YWx1YXRpb24oSW50ZWdlciBzZWxmLCBJbnRlZ2VyIHApCisrICAg IGNkZWYgb2JqZWN0IF92YWxfdW5pdChJbnRlZ2VyIHNlbGYsIEludGVnZXIgcCkKKysgICAgY2Rl ZiBJbnRlZ2VyIF9kaXZpZGVfa25vd2luZ19kaXZpc2libGVfYnkoSW50ZWdlciBzZWxmLCBJbnRl Z2VyIHJpZ2h0KQorICAgICBjZGVmIGJpbnQgX2lzX3Bvd2VyX29mKEludGVnZXIgc2VsZiwgSW50 ZWdlciBuKSBub2V4Y2VwdAorIAorICAgICBjZGVmIGJpbnQgX3BzZXVkb3ByaW1lX2lzX3ByaW1l KHNlbGYsIHByb29mKSBleGNlcHQgLTEKKyAKKyBjZGVmIGludCBtcHpfc2V0X3N0cl9weXRob24o bXB6X3B0ciB6LCBjaGFyKiBzLCBpbnQgYmFzZSkgZXhjZXB0IC0xCisgCistY2RlZiBJbnRlZ2Vy IHNtYWxsSW50ZWdlcihsb25nIHZhbHVlKSBub2V4Y2VwdAorK2NkZWYgSW50ZWdlciBzbWFsbElu dGVnZXIobG9uZyB2YWx1ZSkKKyAKKyBjZGVmIGJpbnQgX3NtYWxsX3ByaW1lc190YWJsZVs1MDBd CisgCistY2RlZiBpbmxpbmUgSW50ZWdlciBfSW50ZWdlcl9mcm9tX21weihtcHpfdCBlKSBub2V4 Y2VwdDoKKytjZGVmIGlubGluZSBJbnRlZ2VyIF9JbnRlZ2VyX2Zyb21fbXB6KG1wel90IGUpOgor ICAgICBjZGVmIEludGVnZXIgeiA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorICAgICBtcHpf c2V0KHoudmFsdWUsIGUpCisgICAgIHJldHVybiB6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvaW50ZWdlci5weXggYi9zcmMvc2FnZS9yaW5ncy9pbnRlZ2VyLnB5eAoraW5kZXggZDBhMTkw MmM0NDkuLjg2YTI5MzQwMTFjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlci5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXIucHl4CitAQCAtMjExLDExICsyMTEsMTEg QEAgY2RlZiBvYmplY3QgbnVtcHlfbG9uZ19pbnRlcmZhY2UgPSB7J3R5cGVzdHInOiAnPWk0JyBp ZiBzaXplb2YobG9uZykgPT0gNCBlbHNlICcKKyBjZGVmIG9iamVjdCBudW1weV9pbnQ2NF9pbnRl cmZhY2UgPSB7J3R5cGVzdHInOiAnPWk4J30KKyBjZGVmIG9iamVjdCBudW1weV9vYmplY3RfaW50 ZXJmYWNlID0geyd0eXBlc3RyJzogJ3xPJ30KKyAKKy1jZGVmIHNldF9mcm9tX0ludGVnZXIoSW50 ZWdlciBzZWxmLCBJbnRlZ2VyIG90aGVyKSBub2V4Y2VwdDoKKytjZGVmIHNldF9mcm9tX0ludGVn ZXIoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIG90aGVyKToKKyAgICAgbXB6X3NldChzZWxmLnZhbHVl LCBvdGhlci52YWx1ZSkKKyAKKyAKKy1jZGVmIF9kaWdpdHNfbmFpdmUobXB6X3QgdixsLGludCBv ZmZzZXQsSW50ZWdlciBiYXNlLGRpZ2l0cykgbm9leGNlcHQ6CisrY2RlZiBfZGlnaXRzX25haXZl KG1wel90IHYsbCxpbnQgb2Zmc2V0LEludGVnZXIgYmFzZSxkaWdpdHMpOgorICAgICAiIiIKKyAg ICAgVGhpcyBtZXRob2QgZmlsbHMgaW4gZGlnaXQgZW50cmllcyBpbiB0aGUgbGlzdCwgbCwgdXNp bmcgdGhlIG1vc3QKKyAgICAgYmFzaWMgZGlnaXQgYWxnb3JpdGhtIC0tIHJlcGVhdCBkaXZpc2lv biBieSBiYXNlLgorQEAgLTI2Miw3ICsyNjIsNyBAQCBjZGVmIF9kaWdpdHNfbmFpdmUobXB6X3Qg dixsLGludCBvZmZzZXQsSW50ZWdlciBiYXNlLGRpZ2l0cykgbm9leGNlcHQ6CisgCisgICAgIG1w el9jbGVhcihtcHpfdmFsdWUpCisgCistY2RlZiBfZGlnaXRzX2ludGVybmFsKG1wel90IHYsbCxp bnQgb2Zmc2V0LGludCBwb3dlcl9pbmRleCxwb3dlcl9saXN0LGRpZ2l0cykgbm9leGNlcHQ6Cisr Y2RlZiBfZGlnaXRzX2ludGVybmFsKG1wel90IHYsbCxpbnQgb2Zmc2V0LGludCBwb3dlcl9pbmRl eCxwb3dlcl9saXN0LGRpZ2l0cyk6CisgICAgICIiIgorICAgICBJTlBVVDoKKyAKK0BAIC0zMzcs NyArMzM3LDcgQEAgZGVmIGlzX0ludGVnZXIoeCk6CisgICAgIHJldHVybiBpc2luc3RhbmNlKHgs IEludGVnZXIpCisgCisgCistY2RlZiBpbmxpbmUgSW50ZWdlciBhc19JbnRlZ2VyKHgpIG5vZXhj ZXB0OgorK2NkZWYgaW5saW5lIEludGVnZXIgYXNfSW50ZWdlcih4KToKKyAgICAgaWYgaXNpbnN0 YW5jZSh4LCBJbnRlZ2VyKToKKyAgICAgICAgIHJldHVybiA8SW50ZWdlcj54CisgICAgIGVsc2U6 CitAQCAtNzczLDcgKzc3Myw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5l bGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gY29kb21haW4uY29lcmNlKHNlbGYpCisgCistICAgIGNkZWYgX3hvcihJbnRlZ2VyIHNl bGYsIEludGVnZXIgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF94b3IoSW50ZWdlciBzZWxm LCBJbnRlZ2VyIG90aGVyKToKKyAgICAgICAgIGNkZWYgSW50ZWdlciB4CisgICAgICAgICB4ID0g UFlfTkVXKEludGVnZXIpCisgICAgICAgICBtcHpfeG9yKHgudmFsdWUsIHNlbGYudmFsdWUsIG90 aGVyLnZhbHVlKQorQEAgLTkxNSw3ICs5MTUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXIoc2FnZS5z dHJ1Y3R1cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToKKyAKKyAgICAgICAgIHJl dHVybiByaWNoX3RvX2Jvb2xfc2duKG9wLCBjKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVm dCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCBy aWdodCwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BA IC0xNzY0LDcgKzE3NjQsNyBAQCBjZGVmIGNsYXNzIEludGVnZXIoc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToKKyAKKyAgICAgICAgIHJldHVybiBjb2VyY2lv bl9tb2RlbC5iaW5fb3AobGVmdCwgcmlnaHQsIG9wZXJhdG9yLmFkZCkKKyAKKy0gICAgY3BkZWYg X2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEludGVnZXIgYWRkaXRpb24uCisgCitAQCAtMTc4 Miw3ICsxNzgyLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu RXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgICAgICAgICBtcHpfYWRkKHgudmFsdWUsIHNlbGYu dmFsdWUsICg8SW50ZWdlcj5yaWdodCkudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAg ICBjZGVmIF9hZGRfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9hZGRf bG9uZyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBGYXN0IHBhdGggZm9y IGFkZGluZyBhIEMgbG9uZy4KKyAKK0BAIC0xODUxLDcgKzE4NTEsNyBAQCBjZGVmIGNsYXNzIElu dGVnZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToKKyAK KyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3AobGVmdCwgcmlnaHQsIG9wZXJh dG9yLnN1YikKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEludGVn ZXIgc3VidHJhY3Rpb24uCisgCitAQCAtMTg4OSwxMiArMTg4OSwxMiBAQCBjZGVmIGNsYXNzIElu dGVnZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToKKyAg ICAgICAgIG1wel9uZWcoeC52YWx1ZSwgc2VsZi52YWx1ZSkKKyAgICAgICAgIHJldHVybiB4Cisg CistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxm KToKKyAgICAgICAgIGNkZWYgSW50ZWdlciB4ID0gPEludGVnZXI+UFlfTkVXKEludGVnZXIpCisg ICAgICAgICBtcHpfbmVnKHgudmFsdWUsIHNlbGYudmFsdWUpCisgICAgICAgICByZXR1cm4geAor IAorLSAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCBzLCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9hY3Rfb25fKHNlbGYsIHMsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTE5MTEsNyArMTkxMSw3IEBA IGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFp bkVsZW1lbnQpOgorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJldHVybiBz ICogaW50KHNlbGYpICAjIHdpbGwgcmFpc2UgdGhlIGFwcHJvcHJpYXRlIGV4Y2VwdGlvbgorIAor LSAgICBjZGVmIF9tdWxfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9t dWxfbG9uZyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBGYXN0IHBhdGgg Zm9yIG11bHRpcGx5aW5nIGEgQyBsb25nLgorIAorQEAgLTE5NTksNyArMTk1OSw3IEBAIGNkZWYg Y2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1l bnQpOgorIAorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdo dCwgb3BlcmF0b3IubXVsKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgSW50ZWdlciBtdWx0aXBsaWNhdGlvbi4KKyAKK0BAIC0yMDMyLDcgKzIwMzIsNyBAQCBjZGVm IGNsYXNzIEludGVnZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVt ZW50KToKKyAKKyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3AobGVmdCwgcmln aHQsIG9wZXJhdG9yLnRydWVkaXYpCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgor ICAgICAgICAgQ29tcHV0ZXMgYFxmcmFje2F9e2J9YAorIAorQEAgLTIwNDksNyArMjA0OSw3IEBA IGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFp bkVsZW1lbnQpOgorICAgICAgICAgbXBxX2Rpdl96eih4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPElu dGVnZXI+cmlnaHQpLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2Zs b29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2Vs ZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZXMgdGhlIHdob2xlIHBh cnQgb2YgYFxmcmFje3h9e3l9YC4KKyAKK0BAIC0yMTkxLDcgKzIxOTEsNyBAQCBjZGVmIGNsYXNz IEludGVnZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToK KyAgICAgICAgICMgbGVmdCBpcyBhIG5vbi1FbGVtZW50OiBkbyB0aGUgcG93ZXJpbmcgd2l0aCBh IFB5dGhvbiBpbnQKKyAgICAgICAgIHJldHVybiBsZWZ0ICoqIGludChyaWdodCkKKyAKKy0gICAg Y3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcG93XyhzZWxm LCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEludGVnZXIgcG93ZXJpbmcuCisgCitA QCAtMjI3MSw3ICsyMjcxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIHJldHVybiB+cgorIAorLSAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgaWYgbiA9 PSAwOgorICAgICAgICAgICAgIHJldHVybiBzbWFsbEludGVnZXIoMSkKKyAgICAgICAgIGVsaWYg biA9PSAxOgorQEAgLTIzMDEsNyArMjMwMSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0 cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgICAgIHNp Z19vZmYoKQorICAgICAgICAgICAgIHJldHVybiBxCisgCistICAgIGNwZGVmIF9wb3dfaW50KHNl bGYsIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKToKKyAgICAgICAg ICIiIgorICAgICAgICAgSW50ZWdlciBwb3dlcmluZyB0byBhbiBpbnRlZ2VyIGV4cG9uZW50Lgor IAorQEAgLTM2ODMsNyArMzY4Myw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVy ZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gbXB6X3B5dGhvbmhhc2goc2VsZi52YWx1ZSkKKyAKKy0gICAgY2RlZiBoYXNoX2Mo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaGFzaF9jKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBBIEMgdmVyc2lvbiBvZiB0aGUgX19oYXNoX18gZnVuY3Rpb24uCisgICAgICAgICAi IiIKK0BAIC00MTk5LDcgKzQxOTksNyBAQCBjZGVmIGNsYXNzIEludGVnZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgcmV0dXJuIHQKKyAKKy0gICAgY3BkZWYgUmluZ0VsZW1lbnQgX3ZhbHVhdGlvbihJ bnRlZ2VyIHNlbGYsIEludGVnZXIgcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFJpbmdFbGVtZW50 IF92YWx1YXRpb24oSW50ZWdlciBzZWxmLCBJbnRlZ2VyIHApOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBwLWFkaWMgdmFsdWF0aW9uIG9mIGBgc2VsZmBgLgorIAorQEAgLTQy MjQsNyArNDIyNCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgbXB6X2NsZWFyKHUpCisgICAgICAg ICByZXR1cm4gdgorIAorLSAgICBjZGVmIG9iamVjdCBfdmFsX3VuaXQoSW50ZWdlciBzZWxmLCBJ bnRlZ2VyIHApIG5vZXhjZXB0OgorKyAgICBjZGVmIG9iamVjdCBfdmFsX3VuaXQoSW50ZWdlciBz ZWxmLCBJbnRlZ2VyIHApOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgcGFpcjog dGhlIHAtYWRpYyB2YWx1YXRpb24gb2YgYGBzZWxmYGAsIGFuZCB0aGUgcC1hZGljIHVuaXQKKyAg ICAgICAgIG9mIGBgc2VsZmBgLgorQEAgLTQzNzMsNyArNDM3Myw3IEBAIGNkZWYgY2xhc3MgSW50 ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAg ICAgICAgbXB6X3RkaXZfcV8yZXhwKG9kZC52YWx1ZSwgc2VsZi52YWx1ZSwgYml0cykKKyAgICAg ICAgIHJldHVybiBvZGQKKyAKKy0gICAgY2RlZiBJbnRlZ2VyIF9kaXZpZGVfa25vd2luZ19kaXZp c2libGVfYnkoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBJbnRlZ2VyIF9kaXZpZGVfa25vd2luZ19kaXZpc2libGVfYnkoSW50ZWdlciBzZWxmLCBJbnRl Z2VyIHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW50ZWdlciBg YHNlbGZgYCAvIGBgcmlnaHRgYCB3aGVuIGBgc2VsZmBgIGlzIGRpdmlzaWJsZSBieSByaWdodC4K KyAKK0BAIC02MjAwLDcgKzYyMDAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToKKyAgICAgICAgIGQgPSBzZWxmIC8v IDQKKyAgICAgICAgIHJldHVybiBkICUgNCBpbiBbMiwgM10gYW5kIGQuaXNfc3F1YXJlZnJlZSgp CisgCistICAgIGNwZGVmIF9fcGFyaV9fKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfX3Bh cmlfXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBQQVJJIHZlcnNp b24gb2YgdGhpcyBpbnRlZ2VyLgorIAorQEAgLTY2NjgsNyArNjY2OCw3IEBAIGNkZWYgY2xhc3Mg SW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgor IAorICAgICAgICAgcmV0dXJuIGcsIHMsIHQKKyAKKy0gICAgY3BkZWYgX3NoaWZ0X2hlbHBlcihJ bnRlZ2VyIHNlbGYsIHksIGludCBzaWduKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NoaWZ0X2hl bHBlcihJbnRlZ2VyIHNlbGYsIHksIGludCBzaWduKToKKyAgICAgICAgICIiIgorICAgICAgICAg Q29tcHV0ZSBsZWZ0IGFuZCByaWdodCBzaGlmdHMgb2YgaW50ZWdlcnMuCisgICAgICAgICBTaGlm dHMgYGBzZWxmYGAgYGB5YGAgYml0cyB0byB0aGUgbGVmdCBpZiBgYHNpZ25gYCBpcyBgMWAsIGFu ZCB0byB0aGUgcmlnaHQKK0BAIC02ODEwLDcgKzY4MTAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXIo c2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5FdWNsaWRlYW5Eb21haW5FbGVtZW50KToKKyAgICAgICAg ICAgICByZXR1cm4geCA+PiBpbnQoeSkKKyAgICAgICAgIHJldHVybiAoPEludGVnZXI+eCkuX3No aWZ0X2hlbHBlcih5LCAtMSkKKyAKKy0gICAgY2RlZiBfYW5kKEludGVnZXIgc2VsZiwgSW50ZWdl ciBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2FuZChJbnRlZ2VyIHNlbGYsIEludGVnZXIg b3RoZXIpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyIHggPSBQWV9ORVcoSW50ZWdlcikKKyAgICAg ICAgIG1wel9hbmQoeC52YWx1ZSwgc2VsZi52YWx1ZSwgb3RoZXIudmFsdWUpCisgICAgICAgICBy ZXR1cm4geAorQEAgLTY4MzEsNyArNjgzMSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0 cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgICAgIHJl dHVybiAoPEludGVnZXI+eCkuX2FuZCh5KQorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVs LmJpbl9vcCh4LCB5LCBvcGVyYXRvci5hbmRfKQorIAorLSAgICBjZGVmIF9vcihJbnRlZ2VyIHNl bGYsIEludGVnZXIgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9vcihJbnRlZ2VyIHNlbGYs IEludGVnZXIgb3RoZXIpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyIHggPSBQWV9ORVcoSW50ZWdl cikKKyAgICAgICAgIG1wel9pb3IoeC52YWx1ZSwgc2VsZi52YWx1ZSwgb3RoZXIudmFsdWUpCisg ICAgICAgICByZXR1cm4geAorQEAgLTc0NzYsNyArNzQ3Niw3IEBAIGNkZWYgY2xhc3MgaW50X3Rv X1ooTW9ycGhpc20pOgorICAgICAgICAgZnJvbSBzYWdlLnNldHMucHl0aG9uY2xhc3MgaW1wb3J0 IFNldF9QeXRob25UeXBlCisgICAgICAgICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBzYWdlLmNh dGVnb3JpZXMuaG9tc2V0LkhvbShTZXRfUHl0aG9uVHlwZShpbnQpLCBpbnRlZ2VyX3JpbmcuWlop KQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBhKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgYSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBhIG5ldyBpbnRlZ2VyIHdpdGggdGhlIHNhbWUgdmFsdWUgYXMgYGBhYGAuCisgCitAQCAt NzUyMSw3ICs3NTIxLDcgQEAgY2RlZiBjbGFzcyBsb25nX3RvX1ooTW9ycGhpc20pOgorICAgICAg ICAgZnJvbSBzYWdlLnNldHMucHl0aG9uY2xhc3MgaW1wb3J0IFNldF9QeXRob25UeXBlCisgICAg ICAgICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBzYWdlLmNhdGVnb3JpZXMuaG9tc2V0LkhvbShT ZXRfUHl0aG9uVHlwZShsb25nKSwgaW50ZWdlcl9yaW5nLlpaKSkKKyAKKy0gICAgY3BkZWYgRWxl bWVudCBfY2FsbF8oc2VsZiwgYSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIGEpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyIHIKKyAgICAgICAgIGNkZWYgbG9uZyBs CisgICAgICAgICBjZGVmIGludCBlcnIgPSAwCitAQCAtNzcwNSw3ICs3NzA1LDcgQEAgY2RlZiB2 b2lkIGZhc3RfdHBfZGVhbGxvYyhQeU9iamVjdCogbykgbm9leGNlcHQ6CisgCisgCisgZnJvbSBz YWdlLm1pc2MuYWxsb2NhdG9yIGNpbXBvcnQgaG9va190cF9mdW5jdGlvbnMKKy1jZGVmIGhvb2tf ZmFzdF90cF9mdW5jdGlvbnMoKSBub2V4Y2VwdDoKKytjZGVmIGhvb2tfZmFzdF90cF9mdW5jdGlv bnMoKToKKyAgICAgIiIiCisgICAgIEluaXRpYWxpemUgdGhlIGZhc3QgaW50ZWdlciBjcmVhdGlv biBmdW5jdGlvbnMuCisgICAgICIiIgorQEAgLTc3MjMsNyArNzcyMyw3IEBAIGNkZWYgaG9va19m YXN0X3RwX2Z1bmN0aW9ucygpIG5vZXhjZXB0OgorICAgICAjIHRvIGJlIGNvbnN0cnVjdGVkL2Rl c3RydWN0ZWQuCisgICAgIGhvb2tfdHBfZnVuY3Rpb25zKGdsb2JhbF9kdW1teV9JbnRlZ2VyLCA8 bmV3ZnVuYz4oJmZhc3RfdHBfbmV3KSwgPGRlc3RydWN0b3I+KCZmYXN0X3RwX2RlYWxsb2MpLCBG YWxzZSkKKyAKKy1jZGVmIGludGVnZXIoeCkgbm9leGNlcHQ6CisrY2RlZiBpbnRlZ2VyKHgpOgor ICAgICBpZiBpc2luc3RhbmNlKHgsIEludGVnZXIpOgorICAgICAgICAgcmV0dXJuIHgKKyAgICAg cmV0dXJuIEludGVnZXIoeCkKK0BAIC03NzUzLDcgKzc3NTMsNyBAQCBob29rX2Zhc3RfdHBfZnVu Y3Rpb25zKCkKKyAKKyAjIHplcm8gYW5kIG9uZSBpbml0aWFsaXphdGlvbgorIGluaXRpYWxpemVk ID0gRmFsc2UKKy1jZGVmIHNldF96ZXJvX29uZV9lbGVtZW50cygpIG5vZXhjZXB0OgorK2NkZWYg c2V0X3plcm9fb25lX2VsZW1lbnRzKCk6CisgICAgIGdsb2JhbCB0aGVfaW50ZWdlcl9yaW5nLCBp bml0aWFsaXplZAorICAgICBpZiBpbml0aWFsaXplZDoKKyAgICAgICAgIHJldHVybgorQEAgLTc3 NzMsNyArNzc3Myw3IEBAIERFRiBzbWFsbF9wb29sX21heCA9IDI1NgorICMgd2UgY291bGQgdXNl IHRoZSBhYm92ZSB6ZXJvIGFuZCBvbmUgaGVyZQorIGNkZWYgbGlzdCBzbWFsbF9wb29sID0gW0lu dGVnZXIoaykgZm9yIGsgaW4gcmFuZ2Uoc21hbGxfcG9vbF9taW4sIHNtYWxsX3Bvb2xfbWF4KzEp XQorIAorLWNkZWYgaW5saW5lIEludGVnZXIgc21hbGxJbnRlZ2VyKGxvbmcgdmFsdWUpIG5vZXhj ZXB0OgorK2NkZWYgaW5saW5lIEludGVnZXIgc21hbGxJbnRlZ2VyKGxvbmcgdmFsdWUpOgorICAg ICAiIiIKKyAgICAgVGhpcyBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gY3JlYXRlIGEgKGxpa2VseSkg c21hbGwgSW50ZWdlci4KKyAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvaW50 ZWdlcl9yaW5nLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXJfcmluZy5weXgKK2luZGV4IGJi YmQ5ODlhNjVkLi5mOWJlZjQxNGM2MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2ludGVn ZXJfcmluZy5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXJfcmluZy5weXgKK0BAIC01 MjgsNyArNTI4LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyUmluZ19jbGFzcyhQcmluY2lwYWxJZGVh bERvbWFpbik6CisgICAgICAgICAgICAgeWllbGQgLW4KKyAgICAgICAgICAgICBuICs9IDEKKyAK Ky0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpOgorICAgICAgICAgciIiIgorICAgICAgICAg YGB4YGAgY2Fub25pY2FsbHkgY29lcmNlcyB0byB0aGUgaW50ZWdlcnMgYFxaWmAgb25seSBpZiBg YHhgYAorICAgICAgICAgaXMgYW4gaW50LCBsb25nIG9yIGFscmVhZHkgYW4gZWxlbWVudCBvZiBg XFpaYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2Vs ZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4 ZAoraW5kZXggMmIzN2I4MGUzYjAuLjhkZjVhOTJjOWU3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAorQEAgLTQsNyArNCw3IEBAIGNkZWYg Y2xhc3MgTGF1cmVudFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgIGNkZWYgTW9kdWxlRWxl bWVudCBfX3UKKyAgICAgY2RlZiBsb25nIF9fbgorIAorLSAgICBjZGVmIF9ub3JtYWxpemUoc2Vs Zikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAg IGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjZGVmIF9ub3JtYWxpemUo c2VsZikKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNl bGYsIG90aGVyKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVz X3JpbmdfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2Vs ZW1lbnQucHl4CitpbmRleCBhMjJmMWM2NWRiNC4uOGJiZjIyN2UzMDIgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4CitAQCAtMzAzLDcgKzMw Myw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAg ICB4ID0gaW1fZ2Vuc1swXQorICAgICAgICAgcmV0dXJuIGNvZG9tYWluKHNlbGYuX191Ll9pbV9n ZW5zXyhjb2RvbWFpbiwgaW1fZ2VucywgYmFzZV9tYXA9YmFzZV9tYXApICogeCoqc2VsZi5fX24p CisgCistICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbm9y bWFsaXplKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgQSBMYXVyZW50IHNlcmllcyBp cyBhIHBhaXIgKHUodCksIG4pLCB3aGVyZSBlaXRoZXIgdT0wICh0byBzb21lCisgICAgICAgICBw cmVjaXNpb24pIG9yIHUgaXMgYSB1bml0LiBUaGlzIHBhaXIgY29ycmVzcG9uZHMgdG8KK0BAIC03 MjksNyArNzI5LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToK KyAgICAgICAgICAgICAgICAgc2VsZi5fX3UgPSBzZWxmLl9fdS5fcGFyZW50KGNvZWZmcykKKyAg ICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 X20pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodF9tKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQWRkIHR3byBwb3dlciBzZXJpZXMgd2l0aCB0aGUgc2FtZSBwYXJlbnQu CisgCitAQCAtNzg3LDcgKzc4Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFNlcmllcyhBbGdlYnJh RWxlbWVudCk6CisgICAgICAgICAjIDMuIEFkZAorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZiko c2VsZi5fcGFyZW50LCBmMSArIGYyLCBtKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdo dF9tKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHRfbSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byBwb3dlciBzZXJpZXMgd2l0aCB0aGUgc2FtZSBw YXJlbnQuCisgCitAQCAtOTE1LDcgKzkxNSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFNlcmllcyhB bGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB0eXBlKHNlbGYp KHNlbGYuX3BhcmVudCwgLXNlbGYuX191LCBzZWxmLl9fbikKKyAKKy0gICAgY3BkZWYgX211bF8o c2VsZiwgcmlnaHRfcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0X3Ip OgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtOTMwLDEwICs5MzAs MTAgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuX191ICogcmlnaHQuX191LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5fX24gKyByaWdodC5fX24pCisgCistICAgIGNwZGVmIF9ybXVsXyhz ZWxmLCBFbGVtZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVu dCBjKToKKyAgICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgc2VsZi5fX3Uu X3JtdWxfKGMpLCBzZWxmLl9fbikKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQg Yykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAg ICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBzZWxmLl9fdS5fbG11bF8oYyksIHNl bGYuX19uKQorIAorICAgICBkZWYgX19wb3dfXyhfc2VsZiwgciwgZHVtbXkpOgorQEAgLTEwODIs NyArMTA4Miw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFNlcmllcyhBbGdlYnJhRWxlbWVudCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgc2Vs Zi5fX3UgPj4gKG4gLSBzZWxmLl9fbiksIG4pCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJp Z2h0X3IpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodF9yKToKKyAgICAg ICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEyMDMsNyArMTIwMyw3IEBAIGNk ZWYgY2xhc3MgTGF1cmVudFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBtaW4oc2VsZi52YWx1YXRpb24oKSwgb3RoZXIudmFsdWF0aW9uKCkpCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodF9yLCBpbnQgb3ApIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHRfciwgaW50IG9wKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIENvbXBhcmlzb24gb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9tb3JwaGlzbS5weXggYi9zcmMvc2FnZS9yaW5ncy9t b3JwaGlzbS5weXgKK2luZGV4IDA1YzVhZGNiYmQxLi42Yzc4NDYwYTUzNCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL21vcnBoaXNtLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbW9ycGhp c20ucHl4CitAQCAtNTE0LDcgKzUxNCw3IEBAIGNkZWYgY2xhc3MgUmluZ01hcF9saWZ0KFJpbmdN YXApOgorICAgICAgICAgSCA9IFIuSG9tKFMsIFNldHMoKSkKKyAgICAgICAgIFJpbmdNYXAuX19p bml0X18oc2VsZiwgSCkKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Ns b3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3Rz KToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGlu Zy4KKyAKK0BAIC01MzMsNyArNTMzLDcgQEAgY2RlZiBjbGFzcyBSaW5nTWFwX2xpZnQoUmluZ01h cCk6CisgICAgICAgICBzZWxmLnRvX1MgPSBfc2xvdHNbJ3RvX1MnXQorICAgICAgICAgTW9ycGhp c20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFf c2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcu CisgCitAQCAtNTQ5LDcgKzU0OSw3IEBAIGNkZWYgY2xhc3MgUmluZ01hcF9saWZ0KFJpbmdNYXAp OgorICAgICAgICAgc2xvdHNbJ3RvX1MnXSA9IHNlbGYudG9fUworICAgICAgICAgcmV0dXJuIHNs b3RzCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAgICAg IiIiCisgICAgICAgICBDb21wYXJlIGEgcmluZyBsaWZ0aW5nIG1hcHMgYGBzZWxmYGAgdG8gYGBv dGhlcmBgLgorIAorQEAgLTYxMyw3ICs2MTMsNyBAQCBjZGVmIGNsYXNzIFJpbmdNYXBfbGlmdChS aW5nTWFwKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICJDaG9pY2Ugb2YgbGlmdGlu ZyBtYXAiCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAg ICAgRXZhbHVhdGUgdGhpcyBmdW5jdGlvbiBhdCBgYHhgYC4KKyAKK0BAIC03MDAsNyArNzAwLDcg QEAgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtKFJpbmdNYXApOgorICAgICAgICAgICAgIHJh aXNlIFR5cGVFcnJvcigibGlmdCBtdXN0IGhhdmUgY29ycmVjdCBjb2RvbWFpbiIpCisgICAgICAg ICBzZWxmLl9saWZ0ID0gbGlmdAorIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGlj dCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBf c2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBp Y2tsaW5nLgorIAorQEAgLTcxOSw3ICs3MTksNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhp c20oUmluZ01hcCk6CisgICAgICAgICAgICAgc2VsZi5fbGlmdCA9IF9zbG90c1snX2xpZnQnXQor ICAgICAgICAgTW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNk ZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0 cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWlu ZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTgxMCw3ICsxODEwLDcgQEAgY2RlZiBjbGFzcyBSaW5n SG9tb21vcnBoaXNtX2ltX2dlbnMoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLl9iYXNlX21hcAorIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2Vs ZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlp bmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE4MzAsNyArMTgzMCw3IEBAIGNkZWYgY2xhc3MgUmlu Z0hvbW9tb3JwaGlzbV9pbV9nZW5zKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5f YmFzZV9tYXAgPSBfc2xvdHMuZ2V0KCdfYmFzZV9tYXAnKQorICAgICAgICAgUmluZ0hvbW9tb3Jw aGlzbS5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRy YV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGlu Zy4KKyAKK0BAIC0xODUxLDcgKzE4NTEsNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhpc21f aW1fZ2VucyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNsb3RzWydfYmFzZV9tYXAnXSA9 IHNlbGYuX2Jhc2VfbWFwCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0gICAgY3BkZWYgX3Jp Y2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNt cF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBFWEFNUExF UzoKKyAKK0BAIC0xOTYxLDcgKzE5NjEsNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhpc21f aW1fZ2VucyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICAgICBzICs9ICdcbndpdGggbWFw IG9mIGJhc2UgcmluZycKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxm LCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGUgdGhpcyBob21vbW9ycGhpc20g YXQgYGB4YGAuCisgCitAQCAtMjEyNSw3ICsyMTI1LDcgQEAgY2RlZiBjbGFzcyBSaW5nSG9tb21v cnBoaXNtX2Zyb21fYmFzZShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIHNlbGYuX3VuZGVybHlpbmcKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNl bGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYs IGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5n IGFuZCBwaWNrbGluZy4KKyAKK0BAIC0yMTU1LDcgKzIxNTUsNyBAQCBjZGVmIGNsYXNzIFJpbmdI b21vbW9ycGhpc21fZnJvbV9iYXNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5f dW5kZXJseWluZyA9IF9zbG90c1snX191bmRlcmx5aW5nJ10gIyBkb3VibGUgdW5kZXJzY29yZSBm b3IgbGVnYWN5IHBpY2tsZXMKKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX3VwZGF0ZV9zbG90 cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjE4Niw3 ICsyMTg2LDcgQEAgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtX2Zyb21fYmFzZShSaW5nSG9t b21vcnBoaXNtKToKKyAgICAgICAgIHNsb3RzWydfX3VuZGVybHlpbmcnXSA9IHNlbGYuX3VuZGVy bHlpbmcKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2Vs Ziwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBv dGhlciwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOgorIAorQEAg LTIyNzAsNyArMjI3MCw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9mcm9tX2Jhc2Uo UmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBVID0gcmVwcihzZWxmLl91bmRlcmx5aW5nKS5z cGxpdCgnXG4nKQorICAgICAgICAgcmV0dXJuICdJbmR1Y2VkIGZyb20gYmFzZSByaW5nIGJ5XG4n Kydcbicuam9pbihVKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEV2YWx1YXRlIHRoaXMgaG9tb21vcnBoaXNtIGF0IGBgeGBgLgorIAorQEAgLTIz NzQsNyArMjM3NCw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9mcm9tX2ZyYWN0aW9u X2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZi5fbW9ycGhpc20uX3JlcHJfZGVmbigpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhpcyBtb3JwaGlz bSBhdCBgYHhgYC4KKyAKK0BAIC0yMzkzLDcgKzIzOTMsNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21v bW9ycGhpc21fZnJvbV9mcmFjdGlvbl9maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX21vcnBoaXNtKHgubnVtZXJhdG9yKCkpIC8gc2Vs Zi5fbW9ycGhpc20oeC5kZW5vbWluYXRvcigpKQorIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2Vs ZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZnVuY3Rpb24g Zm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTI0MTIsNyArMjQxMiw3IEBAIGNkZWYg Y2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9mcm9tX2ZyYWN0aW9uX2ZpZWxkKFJpbmdIb21vbW9ycGhp c20pOgorICAgICAgICAgc2VsZi5fbW9ycGhpc20gPSBfc2xvdHNbJ19tb3JwaGlzbSddCisgICAg ICAgICBSaW5nSG9tb21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAg ICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3Qg X2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZnVuY3Rp b24gZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTI0NzksNyArMjQ3OSw3IEBAIGNk ZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9jb3ZlcihSaW5nSG9tb21vcnBoaXNtKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBwYXJlbnQp CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZh bHVhdGUgdGhpcyBjb3ZlcmluZyBob21vbW9ycGhpc20gYXQgYGB4YGAsIHdoaWNoIGp1c3QgaW52 b2x2ZXMKKyAgICAgICAgIGNvZXJjaW5nIGBgeGBgIGludG8gdGhlIGRvbWFpbiwgdGhlbiBjb2Rv bWFpbi4KK0BAIC0yNTM4LDcgKzI1MzgsNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhpc21f Y292ZXIoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLmNvZG9tYWluKCkuZGVmaW5pbmdfaWRlYWwoKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8o c2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZg YCB0byBgYG90aGVyYGAuCisgCitAQCAtMjY4OSw3ICsyNjg5LDcgQEAgY2RlZiBjbGFzcyBSaW5n SG9tb21vcnBoaXNtX2Zyb21fcXVvdGllbnQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBz ZWxmLl9saWZ0ID0gcGkubGlmdCgpCisgICAgICAgICBzZWxmLnBoaSA9IHBoaQorIAorLSAgICBj ZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAg ICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTI3MTgsNyArMjcxOCw3 IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9mcm9tX3F1b3RpZW50KFJpbmdIb21vbW9y cGhpc20pOgorICAgICAgICAgc2VsZi5waGkgPSBfc2xvdHNbJ3BoaSddCisgICAgICAgICBSaW5n SG9tb21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjZGVmIGRp Y3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Ns b3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5k IHBpY2tsaW5nLgorIAorQEAgLTI3ODIsNyArMjc4Miw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9t b3JwaGlzbV9mcm9tX3F1b3RpZW50KFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5waGkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90 aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIs IGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgYGBzZWxmYGAgdG8gYGBv dGhlcmBgLgorIAorQEAgLTI4NDMsNyArMjg0Myw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3Jw aGlzbV9mcm9tX3F1b3RpZW50KFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgcmV0dXJuICdc bicuam9pbigne30gfC0tPiB7fScuZm9ybWF0KEQuZ2VuKGkpLCBpZ1tpXSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoRC5uZ2VucygpKSkKKyAKKy0gICAgY3BkZWYg RWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0ZSB0aGlzIGZ1bmN0 aW9uIGF0IGBgeGBgLgorIAorQEAgLTI5MDIsNyArMjkwMiw3IEBAIGNkZWYgY2xhc3MgRnJvYmVu aXVzRW5kb21vcnBoaXNtX2dlbmVyaWMoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxm Ll9xID0gc2VsZi5fcCAqKiBzZWxmLl9wb3dlcgorICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5f X2luaXRfXyhzZWxmLCBIb20oZG9tYWluLCBkb21haW4pKQorIAorLSAgICBjZGVmIF91cGRhdGVf c2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xv dHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBVcGRhdGUgaW5m b3JtYXRpb24gd2l0aCB0aGUgZ2l2ZW4gc2xvdHMuCisgCitAQCAtMjkyMiw3ICsyOTIyLDcgQEAg Y2RlZiBjbGFzcyBGcm9iZW5pdXNFbmRvbW9ycGhpc21fZ2VuZXJpYyhSaW5nSG9tb21vcnBoaXNt KToKKyAgICAgICAgIHNlbGYuX3EgPSBzZWxmLl9wICoqIHNlbGYuX3Bvd2VyCisgICAgICAgICBS aW5nSG9tb21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjZGVm IGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJh X3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYWRkaXRpb25hbCBp bmZvcm1hdGlvbiBhYm91dCB0aGlzIG1vcnBoaXNtCisgICAgICAgICBhcyBhIGRpY3Rpb25hcnku CitAQCAtMzAxMiw3ICszMDEyLDcgQEAgY2RlZiBjbGFzcyBGcm9iZW5pdXNFbmRvbW9ycGhpc21f Z2VuZXJpYyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICAgICBzID0gJ1xcdmVyYiJGcm9i Il57JXN9JyAlIHNlbGYuX3Bvd2VyCisgICAgICAgICByZXR1cm4gcworIAorLSAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyAoc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfIChzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfYmFzZS5weGQg Yi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2Jhc2UucHhkCitpbmRl eCBmMzRhMjVkMGRjYi4uYmE2YThlOTgxNDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9u dW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2Jhc2UucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9u dW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2Jhc2UucHhkCitAQCAtNCw0ICs0LDQgQEAgY2RlZiBj bGFzcyBOdW1iZXJGaWVsZChGaWVsZCk6CisgICAgIGNkZWYgaW50IF9lbWJlZGRlZF9yZWFsCisg ICAgIGNkZWYgbGlzdCBfZ2VuX2FwcHJveAorIAorLSAgICBjcGRlZiBfZ2V0X2VtYmVkZGluZ19h cHByb3goc2VsZiwgc2l6ZV90IGkpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9nZXRfZW1iZWRkaW5n X2FwcHJveChzZWxmLCBzaXplX3QgaSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9udW1i ZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2Jhc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2Zp ZWxkL251bWJlcl9maWVsZF9iYXNlLnB5eAoraW5kZXggNTczMGY5NTdmNmUuLjdmNTVkODg3YTBm IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9i YXNlLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9i YXNlLnB5eAorQEAgLTQxMyw3ICs0MTMsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkKEZpZWxk KToKKyAgICAgICAgICAgICBzZWxmLl9nZW5fYXBwcm94ID0gW10KKyAgICAgICAgICAgICBzZWxm Ll9lbWJlZGRlZF9yZWFsID0gMQorIAorLSAgICBjcGRlZiBfZ2V0X2VtYmVkZGluZ19hcHByb3go c2VsZiwgc2l6ZV90IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2V0X2VtYmVkZGluZ19hcHBy b3goc2VsZiwgc2l6ZV90IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGlu dGVydmFsIGFwcHJveGltYXRpb24gb2YgdGhlIGdlbmVyYXRvciBvZiB0aGlzIG51bWJlciBmaWVs ZC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2Zp ZWxkX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVs ZF9lbGVtZW50LnB4ZAoraW5kZXggYzczZDE4MDZmYzcuLmRmNzJlNzAzMDE3IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB4ZAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB4 ZAorQEAgLTIwLDIzICsyMCwyMyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1i ZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgIGNkZWYgb2JqZWN0IF9fcGFyaQorICAgICBjZGVm IG9iamVjdCBfX21hdHJpeAorIAorLSAgICBjZGVmIF9uZXcoc2VsZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyKSBub2V4Y2VwdAorKyAgICBjZGVmIF9uZXcoc2VsZikKKysgICAgY3BkZWYgX2FkZF8o c2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorIAorLSAgICBjcGRl ZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3Ro ZXIpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcikKKyAKKy0gICAgY3BkZWYgX2NvcHlfZm9yX3BhcmVudChzZWxmLCBQ YXJlbnQgcGFyZW50KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfY29weV9mb3JfcGFyZW50KHNlbGYs IFBhcmVudCBwYXJlbnQpCisgCistICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYpIG5vZXhjZXB0 CisrICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYpCisgCisgICAgIGNkZWYgdm9pZCBfbnRsX2Nv ZWZmX2FzX21weihzZWxmLCBtcHpfdCB6LCBsb25nIGkpIG5vZXhjZXB0CisgICAgIGNkZWYgdm9p ZCBfbnRsX2Rlbm9tX2FzX21weihzZWxmLCBtcHpfdCB6KSBub2V4Y2VwdAorIAorICAgICBjZGVm IHZvaWQgX3JlZHVjZV9jXyhzZWxmKSBub2V4Y2VwdAorIAorLSAgICBjcGRlZiBsaXN0IF9jb2Vm ZmljaWVudHMoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgbGlzdCBfY29lZmZpY2llbnRzKHNl bGYpCisgCisgICAgIGNwZGVmIGJpbnQgaXNfcmF0aW9uYWwoc2VsZikgbm9leGNlcHQKKyAgICAg Y3BkZWYgYmludCBpc19vbmUoc2VsZikgbm9leGNlcHQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2Uvcmlu Z3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5eAoraW5kZXggMjIxMmE0YWMy NTAuLjg0NGE0ZWMzMTYyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxk L251bWJlcl9maWVsZF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2Zp ZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5eAorQEAgLTE3MCw3ICsxNzAsNyBAQCBjZGVmIGNs YXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAg ICBzYWdlOiBhXjMKKyAgICAgICAgIC1hIC0gMQorICAgICAiIiIKKy0gICAgY2RlZiBfbmV3KHNl bGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFF1aWNrbHkgY3JlYXRlcyBhIG5ldyBpbml0aWFsaXplZCBOdW1iZXJGaWVsZEVsZW1lbnQg d2l0aCB0aGUgc2FtZQorICAgICAgICAgcGFyZW50IGFzIHNlbGYuCitAQCAtMTgyLDcgKzE4Miw3 IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNl KToKKyAgICAgICAgIHguX2ZsZF9kZW5vbWluYXRvciA9IHNlbGYuX2ZsZF9kZW5vbWluYXRvcgor ICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY2RlZiBudW1iZXJfZmllbGQoc2VsZikgbm9leGNl cHQ6CisrICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYpOgorICAgICAgICAgciIiIgorIAorICAg ICAgICAgUmV0dXJuIHRoZSBudW1iZXIgZmllbGQgb2Ygc2VsZi4gT25seSBhY2Nlc3NpYmxlIGZy b20gQ3l0aG9uLgorQEAgLTc4Myw3ICs3ODMsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxl bWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgcmV0dXJuIFFRLnpl cm8oKQorICAgICAgICAgcmV0dXJuIGNvZWZmc1tuXQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8o bGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0 LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAK K0BAIC0yNDQzLDcgKzI0NDMsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1i ZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBzZWxmLl9udW1lcmF0b3IgPSB0MgorICAg ICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSB0MQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBy aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNDY5LDcgKzI0NjksNyBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAg ICAgICB4Ll9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX3N1 Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6 CisgICAgICAgICByIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjQ5NCw3ICsyNDk0 LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jh c2UpOgorICAgICAgICAgeC5fcmVkdWNlX2NfKCkKKyAgICAgICAgIHJldHVybiB4CisgCistICAg IGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2Vs ZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBwcm9kdWN0IG9m IHNlbGYgYW5kIG90aGVyIGFzIGVsZW1lbnRzIG9mIGEgbnVtYmVyCisgICAgICAgICBmaWVsZC4K K0BAIC0yNTQyLDcgKzI1NDIsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1i ZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAjIGJ1dCBhc3ltcHRvdGljYWxseSBmYXN0 IHBvbHkgbXVsdGlwbGljYXRpb24gbWVhbnMgaXQncworICAgICAgICAgIyBhY3R1YWxseSBmYXN0 ZXIgdG8gKm5vdCogYnVpbGQgYSB0YWJsZSE/IQorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCBv dGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVyKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgcXVvdGllbnQgb2Ygc2VsZiBhbmQgb3RoZXIgYXMg ZWxlbWVudHMgb2YgYSBudW1iZXIKKyAgICAgICAgIGZpZWxkLgorQEAgLTI2NTQsNyArMjY1NCw3 IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNl KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIG5vdCBJc1plcm9fWlpYKHNlbGYuX251 bWVyYXRvcikKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9uZWdfKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAg LTI2NjksNyArMjY2OSw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZp ZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIHguX2Rlbm9taW5hdG9yID0gc2VsZi5fZGVub21p bmF0b3IKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9jb3B5X2Zvcl9wYXJlbnQo c2VsZiwgUGFyZW50IHBhcmVudCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb3B5X2Zvcl9wYXJl bnQoc2VsZiwgUGFyZW50IHBhcmVudCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g YSBjb3B5IG9mIGBgc2VsZmBgIHdpdGggdGhlIHBhcmVudCByZXBsYWNlZCBieSBgYHBhcmVudGBg LgorIAorQEAgLTMyMzIsNyArMzIzMiw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50 KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAKKyAgICAgICAgIHJldHVybiBoCisgCistICAg IGNwZGVmIGxpc3QgX2NvZWZmaWNpZW50cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlz dCBfY29lZmZpY2llbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGNvZWZmaWNpZW50cyBvZiB0aGUgdW5kZXJseWluZyBwb2x5bm9taWFsIGNvcnJlc3BvbmRpbmcK KyAgICAgICAgIHRvIHRoaXMgbnVtYmVyIGZpZWxkIGVsZW1lbnQuCitAQCAtNTI0Nyw3ICs1MjQ3 LDcgQEAgY2RlZiBjbGFzcyBPcmRlckVsZW1lbnRfYWJzb2x1dGUoTnVtYmVyRmllbGRFbGVtZW50 X2Fic29sdXRlKToKKyAgICAgICAgIHNlbGYuX251bWJlcl9maWVsZCA9IEsKKyAgICAgICAgICg8 RWxlbWVudD5zZWxmKS5fcGFyZW50ID0gb3JkZXIKKyAKKy0gICAgY2RlZiBfbmV3KHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFF1 aWNrbHkgY3JlYXRlcyBhIG5ldyBpbml0aWFsaXplZCBOdW1iZXJGaWVsZEVsZW1lbnQgd2l0aCB0 aGUgc2FtZQorICAgICAgICAgcGFyZW50IGFzIGBgc2VsZmBgLgorQEAgLTUyNjksNyArNTI2OSw3 IEBAIGNkZWYgY2xhc3MgT3JkZXJFbGVtZW50X2Fic29sdXRlKE51bWJlckZpZWxkRWxlbWVudF9h YnNvbHV0ZSk6CisgICAgICAgICB4Ll9mbGRfZGVub21pbmF0b3IgPSBzZWxmLl9mbGRfZGVub21p bmF0b3IKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIG51bWJlcl9maWVsZChzZWxmKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgbnVtYmVyIGZpZWxkIG9mIGBgc2VsZmBgLiBPbmx5IGFjY2Vz c2libGUgZnJvbSBDeXRob24uCisgCitAQCAtNTM2MywxMCArNTM2MywxMCBAQCBjZGVmIGNsYXNz IE9yZGVyRWxlbWVudF9yZWxhdGl2ZShOdW1iZXJGaWVsZEVsZW1lbnRfcmVsYXRpdmUpOgorICAg ICAgICAgKDxFbGVtZW50PnNlbGYpLl9wYXJlbnQgPSBvcmRlcgorICAgICAgICAgc2VsZi5fbnVt YmVyX2ZpZWxkID0gSworIAorLSAgICBjZGVmIG51bWJlcl9maWVsZChzZWxmKSBub2V4Y2VwdDoK KysgICAgY2RlZiBudW1iZXJfZmllbGQoc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5fbnVt YmVyX2ZpZWxkCisgCistICAgIGNkZWYgX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf bmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBRdWlja2x5IGNyZWF0ZXMgYSBuZXcg aW5pdGlhbGl6ZWQgTnVtYmVyRmllbGRFbGVtZW50IHdpdGggdGhlIHNhbWUKKyAgICAgICAgIHBh cmVudCBhcyBzZWxmLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9u dW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVy X2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weGQKK2luZGV4IGI5ZmJiMjk0 YTU0Li5lYzMyMjQ1ZjNjYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVs ZC9udW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHhkCisrKysgYi9zcmMvc2FnZS9yaW5n cy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB4ZAorQEAgLTEw LDIyICsxMCwyMiBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVt YmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgY2RlZiBtcHpfdCBhLCBiLCBkZW5vbQor ICAgICBjZGVmIEludGVnZXIgRAorICAgICBjZGVmIGJpbnQgc3RhbmRhcmRfZW1iZWRkaW5nCist ICAgIGNwZGVmIE51bWJlckZpZWxkRWxlbWVudCBnYWxvaXNfY29uanVnYXRlKHNlbGYpIG5vZXhj ZXB0CisrICAgIGNwZGVmIE51bWJlckZpZWxkRWxlbWVudCBnYWxvaXNfY29uanVnYXRlKHNlbGYp CisgCistICAgIGNwZGVmIGxpc3QgX2NvZWZmaWNpZW50cyhzZWxmKSBub2V4Y2VwdAorKyAgICBj cGRlZiBsaXN0IF9jb2VmZmljaWVudHMoc2VsZikKKyAKKyAgICAgY2RlZiBpbnQgX3JhbmRvbWl6 ZShzZWxmLCBudW1fYm91bmQsIGRlbl9ib3VuZCwgZGlzdHJpYnV0aW9uKSBleGNlcHQgLTEKKyAg ICAgY2RlZiBpbnQgYXJiX3NldF9yZWFsKHNlbGYsIGFyYl90IHgsIGxvbmcgcHJlYykgZXhjZXB0 IC0xCisgICAgIGNkZWYgdm9pZCBhcmJfc2V0X2ltYWcoc2VsZiwgYXJiX3QgeCwgbG9uZyBwcmVj KSBub2V4Y2VwdAorIAorLSAgICBjcGRlZiB0dXBsZSBwYXJ0cyhzZWxmKSBub2V4Y2VwdAorKyAg ICBjcGRlZiB0dXBsZSBwYXJ0cyhzZWxmKQorIAorIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVt ZW50X3F1YWRyYXRpY19zcXJ0KE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMpOgorICAgICBw YXNzCisgCisgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRfZ2F1c3NpYW4oTnVtYmVyRmll bGRFbGVtZW50X3F1YWRyYXRpY19zcXJ0KToKKy0gICAgY3BkZWYgcmVhbF9wYXJ0KHNlbGYpIG5v ZXhjZXB0CistICAgIGNwZGVmIGltYWdfcGFydChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBy ZWFsX3BhcnQoc2VsZikKKysgICAgY3BkZWYgaW1hZ19wYXJ0KHNlbGYpCisgCisgY2RlZiBjbGFz cyBPcmRlckVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMpOgor ICAgICBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJl cl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weXggYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmll bGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB5eAoraW5kZXggYzZiZWI1ZTZhYTgu LmZkMDRjYmY5OWNjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251 bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL251 bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4CitAQCAtMjI1LDcg KzIyNSw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJG aWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgIyBfX2NtcF9fLCBzaWduLCByZWFsLCBp bWFnLCBmbG9vciwgY2VpbCwgLi4uCisgICAgICAgICBzZWxmLnN0YW5kYXJkX2VtYmVkZGluZyA9 IHBhcmVudC5fc3RhbmRhcmRfZW1iZWRkaW5nCisgCistICAgIGNkZWYgX25ldyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBRdWlj a2x5IGNyZWF0ZXMgYSBuZXcgaW5pdGlhbGl6ZWQgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRp YyB3aXRoIHRoZQorICAgICAgICAgc2FtZSBwYXJlbnQgYXMgc2VsZi4KK0BAIC0yNDMsNyArMjQz LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxk RWxlbWVudF9hYnNvbHV0ZSk6CisgICAgICAgICB4LkQgPSBzZWxmLkQKKyAgICAgICAgIHJldHVy biB4CisgCistICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVm IG51bWJlcl9maWVsZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg bnVtYmVyIGZpZWxkIHRvIHdoaWNoIHRoaXMgZWxlbWVudCBiZWxvbmdzLiBTaW5jZSB0aGlzIGlz IGEKKyAgICAgICAgIEN5dGhvbiBjZGVmIG1ldGhvZCwgaXQgaXMgbm90IGRpcmVjdGx5IGFjY2Vz c2libGUgYnkgdGhlIHVzZXIsIGJ1dCB0aGUKK0BAIC0zNTAsNyArMzUwLDcgQEAgY2RlZiBjbGFz cyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0 ZSk6CisgICAgICAgICAgICAgbXB6X3NldChkZW5vbS52YWx1ZSwgc2VsZi5kZW5vbSkKKyAgICAg ICAgICAgICByZXR1cm4gIm5ldyBRdWFkcmF0aWNFeHRlbnNpb24oe30sIHt9LCB7fSkiLmZvcm1h dChhL2Rlbm9tLCBiL2Rlbm9tLCBzZWxmLkQpCisgCistICAgIGNwZGVmIF9jb3B5X2Zvcl9wYXJl bnQoc2VsZiwgUGFyZW50IHBhcmVudCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb3B5X2Zvcl9w YXJlbnQoc2VsZiwgUGFyZW50IHBhcmVudCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gYSBjb3B5IG9mIGBgc2VsZmBgIHdpdGggdGhlIHBhcmVudCByZXBsYWNlZCBieSBgYHBhcmVu dGBgLgorIAorQEAgLTg5Miw3ICs4OTIsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVu dF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIHNlbGYu YXJiX3NldF9pbWFnKGFjYl9pbWFncmVmKHJlcy52YWx1ZSksIFIuX3ByZWMpCisgICAgICAgICBy ZXR1cm4gcmVzCisgCistICAgIGNwZGVmIHR1cGxlIHBhcnRzKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiB0dXBsZSBwYXJ0cyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biBhIHBhaXIgb2YgcmF0aW9uYWxzIGBhYCBhbmQgYGJgIHN1Y2ggdGhhdCBgYHNlbGZgYCBgPQor ICAgICAgICAgYStiXHNxcnR7RH1gLgorQEAgLTEwMzgsNyArMTAzOCw3IEBAIGNkZWYgY2xhc3Mg TnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUp OgorICAgICAgICAgICAgIHJldHVybiB0ZXN0CisgICAgICAgICByZXR1cm4gLXRlc3QKKyAKKy0g ICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIF9yaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX3JpY2hjbXBfKGxlZnQsIF9yaWdodCwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJpY2ggY29tcGFyaXNvbiBvZiBlbGVtZW50cy4KKyAKK0BAIC0xMzE4LDcgKzEzMTgs NyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRF bGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIG1wel9jbGVhcihnY2QpCisgCisgCistICAgIGNw ZGVmIF9hZGRfKHNlbGYsIG90aGVyX20pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCBvdGhlcl9tKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEz NzYsNyArMTM3Niw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhO dW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgcmV0dXJuIHJlcworIAorIAor LSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcl9tKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1 Yl8oc2VsZiwgb3RoZXJfbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAK K0BAIC0xNDQ0LDcgKzE0NDQsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFk cmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIG1wel9zZXQocmVz LmRlbm9tLCBzZWxmLmRlbm9tKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcl9tKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3Ro ZXJfbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xNTEyLDcg KzE1MTIsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVy RmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIHJlcy5fcmVkdWNlX2NfKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgX2MpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBfYyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xNTI5LDcgKzE1MjksNyBAQCBjZGVmIGNs YXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fic29s dXRlKToKKyAgICAgICAgIHJlcy5fcmVkdWNlX2NfKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAK Ky0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgX2MpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfbG11bF8oc2VsZiwgRWxlbWVudCBfYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC0xNjEzLDcgKzE2MTMsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxl bWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIHJl cy5fcmVkdWNlX2NfKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgTnVtYmVy RmllbGRFbGVtZW50IGdhbG9pc19jb25qdWdhdGUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IE51bWJlckZpZWxkRWxlbWVudCBnYWxvaXNfY29uanVnYXRlKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGltYWdlIG9mIHRoaXMgZWxlbWVudCB1bmRlciBhY3Rpb24g b2YgdGhlIG5vbnRyaXZpYWwKKyAgICAgICAgIGVsZW1lbnQgb2YgdGhlIEdhbG9pcyBncm91cCBv ZiB0aGlzIGZpZWxkLgorQEAgLTE5MzEsNyArMTkzMSw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmll bGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAg ICAgICAgICAgICBtcHpfbmVnKHEuYiwgc2VsZi5iKQorICAgICAgICAgICAgIHJldHVybiBxCisg CistICAgIGNwZGVmIGxpc3QgX2NvZWZmaWNpZW50cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgbGlzdCBfY29lZmZpY2llbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitAQCAtMjQ1NSw3ICsyNDU1LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVs ZW1lbnRfcXVhZHJhdGljX3NxcnQoTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyk6CisgICAg ICAgICBtcHpfc2V0KGRlbm9tLnZhbHVlLCBzZWxmLmRlbm9tKQorICAgICAgICAgcmV0dXJuIGRl bm9tCisgCistICAgIGNwZGVmIGxpc3QgX2NvZWZmaWNpZW50cyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbGlzdCBfY29lZmZpY2llbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtMjU5NSw3ICsyNTk1LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJG aWVsZEVsZW1lbnRfZ2F1c3NpYW4oTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpY19zcXJ0KToK KyAgICAgICAgICAgICAgICAgcmV0dXJuIHFxYmFyLkFsZ2VicmFpY1JlYWwoY29lZmZzWzBdKQor ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmInVuYWJsZSB0byBjb252ZXJ0IHtzZWxmIXJ9IHRv IGFuIGVsZW1lbnQgb2Yge3BhcmVudCFyfSIpCisgCistICAgIGNwZGVmIHJlYWxfcGFydChzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVhbF9wYXJ0KHNlbGYpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmVhbCBwYXJ0LgorIAorQEAgLTI2MTcsNyArMjYxNyw3IEBAIGNkZWYgY2xhc3Mg TnVtYmVyRmllbGRFbGVtZW50X2dhdXNzaWFuKE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWNf c3FydCk6CisgCisgICAgIHJlYWwgPSByZWFsX3BhcnQKKyAKKy0gICAgY3BkZWYgaW1hZ19wYXJ0 KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbWFnX3BhcnQoc2VsZik6CisgICAgICAgICBy IiIiCisgICAgICAgICBJbWFnaW5hcnkgcGFydC4KKyAKK0BAIC0yNzgyLDE0ICsyNzgyLDE0IEBA IGNkZWYgY2xhc3MgT3JkZXJFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRfcXVh ZHJhdGljKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2hhcnBv bHkoKQorIAorLSAgICBjZGVmIG51bWJlcl9maWVsZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBudW1iZXJfZmllbGQoc2VsZik6CisgICAgICAgICAjIFNvIGZldyBmdW5jdGlvbnMgYWN0dWFs bHkgdXNlIHNlbGYubnVtYmVyX2ZpZWxkKCkgZm9yIHF1YWRyYXRpYyBlbGVtZW50cywgc28KKyAg ICAgICAgICMgaXQgaXMgYmV0dGVyICpub3QqIHRvIHJldHVybiBhIGNhY2hlZCB2YWx1ZSAoc2lu Y2UgdGhlIGNhbGwgdG8gX3BhcmVudC5udW1iZXJfZmllbGQoKSkKKyAgICAgICAgICMgaXMgZXhw ZW5zaXZlLgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5udW1iZXJfZmllbGQoKQorIAor ICAgICAjIFdlIG11c3Qgb3ZlcnJpZGUgdGhlc2Ugc2luY2UgdGhlIGJhc2VyaW5nIGlzIG5vdyBa WiBub3QgUVEuCistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IF9jKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgX2MpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFWEFNUExFUzo6CisgCitAQCAtMjgwOSw3ICsyODA5LDcgQEAgY2RlZiBjbGFzcyBPcmRl ckVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMpOgorICAgICAg ICAgcmVzLl9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBf bG11bF8oc2VsZiwgRWxlbWVudCBfYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxm LCBFbGVtZW50IF9jKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAg LTI4NzgsNyArMjg3OCw3IEBAIGNkZWYgY2xhc3MgT3JkZXJFbGVtZW50X3F1YWRyYXRpYyhOdW1i ZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKToKKyAgICAgICAgIFIgPSBzZWxmLnBhcmVudCgpCisg ICAgICAgICByZXR1cm4gUihfaW52ZXJzZV9tb2RfZ2VuZXJpYyhzZWxmLCBJKSkKKyAKKy0gICAg Y3BkZWYgbGlzdCBfY29lZmZpY2llbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0 IF9jb2VmZmljaWVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC0yOTgzLDcgKzI5ODMsNyBAQCBjZGVmIGNsYXNzIFpfdG9fcXVhZHJhdGljX2ZpZWxk X2VsZW1lbnQoTW9ycGhpc20pOgorICAgICAgICAgaW1wb3J0IHNhZ2UuY2F0ZWdvcmllcy5ob21z ZXQKKyAgICAgICAgIE1vcnBoaXNtLl9faW5pdF9fKHNlbGYsIHNhZ2UuY2F0ZWdvcmllcy5ob21z ZXQuSG9tKFpaLCBLKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgciIi IgorICAgICAgICAgRXZhbHVhdGUgYXQgYW4gaW50ZWdlciBgYHhgYC4KKyAKK0BAIC0zMDg1LDcg KzMwODUsNyBAQCBjZGVmIGNsYXNzIFFfdG9fcXVhZHJhdGljX2ZpZWxkX2VsZW1lbnQoTW9ycGhp c20pOgorICAgICAgICAgaW1wb3J0IHNhZ2UuY2F0ZWdvcmllcy5ob21zZXQKKyAgICAgICAgIE1v cnBoaXNtLl9faW5pdF9fKHNlbGYsIHNhZ2UuY2F0ZWdvcmllcy5ob21zZXQuSG9tKFFRLCBLKSkK KyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgciIiIgorICAgICAgICAgRXZh bHVhdGUgYXQgYSByYXRpb25hbCBgYHhgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX21vcnBoaXNtcy5weXggYi9zcmMvc2FnZS9yaW5n cy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX21vcnBoaXNtcy5weXgKK2luZGV4IDhhMTg2NWMz Y2ViLi45NGE5MTdiNTMyMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVs ZC9udW1iZXJfZmllbGRfbW9ycGhpc21zLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVy X2ZpZWxkL251bWJlcl9maWVsZF9tb3JwaGlzbXMucHl4CitAQCAtNjIsNyArNjIsNyBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRW1iZWRkaW5nKE1vcnBoaXNtKToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgc2VsZi5fZ2VuX2ltYWdlID0gUihnZW5fZW1iZWRkaW5nKQorIAorLSAgICBj ZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4 dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBBIGhlbHBlciBmb3IgcGlj a2xpbmcgYW5kIGNvcHlpbmcuCisgCitAQCAtOTMsNyArOTMsNyBAQCBjZGVmIGNsYXNzIE51bWJl ckZpZWxkRW1iZWRkaW5nKE1vcnBoaXNtKToKKyAgICAgICAgIHNsb3RzWydfZ2VuX2ltYWdlJ10g PSBzZWxmLl9nZW5faW1hZ2UKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVmIF91 cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRh dGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBBIGhl bHBlciBmb3IgdW5waWNrbGluZyBhbmQgY29weWluZy4KKyAKK0BAIC0xMTksNyArMTE5LDcgQEAg Y2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVtYmVkZGluZyhNb3JwaGlzbSk6CisgICAgICAgICBNb3Jw aGlzbS5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAgICAgICAgIHNlbGYuX2dlbl9pbWFn ZSA9IF9zbG90c1snX2dlbl9pbWFnZSddCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAg ICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTMyMiw3ICszMjIsNyBAQCBj ZGVmIGNsYXNzIEVtYmVkZGVkTnVtYmVyRmllbGRDb252ZXJzaW9uKE1hcCk6CisgICAgICAgICBz ZWxmLmFtYmllbnRfZmllbGQgPSBhbWJpZW50X2ZpZWxkCisgICAgICAgICBNYXAuX19pbml0X18o c2VsZiwgSywgTCkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzQ0LDcgKzM0NCw3IEBAIGNkZWYgY2xhc3MgRW1i ZWRkZWROdW1iZXJGaWVsZENvbnZlcnNpb24oTWFwKToKKyAgICAgICAgIHJldHVybiBnZW5faW1h Z2UKKyAKKyAKKy1jcGRlZiBtYXRjaGluZ19yb290KHBvbHksIHRhcmdldCwgYW1iaWVudF9maWVs ZD1Ob25lLCBtYXJnaW49MSwgbWF4X3ByZWM9Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgbWF0Y2hp bmdfcm9vdChwb2x5LCB0YXJnZXQsIGFtYmllbnRfZmllbGQ9Tm9uZSwgbWFyZ2luPTEsIG1heF9w cmVjPU5vbmUpOgorICAgICAiIiIKKyAgICAgR2l2ZW4gYSBwb2x5bm9taWFsIGFuZCBhIGBgdGFy Z2V0YGAsIGNob29zZSB0aGUgcm9vdCB0aGF0CisgICAgIGBgdGFyZ2V0YGAgYmVzdCBhcHByb3hp bWF0ZXMgYXMgY29tcGFyZWQgaW4gYGBhbWJpZW50X2ZpZWxkYGAuCitAQCAtNDA3LDcgKzQwNyw3 IEBAIGNwZGVmIG1hdGNoaW5nX3Jvb3QocG9seSwgdGFyZ2V0LCBhbWJpZW50X2ZpZWxkPU5vbmUs IG1hcmdpbj0xLCBtYXhfcHJlYz1Ob25lKSBuCisgICAgICAgICAgICAgYW1iaWVudF9maWVsZCA9 IGFtYmllbnRfZmllbGQudG9fcHJlYyhhbWJpZW50X2ZpZWxkLnByZWMoKSAqIDIpCisgCisgCist Y3BkZWYgY2xvc2VzdCh0YXJnZXQsIHZhbHVlcywgbWFyZ2luPTEpIG5vZXhjZXB0OgorK2NwZGVm IGNsb3Nlc3QodGFyZ2V0LCB2YWx1ZXMsIG1hcmdpbj0xKToKKyAgICAgIiIiCisgICAgIFRoaXMg aXMgYSB1dGlsaXR5IGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgaXRlbSBpbiBgYHZhbHVlc2Bg IGNsb3Nlc3QgdG8KKyAgICAgdGFyZ2V0ICh3aXRoIHJlc3BlY3QgdG8gdGhlIGBgYWJzYGAgZnVu Y3Rpb24pLiBJZiBgYG1hcmdpbmBgIGlzIGdyZWF0ZXIKK0BAIC02MjYsNyArNjI2LDcgQEAgY2Rl ZiBjbGFzcyBDeWNsb3RvbWljRmllbGRFbWJlZGRpbmcoTnVtYmVyRmllbGRFbWJlZGRpbmcpOgor ICAgICAgICAgc2VsZi5yYXRpbyA9IEwuX2xvZ19nZW4oSy5jb2VyY2VfZW1iZWRkaW5nKCkoSy5n ZW4oKSkpCisgICAgICAgICBzZWxmLl9nZW5faW1hZ2UgPSBMLmdlbigpICoqIHNlbGYucmF0aW8K KyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQSBoZWxw ZXIgZm9yIHBpY2tsaW5nIGFuZCBjb3B5aW5nLgorIAorQEAgLTY1Nyw3ICs2NTcsNyBAQCBjZGVm IGNsYXNzIEN5Y2xvdG9taWNGaWVsZEVtYmVkZGluZyhOdW1iZXJGaWVsZEVtYmVkZGluZyk6Cisg ICAgICAgICBzbG90c1sncmF0aW8nXSA9IHNlbGYucmF0aW8KKyAgICAgICAgIHJldHVybiBzbG90 cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0 OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAg IiIiCisgICAgICAgICBBIGhlbHBlciBmb3IgdW5waWNrbGluZyBhbmQgY29weWluZy4KKyAKK0BA IC02ODQsNyArNjg0LDcgQEAgY2RlZiBjbGFzcyBDeWNsb3RvbWljRmllbGRFbWJlZGRpbmcoTnVt YmVyRmllbGRFbWJlZGRpbmcpOgorICAgICAgICAgc2VsZi5fZ2VuX2ltYWdlID0gX3Nsb3RzWydf Z2VuX2ltYWdlJ10KKyAgICAgICAgIHNlbGYucmF0aW8gPSBfc2xvdHNbJ3JhdGlvJ10KKyAKKy0g ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6 CisgCitAQCAtNzY1LDcgKzc2NSw3IEBAIGNkZWYgY2xhc3MgQ3ljbG90b21pY0ZpZWxkQ29udmVy c2lvbihNYXApOgorICAgICAgICAgc2VsZi5waGkgPSBMLmhvbShbTS5nZW4oKSoqKG4zLy9uMild KQorICAgICAgICAgTWFwLl9faW5pdF9fKHNlbGYsIEssIEwpCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2FsbCBhIGNvbnZlcnNpb24gbWFwIGJl dHdlZW4gY3ljbG90b21pYyBmaWVsZHMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv bnVtYmVyX2ZpZWxkL3RvdGFsbHlyZWFsX2RhdGEucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVy X2ZpZWxkL3RvdGFsbHlyZWFsX2RhdGEucHhkCitpbmRleCBlZmEwMWRiYjRiNy4uNjE5NzM4Mjlk ZGIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvdG90YWxseXJlYWxf ZGF0YS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC90b3RhbGx5cmVhbF9k YXRhLnB4ZAorQEAgLTEsNyArMSw3IEBACisgY2RlZiBkb3VibGUgZXZhbF9zZXFfYXNfcG9seShp bnQgKmYsIGludCBuLCBkb3VibGUgeCkgbm9leGNlcHQKKyBjZGVmIGRvdWJsZSBuZXd0b24oaW50 ICpmLCBpbnQgKmRmLCBpbnQgbiwgZG91YmxlIHgwLCBkb3VibGUgZXBzKSBub2V4Y2VwdAorIGNk ZWYgdm9pZCBuZXd0b25faW5faW50ZXJ2YWxzKGludCAqZiwgaW50ICpkZiwgaW50IG4sIGRvdWJs ZSAqYmV0YSwgZG91YmxlIGVwcywgZG91YmxlICpydHMpIG5vZXhjZXB0CistY3BkZWYgbGFncmFu Z2VfZGVncmVlXzMoaW50IG4sIGludCBhbjEsIGludCBhbjIsIGludCBhbjMpIG5vZXhjZXB0Cisr Y3BkZWYgbGFncmFuZ2VfZGVncmVlXzMoaW50IG4sIGludCBhbjEsIGludCBhbjIsIGludCBhbjMp CisgCisgY2ltcG9ydCBzYWdlLnJpbmdzLmludGVnZXIKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9udW1iZXJfZmllbGQvdG90YWxseXJlYWxfZGF0YS5weXggYi9zcmMvc2FnZS9yaW5n cy9udW1iZXJfZmllbGQvdG90YWxseXJlYWxfZGF0YS5weXgKK2luZGV4IDRmYWUzMDgyOTlkLi42 MzM2YjE2MjY0YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC90b3Rh bGx5cmVhbF9kYXRhLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL3RvdGFs bHlyZWFsX2RhdGEucHl4CitAQCAtMTg5LDcgKzE4OSw3IEBAIGNkZWYgdm9pZCBuZXd0b25faW5f aW50ZXJ2YWxzKGludCAqZiwgaW50ICpkZiwgaW50IG4sIGRvdWJsZSAqYmV0YSwKKyAgICAgZm9y IGkgZnJvbSAwIDw9IGkgPCBuOgorICAgICAgICAgcnRzW2ldID0gbmV3dG9uKGYsIGRmLCBuLCAo YmV0YVtpXStiZXRhW2krMV0pLzIsIGVwcykKKyAKKy1jcGRlZiBsYWdyYW5nZV9kZWdyZWVfMyhp bnQgbiwgaW50IGFuMSwgaW50IGFuMiwgaW50IGFuMykgbm9leGNlcHQ6CisrY3BkZWYgbGFncmFu Z2VfZGVncmVlXzMoaW50IG4sIGludCBhbjEsIGludCBhbjIsIGludCBhbjMpOgorICAgICByIiIi CisgICAgIFByaXZhdGUgZnVuY3Rpb24uICBTb2x2ZXMgdGhlIGVxdWF0aW9ucyB3aGljaCBhcmlz ZSBpbiB0aGUgTGFncmFuZ2UgbXVsdGlwbGllcgorICAgICBmb3IgZGVncmVlIDM6IGZvciBlYWNo IGAxIFxsZXEgciBcbGVxIG4tMmAsIHdlIHNvbHZlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL0NBX3RlbXBsYXRlLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1w bGF0ZS5weGkKK2luZGV4IGMxYTVlY2JjYTBlLi5lOGQ5MDZiMDFjOCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9DQV90ZW1wbGF0ZS5weGkKK0BAIC05NCw3ICs5NCw3IEBAIGNkZWYgY2xhc3MgQ0FF bGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICBjY29udihzZWxmLnZhbHVlLCB4LCBzZWxmLmFic3ByZWMsIDAsIHNlbGYucHJp bWVfcG93KQorIAorLSAgICBjZGVmIENBRWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgQ0FFbGVtZW50IF9uZXdfYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg Q3JlYXRlIGEgbmV3IGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBiYXNpYyBpbmZvLgorIAorQEAgLTEy MCw3ICsxMjAsNyBAQCBjZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6 CisgICAgICAgICBjY29uc3RydWN0KGFucy52YWx1ZSwgYW5zLnByaW1lX3BvdykKKyAgICAgICAg IHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhf dmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFsdWUsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAg IGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX25ld193aXRoX3ZhbHVlKHNlbGYsIGNlbGVtZW50 IHZhbHVlLCBsb25nIGFic3ByZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUgYSBu ZXcgZWxlbWVudCB3aXRoIGEgZ2l2ZW4gdmFsdWUgYW5kIGFic29sdXRlIHByZWNpc2lvbi4KKyAK K0BAIC0xOTcsNyArMTk3LDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVs ZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gdW5waWNrbGVfY2FlX3YyLCAo c2VsZi5fX2NsYXNzX18sIHNlbGYucGFyZW50KCksIGNwaWNrbGUoc2VsZi52YWx1ZSwgc2VsZi5w cmltZV9wb3cpLCBzZWxmLmFic3ByZWMpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBhZGRpdGl2ZSBpbnZlcnNlIG9mIHRoaXMgZWxlbWVudC4KKyAKK0BAIC0yMTQsNyAr MjE0LDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAg ICAgICAgY3JlZHVjZV9zbWFsbChhbnMudmFsdWUsIGFucy52YWx1ZSwgYW5zLmFic3ByZWMsIGFu cy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9hZGRfKHNl bGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHRoaXMgZWxlbWVudCBhbmQg YGBfcmlnaHRgYC4KKyAKK0BAIC0yMzgsNyArMjM4LDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQo cEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgY3JlZHVjZShhbnMudmFsdWUsIGFucy52 YWx1ZSwgYW5zLmFic3ByZWMsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisg CistICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9z dWJfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlm ZmVyZW5jZSBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgX3JpZ2h0YGAuCisgCitAQCAtMjgyLDcgKzI4 Miw3IEBAIGNkZWYgY2xhc3MgQ0FFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIH5zZWxmLnBhcmVudCgpLmZyYWN0aW9uX2ZpZWxkKCko c2VsZikKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSBwcm9kdWN0IG9mIHRoaXMgZWxlbWVudCBhbmQgYGBfcmlnaHRgYC4KKyAKK0BAIC0zMDUs NyArMzA1LDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgor ICAgICAgICAgY3JlZHVjZShhbnMudmFsdWUsIGFucy52YWx1ZSwgYW5zLmFic3ByZWMsIGFucy5w cmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYs IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50IG9mIHRoaXMgZWxlbWVudCBhbmQg YGByaWdodGBgLgorIAorQEAgLTUzNCw3ICs1MzQsNyBAQCBjZGVmIGNsYXNzIENBRWxlbWVudChw QWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcmlnaHQudmFsdWUsIHJ2YWwsIHByaWdodC5hYnNwcmVjLCBzZWxmLnBy aW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRl RWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrICAgIGNkZWYg cEFkaWNUZW1wbGF0ZUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpOgorICAgICAg ICAgciIiIgorICAgICAgICAgTXVsdGlwbGllcyBieSBgXHBpXntcbWJveHtzaGlmdH19YC4KKyAK K0BAIC01NjYsNyArNTY2LDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVs ZW1lbnQpOgorICAgICAgICAgICAgIGNzaGlmdF9ub3RydW5jKGFucy52YWx1ZSwgc2VsZi52YWx1 ZSwgc2hpZnQsIGFucy5hYnNwcmVjLCBhbnMucHJpbWVfcG93LCBzZWxmLnByaW1lX3Bvdy5lID4g MSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVu dCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNU ZW1wbGF0ZUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpOgorICAgICAgICAgciIi IgorICAgICAgICAgRGl2aWRlcyBieSBgYM+AXntcbWJveHtzaGlmdH19YGAuCisgCitAQCAtODE1 LDcgKzgxNSw3IEBAIGNkZWYgY2xhc3MgQ0FFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToK KyAgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICAgcmV0dXJuIGNjbXAoc2VsZi52YWx1ZSwg cmlnaHQudmFsdWUsIGFwcmVjLCBhcHJlYyA8IHNlbGYuYWJzcHJlYywgYXByZWMgPCByaWdodC5h YnNwcmVjLCBzZWxmLnByaW1lX3BvdykKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVu dCBsaWZ0X3RvX3ByZWNpc2lvbl9jKHNlbGYsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAg IGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb25fYyhzZWxmLCBsb25n IGFic3ByZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gYXJiaXRyYXJ5IGxp ZnQgb2YgdGhpcyBlbGVtZW50IHRvIGhpZ2hlciBwcmVjaXNpb24uCisgCitAQCAtMTAwMSw3ICsx MDAxLDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAg ICAgICAgbXB6X3NldF9zaShhbnMudmFsdWUsIHNlbGYuYWJzcHJlYyAtIHNlbGYudmFsdWF0aW9u X2MoKSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgcEFkaWNUZW1wbGF0ZUVs ZW1lbnQgdW5pdF9wYXJ0KENBRWxlbWVudCBzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcEFk aWNUZW1wbGF0ZUVsZW1lbnQgdW5pdF9wYXJ0KENBRWxlbWVudCBzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgdW5pdCBwYXJ0IG9mIHRoaXMgZWxlbWVudC4KKyAKK0BA IC0xMDQ5LDcgKzEwNDksNyBAQCBjZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBsYXRlRWxl bWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBjdmFsdWF0aW9uKHNlbGYudmFs dWUsIHNlbGYuYWJzcHJlYywgc2VsZi5wcmltZV9wb3cpCisgCistICAgIGNwZGVmIHZhbF91bml0 KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YWxfdW5pdChzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiBhIDItdHVwbGUsIHRoZSBmaXJzdCBlbGVtZW50IHNldCB0byB0 aGUgdmFsdWF0aW9uIG9mIHRoaXMKKyAgICAgICAgIGVsZW1lbnQsIGFuZCB0aGUgc2Vjb25kIHRv IHRoZSB1bml0IHBhcnQgb2YgdGhpcyBlbGVtZW50LgorQEAgLTExMTgsNyArMTExOCw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9DQShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAg IHNlbGYuX3plcm8gPSBSLmVsZW1lbnRfY2xhc3MoUiwgMCkKKyAgICAgICAgIHNlbGYuX3NlY3Rp b24gPSBwQWRpY0NvbnZlcnRfQ0FfWlooUikKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90 cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAK K0BAIC0xMTM4LDcgKzExMzgsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fWlpfQ0EoUmlu Z0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ19zZWN0aW9uJ10gPSBzZWxmLnNlY3Rp b24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVzIGNvZXJjaW9uLWludGVybmFsIHNlY3Rp b25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2Vs ZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlp bmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTExNTcsNyArMTE1Nyw3IEBAIGNkZWYgY2xhc3MgcEFk aWNDb2VyY2lvbl9aWl9DQShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3NlY3Rp b24gPSBfc2xvdHNbJ19zZWN0aW9uJ10KKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX3VwZGF0 ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAg ICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xMTc2LDcgKzExNzYsNyBAQCBj ZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fWlpfQ0EoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAg ICBjY29udl9tcHpfdChhbnMudmFsdWUsICg8SW50ZWdlcj54KS52YWx1ZSwgYW5zLmFic3ByZWMs IFRydWUsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgp LCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2Vk IHdoZW4gc29tZSBwcmVjaXNpb24gY2FwIGlzIHBhc3NlZCBpbgorICAgICAgICAgKHJlbGF0aXZl IG9yIGFic29sdXRlIG9yIGJvdGgpLgorQEAgLTEyNzEsNyArMTI3MSw3IEBAIGNkZWYgY2xhc3Mg cEFkaWNDb252ZXJ0X0NBX1paKFJpbmdNYXApOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICBSaW5nTWFwLl9faW5pdF9fKHNlbGYsIEhvbShSLCBaWiwgU2V0cygpKSkKKyAKKy0gICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisg CitAQCAtMTMxMiw3ICsxMzEyLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfUVFfQ0EoTW9y cGhpc20pOgorICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgSG9tKFFRLCBSLCBTZXRz V2l0aFBhcnRpYWxNYXBzKCkpKQorICAgICAgICAgc2VsZi5femVybyA9IFIuZWxlbWVudF9jbGFz cyhSLCAwKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTEzMzEsNyArMTMzMSw3 IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X1FRX0NBKE1vcnBoaXNtKToKKyAgICAgICAgIF9z bG90c1snX3plcm8nXSA9IHNlbGYuX3plcm8KKyAgICAgICAgIHJldHVybiBfc2xvdHMKKyAKKy0g ICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xMzQ5LDcgKzEz NDksNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9RUV9DQShNb3JwaGlzbSk6CisgICAgICAg ICBzZWxmLl96ZXJvID0gX3Nsb3RzWydfemVybyddCisgICAgICAgICBNb3JwaGlzbS5fdXBkYXRl X3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg eCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAg ICAgIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTEzNjgsNyArMTM2OCw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNDb252ZXJ0X1FRX0NBKE1vcnBoaXNtKToKKyAgICAgICAgIGFucy5hYnNw cmVjID0gYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAKKyAgICAgICAgIHJldHVybiBhbnMKKyAK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dk cz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYs IHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQgd2hlbiBzb21lIHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluIChyZWxhdGl2 ZSBvciBhYnNvbHV0ZSBvciBib3RoKS4KKyAKK0BAIC0xNDUxLDcgKzE0NTEsNyBAQCBjZGVmIGNs YXNzIHBBZGljQ29lcmNpb25fQ0FfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAg ICAgIHNlbGYuX3plcm8gPSBLKDApCisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gcEFkaWNDb252 ZXJ0X0NBX2ZyYWNfZmllbGQoSywgUikKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgX3gpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisgCitAQCAtMTQ3Niw3ICsxNDc2LDcg QEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0NBX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlz bSk6CisgICAgICAgICBhbnMuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gYW5zCisgCist ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2Rz PXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwg X3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQgd2hlbiBzb21lIHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAg ICAocmVsYXRpdmUgb3IgYWJzb2x1dGUgb3IgYm90aCkuCitAQCAtMTU1NCw3ICsxNTU0LDcgQEAg Y2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0NBX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6 CisgICAgICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IGNvcHkuY29weShzZWxmLl9zZWN0aW9uKQor ICAgICAgICAgcmV0dXJuIHNlbGYuX3NlY3Rpb24KKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9z bG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4K KyAKK0BAIC0xNTg0LDcgKzE1ODQsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fQ0FfZnJh Y19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIF9zbG90c1snX3NlY3Rpb24nXSA9 IHNlbGYuc2VjdGlvbigpICMgdXNlIG1ldGhvZCBzaW5jZSBpdCBjb3BpZXMgY29lcmNpb24taW50 ZXJuYWwgc2VjdGlvbnMuCisgICAgICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3Vw ZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0 ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTY3NSw3ICsxNjc1LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ0FfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBN b3JwaGlzbS5fX2luaXRfXyhzZWxmLCBIb20oSywgUiwgU2V0c1dpdGhQYXJ0aWFsTWFwcygpKSkK KyAgICAgICAgIHNlbGYuX3plcm8gPSBSKDApCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gp OgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTE3MDcsNyArMTcw Nyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0NBX2ZyYWNfZmllbGQoTW9ycGhpc20pOgor ICAgICAgICAgICAgICAgICBhbnMudmFsdWUuX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52 YWx1ZS5fY29lZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50 IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2Rz PXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4g c29tZSBwcmVjaXNpb24gY2FwIGlzIHBhc3NlZCBpbgorICAgICAgICAgKHJlbGF0aXZlIG9yIGFi c29sdXRlIG9yIGJvdGgpLgorQEAgLTE3NjMsNyArMTc2Myw3IEBAIGNkZWYgY2xhc3MgcEFkaWND b252ZXJ0X0NBX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgICAgICAgICBhbnMudmFs dWUuX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fY29lZmZzXQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE3OTIsNyArMTc5 Miw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0NBX2ZyYWNfZmllbGQoTW9ycGhpc20pOgor ICAgICAgICAgX3Nsb3RzWydfemVybyddID0gc2VsZi5femVybworICAgICAgICAgcmV0dXJuIF9z bG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAg ICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZV9oZWFkZXIucHhpIGIv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NBX3RlbXBsYXRlX2hlYWRlci5weGkKK2luZGV4IDg3MTk0 NjE3ZGFhLi5kMTVhMDU1Y2I0ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9D QV90ZW1wbGF0ZV9oZWFkZXIucHhpCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvQ0FfdGVt cGxhdGVfaGVhZGVyLnB4aQorQEAgLTMxLDcgKzMxLDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQo cEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICBjZGVmIGNlbGVtZW50IHZhbHVlCisgICAgIGNk ZWYgbG9uZyBhYnNwcmVjCisgCistICAgIGNkZWYgQ0FFbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4 Y2VwdAorKyAgICBjZGVmIENBRWxlbWVudCBfbmV3X2Moc2VsZikKKyAKKyBjZGVmIGNsYXNzIHBB ZGljQ29lcmNpb25fWlpfQ0EoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgIGNkZWYgQ0FFbGVtZW50 IF96ZXJvCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4 aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DUl90ZW1wbGF0ZS5weGkKK2luZGV4IDI0ZDljMDYx Njk3Li5hY2RjNDgwMzY3MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DUl90 ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DUl90ZW1wbGF0ZS5weGkK K0BAIC0xNzYsNyArMTc2LDcgQEAgY2RlZiBjbGFzcyBDUkVsZW1lbnQocEFkaWNUZW1wbGF0ZUVs ZW1lbnQpOgorICAgICAgICAgc2VsZi5vcmRwID0gYWJzcHJlYworICAgICAgICAgc2VsZi5yZWxw cmVjID0gMAorIAorLSAgICBjZGVmIENSRWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgQ1JFbGVtZW50IF9uZXdfYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg Q3JlYXRlcyBhIG5ldyBlbGVtZW50IHdpdGggdGhlIHNhbWUgYmFzaWMgaW5mby4KKyAKK0BAIC0y MDQsNyArMjA0LDcgQEAgY2RlZiBjbGFzcyBDUkVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQp OgorICAgICAgICAgY2NvbnN0cnVjdChhbnMudW5pdCwgYW5zLnByaW1lX3BvdykKKyAgICAgICAg IHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhf dmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFsdWUsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAg IGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX25ld193aXRoX3ZhbHVlKHNlbGYsIGNlbGVtZW50 IHZhbHVlLCBsb25nIGFic3ByZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEg bmV3IGVsZW1lbnQgd2l0aCBhIGdpdmVuIHZhbHVlIGFuZCBhYnNvbHV0ZSBwcmVjaXNpb24uCisg CitAQCAtMzA2LDcgKzMwNiw3IEBAIGNkZWYgY2xhc3MgQ1JFbGVtZW50KHBBZGljVGVtcGxhdGVF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHVucGlja2xlX2NyZV92Miwg KHNlbGYuX19jbGFzc19fLCBzZWxmLnBhcmVudCgpLCBjcGlja2xlKHNlbGYudW5pdCwgc2VsZi5w cmltZV9wb3cpLCBzZWxmLm9yZHAsIHNlbGYucmVscHJlYykKKyAKKy0gICAgY3BkZWYgX25lZ18o c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGFkZGl0aXZlIGludmVyc2Ugb2YgdGhpcyBlbGVtZW50LgorIAor QEAgLTMzMCw3ICszMzAsNyBAQCBjZGVmIGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRlRWxl bWVudCk6CisgICAgICAgICAgICAgY3JlZHVjZShhbnMudW5pdCwgYW5zLnVuaXQsIGFucy5yZWxw cmVjLCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBfcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHN1bSBvZiB0aGlzIGVsZW1l bnQgYW5kIGBgX3JpZ2h0YGAuCisgCitAQCAtMzc0LDcgKzM3NCw3IEBAIGNkZWYgY2xhc3MgQ1JF bGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgY3JlZHVjZShh bnMudW5pdCwgYW5zLnVuaXQsIGFucy5yZWxwcmVjLCBhbnMucHJpbWVfcG93KQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBlbGVtZW50IGFuZCBgYF9yaWdodGBgLgorIAor QEAgLTQ0OCw3ICs0NDgsNyBAQCBjZGVmIGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRlRWxl bWVudCk6CisgICAgICAgICBjaW52ZXJ0KGFucy51bml0LCBzZWxmLnVuaXQsIGFucy5yZWxwcmVj LCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfbXVs XyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgZWxl bWVudCBhbmQgYGBfcmlnaHRgYC4KKyAKK0BAIC00NzksNyArNDc5LDcgQEAgY2RlZiBjbGFzcyBD UkVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgY2hlY2tfb3JkcChhbnMu b3JkcCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgX3Jp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBvZiB0aGlzIGVsZW1lbnQgYW5kIGBg cmlnaHRgYC4KKyAKK0BAIC03MzQsNyArNzM0LDcgQEAgY2RlZiBjbGFzcyBDUkVsZW1lbnQocEFk aWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgICAgIGFucy5vcmRwID0gMAorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9sc2hpZnRfYyhz ZWxmLCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVu dCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCk6CisgICAgICAgICByIiIiCisgICAgICAgICBN dWx0aXBsaWVzIGJ5IGBccGlee1xtYm94e3NoaWZ0fX1gLgorIAorQEAgLTc2NSw3ICs3NjUsNyBA QCBjZGVmIGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBj Y29weShhbnMudW5pdCwgc2VsZi51bml0LCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJu IGFucworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBs b25nIHNoaWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfcnNo aWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCk6CisgICAgICAgICByIiIiCisgICAgICAgICBEaXZpZGVz IGJ5IGBgXHBpXntcbWJveHtzaGlmdH19YGAuCisgCitAQCAtMTE5NSw3ICsxMTk1LDcgQEAgY2Rl ZiBjbGFzcyBDUkVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgICAgIHJl dHVybiAwCisgICAgICAgICByZXR1cm4gY2NtcChzZWxmLnVuaXQsIHJpZ2h0LnVuaXQsIHJwcmVj LCBycHJlYyA8IHNlbGYucmVscHJlYywgcnByZWMgPCByaWdodC5yZWxwcmVjLCBzZWxmLnByaW1l X3BvdykKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBsaWZ0X3RvX3ByZWNpc2lv bl9jKHNlbGYsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1wbGF0 ZUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb25fYyhzZWxmLCBsb25nIGFic3ByZWMpOgorICAgICAg ICAgIiIiCisgICAgICAgICBMaWZ0cyB0aGlzIGVsZW1lbnQgdG8gYW5vdGhlciB3aXRoIHByZWNp c2lvbiBhdCBsZWFzdCBgYGFic3ByZWNgYC4KKyAKK0BAIC0xNDIxLDcgKzE0MjEsNyBAQCBjZGVm IGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBtcHpfc2V0 X3NpKGFucy52YWx1ZSwgc2VsZi5yZWxwcmVjKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAg ICBjcGRlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCB1bml0X3BhcnQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IHVuaXRfcGFydChzZWxmKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiBgdWAsIHdoZXJlIHRoaXMgZWxlbWVudCBpcyBgXHBpXnYg dWAuCisgCitAQCAtMTQ4NCw3ICsxNDg0LDcgQEAgY2RlZiBjbGFzcyBDUkVsZW1lbnQocEFkaWNU ZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5vcmRw CisgCistICAgIGNwZGVmIHZhbF91bml0KHNlbGYsIHA9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHZhbF91bml0KHNlbGYsIHA9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biBhIHBhaXIgYGAoc2VsZi52YWx1YXRpb24oKSwgc2VsZi51bml0X3BhcnQoKSlgYC4KKyAKK0BA IC0xNTc0LDcgKzE1NzQsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fWlpfQ1IoUmluZ0hv bW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl96ZXJvID0gUi5lbGVtZW50X2NsYXNzKFIsIDAp CisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gcEFkaWNDb252ZXJ0X0NSX1paKFIpCisgCistICAg IGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBf ZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29w eWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTYwMCw3ICsxNjAwLDcgQEAgY2RlZiBjbGFzcyBw QWRpY0NvZXJjaW9uX1paX0NSKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgX3Nsb3RzWydf c2VjdGlvbiddID0gc2VsZi5zZWN0aW9uKCkgIyB1c2UgbWV0aG9kIHNpbmNlIGl0IGNvcGllcyBj b2VyY2lvbi1pbnRlcm5hbCBzZWN0aW9ucy4KKyAgICAgICAgIHJldHVybiBfc2xvdHMKKyAKKy0g ICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xNjI2LDcgKzE2 MjYsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fWlpfQ1IoUmluZ0hvbW9tb3JwaGlzbSk6 CisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gX3Nsb3RzWydfc2VjdGlvbiddCisgICAgICAgICBS aW5nSG9tb21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBf Y2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisgCitA QCAtMTY0NSw3ICsxNjQ1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX1paX0NSKFJpbmdI b21vbW9ycGhpc20pOgorICAgICAgICAgYW5zLm9yZHAgPSBjY29udl9tcHpfdChhbnMudW5pdCwg KDxJbnRlZ2VyPngpLnZhbHVlLCBhbnMucmVscHJlYywgRmFsc2UsIGFucy5wcmltZV9wb3cpCisg ICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdz KHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIi IgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gc29tZSBwcmVjaXNpb24gY2Fw IGlzIHBhc3NlZCBpbgorICAgICAgICAgKHJlbGF0aXZlIG9yIGFic29sdXRlIG9yIGJvdGgpLCBv ciBhbiBlbXB0eSBlbGVtZW50IGlzCitAQCAtMTc0MSw3ICsxNzQxLDcgQEAgY2RlZiBjbGFzcyBw QWRpY0NvbnZlcnRfQ1JfWlooUmluZ01hcCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAg IFJpbmdNYXAuX19pbml0X18oc2VsZiwgSG9tKFIsIFpaLCBTZXRzKCkpKQorIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAK K0BAIC0xNzkyLDcgKzE3OTIsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fUVFfQ1IoUmlu Z0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl96ZXJvID0gUi5lbGVtZW50X2NsYXNzKFIs IDApCisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gcEFkaWNDb252ZXJ0X0NSX1FRKFIpCisgCist ICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGlj dCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3Ig Y29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTgxOCw3ICsxODE4LDcgQEAgY2RlZiBjbGFz cyBwQWRpY0NvZXJjaW9uX1FRX0NSKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgX3Nsb3Rz Wydfc2VjdGlvbiddID0gc2VsZi5zZWN0aW9uKCkgIyB1c2UgbWV0aG9kIHNpbmNlIGl0IGNvcGll cyBjb2VyY2lvbi1pbnRlcm5hbCBzZWN0aW9ucy4KKyAgICAgICAgIHJldHVybiBfc2xvdHMKKyAK Ky0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgor ICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xODQ0LDcg KzE4NDQsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fUVFfQ1IoUmluZ0hvbW9tb3JwaGlz bSk6CisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gX3Nsb3RzWydfc2VjdGlvbiddCisgICAgICAg ICBSaW5nSG9tb21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisg CitAQCAtMTg2NSw3ICsxODY1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX1FRX0NSKFJp bmdIb21vbW9ycGhpc20pOgorICAgICAgICAgYW5zLm9yZHAgPSBjY29udl9tcHFfdChhbnMudW5p dCwgKDxSYXRpb25hbD54KS52YWx1ZSwgYW5zLnJlbHByZWMsIEZhbHNlLCBzZWxmLl96ZXJvLnBy aW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgor ICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21lIHBy ZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAgICAocmVsYXRpdmUgb3IgYWJzb2x1dGUg b3IgYm90aCksIG9yIGFuIGVtcHR5IGVsZW1lbnQgaXMKK0BAIC0xOTU5LDcgKzE5NTksNyBAQCBj ZGVmIGNsYXNzIHBBZGljQ29udmVydF9DUl9RUShSaW5nTWFwKToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgUmluZ01hcC5fX2luaXRfXyhzZWxmLCBIb20oUiwgUVEsIFNldHMoKSkpCisg CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFs dWF0aW9uLgorIAorQEAgLTIwMDYsNyArMjAwNiw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0 X1FRX0NSKE1vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBSLmVsZW1lbnRfY2xhc3Mo UiwgMCkKKyAgICAgICAgIHNlbGYuX3NlY3Rpb24gPSBwQWRpY0NvbnZlcnRfQ1JfUVEoUikKKyAK Ky0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBk aWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZv ciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0yMDI2LDcgKzIwMjYsNyBAQCBjZGVmIGNs YXNzIHBBZGljQ29udmVydF9RUV9DUihNb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ19zZWN0 aW9uJ10gPSBzZWxmLnNlY3Rpb24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVzIGNvZXJj aW9uLWludGVybmFsIHNlY3Rpb25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBj ZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAg ICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTIwNDUsNyArMjA0NSw3 IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X1FRX0NSKE1vcnBoaXNtKToKKyAgICAgICAgIHNl bGYuX3NlY3Rpb24gPSBfc2xvdHNbJ19zZWN0aW9uJ10KKyAgICAgICAgIE1vcnBoaXNtLl91cGRh dGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxm LCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisgCitAQCAtMjA2Niw3ICsyMDY2LDcgQEAg Y2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfUVFfQ1IoTW9ycGhpc20pOgorICAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoInAgZGl2aWRlcyB0aGUgZGVub21pbmF0b3IiKQorICAgICAgICAgcmV0 dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBh cmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRo X2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNhcCBpcyBwYXNzZWQg aW4KKyAgICAgICAgIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBib3RoKSwgb3IgYW4gZW1wdHkg ZWxlbWVudCBpcworQEAgLTIxNzAsNyArMjE3MCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lv bl9DUl9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5femVybyA9 IEsoMCkKKyAgICAgICAgIHNlbGYuX3NlY3Rpb24gPSBwQWRpY0NvbnZlcnRfQ1JfZnJhY19maWVs ZChLLCBSKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAg ICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0yMTk2LDcgKzIxOTYsNyBAQCBjZGVmIGNsYXNzIHBB ZGljQ29lcmNpb25fQ1JfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICAg ICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Mo c2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNh cCBpcyBwYXNzZWQgaW4KKyAgICAgICAgIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBib3RoKS4K K0BAIC0yMjc4LDcgKzIyNzgsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fQ1JfZnJhY19m aWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICAgICBzZWxmLl9zZWN0aW9uID0gY29w eS5jb3B5KHNlbGYuX3NlY3Rpb24pCisgICAgICAgICByZXR1cm4gc2VsZi5fc2VjdGlvbgorIAor LSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRp Y3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9y IGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTIzMDgsNyArMjMwOCw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb2VyY2lvbl9DUl9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAg ICAgX3Nsb3RzWydfc2VjdGlvbiddID0gc2VsZi5zZWN0aW9uKCkgIyB1c2UgbWV0aG9kIHNpbmNl IGl0IGNvcGllcyBjb2VyY2lvbi1pbnRlcm5hbCBzZWN0aW9ucy4KKyAgICAgICAgIHJldHVybiBf c2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAg ICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BA IC0yMzk5LDcgKzIzOTksNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9DUl9mcmFjX2ZpZWxk KE1vcnBoaXNtKToKKyAgICAgICAgIE1vcnBoaXNtLl9faW5pdF9fKHNlbGYsIEhvbShLLCBSLCBT ZXRzV2l0aFBhcnRpYWxNYXBzKCkpKQorICAgICAgICAgc2VsZi5femVybyA9IFIoMCkKKyAKKy0g ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRp b24uCisgCitAQCAtMjQyNSw3ICsyNDI1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ1Jf ZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtL KGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCist ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2Rz PXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwg X3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQgd2hlbiBzb21lIHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAg ICAocmVsYXRpdmUgb3IgYWJzb2x1dGUgb3IgYm90aCkuCitAQCAtMjQ4NSw3ICsyNDg1LDcgQEAg Y2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ1JfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAg ICAgICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29l ZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3Rz KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAor QEAgLTI1MTQsNyArMjUxNCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0NSX2ZyYWNfZmll bGQoTW9ycGhpc20pOgorICAgICAgICAgX3Nsb3RzWydfemVybyddID0gc2VsZi5femVybworICAg ICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGlj dCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBf c2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBp Y2tsaW5nLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DUl90ZW1wbGF0 ZV9oZWFkZXIucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlX2hlYWRlci5w eGkKK2luZGV4IGI5Njk0NjNiYzcyLi41NGM0ODJmN2ZmMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9DUl90ZW1wbGF0ZV9oZWFkZXIucHhpCisrKysgYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvQ1JfdGVtcGxhdGVfaGVhZGVyLnB4aQorQEAgLTMyLDkgKzMyLDkgQEAgY2RlZiBj bGFzcyBDUkVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICBjZGVmIGxvbmcgb3Jk cAorICAgICBjZGVmIGxvbmcgcmVscHJlYworIAorLSAgICBjZGVmIENSRWxlbWVudCBfbmV3X2Mo c2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBDUkVsZW1lbnQgX25ld19jKHNlbGYpCisgICAgIGNk ZWYgaW50IF9ub3JtYWxpemUoc2VsZikgZXhjZXB0IC0xCistICAgIGNwZGVmIHZhbF91bml0KHNl bGYsIHA9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgdmFsX3VuaXQoc2VsZiwgcD0qKQorIAorIGNk ZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9DUihSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgY2Rl ZiBDUkVsZW1lbnQgX3plcm8KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRk1f dGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3RlbXBsYXRlLnB4aQoraW5k ZXggNWU2NjgyYzNlM2IuLjhjZTkzZDc5N2E4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cGFkaWNzL0ZNX3RlbXBsYXRlLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3Rl bXBsYXRlLnB4aQorQEAgLTg5LDcgKzg5LDcgQEAgY2RlZiBjbGFzcyBGTUVsZW1lbnQocEFkaWNU ZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBjY29udihzZWxm LnZhbHVlLCB4LCBzZWxmLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIDAsIHNlbGYucHJpbWVfcG93 KQorIAorLSAgICBjZGVmIEZNRWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgRk1FbGVtZW50IF9uZXdfYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRl cyBhIG5ldyBlbGVtZW50IHdpdGggdGhlIHNhbWUgYmFzaWMgaW5mby4KKyAKK0BAIC0xMDgsNyAr MTA4LDcgQEAgY2RlZiBjbGFzcyBGTUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAg ICAgICAgY2NvbnN0cnVjdChhbnMudmFsdWUsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1 cm4gYW5zCisgCistICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX25ld193aXRoX3ZhbHVl KHNlbGYsIGNlbGVtZW50IHZhbHVlLCBsb25nIGFic3ByZWMpIG5vZXhjZXB0OgorKyAgICBjZGVm IHBBZGljVGVtcGxhdGVFbGVtZW50IF9uZXdfd2l0aF92YWx1ZShzZWxmLCBjZWxlbWVudCB2YWx1 ZSwgbG9uZyBhYnNwcmVjKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlcyBhIG5ldyBl bGVtZW50IHdpdGggYSBnaXZlbiB2YWx1ZSBhbmQgYWJzb2x1dGUgcHJlY2lzaW9uLgorIAorQEAg LTE3OSw3ICsxNzksNyBAQCBjZGVmIGNsYXNzIEZNRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVu dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB1bnBpY2tsZV9mbWVfdjIsIChzZWxm Ll9fY2xhc3NfXywgc2VsZi5wYXJlbnQoKSwgY3BpY2tsZShzZWxmLnZhbHVlLCBzZWxmLnByaW1l X3BvdykpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWRkaXRpdmUg aW52ZXJzZSBvZiB0aGlzIGVsZW1lbnQuCisgCitAQCAtMTk0LDcgKzE5NCw3IEBAIGNkZWYgY2xh c3MgRk1FbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgIGNyZWR1Y2Vfc21h bGwoYW5zLnZhbHVlLCBhbnMudmFsdWUsIGFucy5wcmltZV9wb3cucmFtX3ByZWNfY2FwLCBhbnMu cHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxm LCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBfcmlnaHQpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzdW0gb2YgdGhpcyBlbGVtZW50IGFuZCBg YF9yaWdodGBgLgorIAorQEAgLTIxNCw3ICsyMTQsNyBAQCBjZGVmIGNsYXNzIEZNRWxlbWVudChw QWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBjcmVkdWNlX3NtYWxsKGFucy52YWx1ZSwg YW5zLnZhbHVlLCBhbnMucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgYW5zLnByaW1lX3BvdykKKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgX3JpZ2h0 YGAuCisgCitAQCAtMjU5LDcgKzI1OSw3IEBAIGNkZWYgY2xhc3MgRk1FbGVtZW50KHBBZGljVGVt cGxhdGVFbGVtZW50KToKKyAgICAgICAgIGNpbnZlcnQoYW5zLnZhbHVlLCBzZWxmLnZhbHVlLCBh bnMucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgYW5zLnByaW1lX3BvdykKKyAgICAgICAgIHJldHVy biBhbnMKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgcHJvZHVjdCBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgX3JpZ2h0YGAuCisgCitAQCAtMjc3 LDcgKzI3Nyw3IEBAIGNkZWYgY2xhc3MgRk1FbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToK KyAgICAgICAgIGNyZWR1Y2UoYW5zLnZhbHVlLCBhbnMudmFsdWUsIGFucy5wcmltZV9wb3cucmFt X3ByZWNfY2FwLCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBj cGRlZiBfZGl2XyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxm LCBfcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBv ZiB0aGlzIGVsZW1lbnQgYW5kIGBgcmlnaHRgYC4gYGByaWdodGBgIG11c3QgaGF2ZQorICAgICAg ICAgdmFsdWF0aW9uIHplcm8uCitAQCAtMzc5LDcgKzM3OSw3IEBAIGNkZWYgY2xhc3MgRk1FbGVt ZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgIGNwb3coYW5zLnZhbHVlLCBzZWxm LnZhbHVlLCByaWdodC52YWx1ZSwgc2VsZi5wcmltZV9wb3cucmFtX3ByZWNfY2FwLCBzZWxmLnBy aW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRl RWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrICAgIGNkZWYg cEFkaWNUZW1wbGF0ZUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpOgorICAgICAg ICAgciIiIgorICAgICAgICAgTXVsdGlwbGllcyBzZWxmIGJ5IGBccGlee3NoaWZ0fWAuCisgCitA QCAtNDI2LDcgKzQyNiw3IEBAIGNkZWYgY2xhc3MgRk1FbGVtZW50KHBBZGljVGVtcGxhdGVFbGVt ZW50KToKKyAgICAgICAgICAgICBjc2hpZnRfbm90cnVuYyhhbnMudmFsdWUsIHNlbGYudmFsdWUs IHNoaWZ0LCBhbnMucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgYW5zLnByaW1lX3BvdywgVHJ1ZSkK KyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBf cnNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1w bGF0ZUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpOgorICAgICAgICAgciIiIgor ICAgICAgICAgRGl2aWRlcyBieSBgXHBpXntzaGlmdH1gLCBhbmQgdHJ1bmNhdGVzLgorIAorQEAg LTY0Nyw3ICs2NDcsNyBAQCBjZGVmIGNsYXNzIEZNRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVu dCk6CisgICAgICAgICBjZGVmIEZNRWxlbWVudCByaWdodCA9IF9yaWdodAorICAgICAgICAgcmV0 dXJuIGNjbXAoc2VsZi52YWx1ZSwgcmlnaHQudmFsdWUsIHNlbGYucHJpbWVfcG93LnJhbV9wcmVj X2NhcCwgRmFsc2UsIEZhbHNlLCBzZWxmLnByaW1lX3BvdykKKyAKKy0gICAgY2RlZiBwQWRpY1Rl bXBsYXRlRWxlbWVudCBsaWZ0X3RvX3ByZWNpc2lvbl9jKHNlbGYsIGxvbmcgYWJzcHJlYykgbm9l eGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb25f YyhzZWxmLCBsb25nIGFic3ByZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBMaWZ0cyB0aGlz IGVsZW1lbnQgdG8gYW5vdGhlciB3aXRoIHByZWNpc2lvbiBhdCBsZWFzdCBhYnNwcmVjLgorIAor QEAgLTc3OSw3ICs3NzksNyBAQCBjZGVmIGNsYXNzIEZNRWxlbWVudChwQWRpY1RlbXBsYXRlRWxl bWVudCk6CisgICAgICAgICBtcHpfc2V0X3NpKGFucy52YWx1ZSwgc2VsZi5wcmltZV9wb3cucmFt X3ByZWNfY2FwIC0gc2VsZi52YWx1YXRpb25fYygpKQorICAgICAgICAgcmV0dXJuIGFucworIAor LSAgICBjcGRlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCB1bml0X3BhcnQoRk1FbGVtZW50IHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCB1bml0X3BhcnQoRk1F bGVtZW50IHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB1bml0IHBh cnQgb2YgYGBzZWxmYGAuCisgCitAQCAtODM1LDcgKzgzNSw3IEBAIGNkZWYgY2xhc3MgRk1FbGVt ZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgICMgZm9yIGJhY2t3YXJkIGNvbXBh dGliaWxpdHkKKyAgICAgICAgIHJldHVybiBjdmFsdWF0aW9uKHNlbGYudmFsdWUsIHNlbGYucHJp bWVfcG93LnJhbV9wcmVjX2NhcCwgc2VsZi5wcmltZV9wb3cpCisgCistICAgIGNwZGVmIHZhbF91 bml0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YWxfdW5pdChzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIGEgMi10dXBsZSwgdGhlIGZpcnN0IGVsZW1lbnQgc2V0IHRv IHRoZSB2YWx1YXRpb24gb2YKKyAgICAgICAgIGBgc2VsZmBgLCBhbmQgdGhlIHNlY29uZCB0byB0 aGUgdW5pdCBwYXJ0IG9mIGBgc2VsZmBgLgorQEAgLTg5Nyw3ICs4OTcsNyBAQCBjZGVmIGNsYXNz IHBBZGljQ29lcmNpb25fWlpfRk0oUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl96 ZXJvID0gUi5lbGVtZW50X2NsYXNzKFIsIDApCisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gcEFk aWNDb252ZXJ0X0ZNX1paKFIpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikg bm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtOTE3 LDcgKzkxNyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9GTShSaW5nSG9tb21vcnBo aXNtKToKKyAgICAgICAgIF9zbG90c1snX3NlY3Rpb24nXSA9IHNlbGYuc2VjdGlvbigpICMgdXNl IG1ldGhvZCBzaW5jZSBpdCBjb3BpZXMgY29lcmNpb24taW50ZXJuYWwgc2VjdGlvbnMuCisgICAg ICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlj a2xpbmcuCisgCitAQCAtOTM2LDcgKzkzNiw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9a Wl9GTShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3NlY3Rpb24gPSBfc2xvdHNb J19zZWN0aW9uJ10KKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxm LCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAg ICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC05NTQsNyArOTU0LDcgQEAgY2RlZiBjbGFzcyBwQWRp Y0NvZXJjaW9uX1paX0ZNKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgY2NvbnZfbXB6X3Qo YW5zLnZhbHVlLCAoPEludGVnZXI+eCkudmFsdWUsIGFucy5wcmltZV9wb3cucmFtX3ByZWNfY2Fw LCBUcnVlLCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0o KSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNhcCBpcyBwYXNzZWQgaW4gKHJlbGF0aXZlIG9yIGFic29s dXRlIG9yIGJvdGgpLgorIAorQEAgLTEwNDAsNyArMTA0MCw3IEBAIGNkZWYgY2xhc3MgcEFkaWND b252ZXJ0X0ZNX1paKFJpbmdNYXApOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBSaW5n TWFwLl9faW5pdF9fKHNlbGYsIEhvbShSLCBaWiwgU2V0cygpKSkKKyAKKy0gICAgY3BkZWYgRWxl bWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCBfeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisgCitAQCAt MTA4MSw3ICsxMDgxLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfUVFfRk0oTW9ycGhpc20p OgorICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgSG9tKFFRLCBSLCBTZXRzV2l0aFBh cnRpYWxNYXBzKCkpKQorICAgICAgICAgc2VsZi5femVybyA9IFIuZWxlbWVudF9jbGFzcyhSLCAw KQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxw ZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTExMDAsNyArMTEwMCw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNDb252ZXJ0X1FRX0ZNKE1vcnBoaXNtKToKKyAgICAgICAgIF9zbG90c1sn X3plcm8nXSA9IHNlbGYuX3plcm8KKyAgICAgICAgIHJldHVybiBfc2xvdHMKKyAKKy0gICAgY2Rl ZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf dXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAg SGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xMTE4LDcgKzExMTgsNyBA QCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9RUV9GTShNb3JwaGlzbSk6CisgICAgICAgICBzZWxm Ll96ZXJvID0gX3Nsb3RzWydfemVybyddCisgICAgICAgICBNb3JwaGlzbS5fdXBkYXRlX3Nsb3Rz KHNlbGYsIF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIi CisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTExMzYsNyArMTEzNiw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb252ZXJ0X1FRX0ZNKE1vcnBoaXNtKToKKyAgICAgICAgIGNjb252X21wcV90KGFu cy52YWx1ZSwgKDxSYXRpb25hbD54KS52YWx1ZSwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAs IFRydWUsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgp LCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2Vk IHdoZW4gc29tZSBwcmVjaXNpb24gY2FwIGlzIHBhc3NlZCBpbiAocmVsYXRpdmUgb3IgYWJzb2x1 dGUgb3IgYm90aCkuCisgCitAQCAtMTIxMCw3ICsxMjEwLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Nv ZXJjaW9uX0ZNX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl96 ZXJvID0gSygwKQorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHBBZGljQ29udmVydF9GTV9mcmFj X2ZpZWxkKEssIFIpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpOgorICAgICAgICAgIiIi CisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTEyMzQsNyArMTIzNCw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb2VyY2lvbl9GTV9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAg ICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZz XQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhf YXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAg ICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gc29tZSBwcmVjaXNp b24gY2FwIGlzIHBhc3NlZCBpbgorICAgICAgICAgKHJlbGF0aXZlIG9yIGFic29sdXRlIG9yIGJv dGgpLgorQEAgLTEzMDUsNyArMTMwNSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9GTV9m cmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIHNlbGYuX3NlY3Rpb24g PSBjb3B5LmNvcHkoc2VsZi5fc2VjdGlvbikKKyAgICAgICAgIHJldHVybiBzZWxmLl9zZWN0aW9u CisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTMzNCw3ICsxMzM0LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZNX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6Cisg ICAgICAgICBfc2xvdHNbJ19zZWN0aW9uJ10gPSBzZWxmLnNlY3Rpb24oKSAjIHVzZSBtZXRob2Qg c2luY2UgaXQgY29waWVzIGNvZXJjaW9uLWludGVybmFsIHNlY3Rpb25zLgorICAgICAgICAgcmV0 dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMp IG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgor ICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgor IAorQEAgLTE0MjUsNyArMTQyNSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZNX2ZyYWNf ZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgSG9tKEss IFIsIFNldHNXaXRoUGFydGlhbE1hcHMoKSkpCisgICAgICAgICBzZWxmLl96ZXJvID0gUigwKQor IAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZh bHVhdGlvbi4KKyAKK0BAIC0xNDUxLDcgKzE0NTEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVy dF9GTV9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgICAgICBhbnMudmFsdWUuX2NvZWZm cyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fY29lZmZzXQorICAgICAgICAgcmV0dXJuIGFu cworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0o KSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdz KHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhp cyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gc29tZSBwcmVjaXNpb24gY2FwIGlzIHBhc3NlZCBpbgor ICAgICAgICAgKHJlbGF0aXZlIG9yIGFic29sdXRlIG9yIGJvdGgpLgorQEAgLTE1MDAsNyArMTUw MCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZNX2ZyYWNfZmllbGQoTW9ycGhpc20pOgor ICAgICAgICAgICAgIGFucy52YWx1ZS5fY29lZmZzID0gW1IoYykgZm9yIGMgaW4gYW5zLnZhbHVl Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFf c2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcu CisgCitAQCAtMTUyOSw3ICsxNTI5LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1fZnJh Y19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ196ZXJvJ10gPSBzZWxmLl96ZXJv CisgICAgICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxm LCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBk aWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBh bmQgcGlja2xpbmcuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3Rl bXBsYXRlX2hlYWRlci5weGkgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRk1fdGVtcGxhdGVfaGVh ZGVyLnB4aQoraW5kZXggZDllY2M3ZDA3MTUuLmJkNjUxMTY3NjIyIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3RlbXBsYXRlX2hlYWRlci5weGkKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZV9oZWFkZXIucHhpCitAQCAtMzEsNyArMzEsNyBAQCBj ZGVmIGNsYXNzIEZNRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgIGNkZWYgY2Vs ZW1lbnQgdmFsdWUKKyAgICAgY2RlZiBsb25nIGFic3ByZWMKKyAKKy0gICAgY2RlZiBGTUVsZW1l bnQgX25ld19jKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgRk1FbGVtZW50IF9uZXdfYyhzZWxm KQorIAorIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9GTShSaW5nSG9tb21vcnBoaXNtKToK KyAgICAgY2RlZiBGTUVsZW1lbnQgX3plcm8KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvRlBfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZQX3RlbXBsYXRl LnB4aQoraW5kZXggMjlkZGQxZTcyYzcuLjVjN2Y5NDA1MWU3IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL0ZQX3RlbXBsYXRlLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL0ZQX3RlbXBsYXRlLnB4aQorQEAgLTE3MSw3ICsxNzEsNyBAQCBjZGVmIGNsYXNzIEZQRWxl bWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBjc2V0b25lKHNlbGYudW5pdCwg c2VsZi5wcmltZV9wb3cpCisgICAgICAgICBzZWxmLm9yZHAgPSBtaW51c21heG9yZHAKKyAKKy0g ICAgY2RlZiBGUEVsZW1lbnQgX25ld19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIEZQRWxl bWVudCBfbmV3X2Moc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZXMgYSBuZXcg ZWxlbWVudCB3aXRoIHRoZSBzYW1lIGJhc2ljIGluZm8uCisgCitAQCAtMTk3LDcgKzE5Nyw3IEBA IGNkZWYgY2xhc3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgIGNj b25zdHJ1Y3QoYW5zLnVuaXQsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisg CistICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX25ld193aXRoX3ZhbHVlKHNlbGYsIGNl bGVtZW50IHZhbHVlLCBsb25nIGFic3ByZWMpIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljVGVt cGxhdGVFbGVtZW50IF9uZXdfd2l0aF92YWx1ZShzZWxmLCBjZWxlbWVudCB2YWx1ZSwgbG9uZyBh YnNwcmVjKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlcyBhIG5ldyBlbGVtZW50IHdp dGggYSBnaXZlbiB2YWx1ZSBhbmQgYWJzb2x1dGUgcHJlY2lzaW9uLgorIAorQEAgLTMxMyw3ICsz MTMsNyBAQCBjZGVmIGNsYXNzIEZQRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgIyAg ICAgICAgIiIiCisgIyAgICAgICAgcmV0dXJuICg8RWxlbWVudD5zZWxmKS5fcmljaGNtcChyaWdo dCwgb3ApCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWRkaXRpdmUg aW52ZXJzZSBvZiB0aGlzIGVsZW1lbnQuCisgCitAQCAtMzMyLDcgKzMzMiw3IEBAIGNkZWYgY2xh c3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgICAgICBjcmVkdWNl X3NtYWxsKGFucy51bml0LCBhbnMudW5pdCwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIGFu cy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9hZGRfKHNl bGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHN1bSBvZiB0aGlzIGVsZW1lbnQgYW5k IGBgX3JpZ2h0YGAuCisgCitAQCAtMzc2LDcgKzM3Niw3IEBAIGNkZWYgY2xhc3MgRlBFbGVtZW50 KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgY3JlZHVjZShhbnMudW5p dCwgYW5zLnVuaXQsIGFucy5wcmltZV9wb3cucmFtX3ByZWNfY2FwLCBhbnMucHJpbWVfcG93KQor ICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBkaWZmZXJlbmNlIG9mIHRoaXMgZWxlbWVudCBhbmQgYGBfcmln aHRgYC4KKyAKK0BAIC00NTUsNyArNDU1LDcgQEAgY2RlZiBjbGFzcyBGUEVsZW1lbnQocEFkaWNU ZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgICAgIGNpbnZlcnQoYW5zLnVuaXQsIHNlbGYudW5p dCwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIGFucy5wcmltZV9wb3cpCisgICAgICAgICBy ZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBlbGVtZW50IGFuZCBgYF9yaWdodGBgLgorIAorQEAg LTQ4OCw3ICs0ODgsNyBAQCBjZGVmIGNsYXNzIEZQRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVu dCk6CisgICAgICAgICBjcmVkdWNlKGFucy51bml0LCBhbnMudW5pdCwgYW5zLnByaW1lX3Bvdy5y YW1fcHJlY19jYXAsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAg IGNwZGVmIF9kaXZfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNl bGYsIF9yaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50 IG9mIHRoaXMgZWxlbWVudCBhbmQgYGByaWdodGBgLgorIAorQEAgLTY2NSw3ICs2NjUsNyBAQCBj ZGVmIGNsYXNzIEZQRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICAgICAg YW5zLm9yZHAgPSAwCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgcEFkaWNUZW1w bGF0ZUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpIG5vZXhjZXB0OgorKyAgICBj ZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBsb25nIHNoaWZ0KToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIE11bHRpcGxpZXMgc2VsZiBieSBgXHBpXntzaGlmdH1gLgor IAorQEAgLTcxOCw3ICs3MTgsNyBAQCBjZGVmIGNsYXNzIEZQRWxlbWVudChwQWRpY1RlbXBsYXRl RWxlbWVudCk6CisgICAgICAgICAgICAgY2NvcHkoYW5zLnVuaXQsIHNlbGYudW5pdCwgYW5zLnBy aW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRl RWxlbWVudCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrICAgIGNkZWYg cEFkaWNUZW1wbGF0ZUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpOgorICAgICAg ICAgciIiIgorICAgICAgICAgRGl2aWRlcyBieSBgXHBpXntzaGlmdH1gLgorIAorQEAgLTk4Nyw3 ICs5ODcsNyBAQCBjZGVmIGNsYXNzIEZQRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6Cisg ICAgICAgICBjZGVmIEZQRWxlbWVudCByaWdodCA9IF9yaWdodAorICAgICAgICAgcmV0dXJuIGNj bXAoc2VsZi51bml0LCByaWdodC51bml0LCBzZWxmLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIEZh bHNlLCBGYWxzZSwgc2VsZi5wcmltZV9wb3cpCisgCistICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVs ZW1lbnQgbGlmdF90b19wcmVjaXNpb25fYyhzZWxmLCBsb25nIGFic3ByZWMpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IGxpZnRfdG9fcHJlY2lzaW9uX2Moc2VsZiwg bG9uZyBhYnNwcmVjKToKKyAgICAgICAgICIiIgorICAgICAgICAgTGlmdCB0aGlzIGVsZW1lbnQg dG8gYW5vdGhlciB3aXRoIHByZWNpc2lvbiBhdCBsZWFzdCBhYnNwcmVjLgorIAorQEAgLTExMzgs NyArMTEzOCw3IEBAIGNkZWYgY2xhc3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToK KyAgICAgICAgICAgICBtcHpfc2V0X3NpKGFucy52YWx1ZSwgc2VsZi5wcmltZV9wb3cucmFtX3By ZWNfY2FwKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBwQWRpY1RlbXBsYXRl RWxlbWVudCB1bml0X3BhcnQoRlBFbGVtZW50IHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBw QWRpY1RlbXBsYXRlRWxlbWVudCB1bml0X3BhcnQoRlBFbGVtZW50IHNlbGYpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB1bml0IHBhcnQgb2YgdGhpcyBlbGVtZW50LgorIAor QEAgLTEyMDUsNyArMTIwNSw3IEBAIGNkZWYgY2xhc3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYub3JkcAorIAorLSAg ICBjcGRlZiB2YWxfdW5pdChzZWxmLCBwPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YWxf dW5pdChzZWxmLCBwPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSAyLXR1 cGxlLCB0aGUgZmlyc3QgZWxlbWVudCBzZXQgdG8gdGhlIHZhbHVhdGlvbiBvZgorICAgICAgICAg dGhpcyBlbGVtZW50LCBhbmQgdGhlIHNlY29uZCB0byB0aGUgdW5pdCBwYXJ0LgorQEAgLTEyNzks NyArMTI3OSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9GUChSaW5nSG9tb21vcnBo aXNtKToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBSLmVsZW1lbnRfY2xhc3MoUiwgMCkKKyAgICAg ICAgIHNlbGYuX3NlY3Rpb24gPSBwQWRpY0NvbnZlcnRfRlBfWlooUikKKyAKKy0gICAgY2RlZiBk aWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9z bG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFu ZCBwaWNrbGluZy4KKyAKK0BAIC0xMjk5LDcgKzEyOTksNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29l cmNpb25fWlpfRlAoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ19zZWN0aW9u J10gPSBzZWxmLnNlY3Rpb24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVzIGNvZXJjaW9u LWludGVybmFsIHNlY3Rpb25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91 cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBI ZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTEzMTgsNyArMTMxOCw3IEBA IGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9GUChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAg ICAgIHNlbGYuX3NlY3Rpb24gPSBfc2xvdHNbJ19zZWN0aW9uJ10KKyAgICAgICAgIFJpbmdIb21v bW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xMzM2 LDcgKzEzMzYsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fWlpfRlAoUmluZ0hvbW9tb3Jw aGlzbSk6CisgICAgICAgICBhbnMub3JkcCA9IGNjb252X21wel90KGFucy51bml0LCAoPEludGVn ZXI+eCkudmFsdWUsIGFucy5wcmltZV9wb3cucmFtX3ByZWNfY2FwLCBGYWxzZSwgYW5zLnByaW1l X3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93 aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAg ICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21lIHByZWNp c2lvbiBjYXAgaXMgcGFzc2VkIGluIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBib3RoKS4KKyAK K0BAIC0xNDMwLDcgKzE0MzAsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GUF9aWihSaW5n TWFwKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgUmluZ01hcC5fX2luaXRfXyhzZWxm LCBIb20oUiwgWlosIFNldHMoKSkpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTE0OTEsNyArMTQ5MSw3IEBA IGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9RUV9GUChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAg ICAgIHNlbGYuX3plcm8gPSBSLmVsZW1lbnRfY2xhc3MoUiwgMCkKKyAgICAgICAgIHNlbGYuX3Nl Y3Rpb24gPSBwQWRpY0NvbnZlcnRfRlBfUVEoUikKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9z bG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4K KyAKK0BAIC0xNTE3LDcgKzE1MTcsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fUVFfRlAo UmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ19zZWN0aW9uJ10gPSBzZWxmLnNl Y3Rpb24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVzIGNvZXJjaW9uLWludGVybmFsIHNl Y3Rpb25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xv dHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNv cHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE1NDIsNyArMTU0Miw3IEBAIGNkZWYgY2xhc3Mg cEFkaWNDb2VyY2lvbl9RUV9GUChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3Nl Y3Rpb24gPSBfc2xvdHNbJ19zZWN0aW9uJ10KKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX3Vw ZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAg ICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xNTY0LDcgKzE1NjQsNyBA QCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fUVFfRlAoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAg ICAgICBhbnMub3JkcCA9IGNjb252X21wcV90KGFucy51bml0LCAoPFJhdGlvbmFsPngpLnZhbHVl LCBhbnMucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgRmFsc2UsIHNlbGYuX3plcm8ucHJpbWVfcG93 KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhf YXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxl bWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHNvbWUgcHJlY2lzaW9u IGNhcCBpcyBwYXNzZWQgaW4KKyAgICAgICAgIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBib3Ro KS4KK0BAIC0xNjQ3LDcgKzE2NDcsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GUF9RUShS aW5nTWFwKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmluZ01hcC5fX2luaXRfXyhzZWxmLCBI b20oUiwgUVEsIFNldHNXaXRoUGFydGlhbE1hcHMoKSkpCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgX3gpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTE2OTQs NyArMTY5NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X1FRX0ZQKE1vcnBoaXNtKToKKyAg ICAgICAgIE1vcnBoaXNtLl9faW5pdF9fKHNlbGYsIEhvbShRUSwgUiwgU2V0c1dpdGhQYXJ0aWFs TWFwcygpKSkKKyAgICAgICAgIHNlbGYuX3plcm8gPSBSLmVsZW1lbnRfY2xhc3MoUiwgMCkKKyAK Ky0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBk aWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZv ciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xNzEzLDcgKzE3MTMsNyBAQCBjZGVmIGNs YXNzIHBBZGljQ29udmVydF9RUV9GUChNb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ196ZXJv J10gPSBzZWxmLl96ZXJvCisgICAgICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3Vw ZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0 ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTczMSw3ICsxNzMxLDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfUVFfRlAoTW9ycGhpc20pOgorICAgICAgICAgc2VsZi5femVy byA9IF9zbG90c1snX3plcm8nXQorICAgICAgICAgTW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxm LCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAg ICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xNzUxLDcgKzE3NTEsNyBAQCBjZGVmIGNsYXNzIHBB ZGljQ29udmVydF9RUV9GUChNb3JwaGlzbSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigicCBkaXZpZGVzIHRoZSBkZW5vbWluYXRvciIpCisgICAgICAgICByZXR1cm4gYW5zCisgCist ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9 e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4 LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlv biBpcyB1c2VkIHdoZW4gc29tZSBwcmVjaXNpb24gY2FwIGlzIHBhc3NlZCBpbiAocmVsYXRpdmUg b3IgYWJzb2x1dGUgb3IgYm90aCkuCisgCitAQCAtMTgzMyw3ICsxODMzLDcgQEAgY2RlZiBjbGFz cyBwQWRpY0NvZXJjaW9uX0ZQX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAg ICBzZWxmLl96ZXJvID0gSygwKQorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHBBZGljQ29udmVy dF9GUF9mcmFjX2ZpZWxkKEssIFIpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpOgorICAg ICAgICAgciIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xODU4LDcgKzE4NTgsNyBA QCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fRlBfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNt KToKKyAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVu aXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBf Y2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17 fSk6CisgICAgICAgICByIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBz b21lIHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAgICAocmVsYXRpdmUgb3IgYWJz b2x1dGUgb3IgYm90aCkuCitAQCAtMTkyOSw3ICsxOTI5LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Nv ZXJjaW9uX0ZQX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLl9zZWN0aW9uCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xv dHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgor IAorQEAgLTE5NTgsNyArMTk1OCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9GUF9mcmFj X2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgX3Nsb3RzWydfc2VjdGlvbiddID0g c2VsZi5zZWN0aW9uKCkgIyB1c2UgbWV0aG9kIHNpbmNlIGl0IGNvcGllcyBjb2VyY2lvbi1pbnRl cm5hbCBzZWN0aW9ucy4KKyAgICAgICAgIHJldHVybiBfc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBk YXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRl X3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjAxNiw3ICsyMDE2LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfRlBfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBN b3JwaGlzbS5fX2luaXRfXyhzZWxmLCBIb20oSywgUiwgU2V0c1dpdGhQYXJ0aWFsTWFwcygpKSkK KyAgICAgICAgIHNlbGYuX3plcm8gPSBSKDApCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gp OgorICAgICAgICAgciIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0yMDQxLDcgKzIw NDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GUF9mcmFjX2ZpZWxkKE1vcnBoaXNtKToK KyAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQu X2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSk6 CisgICAgICAgICByIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21l IHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAgICAocmVsYXRpdmUgb3IgYWJzb2x1 dGUgb3IgYm90aCkuCitAQCAtMjA5OCw3ICsyMDk4LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZl cnRfRlBfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAgICAgICAgIGFucy51bml0Ll9j b2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAgcmV0dXJu IGFucworIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg SGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0yMTI3LDcgKzIxMjcsNyBA QCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GUF9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAg ICAgIF9zbG90c1snX3plcm8nXSA9IHNlbGYuX3plcm8KKyAgICAgICAgIHJldHVybiBfc2xvdHMK KyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZQX3RlbXBsYXRlX2hlYWRlci5weGkgYi9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGVfaGVhZGVyLnB4aQoraW5kZXggMTA4ZDgwNDI4 NTAuLmZkZTU5OGUwNWZkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZQX3Rl bXBsYXRlX2hlYWRlci5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GUF90ZW1wbGF0 ZV9oZWFkZXIucHhpCitAQCAtMzEsMTAgKzMxLDEwIEBAIGNkZWYgY2xhc3MgRlBFbGVtZW50KHBB ZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgY2RlZiBjZWxlbWVudCB1bml0CisgICAgIGNkZWYg bG9uZyBvcmRwCisgCistICAgIGNkZWYgRlBFbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4Y2VwdAor KyAgICBjZGVmIEZQRWxlbWVudCBfbmV3X2Moc2VsZikKKyAgICAgY2RlZiBpbnQgX25vcm1hbGl6 ZShzZWxmKSBleGNlcHQgLTEKKyAgICAgY2RlZiBpbnQgX3NldF9pbmZpbml0eShzZWxmKSBleGNl cHQgLTEKKy0gICAgY3BkZWYgdmFsX3VuaXQoc2VsZiwgcD0qKSBub2V4Y2VwdAorKyAgICBjcGRl ZiB2YWxfdW5pdChzZWxmLCBwPSopCisgCisgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX1paX0ZQ KFJpbmdIb21vbW9ycGhpc20pOgorICAgICBjZGVmIEZQRWxlbWVudCBfemVybworZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9sb2NhbF9nZW5lcmljX2VsZW1lbnQucHl4IGIvc3Jj L3NhZ2UvcmluZ3MvcGFkaWNzL2xvY2FsX2dlbmVyaWNfZWxlbWVudC5weXgKK2luZGV4IGY2M2Nj MTE0ZTk2Li5lMWY1YTdhMDRhMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9s b2NhbF9nZW5lcmljX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvbG9j YWxfZ2VuZXJpY19lbGVtZW50LnB5eAorQEAgLTMyLDcgKzMyLDcgQEAgY2RlZiBjbGFzcyBMb2Nh bEdlbmVyaWNFbGVtZW50KENvbW11dGF0aXZlUmluZ0VsZW1lbnQpOgorICAgICAjY3BkZWYgX2Fk ZF8oc2VsZiwgcmlnaHQpOgorICAgICAjICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAK Ky0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2 XyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBxdW90 aWVudCBvZiBgYHNlbGZgYCBieSBgYHJpZ2h0YGAuCisgCitAQCAtNDM1LDcgKzQzNSw3IEBAIGNk ZWYgY2xhc3MgTG9jYWxHZW5lcmljRWxlbWVudChDb21tdXRhdGl2ZVJpbmdFbGVtZW50KToKKyAg ICAgI2RlZiBfX3Bvd19fKHNlbGYsIHJpZ2h0KToKKyAgICAgIyAgICByYWlzZSBOb3RJbXBsZW1l bnRlZEVycm9yCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJucyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL21vcnBoaXNtLnB4ZCBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9tb3JwaGlzbS5weGQKK2luZGV4IGE5MDRiYTE0Y2EwLi5iNmFmZWRkMjM3 NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9tb3JwaGlzbS5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9tb3JwaGlzbS5weGQKK0BAIC03LDQgKzcsNCBAQCBjZGVm IGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9wYWRpY3MoUmluZ0hvbW9tb3JwaGlzbSk6Cisg ICAgIGNkZWYgbG9uZyBfcG93ZXIKKyAgICAgY2RlZiBsb25nIF9vcmRlcgorIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdAorKyAgICBjcGRlZiBFbGVtZW50IF9j YWxsXyhzZWxmLCB4KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9tb3JwaGlz bS5weXggYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvbW9ycGhpc20ucHl4CitpbmRleCBhNTBjOTJh MDZmOS4uYzgyMzhiZGM5ZmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvbW9y cGhpc20ucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvbW9ycGhpc20ucHl4CitAQCAt ODYsNyArODYsNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9wYWRpY3MoUmlu Z0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl9vcmRlciA9IHNlbGYuX2RlZ3JlZSAvIGRv bWFpbi5hYnNvbHV0ZV9mKCkuZ2NkKHNlbGYuX3Bvd2VyKQorICAgICAgICAgUmluZ0hvbW9tb3Jw aGlzbS5fX2luaXRfXyhzZWxmLCBIb20oZG9tYWluLCBkb21haW4pKQorIAorLSAgICBjZGVmIGRp Y3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Ns b3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5k IHBpY2tsaW5nLgorIAorQEAgLTEwNSw3ICsxMDUsNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0Vu ZG9tb3JwaGlzbV9wYWRpY3MoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzbG90c1snX29y ZGVyJ10gPSBzZWxmLl9vcmRlcgorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYg X3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IHNsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBk YXRlX3Nsb3RzKHNlbGYsIGRpY3Qgc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxw ZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE2Niw3ICsxNjYsNyBAQCBjZGVm IGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9wYWRpY3MoUmluZ0hvbW9tb3JwaGlzbSk6Cisg ICAgICAgICAgICAgcyA9ICJGcm9iXiVzIiAlIHNlbGYuX3Bvd2VyCisgICAgICAgICByZXR1cm4g cworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyAoc2VsZiwgeCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfIChzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAg VEVTVFM6OgorIAorQEAgLTMzMCw3ICszMzAsNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0VuZG9t b3JwaGlzbV9wYWRpY3MoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBjb2RvbWFpbiA9IHNl bGYuY29kb21haW4oKQorICAgICAgICAgcmV0dXJuIGhhc2goKGRvbWFpbiwgY29kb21haW4sICgn RnJvYicsIHNlbGYuX3Bvd2VyKSkpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdo dCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBp bnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wYXJlIGBgbGVmdGBgIGFuZCBgYHJp Z2h0YGAKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhf Q0FfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfQ0FfZWxl bWVudC5weGQKK2luZGV4IDJiY2IyMzdiZTc3Li43YWZlOTRiMWJmMyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9wWF9DQV9lbGVtZW50LnB4ZAorKysrIGIvc3Jj L3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0NBX2VsZW1lbnQucHhkCitAQCAtMTMsMTIg KzEzLDEyIEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQp OgorICAgICBjZGVmIGludCBfc2V0KHNlbGYsIFpaX3BYX2MqIHZhbHVlLCBsb25nIGFic3ByZWMp IGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBfc2V0X2Zyb21fbXBxX3BhcnQyKHNlbGYsIG1wcV90 IHgpIGV4Y2VwdCAtMQorIAorLSAgICBjcGRlZiBwQWRpY1pacFhDUkVsZW1lbnQgdG9fZnJhY3Rp b25fZmllbGQoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBwQWRpY1pacFhDQUVsZW1lbnQgX25l d19jKHNlbGYsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQKKy0gICAgY2RlZiBwQWRpY1pacFhDQUVs ZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2RlZiBwQWRpY1pa cFhDQUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY3BkZWYg cEFkaWNaWnBYQ0FFbGVtZW50IHVuaXRfcGFydChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf bnRsX3JlcF9hYnMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbnRsX1paX3BYIF9udGxfcmVw KHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIHBBZGljWlpwWENSRWxlbWVudCB0b19mcmFjdGlv bl9maWVsZChzZWxmKQorKyAgICBjZGVmIHBBZGljWlpwWENBRWxlbWVudCBfbmV3X2Moc2VsZiwg bG9uZyBhYnNwcmVjKQorKyAgICBjZGVmIHBBZGljWlpwWENBRWxlbWVudCBfbHNoaWZ0X2Moc2Vs ZiwgbG9uZyBuKQorKyAgICBjZGVmIHBBZGljWlpwWENBRWxlbWVudCBfcnNoaWZ0X2Moc2VsZiwg bG9uZyBuKQorKyAgICBjcGRlZiBwQWRpY1pacFhDQUVsZW1lbnQgdW5pdF9wYXJ0KHNlbGYpCisr ICAgIGNwZGVmIF9udGxfcmVwX2FicyhzZWxmKQorKyAgICBjcGRlZiBudGxfWlpfcFggX250bF9y ZXAoc2VsZikKKyAKKy0gICAgY3BkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IGxpZnRfdG9fcHJlY2lz aW9uKHNlbGYsIGFic3ByZWM9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgcEFkaWNaWnBYQ0FFbGVt ZW50IGxpZnRfdG9fcHJlY2lzaW9uKHNlbGYsIGFic3ByZWM9KikKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfQ0FfZWxlbWVudC5weXggYi9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfQ0FfZWxlbWVudC5weXgKK2luZGV4IDAyM2U1OGViYzA0 Li41OGY1NjcwYWEwNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19a Wl9wWF9DQV9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1pa X3BYX0NBX2VsZW1lbnQucHl4CitAQCAtODQ2LDcgKzg0Niw3IEBAIGNkZWYgY2xhc3MgcEFkaWNa WnBYQ0FFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICBzZWxmLl9zZXRfcHJlY19hYnMob3JkcCArIHJlbHByZWMpCisgCistICAgIGNkZWYgcEFk aWNaWnBYQ0FFbGVtZW50IF9uZXdfYyhzZWxmLCBsb25nIGFic3ByZWMpIG5vZXhjZXB0OgorKyAg ICBjZGVmIHBBZGljWlpwWENBRWxlbWVudCBfbmV3X2Moc2VsZiwgbG9uZyBhYnNwcmVjKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIG5ldyBlbGVtZW50IHdpdGggdGhlIHNhbWUg cGFyZW50IGFzIGBgc2VsZmBgIGFuZAorICAgICAgICAgYWJzb2x1dGUgcHJlY2lzaW9uIGBgYWJz cHJlY2BgLgorQEAgLTk0NCw3ICs5NDQsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENBRWxlbWVu dChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIH5zZWxm LnRvX2ZyYWN0aW9uX2ZpZWxkKCkKKyAKKy0gICAgY3BkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IHRv X2ZyYWN0aW9uX2ZpZWxkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwQWRpY1pacFhDUkVs ZW1lbnQgdG9fZnJhY3Rpb25fZmllbGQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybnMgYGBzZWxmYGAgY2FzdCBpbnRvIHRoZSBmcmFjdGlvbiBmaWVsZCBvZiBgYHNlbGYucGFy ZW50KClgYC4KKyAKK0BAIC05NzEsNyArOTcxLDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDQUVs ZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAgICAgYW5zLnVuaXQgPSBzZWxmLnZh bHVlCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgcEFkaWNaWnBYQ0FFbGVtZW50 IF9sc2hpZnRfYyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljWlpwWENB RWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAg TXVsdGlwbGllcyBgYHNlbGZgYCBieSB0aGUgdW5pZm9ybWl6ZXIgcmFpc2VkIHRvIHRoZSBwb3dl ciBgYG5gYC4gIElmCisgICAgICAgICBgYG5gYCBpcyBuZWdhdGl2ZSwgcmlnaHQgc2hpZnRzIGJ5 IGBgLW5gYC4KK0BAIC0xMDIyLDcgKzEwMjIsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENBRWxl bWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1cm4gYW5zCisgICAgICAg ICByZXR1cm4gc2VsZi5fcnNoaWZ0X2MoLW1wel9nZXRfc2koKDxJbnRlZ2VyPnNoaWZ0KS52YWx1 ZSkpCisgCistICAgIGNkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25n IG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljWlpwWENBRWxlbWVudCBfcnNoaWZ0X2Moc2Vs ZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlcyBgYHNlbGZgYCBieSB0 aGUgdW5pZm9ybWl6ZXIgcmFpc2VkIHRvIHRoZSBwb3dlciBgYG5gYC4gIElmCisgICAgICAgICBw YXJlbnQgaXMgbm90IGEgZmllbGQsIHRocm93cyBhd2F5IHRoZSBub24tcG9zaXRpdmUgcGFydCBv ZgorQEAgLTExMjAsNyArMTEyMCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBB ZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBhbnMKKyAgICAgICAgIHJldHVy biBzZWxmLl9yc2hpZnRfYyhtcHpfZ2V0X3NpKCg8SW50ZWdlcj5zaGlmdCkudmFsdWUpKQorIAor LSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYGAtc2VsZmBgLgorIAorQEAgLTEzODYs NyArMTM4Niw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGljWlpwWEVsZW1l bnQpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNw ZGVmIF9hZGRfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYs IF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGVzIHRoZSBzdW0gb2YgYGBz ZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0xNDI0LDcgKzE0MjQsNyBAQCBjZGVmIGNsYXNz IHBBZGljWlpwWENBRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICBaWl9w WF9hZGQoYW5zLnZhbHVlLCB0bXBQLCByaWdodC52YWx1ZSkKKyAgICAgICAgIHJldHVybiBhbnMK KyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3N1Yl8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyB0aGUg ZGlmZmVyZW5jZSBvZiBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTE0NjUsNyArMTQ2 NSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgor ICAgICAgICAgICAgIFpaX3BYX3N1YihhbnMudmFsdWUsIHRtcFAsIHJpZ2h0LnZhbHVlKQorICAg ICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm5zIHRoZSBwcm9kdWN0IG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitA QCAtMTUxOCw3ICsxNTE4LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDQUVsZW1lbnQocEFkaWNa WnBYRWxlbWVudCk6CisgICAgICAgICAgICAgWlpfcFhfTXVsTW9kX3ByZShhbnMudmFsdWUsIHNl bGZfYWRhcHRlZCwgcmlnaHRfYWRhcHRlZCwgc2VsZi5wcmltZV9wb3cuZ2V0X21vZHVsdXNfY2Fw ZGl2KGFuc19hYnNwcmVjKVswXSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYg X2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIHF1b3RpZW50IG9mIGBgc2Vs ZmBgIGJ5IGBgcmlnaHRgYC4KKyAKK0BAIC0xNjUxLDcgKzE2NTEsNyBAQCBjZGVmIGNsYXNzIHBB ZGljWlpwWENBRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAg IGFucyA9IChzZWxmLnZhbHVhdGlvbl9jKCkgPj0gYXByZWMpCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNwZGVmIG50bF9aWl9wWCBfbnRsX3JlcChzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgbnRsX1paX3BYIF9udGxfcmVwKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gYW4gYGBudGxfWlpfcFhgYCB0aGF0IGhvbGRzIHRoZSB2YWx1ZSBvZiBgYHNlbGZgYC4K KyAKK0BAIC0xNjczLDcgKzE2NzMsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENBRWxlbWVudChw QWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgIGFucy54ID0gc2VsZi52YWx1ZQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfbnRsX3JlcF9hYnMoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9udGxfcmVwX2FicyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIGEgcGFpciBgYChmLCAwKWBgIHdoZXJlIGBgZiA9IHNlbGYuX250bF9yZXAoKWBgLgorIAor QEAgLTE3OTIsNyArMTc5Miw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGlj WlpwWEVsZW1lbnQpOgorICAgICAgICAgIyBTaG91bGQgYmUgc3BlZCB1cCBsYXRlcgorICAgICAg ICAgcmV0dXJuIChzZWxmIC0gcmlnaHQpLmlzX3plcm8oYWJzcHJlYykKKyAKKy0gICAgY3BkZWYg cEFkaWNaWnBYQ0FFbGVtZW50IGxpZnRfdG9fcHJlY2lzaW9uKHNlbGYsIGFic3ByZWM9Tm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGljWlpwWENBRWxlbWVudCBsaWZ0X3RvX3ByZWNpc2lv bihzZWxmLCBhYnNwcmVjPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEg YGBwQWRpY1pacFhDQUVsZW1lbnRgYCBjb25ncnVlbnQgdG8gYGBzZWxmYGAgYnV0IHdpdGgKKyAg ICAgICAgIGFic29sdXRlIHByZWNpc2lvbiBhdCBsZWFzdCBgYGFic3ByZWNgYC4KK0BAIC0yMjcx LDcgKzIyNzEsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENBRWxlbWVudChwQWRpY1pacFhFbGVt ZW50KToKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5h YnNwcmVjCisgCistICAgIGNwZGVmIHBBZGljWlpwWENBRWxlbWVudCB1bml0X3BhcnQoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGljWlpwWENBRWxlbWVudCB1bml0X3BhcnQoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIHVuaXQgcGFydCBvZiBgYHNlbGZg YCwgaWUgYGBzZWxmIC8gdW5pZm9ybWl6ZXJeKHNlbGYudmFsdWF0aW9uKCkpYGAKKyAKK0BAIC0y Mjk0LDcgKzIyOTQsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENBRWxlbWVudChwQWRpY1pacFhF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3JzaGlmdF9jKHNl bGYudmFsdWF0aW9uX2MoKSkKKyAKKy0gICAgY2RlZiBleHRfcF9saXN0KHNlbGYsIGJpbnQgcG9z KSBub2V4Y2VwdDoKKysgICAgY2RlZiBleHRfcF9saXN0KHNlbGYsIGJpbnQgcG9zKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgaW50ZWdlcnMgKGluIHRoZSBFaXNl bnN0ZWluIGNhc2UpIG9yIGEgbGlzdAorICAgICAgICAgb2YgbGlzdHMgb2YgaW50ZWdlcnMgKGlu IHRoZSB1bnJhbWlmaWVkIGNhc2UpLiAgYGBzZWxmYGAgY2FuCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0NSX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3BhZGljX1paX3BYX0NSX2VsZW1lbnQucHhkCitpbmRleCA0ZDQ1ODUwN2VlMC4u OTc0NGIyYTNmNjIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpf cFhfQ1JfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9w WF9DUl9lbGVtZW50LnB4ZAorQEAgLTE5LDE0ICsxOSwxNCBAQCBjZGVmIGNsYXNzIHBBZGljWlpw WENSRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgY2RlZiBpbnQgX3NldF9mcm9tX1pa X3BYX3BhcnQxKHNlbGYsIFpaX3BYX2MqIHBvbHkpIGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBf c2V0X2Zyb21fWlpfcFhfcGFydDIoc2VsZiwgWlpfcFhfYyogcG9seSkgZXhjZXB0IC0xCisgCist ICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IF9uZXdfYyhzZWxmLCBsb25nIHJlbHByZWMpIG5v ZXhjZXB0CisrICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IF9uZXdfYyhzZWxmLCBsb25nIHJl bHByZWMpCisgICAgIGNkZWYgaW50IF9pbnRlcm5hbF9sc2hpZnQoc2VsZiwgbG9uZyBzaGlmdCkg ZXhjZXB0IC0xCisgICAgIGNkZWYgaW50IF9ub3JtYWxpemUoc2VsZikgZXhjZXB0IC0xCistICAg IGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0 CistICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25nIG4pIG5v ZXhjZXB0CistICAgIGNwZGVmIHBBZGljWlpwWENSRWxlbWVudCB1bml0X3BhcnQoc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgbnRsX1paX3BYIF9udGxfcmVwX3Vubm9ybWFsaXplZChzZWxmKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfbnRsX3JlcF9hYnMoc2VsZikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgbnRsX1paX3BYIF9udGxfcmVwKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgcEFkaWNaWnBY Q1JFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBsb25nIG4pCisrICAgIGNkZWYgcEFkaWNaWnBYQ1JF bGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25nIG4pCisrICAgIGNwZGVmIHBBZGljWlpwWENSRWxl bWVudCB1bml0X3BhcnQoc2VsZikKKysgICAgY3BkZWYgbnRsX1paX3BYIF9udGxfcmVwX3Vubm9y bWFsaXplZChzZWxmKQorKyAgICBjcGRlZiBfbnRsX3JlcF9hYnMoc2VsZikKKysgICAgY3BkZWYg bnRsX1paX3BYIF9udGxfcmVwKHNlbGYpCisgCistICAgIGNwZGVmIHBBZGljWlpwWENSRWxlbWVu dCBsaWZ0X3RvX3ByZWNpc2lvbihzZWxmLCBhYnNwcmVjPSopIG5vZXhjZXB0CisrICAgIGNwZGVm IHBBZGljWlpwWENSRWxlbWVudCBsaWZ0X3RvX3ByZWNpc2lvbihzZWxmLCBhYnNwcmVjPSopCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0NSX2VsZW1lbnQu cHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0NSX2VsZW1lbnQucHl4Citp bmRleCA5ZGUxYTM5YjhkZS4uZWM4NmIwMzUzNWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvcGFkaWNfWlpfcFhfQ1JfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wYWRpY19aWl9wWF9DUl9lbGVtZW50LnB5eAorQEAgLTE0NjksNyArMTQ2OSw3IEBA IGNkZWYgY2xhc3MgcEFkaWNaWnBYQ1JFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAg ICAgICAgICAgICAgICAgc2hpZnQgPSBzaGlmdCA+PiAxCisgICAgICAgICAgICAgICAgICAgICBp ICs9IDEKKyAKKy0gICAgY2RlZiBwQWRpY1pacFhDUkVsZW1lbnQgX25ld19jKHNlbGYsIGxvbmcg cmVscHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IF9uZXdfYyhz ZWxmLCBsb25nIHJlbHByZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBuZXcg ZWxlbWVudCB3aXRoIHRoZSBzYW1lIHBhcmVudCBhcyBgYHNlbGZgYCBhbmQKKyAgICAgICAgIHJl bGF0aXZlIHByZWNpc2lvbiBgYHJlbHByZWNgYAorQEAgLTE1OTQsNyArMTU5NCw3IEBAIGNkZWYg Y2xhc3MgcEFkaWNaWnBYQ1JFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVt ZW50IF9sc2hpZnRfYyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljWlpw WENSRWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAg ICAgTXVsdGlwbGllcyBgYHNlbGZgYCBieSB0aGUgdW5pZm9ybWl6ZXIgcmFpc2VkIHRvIHRoZSBw b3dlciBgYG5gYC4gIElmCisgICAgICAgICBgYG5gYCBpcyBuZWdhdGl2ZSwgcmlnaHQgc2hpZnRz IGJ5IGBgLW5gYC4KK0BAIC0xNjYxLDcgKzE2NjEsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENS RWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGFucwor ICAgICAgICAgcmV0dXJuIHNlbGYuX2xzaGlmdF9jKG1wel9nZXRfc2koKDxJbnRlZ2VyPnNoaWZ0 KS52YWx1ZSkpCisgCistICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IF9yc2hpZnRfYyhzZWxm LCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljWlpwWENSRWxlbWVudCBfcnNoaWZ0 X2Moc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlcyBzZWxmIGJ5 IHRoZSB1bmlmb3JtaXplciByYWlzZWQgdG8gdGhlIHBvd2VyIGBgbmBgLiAgSWYKKyAgICAgICAg IHBhcmVudCBpcyBub3QgYSBmaWVsZCwgdGhyb3dzIGF3YXkgdGhlIG5vbi1wb3NpdGl2ZSBwYXJ0 IG9mCitAQCAtMTc2NCw3ICsxNzY0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDUkVsZW1lbnQo cEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHJldHVybiBhbnMKKyAgICAgICAg IHJldHVybiBzZWxmLl9yc2hpZnRfYyhtcHpfZ2V0X3NpKCg8SW50ZWdlcj5zaGlmdCkudmFsdWUp KQorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18o c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIE5lZ2F0aW9uCisgCitAQCAtMjA0NCw3ICsy MDQ0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6 CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYg X2FkZF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX3Jp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgc3VtIG9mIGBgc2VsZmBg IGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtMjE2MSw3ICsyMTYxLDcgQEAgY2RlZiBjbGFzcyBwQWRp Y1pacFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIGFucy5y ZWxwcmVjID0gLWFucy5yZWxwcmVjCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVm IF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdHdv IGVsZW1lbnRzCisgCitAQCAtMjE4Nyw3ICsyMTg3LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhD UkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAjIEZvciBub3csIGEgc2ltcGxl IGltcGxlbWVudGF0aW9uCisgICAgICAgICByZXR1cm4gc2VsZiArICgtcmlnaHQpCisgCistICAg IGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNl bGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBv ZiB0d28gZWxlbWVudHMKKyAKK0BAIC0yMjQwLDcgKzIyNDAsNyBAQCBjZGVmIGNsYXNzIHBBZGlj WlpwWENSRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgdHdvIGVsZW1lbnRzCisgCitAQCAtMjM4NCw3 ICsyMzg0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVu dCk6CisgICAgICAgICAgICAgICAgICAgICBhbnMgPSAoc2VsZi5vcmRwID49IGFwcmVjKQorICAg ICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBudGxfWlpfcFggX250bF9yZXBfdW5ub3Jt YWxpemVkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBudGxfWlpfcFggX250bF9yZXBfdW5u b3JtYWxpemVkKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gYGBudGxf WlpfcFhgYCBob2xkaW5nIHRoZSBjdXJyZW50IHVuaXQgcGFydCBvZiB0aGlzIGVsZW1lbnQKKyAK K0BAIC0yNDEzLDcgKzI0MTMsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENSRWxlbWVudChwQWRp Y1pacFhFbGVtZW50KToKKyAgICAgICAgIGFucy54ID0gc2VsZi51bml0CisgICAgICAgICByZXR1 cm4gYW5zCisgCistICAgIGNwZGVmIG50bF9aWl9wWCBfbnRsX3JlcChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgbnRsX1paX3BYIF9udGxfcmVwKHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gYW4gYGBudGxfWlpfcFhgYCB0aGF0IGhvbGRzIHRoZSB1bml0IHBhcnQgb2Yg dGhpcyBlbGVtZW50CisgCitAQCAtMjQzNCw3ICsyNDM0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pa cFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICBzZWxmLl9ub3JtYWxpemUo KQorICAgICAgICAgcmV0dXJuIHNlbGYuX250bF9yZXBfdW5ub3JtYWxpemVkKCkKKyAKKy0gICAg Y3BkZWYgX250bF9yZXBfYWJzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbnRsX3JlcF9h YnMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIHBhaXIgYGAoZiwgaylg YCB3aGVyZSBgYGZgYCBpcyBhbiBgYG50bF9aWl9wWGBgIGFuZCBgYGtgYCBpcyBhCisgICAgICAg ICBub24tcG9zaXRpdmUgaW50ZWdlciBzdWNoIHRoYXQgYGBzZWxmID0gZihzZWxmLnBhcmVudC5n ZW4oKSkqcF5rYGAKK0BAIC0yNjIwLDcgKzI2MjAsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENS RWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAjICAgICAgICAiIiIKKyAjICAgICAgICByYWlz ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNwZGVmIHBBZGljWlpwWENSRWxlbWVudCBs aWZ0X3RvX3ByZWNpc2lvbihzZWxmLCBhYnNwcmVjPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBwQWRpY1pacFhDUkVsZW1lbnQgbGlmdF90b19wcmVjaXNpb24oc2VsZiwgYWJzcHJlYz1Ob25l KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgYGBwQWRpY1pacFhDUkVsZW1lbnRg YCBjb25ncnVlbnQgdG8gdGhpcyBlbGVtZW50IGJ1dCB3aXRoCisgICAgICAgICBhYnNvbHV0ZSBw cmVjaXNpb24gYXQgbGVhc3QgYGBhYnNwcmVjYGAuCitAQCAtMzE2OCw3ICszMTY4LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY1pacFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICBz ZWxmLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHNlbGYub3JkcAorIAorLSAgICBjcGRl ZiBwQWRpY1pacFhDUkVsZW1lbnQgdW5pdF9wYXJ0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBwQWRpY1pacFhDUkVsZW1lbnQgdW5pdF9wYXJ0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHVuaXQgcGFydCBvZiB0aGlzIGVsZW1lbnQsIGllIGBgc2VsZiAvIHVu aWZvcm1pemVyXihzZWxmLnZhbHVhdGlvbigpKWBgLgorIAorQEAgLTMyMDYsNyArMzIwNiw3IEBA IGNkZWYgY2xhc3MgcEFkaWNaWnBYQ1JFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAg ICAgICAgIGFucy51bml0ID0gc2VsZi51bml0CisgICAgICAgICByZXR1cm4gYW5zCisgCistICAg IGNkZWYgZXh0X3BfbGlzdChzZWxmLCBiaW50IHBvcykgbm9leGNlcHQ6CisrICAgIGNkZWYgZXh0 X3BfbGlzdChzZWxmLCBiaW50IHBvcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBh IGxpc3Qgb2YgaW50ZWdlcnMgKGluIHRoZSBFaXNlbnN0ZWluIGNhc2UpIG9yIGEgbGlzdAorICAg ICAgICAgb2YgbGlzdHMgb2YgaW50ZWdlcnMgKGluIHRoZSB1bnJhbWlmaWVkIGNhc2UpLiAgYGBz ZWxmYGAgY2FuIGJlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1pa X3BYX0ZNX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0ZN X2VsZW1lbnQucHhkCitpbmRleCAzMzc1NDU4MWU0OC4uOTA2MjYwODk0NDIgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfRk1fZWxlbWVudC5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9wWF9GTV9lbGVtZW50LnB4ZAorQEAgLTQs OCArNCw4IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudCBjaW1wb3J0IFJpbmdFbGVtZW50 LCBNb2R1bGVFbGVtZW50CisgCisgY2RlZiBjbGFzcyBwQWRpY1pacFhGTUVsZW1lbnQocEFkaWNa WnBYRWxlbWVudCk6CisgICAgIGNkZWYgWlpfcFhfYyB2YWx1ZQorLSAgICBjZGVmIHBBZGljWlpw WEZNRWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBwQWRpY1pacFhGTUVs ZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2RlZiBwQWRpY1pa cFhGTUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKysgICAgY2RlZiBw QWRpY1pacFhGTUVsZW1lbnQgX25ld19jKHNlbGYpCisrICAgIGNkZWYgcEFkaWNaWnBYRk1FbGVt ZW50IF9sc2hpZnRfYyhzZWxmLCBsb25nIG4pCisrICAgIGNkZWYgcEFkaWNaWnBYRk1FbGVtZW50 IF9yc2hpZnRfYyhzZWxmLCBsb25nIG4pCisgCistICAgIGNwZGVmIHBBZGljWlpwWEZNRWxlbWVu dCB1bml0X3BhcnQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgcEFkaWNaWnBYRk1FbGVtZW50 IHVuaXRfcGFydChzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRp Y19aWl9wWF9GTV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9w WF9GTV9lbGVtZW50LnB5eAoraW5kZXggMDE1Mzk0MjFkZDcuLjQ0ZDU0OTg0N2E5IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0ZNX2VsZW1lbnQucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfRk1fZWxlbWVudC5weXgKK0BA IC00MTksNyArNDE5LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhGTUVsZW1lbnQocEFkaWNaWnBY RWxlbWVudCk6CisgICAgICAgICBob2xkZXIueCA9IHNlbGYudmFsdWUKKyAgICAgICAgIHJldHVy biBtYWtlX1pacFhGTUVsZW1lbnQsIChzZWxmLnBhcmVudCgpLCBob2xkZXIpCisgCistICAgIGNk ZWYgcEFkaWNaWnBYRk1FbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBw QWRpY1pacFhGTUVsZW1lbnQgX25ld19jKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gYSBuZXcgZWxlbWVudCB3aXRoIHRoZSBzYW1lIHBhcmVudCBhcyBgYHNlbGZgYC4KKyAK K0BAIC00MzgsNyArNDM4LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhGTUVsZW1lbnQocEFkaWNa WnBYRWxlbWVudCk6CisgICAgICAgICBhbnMucHJpbWVfcG93ID0gc2VsZi5wcmltZV9wb3cKKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBp bnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBv cCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEZpcnN0IGNvbXBhcmUgdmFsdWF0aW9ucywgdGhl biBjb21wYXJlIHRoZSB2YWx1ZXMuCisgCitAQCAtNTA4LDcgKzUwOCw3IEBAIGNkZWYgY2xhc3Mg cEFkaWNaWnBYRk1FbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgc2lnX29mZigp CisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgcEFkaWNaWnBYRk1FbGVtZW50IF9s c2hpZnRfYyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljWlpwWEZNRWxl bWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVs dGlwbHkgYGBzZWxmYGAgYnkgdGhlIHVuaWZvcm1pemVyIHJhaXNlZCB0byB0aGUgcG93ZXIgYGBu YGAuCisgCitAQCAtNTY5LDcgKzU2OSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYRk1FbGVtZW50 KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBhbnMKKyAgICAgICAgIHJl dHVybiBzZWxmLl9sc2hpZnRfYyhtcHpfZ2V0X3NpKCg8SW50ZWdlcj5zaGlmdCkudmFsdWUpKQor IAorLSAgICBjZGVmIHBBZGljWlpwWEZNRWxlbWVudCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBuKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1pacFhGTUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxv bmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIERpdmlkZSBgYHNlbGZgYCBieSB0aGUgdW5p Zm9ybWl6ZXIgcmFpc2VkIHRvIHRoZSBwb3dlciBgYG5gYC4KKyAKK0BAIC02NjAsNyArNjYwLDcg QEAgY2RlZiBjbGFzcyBwQWRpY1pacFhGTUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAg ICAgICAgICAgcmV0dXJuIGFucworICAgICAgICAgcmV0dXJuIHNlbGYuX3JzaGlmdF9jKG1wel9n ZXRfc2koKDxJbnRlZ2VyPnNoaWZ0KS52YWx1ZSkpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJucyBgYC1zZWxmYGAuCisgCitAQCAtNzUxLDcgKzc1MSw3IEBAIGNkZWYgY2xhc3Mg cEFkaWNaWnBYRk1FbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdo dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIGBgc2VsZmBgICsgYGByaWdodGBgLgorIAorQEAgLTc3MCw3ICs3 NzAsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWEZNRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToK KyAgICAgICAgIFpaX3BYX2FkZChhbnMudmFsdWUsIHNlbGYudmFsdWUsICg8cEFkaWNaWnBYRk1F bGVtZW50PnJpZ2h0KS52YWx1ZSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYg X211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiBgYHNlbGZg YCBhbmQgYGByaWdodGBgLgorIAorQEAgLTc5NCw3ICs3OTQsNyBAQCBjZGVmIGNsYXNzIHBBZGlj WlpwWEZNRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgIFpaX3BYX011bE1vZF9w cmUoYW5zLnZhbHVlLCBzZWxmLnZhbHVlLCAoPHBBZGljWlpwWEZNRWxlbWVudD5yaWdodCkudmFs dWUsIHNlbGYucHJpbWVfcG93LmdldF90b3BfbW9kdWx1cygpWzBdKQorICAgICAgICAgcmV0dXJu IGFucworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBkaWZmZXJlbmNlIG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtODE3LDcgKzgx Nyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYRk1FbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgor ICAgICAgICAgWlpfcFhfc3ViKGFucy52YWx1ZSwgc2VsZi52YWx1ZSwgKDxwQWRpY1pacFhGTUVs ZW1lbnQ+cmlnaHQpLnZhbHVlKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBf ZGl2XyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBfcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBxdW90aWVudCBvZiBgYHNl bGZgYCBieSBgYHJpZ2h0YGAuCisgCitAQCAtMTYwMSw3ICsxNjAxLDcgQEAgY2RlZiBjbGFzcyBw QWRpY1pacFhGTUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICBtcHpfc2V0X3Vp KGFucy52YWx1ZSwgc2VsZi5wcmltZV9wb3cucmFtX3ByZWNfY2FwIC0gc2VsZi52YWx1YXRpb25f YygpKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBwQWRpY1pacFhGTUVsZW1l bnQgdW5pdF9wYXJ0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwQWRpY1pacFhGTUVsZW1l bnQgdW5pdF9wYXJ0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHVu aXQgcGFydCBvZiBgYHNlbGZgYCwgaWUKKyAgICAgICAgIGBgc2VsZiAvIHVuaWZvcm1pemVyXihz ZWxmLnZhbHVhdGlvbigpKWBgCitAQCAtMTY3Myw3ICsxNjczLDcgQEAgY2RlZiBjbGFzcyBwQWRp Y1pacFhGTUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4ICsgdmFsdWF0aW9uICogc2VsZi5wcmltZV9wb3cu ZQorIAorLSAgICBjZGVmIGV4dF9wX2xpc3Qoc2VsZiwgYmludCBwb3MpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGV4dF9wX2xpc3Qoc2VsZiwgYmludCBwb3MpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIGEgbGlzdCBnaXZpbmcgYSBzZXJpZXMgcmVwcmVzZW50YXRpb24gb2YgYGBzZWxm YGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX2Vs ZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX2VsZW1lbnQucHl4 CitpbmRleCBhNTU2MDgyYTlkZi4uYjg4YmQ1MDUzYmYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wYWRpY19aWl9wWF9lbGVtZW50LnB5eAorQEAgLTIyOCw3ICsyMjgsNyBAQCBjZGVm IGNsYXNzIHBBZGljWlpwWEVsZW1lbnQocEFkaWNFeHRFbGVtZW50KToKKyAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29udGV4dCBtdXN0IGJlIGEgcG93ZXIg b2YgdGhlIGFwcHJvcHJpYXRlIHByaW1lIikKKyAKKy0gICAgY2RlZiBleHRfcF9saXN0X3ByZWNz KHNlbGYsIGJpbnQgcG9zLCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGV4dF9wX2xp c3RfcHJlY3Moc2VsZiwgYmludCBwb3MsIGxvbmcgcHJlYyk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybnMgYSBsaXN0IGdpdmluZyBhIHNlcmllcyByZXByZXNlbnRhdGlvbiBvZiBgYHNl bGZgYC4KKyAKK0BAIC02MjMsNyArNjIzLDcgQEAgZGVmIF90ZXN0X3ByZXByb2Nlc3NfbGlzdChS LCBMKToKKyAgICAgcmV0dXJuIHByZXByb2Nlc3NfbGlzdChSKDApLCBMKQorIAorIAorLWNkZWYg cHJlcHJvY2Vzc19saXN0KHBBZGljWlpwWEVsZW1lbnQgZWx0LCBMKSBub2V4Y2VwdDoKKytjZGVm IHByZXByb2Nlc3NfbGlzdChwQWRpY1pacFhFbGVtZW50IGVsdCwgTCk6CisgICAgICIiIgorICAg ICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIDpmdW5jOmBfdGVzdF9wcmVwcm9jZXNzX2xpc3Rg LgorICAgICAiIiIKK0BAIC03MzgsNyArNzM4LDcgQEAgZGVmIF9maW5kX3ZhbF9hcHJlY190ZXN0 KFIsIEwpOgorICAgICAiIiIKKyAgICAgcmV0dXJuIGZpbmRfdmFsX2FwcmVjKFIucHJpbWVfcG93 LCBMKQorIAorLWNkZWYgZmluZF92YWxfYXByZWMoUG93Q29tcHV0ZXJfZXh0IHBwLCBMKSBub2V4 Y2VwdDoKKytjZGVmIGZpbmRfdmFsX2FwcmVjKFBvd0NvbXB1dGVyX2V4dCBwcCwgTCk6CisgICAg IHIiIiIKKyAgICAgR2l2ZW4gYSBsaXN0IGBgTGBgLCBmaW5kcyB0aGUgbWluaW11bSB2YWx1YXRp b24sIG1pbmltdW0gYWJzb2x1dGUKKyAgICAgcHJlY2lzaW9uIGFuZCBtaW5pbXVtIGNvbW1vbiB0 eXBlIG9mIHRoZSBlbGVtZW50cy4KK0BAIC04NDMsNyArODQzLDcgQEAgZGVmIF90ZXN0X2dldF92 YWxfcHJlYyhSLCBhKToKKyAgICAgIiIiCisgICAgIHJldHVybiBnZXRfdmFsX3ByZWMoUi5wcmlt ZV9wb3csIGEpCisgCistY2RlZiBnZXRfdmFsX3ByZWMoUG93Q29tcHV0ZXJfZXh0IHBwLCBhKSBu b2V4Y2VwdDoKKytjZGVmIGdldF92YWxfcHJlYyhQb3dDb21wdXRlcl9leHQgcHAsIGEpOgorICAg ICByIiIiCisgICAgIFJldHVybiB2YWx1YXRpb24sIGFic29sdXRlIHByZWNpc2lvbiBhbmQgdHlw ZSBvZiBhbiBpbnB1dCBlbGVtZW50LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9wYWRpY19jYXBwZWRfYWJzb2x1dGVfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvcGFkaWNfY2FwcGVkX2Fic29sdXRlX2VsZW1lbnQucHhkCitpbmRleCBiODBiNjU5M2Jm Ni4uNDhjODUwMGE2NzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNf Y2FwcGVkX2Fic29sdXRlX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cGFkaWNfY2FwcGVkX2Fic29sdXRlX2VsZW1lbnQucHhkCitAQCAtNiw4ICs2LDggQEAgY3R5cGVk ZWYgbXB6X3QgY2VsZW1lbnQKKyBpbmNsdWRlICJDQV90ZW1wbGF0ZV9oZWFkZXIucHhpIgorIAor IGNkZWYgY2xhc3MgcEFkaWNDYXBwZWRBYnNvbHV0ZUVsZW1lbnQoQ0FFbGVtZW50KToKKy0gICAg Y2RlZiBsaWZ0X2Moc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNl bGYpIG5vZXhjZXB0CisrICAgIGNkZWYgbGlmdF9jKHNlbGYpCisrICAgIGNkZWYgcGFyaV9nZW4g X3RvX2dlbihzZWxmKQorIAorIGZyb20gc2FnZS5yaW5ncy5wYWRpY3MucG93X2NvbXB1dGVyIGNp bXBvcnQgUG93Q29tcHV0ZXJfYmFzZQorIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfKFBvd0NvbXB1 dGVyX2Jhc2UpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBw ZWRfYWJzb2x1dGVfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2Fw cGVkX2Fic29sdXRlX2VsZW1lbnQucHl4CitpbmRleCBkNGY3NmYwOGVmZS4uZDIxYjJjMThhY2Ig MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX2Fic29sdXRl X2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX2Fi c29sdXRlX2VsZW1lbnQucHl4CitAQCAtOTcsNyArOTcsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ2Fw cGVkQWJzb2x1dGVFbGVtZW50KENBRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLmxpZnRfYygpCisgCistICAgIGNkZWYgbGlmdF9jKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGxpZnRfYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW1wbGVtZW50 YXRpb24gb2YgbGlmdC4KKyAKK0BAIC0xMjQsNyArMTI0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Nh cHBlZEFic29sdXRlRWxlbWVudChDQUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gc2VsZi5fdG9fZ2VuKCkKKyAKKy0gICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIENvbnZlcnRzIHRoaXMgZWxlbWVudCB0byBhbiBlcXVpdmFsZW50IHBhcmkg ZWxlbWVudC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2Fw cGVkX3JlbGF0aXZlX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2Nh cHBlZF9yZWxhdGl2ZV9lbGVtZW50LnB4ZAoraW5kZXggNWM5MjliZTIyNmQuLjJjZjZkNTI3NmY1 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2NhcHBlZF9yZWxhdGl2 ZV9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2NhcHBlZF9y ZWxhdGl2ZV9lbGVtZW50LnB4ZAorQEAgLTUsOCArNSw4IEBAIGN0eXBlZGVmIG1wel90IGNlbGVt ZW50CisgaW5jbHVkZSAiQ1JfdGVtcGxhdGVfaGVhZGVyLnB4aSIKKyAKKyBjZGVmIGNsYXNzIHBB ZGljQ2FwcGVkUmVsYXRpdmVFbGVtZW50KENSRWxlbWVudCk6CistICAgIGNkZWYgbGlmdF9jKHNl bGYpIG5vZXhjZXB0CistICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKSBub2V4Y2VwdAor KyAgICBjZGVmIGxpZnRfYyhzZWxmKQorKyAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZikK KyAKKyBmcm9tIHNhZ2UucmluZ3MucGFkaWNzLnBvd19jb21wdXRlciBjaW1wb3J0IFBvd0NvbXB1 dGVyX2Jhc2UKKyBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyXyhQb3dDb21wdXRlcl9iYXNlKToKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX3JlbGF0aXZlX2Vs ZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2NhcHBlZF9yZWxhdGl2ZV9l bGVtZW50LnB5eAoraW5kZXggZTJlNjUyNzk4ZmUuLjcwMWM5NTc1NDE3IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2NhcHBlZF9yZWxhdGl2ZV9lbGVtZW50LnB5eAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2NhcHBlZF9yZWxhdGl2ZV9lbGVtZW50 LnB5eAorQEAgLTE2MCw3ICsxNjAsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ2FwcGVkUmVsYXRpdmVF bGVtZW50KENSRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxp ZnRfYygpCisgCistICAgIGNkZWYgbGlmdF9jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxp ZnRfYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgbGlm dC4KKyAKK0BAIC0yMTAsNyArMjEwLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NhcHBlZFJlbGF0aXZl RWxlbWVudChDUkVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5f dG9fZ2VuKCkKKyAKKy0gICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IENvbnZlcnQgdGhpcyBlbGVtZW50IHRvIGFuIGVxdWl2YWxlbnQgcGFyaSBlbGVtZW50LgorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19leHRfZWxlbWVudC5weGQg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZXh0X2VsZW1lbnQucHhkCitpbmRleCBlMjY3 ZjAxMjljNy4uZDhlMmNhMGE1YTAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cGFkaWNfZXh0X2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNf ZXh0X2VsZW1lbnQucHhkCitAQCAtMzIsNiArMzIsNiBAQCBjZGVmIGNsYXNzIHBBZGljRXh0RWxl bWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToKKyAgICAgY2RlZiBsb25nIF9jaGVja19aWl9wQ29u dGV4dChzZWxmLCBudGxfWlpfcENvbnRleHRfY2xhc3MgY3R4KSBleGNlcHQgLTEKKyAgICAgY2Rl ZiBsb25nIF9jaGVja19aWl9wRUNvbnRleHQoc2VsZiwgbnRsX1paX3BFQ29udGV4dF9jbGFzcyBj dHgpIGV4Y2VwdCAtMQorIAorLSAgICBjZGVmIGV4dF9wX2xpc3Qoc2VsZiwgYmludCBwb3MpIG5v ZXhjZXB0CistICAgIGNkZWYgZXh0X3BfbGlzdF9wcmVjcyhzZWxmLCBiaW50IHBvcywgbG9uZyBw cmVjKSBub2V4Y2VwdAorKyAgICBjZGVmIGV4dF9wX2xpc3Qoc2VsZiwgYmludCBwb3MpCisrICAg IGNkZWYgZXh0X3BfbGlzdF9wcmVjcyhzZWxmLCBiaW50IHBvcywgbG9uZyBwcmVjKQorICAgICBj ZGVmIFpaX3BfYyBfY29uc3RfdGVybShzZWxmKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL3BhZGljcy9wYWRpY19leHRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvcGFkaWNfZXh0X2VsZW1lbnQucHl4CitpbmRleCBhNzlkYzFhNGE5Ny4uMjMyN2M4MDg1 YTAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZXh0X2VsZW1lbnQu cHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZXh0X2VsZW1lbnQucHl4CitA QCAtMjYzLDEwICsyNjMsMTAgQEAgY2RlZiBjbGFzcyBwQWRpY0V4dEVsZW1lbnQocEFkaWNHZW5l cmljRWxlbWVudCk6CisgICAgIGNkZWYgbG9uZyBfY2hlY2tfWlpfcEVDb250ZXh0KHNlbGYsIG50 bF9aWl9wRUNvbnRleHRfY2xhc3MgY3R4KSBleGNlcHQgLTE6CisgICAgICAgICByYWlzZSBOb3RJ bXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgZXh0X3BfbGlzdChzZWxmLCBiaW50IHBvcykg bm9leGNlcHQ6CisrICAgIGNkZWYgZXh0X3BfbGlzdChzZWxmLCBiaW50IHBvcyk6CisgICAgICAg ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgZXh0X3BfbGlzdF9wcmVj cyhzZWxmLCBiaW50IHBvcywgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBleHRfcF9s aXN0X3ByZWNzKHNlbGYsIGJpbnQgcG9zLCBsb25nIHByZWMpOgorICAgICAgICAgcmFpc2UgTm90 SW1wbGVtZW50ZWRFcnJvcgorIAorICAgICBkZWYgX2NvbnN0X3Rlcm1fdGVzdChzZWxmKToKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZml4ZWRfbW9kX2VsZW1lbnQu cHhkIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2ZpeGVkX21vZF9lbGVtZW50LnB4ZAor aW5kZXggNGQ5YmZmNDE1ZDAuLmNkNjE5YTFiY2IyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3BhZGljX2ZpeGVkX21vZF9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3BhZGljX2ZpeGVkX21vZF9lbGVtZW50LnB4ZAorQEAgLTYsOCArNiw4IEBAIGN0 eXBlZGVmIG1wel90IGNlbGVtZW50CisgaW5jbHVkZSAiRk1fdGVtcGxhdGVfaGVhZGVyLnB4aSIK KyAKKyBjZGVmIGNsYXNzIHBBZGljRml4ZWRNb2RFbGVtZW50KEZNRWxlbWVudCk6CistICAgIGNk ZWYgbGlmdF9jKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxm KSBub2V4Y2VwdAorKyAgICBjZGVmIGxpZnRfYyhzZWxmKQorKyAgICBjZGVmIHBhcmlfZ2VuIF90 b19nZW4oc2VsZikKKyAKKyBmcm9tIHNhZ2UucmluZ3MucGFkaWNzLnBvd19jb21wdXRlciBjaW1w b3J0IFBvd0NvbXB1dGVyX2Jhc2UKKyBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyXyhQb3dDb21wdXRl cl9iYXNlKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZml4ZWRf bW9kX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2ZpeGVkX21vZF9l bGVtZW50LnB5eAoraW5kZXggNDJiOTJjMGE5NjEuLmJiNGI4ZjNlMGRiIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2ZpeGVkX21vZF9lbGVtZW50LnB5eAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2ZpeGVkX21vZF9lbGVtZW50LnB5eAorQEAgLTE1 Niw3ICsxNTYsNyBAQCBjZGVmIGNsYXNzIHBBZGljRml4ZWRNb2RFbGVtZW50KEZNRWxlbWVudCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxpZnRfYygpCisgCistICAgIGNk ZWYgbGlmdF9jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpZnRfYyhzZWxmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgYW4gaW50ZWdlciBjb25ncnVlbnQgdG8gdGhpcyBl bGVtZW50IG1vZHVsbyB0aGUgcHJlY2lzaW9uLgorIAorQEAgLTE4OCw3ICsxODgsNyBAQCBjZGVm IGNsYXNzIHBBZGljRml4ZWRNb2RFbGVtZW50KEZNRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLl90b19nZW4oKQorIAorLSAgICBjZGVmIHBhcmlfZ2VuIF90b19n ZW4oc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBgYHNlbGZgYCB0byBhbiBlcXVpdmFsZW50IHBh cmkgZWxlbWVudC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNf ZmxvYXRpbmdfcG9pbnRfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNf ZmxvYXRpbmdfcG9pbnRfZWxlbWVudC5weGQKK2luZGV4IDgxNmE5ZmNlNzA1Li43MjFjNDcxZDI1 MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19mbG9hdGluZ19wb2lu dF9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2Zsb2F0aW5n X3BvaW50X2VsZW1lbnQucHhkCitAQCAtNSw4ICs1LDggQEAgY3R5cGVkZWYgbXB6X3QgY2VsZW1l bnQKKyBpbmNsdWRlICJGUF90ZW1wbGF0ZV9oZWFkZXIucHhpIgorIAorIGNkZWYgY2xhc3MgcEFk aWNGbG9hdGluZ1BvaW50RWxlbWVudChGUEVsZW1lbnQpOgorLSAgICBjZGVmIGxpZnRfYyhzZWxm KSBub2V4Y2VwdAorLSAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZikgbm9leGNlcHQKKysg ICAgY2RlZiBsaWZ0X2Moc2VsZikKKysgICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNlbGYpCisg CisgZnJvbSBzYWdlLnJpbmdzLnBhZGljcy5wb3dfY29tcHV0ZXIgY2ltcG9ydCBQb3dDb21wdXRl cl9iYXNlCisgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl8oUG93Q29tcHV0ZXJfYmFzZSk6CitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2Zsb2F0aW5nX3BvaW50X2VsZW1l bnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2Zsb2F0aW5nX3BvaW50X2VsZW1l bnQucHl4CitpbmRleCAyMjUyOWZmZmM2Zi4uZWQ4MGU3Yzg1M2QgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZmxvYXRpbmdfcG9pbnRfZWxlbWVudC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19mbG9hdGluZ19wb2ludF9lbGVtZW50LnB5eAor QEAgLTE1OCw3ICsxNTgsNyBAQCBjZGVmIGNsYXNzIHBBZGljRmxvYXRpbmdQb2ludEVsZW1lbnQo RlBFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubGlmdF9jKCkK KyAKKy0gICAgY2RlZiBsaWZ0X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlmdF9jKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgbGlmdC4KKyAK K0BAIC0yMDQsNyArMjA0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Zsb2F0aW5nUG9pbnRFbGVtZW50 KEZQRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl90b19nZW4o KQorIAorLSAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVy dCB0aGlzIGVsZW1lbnQgdG8gYW4gZXF1aXZhbGVudCBwYXJpIGVsZW1lbnQuCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2dlbmVyaWNfZWxlbWVudC5weGQgYi9z cmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZ2VuZXJpY19lbGVtZW50LnB4ZAoraW5kZXggMDkx ZDU2YmI5MTIuLmRhZGY3MDk5YzAwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNz L3BhZGljX2dlbmVyaWNfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9w YWRpY19nZW5lcmljX2VsZW1lbnQucHhkCitAQCAtOCwxMSArOCwxMSBAQCBmcm9tIHNhZ2Uucmlu Z3MucGFkaWNzLnBvd19jb21wdXRlciBjaW1wb3J0IFBvd0NvbXB1dGVyX2NsYXNzCisgZnJvbSBz YWdlLnJpbmdzLmludGVnZXIgY2ltcG9ydCBJbnRlZ2VyCisgZnJvbSBzYWdlLnJpbmdzLnJhdGlv bmFsIGNpbXBvcnQgUmF0aW9uYWwKKyAKKy1jcGRlZiBnYXVzc190YWJsZShsb25nIGxvbmcgcCwg aW50IGYsIGludCBwcmVjLCBiaW50IHVzZV9sb25ncykgbm9leGNlcHQKKytjcGRlZiBnYXVzc190 YWJsZShsb25nIGxvbmcgcCwgaW50IGYsIGludCBwcmVjLCBiaW50IHVzZV9sb25ncykKKyAKKyBj ZGVmIGNsYXNzIHBBZGljR2VuZXJpY0VsZW1lbnQoTG9jYWxHZW5lcmljRWxlbWVudCk6CisgICAg IGNkZWYgbG9uZyB2YWx1YXRpb25fYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiB2YWxfdW5p dChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiB2YWxfdW5pdChzZWxmKQorIAorICAgICBjZGVm IGludCBfc2V0X2Zyb21fSW50ZWdlcihzZWxmLCBJbnRlZ2VyIHgsIGFic3ByZWMsIHJlbHByZWMp IGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBfc2V0X2Zyb21fbXB6KHNlbGYsIG1wel90IHgpIGV4 Y2VwdCAtMQorQEAgLTQxLDcgKzQxLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0dlbmVyaWNFbGVtZW50 KExvY2FsR2VuZXJpY0VsZW1lbnQpOgorICAgICBjZGVmIGJpbnQgX3NldF9wcmVjX3JlbChzZWxm LCBsb25nIHJlbHByZWMpIGV4Y2VwdCAtMQorICAgICBjZGVmIGJpbnQgX3NldF9wcmVjX2JvdGgo c2VsZiwgbG9uZyBhYnNwcmVjLCBsb25nIHJlbHByZWMpIGV4Y2VwdCAtMQorIAorLSAgICBjcGRl ZiBhYnMoc2VsZiwgcHJlYz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdo dCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQK KysgICAgY3BkZWYgYWJzKHNlbGYsIHByZWM9KikKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmln aHQpCisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpCisgICAgIGNwZGVmIGJpbnQg X2lzX2Jhc2VfZWx0KHNlbGYsIHApIGV4Y2VwdCAtMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jp bmdzL3BhZGljcy9wYWRpY19nZW5lcmljX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL3BhZGljX2dlbmVyaWNfZWxlbWVudC5weXgKK2luZGV4IDAzNWU0MDQ3NzNiLi5iOGYwMmUz MTk3MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19nZW5lcmljX2Vs ZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZ2VuZXJpY19lbGVt ZW50LnB5eAorQEAgLTQzLDcgKzQzLDcgQEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5yaWNoY21wIGNp bXBvcnQgcmljaF90b19ib29sCisgY2RlZiBsb25nIG1heG9yZHAgPSAoMUwgPDwgKHNpemVvZihs b25nKSAqIDggLSAyKSkgLSAxCisgCisgY2RlZiBjbGFzcyBwQWRpY0dlbmVyaWNFbGVtZW50KExv Y2FsR2VuZXJpY0VsZW1lbnQpOgorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGlu dCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9w KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEZpcnN0IGNvbXBhcmUgdmFsdWF0aW9ucywgdGhl biBjb21wYXJlIG5vcm1hbGl6ZWQKKyAgICAgICAgIHJlc2lkdWUgb2YgdW5pdCBwYXJ0LgorQEAg LTM1NCw3ICszNTQsNyBAQCBjZGVmIGNsYXNzIHBBZGljR2VuZXJpY0VsZW1lbnQoTG9jYWxHZW5l cmljRWxlbWVudCk6CisgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoImNhbm5v dCBkaXZpZGUgYnkgemVybyIpCisgICAgICAgICByZXR1cm4gc2VsZi5fZmxvb3JkaXZfKHJpZ2h0 KQorIAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIElt cGxlbWVudHMgZmxvb3IgZGl2aXNpb24uCisgCitAQCAtNDY1LDcgKzQ2NSw3IEBAIGNkZWYgY2xh c3MgcEFkaWNHZW5lcmljRWxlbWVudChMb2NhbEdlbmVyaWNFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIH5zZWxmLnBhcmVudCgpLmZyYWN0aW9uX2ZpZWxkKCkoc2VsZiwg cmVscHJlYyA9IHNlbGYucHJlY2lzaW9uX3JlbGF0aXZlKCkpCisgCistICAgIGNwZGVmIF9tb2Rf KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBJZiBzZWxmIGlzIGluIGEgZmllbGQsIHJldHVybnMgMC4g IElmIGluIGEgcmluZywgcmV0dXJucyBhCisgICAgICAgICBwLWFkaWMgaW50ZWdlciBzdWNoIHRo YXQKK0BAIC0yMTE1LDcgKzIxMTUsNyBAQCBjZGVmIGNsYXNzIHBBZGljR2VuZXJpY0VsZW1lbnQo TG9jYWxHZW5lcmljRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdElt cGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY3BkZWYgdmFsX3VuaXQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIHZhbF91bml0KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IGBgKHNlbGYudmFsdWF0aW9uKCksIHNlbGYudW5pdF9wYXJ0KCkpYGAuIFRvIGJlIG92ZXJyaWRk ZW4gaW4KKyAgICAgICAgIGRlcml2ZWQgY2xhc3Nlcy4KK0BAIC00MDIyLDcgKzQwMjIsNyBAQCBj ZGVmIGNsYXNzIHBBZGljR2VuZXJpY0VsZW1lbnQoTG9jYWxHZW5lcmljRWxlbWVudCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmFicygpCisgCistICAgIGNwZGVmIGFicyhz ZWxmLCBwcmVjPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhYnMoc2VsZiwgcHJlYz1Ob25l KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgcGAtYWRpYyBhYnNvbHV0ZSB2 YWx1ZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC00NTE1LDcgKzQ1MTUsNyBAQCBkZWYgX2NvbXB1dGVf ZyhwLCBuLCBwcmVjLCB0ZXJtcyk6CisgICAgICAgICBnW2krMV0gPSAtKGdbaV0vKHYtdioqMikp LmludGVncmFsKCkKKyAgICAgcmV0dXJuIFt4LnRydW5jYXRlKHRlcm1zKSBmb3IgeCBpbiBnXQor IAorLWNwZGVmIGR3b3JrX21haGxlcl9jb2VmZnMoUiwgaW50IGJkPTIwKSBub2V4Y2VwdDoKKytj cGRlZiBkd29ya19tYWhsZXJfY29lZmZzKFIsIGludCBiZD0yMCk6CisgICAgIHIiIiIKKyAgICAg Q29tcHV0ZSBEd29yaydzIGZvcm11bGEgZm9yIE1haGxlciBjb2VmZmljaWVudHMgb2YgYHBgLWFk aWMgR2FtbWEuCisgCitAQCAtNDU2Myw3ICs0NTYzLDcgQEAgY3BkZWYgZHdvcmtfbWFobGVyX2Nv ZWZmcyhSLCBpbnQgYmQ9MjApIG5vZXhjZXB0OgorICAgICAgICAgICAgICAgICB2LmFwcGVuZChS KHggPDwgaSkpCisgICAgIHJldHVybiB2CisgCistY3BkZWYgZXZhbHVhdGVfZHdvcmtfbWFobGVy KHYsIHgsIGxvbmcgbG9uZyBwLCBpbnQgYmQsIGxvbmcgbG9uZyBhKSBub2V4Y2VwdDoKKytjcGRl ZiBldmFsdWF0ZV9kd29ya19tYWhsZXIodiwgeCwgbG9uZyBsb25nIHAsIGludCBiZCwgbG9uZyBs b25nIGEpOgorICAgICAiIiIKKyAgICAgRXZhbHVhdGUgRHdvcmsncyBNYWhsZXIgc2VyaWVzIGZv ciBgcGAtYWRpYyBHYW1tYS4KKyAKK0BAIC00NjA3LDcgKzQ2MDcsNyBAQCBjZGVmIGxvbmcgbG9u ZyBldmFsdWF0ZV9kd29ya19tYWhsZXJfbG9uZyhhcnJheS5hcnJheSB2LCBsb25nIGxvbmcgeCwg bG9uZyBsb25nCisgICAgICAgICBzID0gcyAlIHEKKyAgICAgcmV0dXJuIC1zCisgCistY3BkZWYg Z2F1c3NfdGFibGUobG9uZyBsb25nIHAsIGludCBmLCBpbnQgcHJlYywgYmludCB1c2VfbG9uZ3Mp IG5vZXhjZXB0OgorK2NwZGVmIGdhdXNzX3RhYmxlKGxvbmcgbG9uZyBwLCBpbnQgZiwgaW50IHBy ZWMsIGJpbnQgdXNlX2xvbmdzKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIGEgdGFibGUgb2Yg R2F1c3Mgc3VtcyB1c2luZyB0aGUgR3Jvc3MtS29ibGl0eiBmb3JtdWxhLgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19wcmludGluZy5weGQgYi9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcGFkaWNfcHJpbnRpbmcucHhkCitpbmRleCBlMGNlMTI1NDBjNi4uNDQ2OThi M2Q3M2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfcHJpbnRpbmcu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfcHJpbnRpbmcucHhkCitAQCAt MjIsMTYgKzIyLDE2IEBAIGNkZWYgY2xhc3MgcEFkaWNQcmludGVyX2NsYXNzKFNhZ2VPYmplY3Qp OgorICAgICBjZGVmIGxvbmcgbWF4X3RlcnNlX3Rlcm1zCisgICAgIGNkZWYgb2JqZWN0IHNob3df cHJlYworIAorLSAgICBjZGVmIGJhc2VfcF9saXN0KHNlbGYsIHZhbHVlLCBiaW50IHBvcykgbm9l eGNlcHQKKy0gICAgY2RlZiBfcmVwcl9nZW4oc2VsZiwgcEFkaWNHZW5lcmljRWxlbWVudCBlbHQs IGJpbnQgZG9fbGF0ZXgsIGJpbnQgcG9zLCBpbnQgbW9kZSwgcG5hbWUpIG5vZXhjZXB0CistICAg IGNkZWYgX3JlcHJfc3BlYyhzZWxmLCBwQWRpY0dlbmVyaWNFbGVtZW50IGVsdCwgYmludCBkb19s YXRleCwgYmludCBwb3MsIGludCBfbW9kZSwgYmludCBwYXJlbiwgcG5hbWUpIG5vZXhjZXB0Cist ICAgIGNkZWYgX3ByaW50X2xpc3RfYXNfcG9seShzZWxmLCBMLCBiaW50IGRvX2xhdGV4LCBwb2x5 bmFtZSwgbG9uZyBleHBzaGlmdCwgYmludCBpbmNyZWFzaW5nKSBub2V4Y2VwdAorLSAgICBjZGVm IF90cnVuY2F0ZV9saXN0KHNlbGYsIEwsIG1heF90ZXJtcywgemVybykgbm9leGNlcHQKKy0gICAg Y2RlZiBfdmFyKHNlbGYsIHgsIGV4cCwgZG9fbGF0ZXgpIG5vZXhjZXB0CistICAgIGNkZWYgX2Rv dF92YXIoc2VsZiwgeCwgZXhwLCBkb19sYXRleCkgbm9leGNlcHQKKy0gICAgY2RlZiBfY29fZG90 X3ZhcihzZWxmLCBjbywgeCwgZXhwLCBkb19sYXRleCkgbm9leGNlcHQKKy0gICAgY2RlZiBfcGx1 c19lbGxpcHNpcyhzZWxmLCBiaW50IGRvX2xhdGV4KSBub2V4Y2VwdAorLSAgICBjZGVmIF9lbGxp cHNpcyhzZWxmLCBiaW50IGRvX2xhdGV4KSBub2V4Y2VwdAorLSAgICBjZGVmIF90ZXJzZV9mcmFj KHNlbGYsIGEsIHYsIHUsIHJhbV9uYW1lLCBiaW50IGRvX2xhdGV4KSBub2V4Y2VwdAorLSAgICBj ZGVmIF9wcmludF91bnJhbV90ZXJtKHNlbGYsIEwsIGJpbnQgZG9fbGF0ZXgsIHBvbHluYW1lLCBs b25nIG1heF91bnJhbV90ZXJtcywgbG9uZyBleHBzaGlmdCwgYmludCBpbmNyZWFzaW5nKSBub2V4 Y2VwdAorLSAgICBjZGVmIF9wcmludF90ZXJtX29mX3BvbHkoc2VsZiwgcywgY29lZmYsIGJpbnQg ZG9fbGF0ZXgsIHBvbHluYW1lLCBsb25nIGV4cCkgbm9leGNlcHQKKysgICAgY2RlZiBiYXNlX3Bf bGlzdChzZWxmLCB2YWx1ZSwgYmludCBwb3MpCisrICAgIGNkZWYgX3JlcHJfZ2VuKHNlbGYsIHBB ZGljR2VuZXJpY0VsZW1lbnQgZWx0LCBiaW50IGRvX2xhdGV4LCBiaW50IHBvcywgaW50IG1vZGUs IHBuYW1lKQorKyAgICBjZGVmIF9yZXByX3NwZWMoc2VsZiwgcEFkaWNHZW5lcmljRWxlbWVudCBl bHQsIGJpbnQgZG9fbGF0ZXgsIGJpbnQgcG9zLCBpbnQgX21vZGUsIGJpbnQgcGFyZW4sIHBuYW1l KQorKyAgICBjZGVmIF9wcmludF9saXN0X2FzX3BvbHkoc2VsZiwgTCwgYmludCBkb19sYXRleCwg cG9seW5hbWUsIGxvbmcgZXhwc2hpZnQsIGJpbnQgaW5jcmVhc2luZykKKysgICAgY2RlZiBfdHJ1 bmNhdGVfbGlzdChzZWxmLCBMLCBtYXhfdGVybXMsIHplcm8pCisrICAgIGNkZWYgX3ZhcihzZWxm LCB4LCBleHAsIGRvX2xhdGV4KQorKyAgICBjZGVmIF9kb3RfdmFyKHNlbGYsIHgsIGV4cCwgZG9f bGF0ZXgpCisrICAgIGNkZWYgX2NvX2RvdF92YXIoc2VsZiwgY28sIHgsIGV4cCwgZG9fbGF0ZXgp CisrICAgIGNkZWYgX3BsdXNfZWxsaXBzaXMoc2VsZiwgYmludCBkb19sYXRleCkKKysgICAgY2Rl ZiBfZWxsaXBzaXMoc2VsZiwgYmludCBkb19sYXRleCkKKysgICAgY2RlZiBfdGVyc2VfZnJhYyhz ZWxmLCBhLCB2LCB1LCByYW1fbmFtZSwgYmludCBkb19sYXRleCkKKysgICAgY2RlZiBfcHJpbnRf dW5yYW1fdGVybShzZWxmLCBMLCBiaW50IGRvX2xhdGV4LCBwb2x5bmFtZSwgbG9uZyBtYXhfdW5y YW1fdGVybXMsIGxvbmcgZXhwc2hpZnQsIGJpbnQgaW5jcmVhc2luZykKKysgICAgY2RlZiBfcHJp bnRfdGVybV9vZl9wb2x5KHNlbGYsIHMsIGNvZWZmLCBiaW50IGRvX2xhdGV4LCBwb2x5bmFtZSwg bG9uZyBleHApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX3ByaW50 aW5nLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19wcmludGluZy5weXgKK2luZGV4 IDJhMzc2MjY0YjRiLi5mYzlmMTViMDdiMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9wYWRpY19wcmludGluZy5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRp Y19wcmludGluZy5weXgKK0BAIC04MTYsNyArODE2LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1ByaW50 ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxm LmJhc2VfcF9saXN0KHZhbHVlLCBwb3MpCisgCistICAgIGNkZWYgYmFzZV9wX2xpc3Qoc2VsZiwg dmFsdWUsIGJpbnQgcG9zKSBub2V4Y2VwdDoKKysgICAgY2RlZiBiYXNlX3BfbGlzdChzZWxmLCB2 YWx1ZSwgYmludCBwb3MpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEgbGlzdCBv ZiBpbnRlZ2VycyBmb3JtaW5nIHRoZSBiYXNlIHAgZXhwYW5zaW9uIG9mCisgICAgICAgICB2YWx1 ZS4KK0BAIC04OTQsNyArODk0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHBwcmludCA9IGxhdGV4X3ZhcmlhYmxlX25hbWUo cHByaW50KQorICAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHJfZ2VuKGVsdCwgZG9fbGF0ZXgsIF9w b3MsIF9tb2RlLCBwcHJpbnQpCisgCistICAgIGNkZWYgX3JlcHJfZ2VuKHNlbGYsIHBBZGljR2Vu ZXJpY0VsZW1lbnQgZWx0LCBiaW50IGRvX2xhdGV4LCBiaW50IHBvcywgaW50IG1vZGUsIHJhbV9u YW1lKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcmVwcl9nZW4oc2VsZiwgcEFkaWNHZW5lcmljRWxl bWVudCBlbHQsIGJpbnQgZG9fbGF0ZXgsIGJpbnQgcG9zLCBpbnQgbW9kZSwgcmFtX25hbWUpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUHJpbnRzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m IHRoZSBlbGVtZW50LiAgU2VlIF9faW5pdF9fIGZvciBtb3JlIGRldGFpbHMgb24gcHJpbnQgbW9k ZXMuCisgCitAQCAtMTA1NCw3ICsxMDU0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1ByaW50ZXJfY2xh c3MoU2FnZU9iamVjdCk6CisgICAgICAgICBpZiBzID09ICIiOiBzID0gIjAiCisgICAgICAgICBy ZXR1cm4gcworIAorLSAgICBjZGVmIF9yZXByX3NwZWMoc2VsZiwgcEFkaWNHZW5lcmljRWxlbWVu dCBlbHQsIGJpbnQgZG9fbGF0ZXgsIGJpbnQgcG9zLCBpbnQgbW9kZSwgYmludCBwYXJlbiwgcmFt X25hbWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9yZXByX3NwZWMoc2VsZiwgcEFkaWNHZW5lcmlj RWxlbWVudCBlbHQsIGJpbnQgZG9fbGF0ZXgsIGJpbnQgcG9zLCBpbnQgbW9kZSwgYmludCBwYXJl biwgcmFtX25hbWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBBIGZ1bmN0aW9uIHVzZWQgYnkg cmVwcl9nZW4gZm9yIHRlcnNlIGFuZCBzZXJpZXMgcHJpbnRpbmcuCisgCitAQCAtMTI3MSw3ICsx MjcxLDcgQEAgY2RlZiBjbGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAg ICAgICAgICAgcyA9ICIoIiArIHMgKyAiKSIKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNk ZWYgX3ZhcihzZWxmLCB4LCBleHAsIGRvX2xhdGV4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdmFy KHNlbGYsIHgsIGV4cCwgZG9fbGF0ZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5z IGEgcmVwcmVzZW50YXRpb24gb2YgJ3heZXhwJywgbGF0ZXhlZCBpZiBuZWNlc3NhcnkuCisgICAg ICAgICAiIiIKK0BAIC0xMjg0LDcgKzEyODQsNyBAQCBjZGVmIGNsYXNzIHBBZGljUHJpbnRlcl9j bGFzcyhTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuICIl c14lcyIlKHgsIGV4cCkKKyAKKy0gICAgY2RlZiBfZG90X3ZhcihzZWxmLCB4LCBleHAsIGRvX2xh dGV4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZG90X3ZhcihzZWxmLCB4LCBleHAsIGRvX2xhdGV4 KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIHJlcHJlc2VudGF0aW9uIG9mICcq eF5leHAnLCBsYXRleGVkIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgICIiIgorQEAgLTEzMDAsNyAr MTMwMCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNQcmludGVyX2NsYXNzKFNhZ2VPYmplY3QpOgorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gIiolc14lcyIlKHgsIGV4cCkKKyAKKy0g ICAgY2RlZiBfY29fZG90X3ZhcihzZWxmLCBjbywgeCwgZXhwLCBkb19sYXRleCkgbm9leGNlcHQ6 CisrICAgIGNkZWYgX2NvX2RvdF92YXIoc2VsZiwgY28sIHgsIGV4cCwgZG9fbGF0ZXgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgJ2NvKnheZXhw JywgbGF0ZXhlZCBpZiBuZWNlc3NhcnkuCisgCitAQCAtMTMyNSw3ICsxMzI1LDcgQEAgY2RlZiBj bGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJldHVybiAiJXMqJXNeJXMiJShjbywgeCwgZXhwKQorIAorLSAgICBjZGVmIF9w bHVzX2VsbGlwc2lzKHNlbGYsIGJpbnQgZG9fbGF0ZXgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9w bHVzX2VsbGlwc2lzKHNlbGYsIGJpbnQgZG9fbGF0ZXgpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgJysgLi4uJywgbGF0ZXhlZCBpZiBuZWNlc3Nh cnkuCisgICAgICAgICAiIiIKK0BAIC0xMzM0LDcgKzEzMzQsNyBAQCBjZGVmIGNsYXNzIHBBZGlj UHJpbnRlcl9jbGFzcyhTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmV0dXJuICIgKyAuLi4iCisgCistICAgIGNkZWYgX2VsbGlwc2lzKHNlbGYsIGJpbnQgZG9fbGF0 ZXgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9lbGxpcHNpcyhzZWxmLCBiaW50IGRvX2xhdGV4KToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIHJlcHJlc2VudGF0aW9uIG9mICcuLi4n LCBsYXRleGVkIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgICIiIgorQEAgLTEzNDMsNyArMTM0Myw3 IEBAIGNkZWYgY2xhc3MgcEFkaWNQcmludGVyX2NsYXNzKFNhZ2VPYmplY3QpOgorICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gIi4uLiIKKyAKKy0gICAgY2RlZiBfdHJ1bmNhdGVf bGlzdChzZWxmLCBMLCBtYXhfdGVybXMsIHplcm8pIG5vZXhjZXB0OgorKyAgICBjZGVmIF90cnVu Y2F0ZV9saXN0KHNlbGYsIEwsIG1heF90ZXJtcywgemVybyk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFRha2VzIGEgbGlzdCBMIG9mIGNvZWZmaWNpZW50cyBhbmQgcmV0dXJucyBhIGxpc3Qgd2l0 aCBhdCBtb3N0IG1heF90ZXJtcyBub256ZXJvIHRlcm1zLgorIAorQEAgLTEzNzUsNyArMTM3NSw3 IEBAIGNkZWYgY2xhc3MgcEFkaWNQcmludGVyX2NsYXNzKFNhZ2VPYmplY3QpOgorICAgICAgICAg ICAgIGFucy5hcHBlbmQoYykKKyAgICAgICAgIHJldHVybiBhbnMsIEZhbHNlCisgCistICAgIGNk ZWYgX3ByaW50X3VucmFtX3Rlcm0oc2VsZiwgTCwgYmludCBkb19sYXRleCwgcG9seW5hbWUsIGxv bmcgbWF4X3VucmFtX3Rlcm1zLCBsb25nIGV4cHNoaWZ0LCBiaW50IGluY3JlYXNpbmcpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9wcmludF91bnJhbV90ZXJtKHNlbGYsIEwsIGJpbnQgZG9fbGF0ZXgs IHBvbHluYW1lLCBsb25nIG1heF91bnJhbV90ZXJtcywgbG9uZyBleHBzaGlmdCwgYmludCBpbmNy ZWFzaW5nKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIHN0cmluZyByZXByZXNl bnRhdGlvbiBvZiBMIHdoZW4gY29uc2lkZXJlZCBhcyBhIHBvbHlub21pYWwsIHRydW5jYXRpbmcg dG8gYXQgbW9zdCBtYXhfdW5yYW1fdGVybXMgbm9uemVybyB0ZXJtcy4KKyAKK0BAIC0xNDQ4LDcg KzE0NDgsNyBAQCBjZGVmIGNsYXNzIHBBZGljUHJpbnRlcl9jbGFzcyhTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9IHNlbGYuX3ByaW50X3Rlcm1fb2ZfcG9seShz LCBMW2pdLCBkb19sYXRleCwgcG9seW5hbWUsIGV4cCkKKyAgICAgICAgIHJldHVybiBzCisgCist ICAgIGNkZWYgX3RlcnNlX2ZyYWMoc2VsZiwgYSwgdiwgdSwgcmFtX25hbWUsIGJpbnQgZG9fbGF0 ZXgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF90ZXJzZV9mcmFjKHNlbGYsIGEsIHYsIHUsIHJhbV9u YW1lLCBiaW50IGRvX2xhdGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIHJl cHJlc2VudGF0aW9uIG9mIGE9dS9yYW1fbmFtZV52LCBsYXRleGVkIGlmIG5lY2Vzc2FyeS4KKyAg ICAgICAgICIiIgorQEAgLTE0NjgsNyArMTQ2OCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNQcmludGVy X2NsYXNzKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBhcmVwID0gIiVzLyVzXiVzIiUo dSwgcmFtX25hbWUsIC12KQorICAgICAgICAgcmV0dXJuIGFyZXAKKyAKKy0gICAgY2RlZiBfcHJp bnRfbGlzdF9hc19wb2x5KHNlbGYsIEwsIGJpbnQgZG9fbGF0ZXgsIHBvbHluYW1lLCBsb25nIGV4 cHNoaWZ0LCBiaW50IGluY3JlYXNpbmcpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9wcmludF9saXN0 X2FzX3BvbHkoc2VsZiwgTCwgYmludCBkb19sYXRleCwgcG9seW5hbWUsIGxvbmcgZXhwc2hpZnQs IGJpbnQgaW5jcmVhc2luZyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFByaW50cyBhIGxpc3Qg TCBhcyBhIHBvbHlub21pYWwuCisgCitAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgY2RlZiBjbGFzcyBw QWRpY1ByaW50ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHMgPSBzZWxm Ll9wcmludF90ZXJtX29mX3BvbHkocywgTFtqXSwgZG9fbGF0ZXgsIHBvbHluYW1lLCBleHApCisg ICAgICAgICByZXR1cm4gcworIAorLSAgICBjZGVmIF9wcmludF90ZXJtX29mX3BvbHkoc2VsZiwg cywgY29lZmYsIGJpbnQgZG9fbGF0ZXgsIHBvbHluYW1lLCBsb25nIGV4cCkgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX3ByaW50X3Rlcm1fb2ZfcG9seShzZWxmLCBzLCBjb2VmZiwgYmludCBkb19sYXRl eCwgcG9seW5hbWUsIGxvbmcgZXhwKToKKyAgICAgICAgICIiIgorICAgICAgICAgQXBwZW5kcyAr Y29lZmYqcG9seW5hbWVeZXhwIHRvIHMsIGxhdGV4ZWQgaWYgbmVjZXNzYXJ5LgorICAgICAgICAg IiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX3RlbXBsYXRlX2Vs ZW1lbnQucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX3RlbXBsYXRlX2VsZW1lbnQu cHhpCitpbmRleCA0YjdkYjg3MjZhZi4uNGI1YjljNmRiZTkgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9wYWRpY3MvcGFkaWNfdGVtcGxhdGVfZWxlbWVudC5weGkKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9wYWRpY190ZW1wbGF0ZV9lbGVtZW50LnB4aQorQEAgLTE4OCw3ICsxODgs NyBAQCBjZGVmIGNsYXNzIHBBZGljVGVtcGxhdGVFbGVtZW50KHBBZGljR2VuZXJpY0VsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCist ICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX25ld193aXRoX3ZhbHVlKHNlbGYsIGNlbGVt ZW50IHZhbHVlLCBsb25nIGFic3ByZWMpIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljVGVtcGxh dGVFbGVtZW50IF9uZXdfd2l0aF92YWx1ZShzZWxmLCBjZWxlbWVudCB2YWx1ZSwgbG9uZyBhYnNw cmVjKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlcyBhIG5ldyBlbGVtZW50IHdpdGgg YSBnaXZlbiB2YWx1ZSBhbmQgYWJzb2x1dGUgcHJlY2lzaW9uLgorIAorQEAgLTI2NCw3ICsyNjQs NyBAQCBjZGVmIGNsYXNzIHBBZGljVGVtcGxhdGVFbGVtZW50KHBBZGljR2VuZXJpY0VsZW1lbnQp OgorICAgICAgICAgY2hlY2tfb3JkcChzKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2xzaGlmdF9j KHMpCisgCistICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxv bmcgc2hpZnQpIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9sc2hp ZnRfYyhzZWxmLCBsb25nIHNoaWZ0KToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IKKyAKKyAgICAgZGVmIF9fcnNoaWZ0X18ocEFkaWNUZW1wbGF0ZUVsZW1lbnQgc2VsZiwgc2hp ZnQpOgorQEAgLTMxMiw3ICszMTIsNyBAQCBjZGVmIGNsYXNzIHBBZGljVGVtcGxhdGVFbGVtZW50 KHBBZGljR2VuZXJpY0VsZW1lbnQpOgorICAgICAgICAgY2hlY2tfb3JkcChzKQorICAgICAgICAg cmV0dXJuIHNlbGYuX3JzaGlmdF9jKHMpCisgCistICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1l bnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGlj VGVtcGxhdGVFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25nIHNoaWZ0KToKKyAgICAgICAgICIi IgorICAgICAgICAgRGl2aWRlcyBieSBgYHBec2hpZnRgYCBhbmQgdHJ1bmNhdGVzIChpZiB0aGUg cGFyZW50IGlzIG5vdCBhIGZpZWxkKS4KKyAgICAgICAgICIiIgorQEAgLTM4MCw3ICszODAsNyBA QCBjZGVmIGNsYXNzIHBBZGljVGVtcGxhdGVFbGVtZW50KHBBZGljR2VuZXJpY0VsZW1lbnQpOgor ICAgICAgICAgYW5zLmNoZWNrX3ByZWNjYXAoKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAg ICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IGxpZnRfdG9fcHJlY2lzaW9uX2Moc2VsZiwgbG9u ZyBhYnNwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBsaWZ0 X3RvX3ByZWNpc2lvbl9jKHNlbGYsIGxvbmcgYWJzcHJlYyk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIExpZnQgdGhpcyBlbGVtZW50IHRvIGFub3RoZXIgd2l0aCBwcmVjaXNpb24gYXQgbGVhc3Qg YGBhYnNwcmVjYGAuCisgICAgICAgICAiIiIKK0BAIC02MjYsNyArNjI2LDcgQEAgY2RlZiBjbGFz cyBwQWRpY1RlbXBsYXRlRWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgcmV0dXJuIHRyaW1femVyb3MobGlzdChzZWxmLnVuaXRfcGFydCgp LmV4cGFuc2lvbihsaWZ0X21vZGU9J3NtYWxsZXN0JykpKQorIAorLSAgICBjcGRlZiBwQWRpY1Rl bXBsYXRlRWxlbWVudCB1bml0X3BhcnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGlj VGVtcGxhdGVFbGVtZW50IHVuaXRfcGFydChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybnMgdGhlIHVuaXQgcGFydCBvZiB0aGlzIGVsZW1lbnQuCisgCitAQCAtNzYxLDcgKzc2 MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNUZW1wbGF0ZUVsZW1lbnQocEFkaWNHZW5lcmljRWxlbWVu dCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IoInJlZHVjdGlvbiBtb2R1bG8gcF5uIHdpdGggbj4xIikKKyAKKy1jZGVmIEludGVnZXIgZXhh Y3RfcG93X2hlbHBlcihsb25nICphbnNyZWxwcmVjLCBsb25nIHJlbHByZWMsIF9yaWdodCwgUG93 Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBJbnRlZ2VyIGV4YWN0X3Bvd19o ZWxwZXIobG9uZyAqYW5zcmVscHJlYywgbG9uZyByZWxwcmVjLCBfcmlnaHQsIFBvd0NvbXB1dGVy XyBwcmltZV9wb3cpOgorICAgICAiIiIKKyAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IGV4 cG9uZW50aWF0aW9uIGluIGJvdGggYGBDUl90ZW1wbGF0ZS5weGlgYAorICAgICBhbmQgYGBDQV90 ZW1wbGF0ZS5weGlgYCB0byBkZXRlcm1pbmUgdGhlIGV4dHJhIHByZWNpc2lvbiBnYWluZWQgZnJv bQorQEAgLTg3NSw3ICs4NzUsNyBAQCBjZGVmIGxvbmcgcGFkaWNfcG93X2hlbHBlcihjZWxlbWVu dCByZXN1bHQsIGNlbGVtZW50IGJhc2UsIGxvbmcgYmFzZV92YWwsIGxvbmcgYgorICAgICBjcG93 KHJlc3VsdCwgcHJpbWVfcG93LnBvd2hlbHBlcl9vbmV1bml0LCByaWdodC52YWx1ZSwgYmxvZ2Ff YXByZWMsIHByaW1lX3BvdykKKyAgICAgcmV0dXJuIGJsb2dhX2FwcmVjCisgCistY2RlZiBfemVy byhleHBhbnNpb25fbW9kZSBtb2RlLCB0ZWljaF9yaW5nKSBub2V4Y2VwdDoKKytjZGVmIF96ZXJv KGV4cGFuc2lvbl9tb2RlIG1vZGUsIHRlaWNoX3JpbmcpOgorICAgICAiIiIKKyAgICAgUmV0dXJu IGFuIGFwcHJvcHJpYXRlIHplcm8gZm9yIGEgZ2l2ZW4gZXhwYW5zaW9uIG1vZGUuCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX3RlbXBsYXRlX2VsZW1lbnRfaGVh ZGVyLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY190ZW1wbGF0ZV9lbGVtZW50X2hl YWRlci5weGkKK2luZGV4IDRjZDA3YjhjNGJkLi4xMWUxY2M3ZmFiNyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY190ZW1wbGF0ZV9lbGVtZW50X2hlYWRlci5weGkKKysr KyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY190ZW1wbGF0ZV9lbGVtZW50X2hlYWRlci5w eGkKK0BAIC0zOSwxMSArMzksMTEgQEAgY2RlZiBlbnVtIGV4cGFuc2lvbl9tb2RlOgorIGNkZWYg Y2xhc3MgcEFkaWNUZW1wbGF0ZUVsZW1lbnQocEFkaWNHZW5lcmljRWxlbWVudCk6CisgICAgIGNk ZWYgUG93Q29tcHV0ZXJfIHByaW1lX3BvdworICAgICBjZGVmIGludCBfc2V0KHNlbGYsIHgsIGxv bmcgdmFsLCBsb25nIHhwcmVjLCBhYnNwcmVjLCByZWxwcmVjKSBleGNlcHQgLTEKKy0gICAgY2Rl ZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhfdmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFs dWUsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVu dCBfbmV3X3dpdGhfdmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFsdWUsIGxvbmcgYWJzcHJlYykKKyAg ICAgY2RlZiBpbnQgX2dldF91bml0KHNlbGYsIGNlbGVtZW50IHZhbHVlKSBleGNlcHQgLTEKKy0g ICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkg bm9leGNlcHQKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfcnNoaWZ0X2Moc2VsZiwg bG9uZyBzaGlmdCkgbm9leGNlcHQKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbHNo aWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBf cnNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkKKyAgICAgI2NwZGVmIFJpbmdFbGVtZW50IF9mbG9v cmRpdl9jX2ltcGwoc2VsZiwgUmluZ0VsZW1lbnQgcmlnaHQpCisgICAgIGNkZWYgaW50IGNoZWNr X3ByZWNjYXAoc2VsZikgZXhjZXB0IC0xCistICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQg bGlmdF90b19wcmVjaXNpb25fYyhzZWxmLCBsb25nIGFic3ByZWMpIG5vZXhjZXB0CistICAgIGNw ZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IHVuaXRfcGFydChzZWxmKSBub2V4Y2VwdAorKyAgICBj ZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IGxpZnRfdG9fcHJlY2lzaW9uX2Moc2VsZiwgbG9uZyBh YnNwcmVjKQorKyAgICBjcGRlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCB1bml0X3BhcnQoc2VsZikK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB4ZCBiL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHhkCitpbmRleCBiNzA1NTNiNzdlMC4u NWNiNmE0NzQ4NDkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1 dGVyLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlci5weGQKK0BA IC0yMiw3ICsyMiw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfY2xhc3MoU2FnZU9iamVjdCk6 CisgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBjYWNoZV9saW1pdAorICAgICBjZGVmIHVuc2lnbmVk IGxvbmcgcHJlY19jYXAKKyAKKy0gICAgY2RlZiBJbnRlZ2VyIHBvd19JbnRlZ2VyKHNlbGYsIGxv bmcgbikgbm9leGNlcHQKKysgICAgY2RlZiBJbnRlZ2VyIHBvd19JbnRlZ2VyKHNlbGYsIGxvbmcg bikKKyAgICAgY2RlZiBtcHpfc3JjcHRyIHBvd19tcHpfdF90b3Aoc2VsZikgbm9leGNlcHQKKyAg ICAgY2RlZiBtcHpfc3JjcHRyIHBvd19tcHpfdF90bXAoc2VsZiwgbG9uZyBuKSBleGNlcHQgTlVM TAorICAgICBjZGVmIG1wel90IHRlbXBfbQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9wb3dfY29tcHV0ZXIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRl ci5weXgKK2luZGV4IDk0MmIyYTYzMjNlLi5kZGE0MjNmNGEwZiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvcG93X2NvbXB1dGVyLnB5eAorQEAgLTE0Niw3ICsxNDYsNyBAQCBjZGVmIGNsYXNzIFBv d0NvbXB1dGVyX2NsYXNzKFNhZ2VPYmplY3QpOgorIAorICAgICAgICAgcmV0dXJuIHJpY2hjbXAo cy5pbl9maWVsZCwgby5pbl9maWVsZCwgb3ApCisgCistICAgIGNkZWYgSW50ZWdlciBwb3dfSW50 ZWdlcihzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIEludGVnZXIgcG93X0ludGVn ZXIoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBzZWxmLnBy aW1lXm4KKyAKK0BAIC02MDEsNyArNjAxLDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9iYXNl KFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgICAgIHJldHVybiBzZWxmLnRlbXBfbQorIAorIHBv d19jb21wX2NhY2hlID0ge30KKy1jZGVmIFBvd0NvbXB1dGVyX2Jhc2UgUG93Q29tcHV0ZXJfYyhJ bnRlZ2VyIG0sIEludGVnZXIgY2FjaGVfbGltaXQsIEludGVnZXIgcHJlY19jYXAsIGluX2ZpZWxk LCBwcmVjX3R5cGU9Tm9uZSkgbm9leGNlcHQ6CisrY2RlZiBQb3dDb21wdXRlcl9iYXNlIFBvd0Nv bXB1dGVyX2MoSW50ZWdlciBtLCBJbnRlZ2VyIGNhY2hlX2xpbWl0LCBJbnRlZ2VyIHByZWNfY2Fw LCBpbl9maWVsZCwgcHJlY190eXBlPU5vbmUpOgorICAgICAiIiIKKyAgICAgUmV0dXJucyBhIFBv d0NvbXB1dGVyLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29t cHV0ZXJfZXh0LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfZXh0LnB4 ZAoraW5kZXggZTRlY2E2NjBiYjMuLjVkMzE3OTBlMDJlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9leHQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvcG93X2NvbXB1dGVyX2V4dC5weGQKK0BAIC0yMSwxMSArMjEsMTEgQEAgY2RlZiBjbGFz cyBQb3dDb21wdXRlcl9leHQoUG93Q29tcHV0ZXJfY2xhc3MpOgorICAgICBjZGVmIHZvaWQgY2xl YW51cF9leHQoc2VsZikgbm9leGNlcHQKKyAKKyBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX1paX3BY KFBvd0NvbXB1dGVyX2V4dCk6CistICAgIGNkZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGdldF9j b250ZXh0KHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRf Y2xhc3MgZ2V0X2NvbnRleHRfY2FwZGl2KHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2Rl ZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X3RvcF9jb250ZXh0KHNlbGYpIG5vZXhjZXB0Cist ICAgIGNkZWYgcmVzdG9yZV9jb250ZXh0KHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2Rl ZiByZXN0b3JlX2NvbnRleHRfY2FwZGl2KHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKysgICAgY2Rl ZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X2NvbnRleHQoc2VsZiwgbG9uZyBuKQorKyAgICBj ZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfY29udGV4dF9jYXBkaXYoc2VsZiwgbG9uZyBu KQorKyAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfdG9wX2NvbnRleHQoc2VsZikK KysgICAgY2RlZiByZXN0b3JlX2NvbnRleHQoc2VsZiwgbG9uZyBuKQorKyAgICBjZGVmIHJlc3Rv cmVfY29udGV4dF9jYXBkaXYoc2VsZiwgbG9uZyBuKQorICAgICBjZGVmIHZvaWQgcmVzdG9yZV90 b3BfY29udGV4dChzZWxmKSBub2V4Y2VwdAorICAgICBjZGVmIFpaX3BYX01vZHVsdXNfYyogZ2V0 X21vZHVsdXMoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorICAgICBjZGVmIFpaX3BYX01vZHVsdXNf YyogZ2V0X21vZHVsdXNfY2FwZGl2KHNlbGYsIGxvbmcgbikgbm9leGNlcHQKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2V4dC5weXggYi9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2V4dC5weXgKK2luZGV4IDNmNmU4ZWI4NzViLi44OWEw NzM1NTBmNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJf ZXh0LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9leHQucHl4 CitAQCAtNzYwLDcgKzc2MCw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFgoUG93Q29t cHV0ZXJfZXh0KToKKyAgICAgICAgIHIueCA9IChzZWxmLmdldF90b3BfbW9kdWx1cygpWzBdKS52 YWwoKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xh c3MgZ2V0X2NvbnRleHQoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfWlpf cENvbnRleHRfY2xhc3MgZ2V0X2NvbnRleHQoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJucyBhIFpaX3BDb250ZXh0IGZvciBzZWxmLnByaW1lXihhYnMobikpLgor IAorQEAgLTc5Myw3ICs3OTMsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX1paX3BYKFBvd0Nv bXB1dGVyX2V4dCk6CisgICAgICAgICBjZGVmIEludGVnZXIgX24gPSBJbnRlZ2VyKG4pCisgICAg ICAgICByZXR1cm4gc2VsZi5nZXRfY29udGV4dChtcHpfZ2V0X3NpKF9uLnZhbHVlKSkKKyAKKy0g ICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X2NvbnRleHRfY2FwZGl2KHNlbGYsIGxv bmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGdldF9jb250 ZXh0X2NhcGRpdihzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5z IGEgWlpfcENvbnRleHQgZm9yIHNlbGYucHJpbWVeKChuLTEpIC8vIHNlbGYuZSArIDEpCisgCitA QCAtODUzLDcgKzg1Myw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFgoUG93Q29tcHV0 ZXJfZXh0KToKKyAgICAgICAgICAgICBzZWxmLmdldF9tb2R1bHVzKF9uKQorICAgICAgICAgcmV0 dXJuIGNwdXRpbWUodCkKKyAKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X3Rv cF9jb250ZXh0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFz cyBnZXRfdG9wX2NvbnRleHQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMg YSBaWl9wQ29udGV4dCBmb3Igc2VsZi5wcmltZV5zZWxmLnByZWNfY2FwCisgCitAQCAtODc3LDcg Kzg3Nyw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFgoUG93Q29tcHV0ZXJfZXh0KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3RvcF9jb250ZXh0KCkKKyAK Ky0gICAgY2RlZiByZXN0b3JlX2NvbnRleHQoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAg Y2RlZiByZXN0b3JlX2NvbnRleHQoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmVzdG9yZXMgdGhlIGNvbnRlc3QgY29ycmVzcG9uZGluZyB0byBzZWxmLnByaW1lXm4KKyAK K0BAIC05MDAsNyArOTAwLDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9aWl9wWChQb3dDb21w dXRlcl9leHQpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyIF9uID0gSW50ZWdlcihuKQorICAgICAg ICAgc2VsZi5yZXN0b3JlX2NvbnRleHQobXB6X2dldF9zaShfbi52YWx1ZSkpCisgCistICAgIGNk ZWYgcmVzdG9yZV9jb250ZXh0X2NhcGRpdihzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBj ZGVmIHJlc3RvcmVfY29udGV4dF9jYXBkaXYoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmVzdG9yZXMgdGhlIGNvbnRleHQgZm9yIHNlbGYucHJpbWVeKChuLTEpIC8vIHNl bGYuZSArIDEpCisgCitAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRl cl9aWl9wWF9GTShQb3dDb21wdXRlcl9aWl9wWCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoIk5PVCBJTVBMRU1FTlRFRCBJTiBQb3dDb21w dXRlcl9aWl9wWF9GTSIpCisgCistICAgIGNkZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGdldF90 b3BfY29udGV4dChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xh c3MgZ2V0X3RvcF9jb250ZXh0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5z IGEgWlpfcENvbnRleHQgZm9yIHNlbGYucHJpbWVec2VsZi5wcmVjX2NhcAorIAorQEAgLTE2MjAs NyArMTYyMCw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFhfc21hbGwoUG93Q29tcHV0 ZXJfWlpfcFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWxldGVfWlpfcFhfTW9kdWx1c19h cnJheShzZWxmLm1vZCkKKyAKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X2Nv bnRleHQoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBudGxfWlpfcENvbnRleHRf Y2xhc3MgZ2V0X2NvbnRleHQoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBjb250ZXh0IGZvciBwXm4uICBUaGlzIHdpbGwgdXNlIHRoZSBjYWNoZSBpZgor ICAgICAgICAgYGBhYnMobikgPD0gc2VsZi5jYWNoZV9saW1pdGBgLgorQEAgLTE2NDYsNyArMTY0 Niw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFhfc21hbGwoUG93Q29tcHV0ZXJfWlpf cFgpOgorICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICAgcmV0dXJuIFBv d0NvbXB1dGVyX1paX3BYLmdldF9jb250ZXh0KHNlbGYsIG4pCisgCistICAgIGNkZWYgcmVzdG9y ZV9jb250ZXh0KHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgcmVzdG9yZV9jb250 ZXh0KHNlbGYsIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlc3RvcmUgdGhlIGNv bnRleHQgZm9yIHBebi4gIFRoaXMgd2lsbCB1c2UgdGhlIGNhY2hlIGlmCisgICAgICAgICBgYGFi cyhuKSA8PSBzZWxmLmNhY2hlX2xpbWl0YGAuCitAQCAtMTY2Nyw3ICsxNjY3LDcgQEAgY2RlZiBj bGFzcyBQb3dDb21wdXRlcl9aWl9wWF9zbWFsbChQb3dDb21wdXRlcl9aWl9wWCk6CisgICAgICAg ICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICAoPG50bF9aWl9wQ29udGV4dF9jbGFz cz5Qb3dDb21wdXRlcl9aWl9wWC5nZXRfY29udGV4dChzZWxmLCBuKSkucmVzdG9yZV9jKCkKKyAK Ky0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X3RvcF9jb250ZXh0KHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfdG9wX2NvbnRleHQo c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBaWl9wQ29udGV4dCBmb3Ig c2VsZi5wcmltZV5zZWxmLnByZWNfY2FwCisgCitAQCAtMjA0Myw3ICsyMDQzLDcgQEAgY2RlZiBj bGFzcyBQb3dDb21wdXRlcl9aWl9wWF9iaWcoUG93Q29tcHV0ZXJfWlpfcFgpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5tb2R1bHVzX2RpY3QKKyAKKy0gICAgY2RlZiBudGxf WlpfcENvbnRleHRfY2xhc3MgZ2V0X2NvbnRleHQoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X2NvbnRleHQoc2VsZiwgbG9uZyBuKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgY29udGV4dCBmb3IgcF5uLgorIAor QEAgLTIwNzksNyArMjA3OSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFhfYmlnKFBv d0NvbXB1dGVyX1paX3BYKToKKyAgICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0X2RpY3Rbbl0g PSBQb3dDb21wdXRlcl9aWl9wWC5nZXRfY29udGV4dChzZWxmLCBuKQorICAgICAgICAgICAgICAg ICByZXR1cm4gc2VsZi5jb250ZXh0X2RpY3Rbbl0KKyAKKy0gICAgY2RlZiBudGxfWlpfcENvbnRl eHRfY2xhc3MgZ2V0X3RvcF9jb250ZXh0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9a Wl9wQ29udGV4dF9jbGFzcyBnZXRfdG9wX2NvbnRleHQoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybnMgYSBaWl9wQ29udGV4dCBmb3Igc2VsZi5wcmltZV5zZWxmLnByZWNfY2Fw CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9mbGlu dC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2ZsaW50LnB4ZAoraW5k ZXggODMxODVlYzljYzkuLjdiMGQwNDIxMTVkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cGFkaWNzL3Bvd19jb21wdXRlcl9mbGludC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGlj cy9wb3dfY29tcHV0ZXJfZmxpbnQucHhkCitAQCAtMjMsNyArMjMsNyBAQCBjZGVmIGNsYXNzIFBv d0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVyX2ZsaW50KToKKyAgICAgY2RlZiBmbXB6 X3BvbHlfdCogX21vZHVsaQorICAgICBjZGVmIGZtcHpfcG9seV90KiBnZXRfbW9kdWx1cyhzZWxm LCB1bnNpZ25lZCBsb25nIG4pIG5vZXhjZXB0CisgICAgIGNkZWYgZm1wel9wb2x5X3QqIGdldF9t b2R1bHVzX2NhcGRpdihzZWxmLCB1bnNpZ25lZCBsb25nIG4pIG5vZXhjZXB0CistICAgIGNkZWYg X25ld19mbXB6X3BvbHkoc2VsZiwgZm1wel9wb2x5X3QgdmFsdWUsIHZhcj0qKSBub2V4Y2VwdAor KyAgICBjZGVmIF9uZXdfZm1wel9wb2x5KHNlbGYsIGZtcHpfcG9seV90IHZhbHVlLCB2YXI9KikK KyAKKyBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50X3VucmFtKFBvd0NvbXB1dGVyX2ZsaW50 XzFzdGVwKToKKyAgICAgIyBXQVJOSU5HOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlcl9mbGludC5weXgKK2luZGV4IDJlZjdmZjllODc5Li4yYTljOTM3OTIzZiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQucHl4CisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2ZsaW50LnB5eAorQEAgLTQzMiw3 ICs0MzIsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVy X2ZsaW50KToKKyAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0KGFucy5fcG9seSwgc2VsZi5nZXRf bW9kdWx1cyhfbilbMF0pCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgX25ld19m bXB6X3BvbHkoc2VsZiwgZm1wel9wb2x5X3QgdmFsdWUsIHZhcj0neCcpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9uZXdfZm1wel9wb2x5KHNlbGYsIGZtcHpfcG9seV90IHZhbHVlLCB2YXI9J3gnKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIHBvbHlub21pYWwgd2l0aCB0aGUgdmFs dWUgc3RvcmVkIGluIGBgdmFsdWVgYCBhbmQKKyAgICAgICAgIHZhcmlhYmxlIG5hbWUgYGB2YXJg YC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0 aXZlLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHhk CitpbmRleCA5YmM2ZjFiNDg3YS4uZGY5ODk3Njg3MjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB4ZAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weGQKK0BAIC0yNiw0ICsyNiw0IEBAIGNk ZWYgY2xhc3MgUG93Q29tcHV0ZXJfcmVsYXRpdmVfZWlzKFBvd0NvbXB1dGVyX3JlbGF0aXZlKToK KyAgICAgIyAoeF5lIC0gbW9kdWx1cykvcAorICAgICBjZGVmIHB1YmxpYyBQb2x5bm9taWFsX2dl bmVyaWNfZGVuc2UgX3NoaWZ0X3NlZWQKKyAgICAgY2RlZiBwdWJsaWMgUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlIF9pbnZfc2hpZnRfc2VlZAorLSAgICBjcGRlZiBQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UgaW52ZXJ0KHNlbGYsIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBlbGVtZW50LCBsb25n IHByZWMpIG5vZXhjZXB0CisrICAgIGNwZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBpbnZl cnQoc2VsZiwgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGVsZW1lbnQsIGxvbmcgcHJlYykKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB5 eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHl4CitpbmRl eCA1NWM1M2ExMmE2My4uOThiM2E2ZjVmYTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weXgKK0BAIC0yMjgsNyArMjI4LDcgQEAgY2RlZiBj bGFzcyBQb3dDb21wdXRlcl9yZWxhdGl2ZV9laXMoUG93Q29tcHV0ZXJfcmVsYXRpdmUpOgorICAg ICAgICAgUG93Q29tcHV0ZXJfcmVsYXRpdmUuX19pbml0X18oc2VsZiwgcHJpbWUsIGNhY2hlX2xp bWl0LCBwcmVjX2NhcCwgcmFtX3ByZWNfY2FwLCBpbl9maWVsZCwgcG9seSwgc2hpZnRfc2VlZCkK KyAgICAgICAgIHNlbGYuX2ludl9zaGlmdF9zZWVkID0gc2VsZi5pbnZlcnQoc2hpZnRfc2VlZCwg c2VsZi5yYW1fcHJlY19jYXApCisgCistICAgIGNwZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5z ZSBpbnZlcnQoc2VsZiwgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGEsIGxvbmcgcHJlYykgbm9l eGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBpbnZlcnQoc2VsZiwg UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGEsIGxvbmcgcHJlYyk6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGludmVyc2Ugb2YgYGBhYGAuCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcGFkaWNzL3JlbGF4ZWRfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3Mv cGFkaWNzL3JlbGF4ZWRfdGVtcGxhdGUucHhpCitpbmRleCBmZTcwNjU3YWNkYS4uNzA2OGExNDI1 YTIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcmVsYXhlZF90ZW1wbGF0ZS5w eGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9yZWxheGVkX3RlbXBsYXRlLnB4aQorQEAg LTE3MTAsNyArMTcxMCw3IEBAIGNkZWYgY2xhc3MgUmVsYXhlZEVsZW1lbnQocEFkaWNHZW5lcmlj RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9fcnNoaWZ0X18o LXMpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2FkZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBzdW0gb2YgdGhpcyBlbGVtZW50IHdpdGggYGBvdGhlcmBgLgorIAorQEAgLTE3MjksNyArMTcy OSw3IEBAIGNkZWYgY2xhc3MgUmVsYXhlZEVsZW1lbnQocEFkaWNHZW5lcmljRWxlbWVudCk6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIHJldHVybiBlbGVtZW50X2NsYXNzX2Fk ZChzZWxmLl9wYXJlbnQsIHNlbGYsIDxSZWxheGVkRWxlbWVudD5vdGhlcikKKyAKKy0gICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBv dGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2Yg dGhpcyBlbGVtZW50IGFuZCBgYG90aGVyYGAuCisgCitAQCAtMTc1MSw3ICsxNzUxLDcgQEAgY2Rl ZiBjbGFzcyBSZWxheGVkRWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZgorICAgICAgICAgcmV0dXJuIGVsZW1lbnRfY2xhc3Nfc3ViKHNlbGYuX3Bh cmVudCwgc2VsZiwgPFJlbGF4ZWRFbGVtZW50Pm90aGVyKQorIAorLSAgICBjcGRlZiBfbmVnXyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIG9wcG9zaXRlIG9mIHRoaXMgZWxlbWVudC4KKyAKK0BAIC0xNzY4 LDcgKzE3NjgsNyBAQCBjZGVmIGNsYXNzIFJlbGF4ZWRFbGVtZW50KHBBZGljR2VuZXJpY0VsZW1l bnQpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICByZXR1cm4gZWxlbWVudF9j bGFzc19zdWIoc2VsZi5fcGFyZW50LCBzZWxmLl9wYXJlbnQuemVybygpLCBzZWxmKQorIAorLSAg ICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNl bGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBv ZiB0aGlzIGVsZW1lbnQgd2l0aCBgYG90aGVyYGAuCisgCitAQCAtMTc5MCw3ICsxNzkwLDcgQEAg Y2RlZiBjbGFzcyBSZWxheGVkRWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToKKyAgICAgICAg ICAgICByZXR1cm4gb3RoZXIKKyAgICAgICAgIHJldHVybiBlbGVtZW50X2NsYXNzX211bChzZWxm Ll9wYXJlbnQsIHNlbGYsIDxSZWxheGVkRWxlbWVudD5vdGhlcikKKyAKKy0gICAgY3BkZWYgX2Rp dl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBvdGhlcik6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50IGlmIHRoaXMgZWxl bWVudCBieSBgYG90aGVyYGAuCisgCitAQCAtMzgzOCw3ICszODM4LDcgQEAgY2RlZiBjbGFzcyBS ZWxheGVkRWxlbWVudF91bmtub3duKFJlbGF4ZWRFbGVtZW50V2l0aERpZ2l0cyk6CisgICAgICAg ICAgICAgZGVmaW5pdGlvbiA9IHNlbGYuX2RlZmluaXRpb24KKyAgICAgICAgIHJldHVybiB1bnBp Y2tsZV91bmtub3duLCAoaWQoc2VsZiksIHNlbGYuX19jbGFzc19fLCBzZWxmLl9wYXJlbnQsIHNl bGYuX2luaXRpYWx2YWx1YXRpb24sIGRpZ2l0cywgZGVmaW5pdGlvbikKKyAKKy0gICAgY3BkZWYg c2V0KHNlbGYsIFJlbGF4ZWRFbGVtZW50IGRlZmluaXRpb24pIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBzZXQoc2VsZiwgUmVsYXhlZEVsZW1lbnQgZGVmaW5pdGlvbik6CisgICAgICAgICByIiIiCisg ICAgICAgICBTZXQgdGhlIHJlY3Vyc2l2ZSBkZWZpbml0aW9uIG9mIHRoaXMgc2VsZi1yZWZlcmVu dCBudW1iZXIuCisgCitAQCAtNDE1NSw3ICs0MTU1LDcgQEAgY2RlZiBjbGFzcyBFeHBhbnNpb25J dGVyKCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmCisgCistICAgIGNkZWYg X25leHRfc2ltcGxlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZXh0X3NpbXBsZShzZWxm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbmV4dCBkaWdpdCBvZiB0aGlz IGV4cGFuc2lvbiAoc2ltcGxlIG1vZGUpLgorICAgICAgICAgIiIiCitAQCAtNDE2NSw3ICs0MTY1 LDcgQEAgY2RlZiBjbGFzcyBFeHBhbnNpb25JdGVyKCk6CisgICAgICAgICBzZWxmLmN1cnJlbnQg Kz0gMQorICAgICAgICAgcmV0dXJuIGRpZ2l0X2dldF9zYWdlKHNlbGYuZGlnaXQpCisgCistICAg IGNkZWYgX25leHRfc21hbGxlc3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX25leHRfc21h bGxlc3Qoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG5leHQgZGln aXQgb2YgdGhpcyBleHBhbnNpb24gKHNtYWxsZXN0IG1vZGUpLgorICAgICAgICAgIiIiCitAQCAt NDE3Niw3ICs0MTc2LDcgQEAgY2RlZiBjbGFzcyBFeHBhbnNpb25JdGVyKCk6CisgICAgICAgICBz ZWxmLmN1cnJlbnQgKz0gMQorICAgICAgICAgcmV0dXJuIGRpZ2l0X2dldF9zYWdlKHNlbGYuZGln aXQpCisgCistICAgIGNkZWYgX25leHRfdGVpY2htdWxsZXIoc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgX25leHRfdGVpY2htdWxsZXIoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIG5leHQgZGlnaXQgb2YgdGhpcyBleHBhbnNpb24gKFRlaWNobcO8bGxlciBtb2Rl KS4KKyAgICAgICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9yZWxh eGVkX3RlbXBsYXRlX2hlYWRlci5weGkgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcmVsYXhlZF90 ZW1wbGF0ZV9oZWFkZXIucHhpCitpbmRleCAxYmFhNGJmZGJlNy4uN2E1NzE0MWU5MjIgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcmVsYXhlZF90ZW1wbGF0ZV9oZWFkZXIucHhp CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcmVsYXhlZF90ZW1wbGF0ZV9oZWFkZXIucHhp CitAQCAtMTMwLDcgKzEzMCw3IEBAIGNkZWYgY2xhc3MgUmVsYXhlZEVsZW1lbnRfdGVpY2htdWxs ZXIoUmVsYXhlZEVsZW1lbnRXaXRoRGlnaXRzKToKKyBjZGVmIGNsYXNzIFJlbGF4ZWRFbGVtZW50 X3Vua25vd24oUmVsYXhlZEVsZW1lbnRXaXRoRGlnaXRzKToKKyAgICAgY2RlZiBSZWxheGVkRWxl bWVudCBfZGVmaW5pdGlvbgorICAgICBjZGVmIGxvbmcgX25leHQKKy0gICAgY3BkZWYgc2V0KHNl bGYsIFJlbGF4ZWRFbGVtZW50IGRlZmluaXRpb24pIG5vZXhjZXB0CisrICAgIGNwZGVmIHNldChz ZWxmLCBSZWxheGVkRWxlbWVudCBkZWZpbml0aW9uKQorICAgICAjIGZvciBwaWNrbGluZworICAg ICBjZGVmIGxvbmcgX2luaXRpYWx2YWx1YXRpb24KKyAgICAgY2RlZiBsb25nIF9pbml0aWFscHJl Y3JlbAorQEAgLTE0OSwxMSArMTQ5LDExIEBAIGNkZWYgY2xhc3MgRXhwYW5zaW9uSXRlcigpOgor ICAgICBjZGVmIGxvbmcgY3VycmVudAorICAgICBjZGVmIGNkaWdpdCBkaWdpdAorICAgICAjIHNp bXBsZSBtb2RlCistICAgIGNkZWYgX25leHRfc2ltcGxlKHNlbGYpIG5vZXhjZXB0CisrICAgIGNk ZWYgX25leHRfc2ltcGxlKHNlbGYpCisgICAgICMgc21hbGxlc3QgbW9kZQorICAgICBjZGVmIGNk aWdpdCBjYXJyeQorLSAgICBjZGVmIF9uZXh0X3NtYWxsZXN0KHNlbGYpIG5vZXhjZXB0CisrICAg IGNkZWYgX25leHRfc21hbGxlc3Qoc2VsZikKKyAgICAgIyB0ZWljaG11bGxlciBtb2RlCisgICAg IGNkZWYgUmVsYXhlZEVsZW1lbnQgdGFpbAorICAgICBjZGVmIGRpY3QgY29lZmZpY2llbnRzCist ICAgIGNkZWYgX25leHRfdGVpY2htdWxsZXIoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBfbmV4 dF90ZWljaG11bGxlcihzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvZXZhbHVhdGlvbl9mbGludC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2YWx1 YXRpb25fZmxpbnQucHhkCitpbmRleCA0NTA0ZThhZjYzYy4uYjY5OTg3MWJhMGMgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2YWx1YXRpb25fZmxpbnQucHhkCisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2YWx1YXRpb25fZmxpbnQucHhkCitAQCAtMiw1 ICsyLDUgQEAgZnJvbSBzYWdlLmxpYnMuZmxpbnQudHlwZXMgY2ltcG9ydCBmbXB6X3BvbHlfdAor IGZyb20gc2FnZS5saWJzLm1wZnIudHlwZXMgY2ltcG9ydCBtcGZyX3QKKyBmcm9tIHNhZ2UubGli cy5tcGZpLnR5cGVzIGNpbXBvcnQgbXBmaV90CisgCistY2RlZiBmbXB6X3BvbHlfZXZhbHVhdGlv bl9tcGZyKG1wZnJfdCByZXMsIGNvbnN0IGZtcHpfcG9seV90IHBvbHksIGNvbnN0IG1wZnJfdCBh KSBub2V4Y2VwdAorLWNkZWYgZm1wel9wb2x5X2V2YWx1YXRpb25fbXBmaShtcGZpX3QgcmVzLCBj b25zdCBmbXB6X3BvbHlfdCBwb2x5LCBjb25zdCBtcGZpX3QgYSkgbm9leGNlcHQKKytjZGVmIGZt cHpfcG9seV9ldmFsdWF0aW9uX21wZnIobXBmcl90IHJlcywgY29uc3QgZm1wel9wb2x5X3QgcG9s eSwgY29uc3QgbXBmcl90IGEpCisrY2RlZiBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZpKG1wZmlf dCByZXMsIGNvbnN0IGZtcHpfcG9seV90IHBvbHksIGNvbnN0IG1wZmlfdCBhKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9mbGludC5weXggYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2YWx1YXRpb25fZmxpbnQucHl4CitpbmRleCBmZWYzYmRk ZWNiNS4uMWM1OTA5YzM3YjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L2V2YWx1YXRpb25fZmxpbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2 YWx1YXRpb25fZmxpbnQucHl4CitAQCAtMzYsNyArMzYsNyBAQCBmcm9tIHNhZ2UubGlicy5mbGlu dC5mbXB6X3BvbHkgY2ltcG9ydCAqCisgZnJvbSBzYWdlLmxpYnMuZmxpbnQuZm1wel9wb2x5X3Nh Z2UgY2ltcG9ydCAqCisgCisgCistY2RlZiBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZyKG1wZnJf dCByZXMsIGNvbnN0IGZtcHpfcG9seV90IHBvbHksIGNvbnN0IG1wZnJfdCBhKSBub2V4Y2VwdDoK KytjZGVmIGZtcHpfcG9seV9ldmFsdWF0aW9uX21wZnIobXBmcl90IHJlcywgY29uc3QgZm1wel9w b2x5X3QgcG9seSwgY29uc3QgbXBmcl90IGEpOgorICAgICBjZGVmIG1wel90IGMKKyAgICAgY2Rl ZiBsb25nIGkKKyAKK0BAIC01MSw3ICs1MSw3IEBAIGNkZWYgZm1wel9wb2x5X2V2YWx1YXRpb25f bXBmcihtcGZyX3QgcmVzLCBjb25zdCBmbXB6X3BvbHlfdCBwb2x5LCBjb25zdCBtcGZyX3QKKyAK KyAgICAgbXB6X2NsZWFyKGMpCisgCistY2RlZiBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZpKG1w ZmlfdCByZXMsIGNvbnN0IGZtcHpfcG9seV90IHBvbHksIGNvbnN0IG1wZmlfdCBhKSBub2V4Y2Vw dDoKKytjZGVmIGZtcHpfcG9seV9ldmFsdWF0aW9uX21wZmkobXBmaV90IHJlcywgY29uc3QgZm1w el9wb2x5X3QgcG9seSwgY29uc3QgbXBmaV90IGEpOgorICAgICBjZGVmIG1wel90IGMKKyAgICAg Y2RlZiBsb25nIGkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2 YWx1YXRpb25fbnRsLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9u dGwucHhkCitpbmRleCA0NTUxMDM3ZWNjYS4uOWFmMGEwYjlkNDAgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2YWx1YXRpb25fbnRsLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9ldmFsdWF0aW9uX250bC5weGQKK0BAIC0yLDUgKzIsNSBAQCBmcm9t IHNhZ2UubGlicy5udGwudHlwZXMgY2ltcG9ydCBaWlhfYworIGZyb20gc2FnZS5saWJzLm1wZnIu dHlwZXMgY2ltcG9ydCBtcGZyX3QKKyBmcm9tIHNhZ2UubGlicy5tcGZpLnR5cGVzIGNpbXBvcnQg bXBmaV90CisgCistY2RlZiBaWlhfZXZhbHVhdGlvbl9tcGZyKG1wZnJfdCByZXMsIFpaWF9jIHBv bHksIGNvbnN0IG1wZnJfdCBhKSBub2V4Y2VwdAorLWNkZWYgWlpYX2V2YWx1YXRpb25fbXBmaSht cGZpX3QgcmVzLCBaWlhfYyBwb2x5LCBjb25zdCBtcGZpX3QgYSkgbm9leGNlcHQKKytjZGVmIFpa WF9ldmFsdWF0aW9uX21wZnIobXBmcl90IHJlcywgWlpYX2MgcG9seSwgY29uc3QgbXBmcl90IGEp CisrY2RlZiBaWlhfZXZhbHVhdGlvbl9tcGZpKG1wZmlfdCByZXMsIFpaWF9jIHBvbHksIGNvbnN0 IG1wZmlfdCBhKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVh dGlvbl9udGwucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9ldmFsdWF0aW9uX250bC5w eXgKK2luZGV4IGI2ZmY0NzMyNTQyLi4yOGIzOTE3ZDNhMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9udGwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL2V2YWx1YXRpb25fbnRsLnB5eAorQEAgLTM4LDcgKzM4LDcgQEAgZnJvbSBz YWdlLmxpYnMubnRsLlpaIGNpbXBvcnQgKgorIGZyb20gc2FnZS5saWJzLm50bC5aWlggY2ltcG9y dCAqCisgCisgCistY2RlZiBaWlhfZXZhbHVhdGlvbl9tcGZyKG1wZnJfdCByZXMsIFpaWF9jIHBv bHksIGNvbnN0IG1wZnJfdCBhKSBub2V4Y2VwdDoKKytjZGVmIFpaWF9ldmFsdWF0aW9uX21wZnIo bXBmcl90IHJlcywgWlpYX2MgcG9seSwgY29uc3QgbXBmcl90IGEpOgorICAgICBjZGVmIG1wel90 IGMKKyAgICAgY2RlZiBsb25nIGkKKyAKK0BAIC01Myw3ICs1Myw3IEBAIGNkZWYgWlpYX2V2YWx1 YXRpb25fbXBmcihtcGZyX3QgcmVzLCBaWlhfYyBwb2x5LCBjb25zdCBtcGZyX3QgYSkgbm9leGNl cHQ6CisgCisgICAgIG1wel9jbGVhcihjKQorIAorLWNkZWYgWlpYX2V2YWx1YXRpb25fbXBmaSht cGZpX3QgcmVzLCBaWlhfYyBwb2x5LCBjb25zdCBtcGZpX3QgYSkgbm9leGNlcHQ6CisrY2RlZiBa WlhfZXZhbHVhdGlvbl9tcGZpKG1wZmlfdCByZXMsIFpaWF9jIHBvbHksIGNvbnN0IG1wZmlfdCBh KToKKyAgICAgY2RlZiBtcHpfdCBjCisgICAgIGNkZWYgbG9uZyBpCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxiZXJ0LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvaGlsYmVydC5weXgKK2luZGV4IDE0N2RiNTY5MWMzLi5iYTQzYzFkM2JhNSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5weXgKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5weXgKK0BAIC04NCw3ICs4NCw3IEBAIGNk ZWYgaW5saW5lIGJpbnQgaW5kaXZpc2libGVfaW5fbGlzdChFVHVwbGUgbSwgbGlzdCBMLCBzaXpl X3QgaSkgbm9leGNlcHQ6CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgIHJldHVybiBU cnVlCisgCistY2RlZiBpbmxpbmUgbGlzdCBpbnRlcnJlZChsaXN0IEwpIG5vZXhjZXB0OgorK2Nk ZWYgaW5saW5lIGxpc3QgaW50ZXJyZWQobGlzdCBMKToKKyAgICAgIiIiCisgICAgIFJldHVybiBp bnRlcnJlZHVjdGlvbiBvZiBhIGxpc3Qgb2YgbW9ub21pYWxzLgorIAorQEAgLTExNiw3ICsxMTYs NyBAQCBjZGVmIGlubGluZSBsaXN0IGludGVycmVkKGxpc3QgTCkgbm9leGNlcHQ6CisgICAgICAg ICAgICAgcmVzdWx0LmFwcGVuZChtKQorICAgICByZXR1cm4gcmVzdWx0CisgCistY2RlZiBsaXN0 IHF1b3RpZW50KGxpc3QgTCwgRVR1cGxlIG0pIG5vZXhjZXB0OgorK2NkZWYgbGlzdCBxdW90aWVu dChsaXN0IEwsIEVUdXBsZSBtKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgcXVvdGllbnQg b2YgdGhlIGlkZWFsIHJlcHJlc2VudGVkIGJ5IGBgTGBgIGFuZCB0aGUKKyAgICAgbW9ub21pYWwg cmVwcmVzZW50ZWQgYnkgYGBtYGAuCitAQCAtMTI3LDcgKzEyNyw3IEBAIGNkZWYgbGlzdCBxdW90 aWVudChsaXN0IEwsIEVUdXBsZSBtKSBub2V4Y2VwdDoKKyAgICAgICAgIHJlc3VsdC5hcHBlbmQo KDxFVHVwbGU+UHlMaXN0X0dFVF9JVEVNKEwsaSkpLmRpdmlkZV9ieV9nY2QobSkpCisgICAgIHJl dHVybiBpbnRlcnJlZChyZXN1bHQpCisgCistY2RlZiBsaXN0IHF1b3RpZW50X2J5X3ZhcihsaXN0 IEwsIHNpemVfdCBpbmRleCkgbm9leGNlcHQ6CisrY2RlZiBsaXN0IHF1b3RpZW50X2J5X3Zhcihs aXN0IEwsIHNpemVfdCBpbmRleCk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHF1b3RpZW50 IG9mIHRoZSBpZGVhbCByZXByZXNlbnRlZCBieSBgYExgYCBhbmQgdGhlCisgICAgIHZhcmlhYmxl IG51bWJlciBgYGluZGV4YGAuCitAQCAtMTQwLDcgKzE0MCw3IEBAIGNkZWYgbGlzdCBxdW90aWVu dF9ieV92YXIobGlzdCBMLCBzaXplX3QgaW5kZXgpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJl c3VsdC5hcHBlbmQoKDxFVHVwbGU+IFB5TGlzdF9HRVRfSVRFTShMLCBpKSkuZGl2aWRlX2J5X3Zh cihpbmRleCkpCisgICAgIHJldHVybiBpbnRlcnJlZChyZXN1bHQpCisgCistY2RlZiBFVHVwbGUg c3VtX2Zyb21fbGlzdChsaXN0IEwsIHNpemVfdCBzLCBzaXplX3QgbCkgbm9leGNlcHQ6CisrY2Rl ZiBFVHVwbGUgc3VtX2Zyb21fbGlzdChsaXN0IEwsIHNpemVfdCBzLCBzaXplX3QgbCk6CisgICAg ICIiIgorICAgICBDb21wdXRlIHRoZSB2ZWN0b3Igc3VtIG9mIHRoZSBFVHVwbGVzIGluIGBgTFtz OnMrbF1gYCBpbiBhIGJhbGFuY2VkIHdheS4KKyAgICAgIiIiCitAQCAtMjg2LDcgKzI4Niw3IEBA IGNkZWYgYmludCBIaWxiZXJ0QmFzZUNhc2UoUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 IGZocywgTm9kZSBELCB0dXBsZSB3KSBuCisgICAgICMgV2UgYXJlIGluIGEgdHJ1bHkgZGlmZmlj dWx0IGNhc2UgYW5kIGdpdmUgdXAgZm9yIG5vdy4uLgorICAgICByZXR1cm4gRmFsc2UKKyAKKy1j ZGVmIG1ha2VfY2hpbGRyZW4oTm9kZSBELCB0dXBsZSB3KSBub2V4Y2VwdDoKKytjZGVmIG1ha2Vf Y2hpbGRyZW4oTm9kZSBELCB0dXBsZSB3KToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBjaGlsZCBu b2RlcyBpbiBgYERgYCB0aGF0IGFsbG93IHRvIGNvbXB1dGUgdGhlIGZpcnN0IEhpbGJlcnQKKyAg ICAgc2VyaWVzIG9mIGBgRC5JZGBgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv bGF1cmVudF9wb2x5bm9taWFsLnB4ZAoraW5kZXggZDk5MjQzYWFmM2QuLjhlOTEwN2FlYjQ3IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5w eGQKK0BAIC0yLDE2ICsyLDE2IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudCBjaW1wb3J0 IENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQsIE1vZHVsZUVsZW1lbnQsIFJpCisgCisgCisgY2Rl ZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKy0g ICAgY2RlZiBMYXVyZW50UG9seW5vbWlhbCBfbmV3X2Moc2VsZikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90 aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKSBub2V4Y2Vw dAorKyAgICBjZGVmIExhdXJlbnRQb2x5bm9taWFsIF9uZXdfYyhzZWxmKQorKyAgICBjcGRlZiBf YWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNw ZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpCisgICAgIGNwZGVmIGxvbmcgbnVtYmVyX29mX3Rl cm1zKHNlbGYpIGV4Y2VwdCAtMQorLSAgICBjcGRlZiBkaWN0IGRpY3Qoc2VsZikgbm9leGNlcHQK KysgICAgY3BkZWYgZGljdCBkaWN0KHNlbGYpCisgCisgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5v bWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgY2RlZiBNb2R1bGVFbGVt ZW50IF9fdQorICAgICBjZGVmIGxvbmcgX19uCistICAgIGNwZGVmIF9ub3JtYWxpemUoc2VsZikg bm9leGNlcHQKKy0gICAgY3BkZWYgX3Vuc2FmZV9tdXRhdGUoc2VsZiwgaSwgdmFsdWUpIG5vZXhj ZXB0CisrICAgIGNwZGVmIF9ub3JtYWxpemUoc2VsZikKKysgICAgY3BkZWYgX3Vuc2FmZV9tdXRh dGUoc2VsZiwgaSwgdmFsdWUpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9sYXVyZW50X3BvbHlub21pYWwucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9s YXVyZW50X3BvbHlub21pYWwucHl4CitpbmRleCBmNjNiMjU2ZWUxMy4uYTgzMGVmN2Y1MTAgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB5 eAorQEAgLTIxLDcgKzIxLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbChDb21tdXRh dGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgIiIiCisgICAgIEJhc2UgY2xhc3MgZm9yIExhdXJl bnQgcG9seW5vbWlhbHMuCisgICAgICIiIgorLSAgICBjZGVmIExhdXJlbnRQb2x5bm9taWFsIF9u ZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMYXVyZW50UG9seW5vbWlhbCBfbmV3X2Mo c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBMYXVyZW50IHBvbHlu b21pYWwuCisgCitAQCAtMzcsNyArMzcsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFs KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgYW5zLl9wYXJlbnQgPSBzZWxm Ll9wYXJlbnQKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwg b3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEFic3RyYWN0IGFkZGl0aW9uIG1ldGhvZAorIAorQEAgLTUyLDcgKzUy LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbChDb21tdXRhdGl2ZUFsZ2VicmFFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgor IAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9t dWxfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWJzdHJhY3QgbXVsdGlw bGljYXRpb24gbWV0aG9kCisgCitAQCAtNjcsNyArNjcsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQ b2x5bm9taWFsKENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNwZGVmIF9mbG9vcmRpdl8o c2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVy KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWJzdHJhY3QgZmxvb3IgZGl2aXNpb24gbWV0aG9k CisgCitAQCAtMjIxLDcgKzIyMSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWwoQ29t bXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLm51bWJlcl9vZl90ZXJtcygpCisgCistICAgIGNwZGVmIGRpY3QgZGljdChzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgZGljdCBkaWN0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBBYnN0cmFjdCBgYGRpY3RgYCBtZXRob2QuCisgCitAQCAtNTMzLDcgKzUzMyw3IEBAIGNkZWYg Y2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgdSA9IHUubWFwX2NvZWZmaWNpZW50cyhiYXNlX21hcCkKKyAgICAgICAgIHJl dHVybiBjb2RvbWFpbih1KHgpICogeCoqc2VsZi5fX24pCisgCistICAgIGNwZGVmIF9ub3JtYWxp emUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ub3JtYWxpemUoc2VsZik6CisgICAgICAg ICByIiIiCisgICAgICAgICBBIExhdXJlbnQgc2VyaWVzIGlzIGEgcGFpciBgKHUodCksIG4pYCwg d2hlcmUgZWl0aGVyIGB1ID0gMGAKKyAgICAgICAgICh0byBzb21lIHByZWNpc2lvbikgb3IgYHVg IGlzIGEgdW5pdC4gVGhpcyBwYWlyIGNvcnJlc3BvbmRzIHRvCitAQCAtODQyLDcgKzg0Miw3IEBA IGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlh bCk6CisgICAgICAgICBkID0ge3JlcHIoZyk6IFIudmFyKGcpIGZvciBnIGluIHNlbGYuX3BhcmVu dC5nZW5zKCl9CisgICAgICAgICByZXR1cm4gc2VsZi5zdWJzKCoqZCkKKyAKKy0gICAgY3BkZWYg ZGljdCBkaWN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaWN0IGRpY3Qoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5nIGBg c2VsZmBgLgorIAorQEAgLTg5Nyw3ICs4OTcsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9t aWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAg ICByYWlzZSBJbmRleEVycm9yKCJMYXVyZW50IHBvbHlub21pYWxzIGFyZSBpbW11dGFibGUiKQor IAorLSAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCBpLCB2YWx1ZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIGksIHZhbHVlKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFNhZ2UgYXNzdW1lcyB0aHJvdWdob3V0IHRoYXQgY29tbXV0YXRpdmUgcmluZyBl bGVtZW50cyBhcmUKKyAgICAgICAgIGltbXV0YWJsZS4gVGhpcyBpcyByZWxldmFudCBmb3IgY2Fj aGluZywgZXRjLiBCdXQgc29tZXRpbWVzIHlvdQorQEAgLTkyMyw3ICs5MjMsNyBAQCBjZGVmIGNs YXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAg ICAgICAgICAgICAgICBzZWxmLl9fdSA9IHNlbGYuX191Ll9wYXJlbnQoY29lZmZzKQorICAgICAg ICAgc2VsZi5fbm9ybWFsaXplKCkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0X20pOgorICAgICAgICAgIiIi CisgICAgICAgICBBZGQgdHdvIExhdXJlbnQgcG9seW5vbWlhbHMgd2l0aCB0aGUgc2FtZSBwYXJl bnQuCisgCitAQCAtOTc3LDcgKzk3Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxf dW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQuX25vcm1hbGl6ZSgp CisgICAgICAgICByZXR1cm4gcmV0CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20p IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodF9tKToKKyAgICAgICAgICIi IgorICAgICAgICAgU3VidHJhY3QgdHdvIExhdXJlbnQgcG9seW5vbWlhbHMgd2l0aCB0aGUgc2Ft ZSBwYXJlbnQuCisgCitAQCAtMTA1MCw3ICsxMDUwLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9s eW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICMgTm8gbmVl ZCB0byBub3JtYWxpemUKKyAgICAgICAgIHJldHVybiByZXQKKyAKKy0gICAgY3BkZWYgX211bF8o c2VsZiwgcmlnaHRfcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0X3Ip OgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTA2OCw3ICsxMDY4 LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5 bm9taWFsKToKKyAgICAgICAgIHJldC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXQK KyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitAQCAtMTA4NCw3ICsxMDg0LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5v bWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldC5fbm9ybWFs aXplKCkKKyAgICAgICAgIHJldHVybiByZXQKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVs ZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpOgor ICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTE1NCw3ICsxMTU0LDcg QEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICBjID0gc2VsZi5fcGFyZW50Ll9SKHNlbGYuX191LmxlYWRpbmdf Y29lZmZpY2llbnQoKSAqKiByaWdodCkKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50 LmVsZW1lbnRfY2xhc3Moc2VsZi5fcGFyZW50LCBjLCBzZWxmLl9fbipyaWdodCkKKyAKKy0gICAg Y3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmxvb3Jk aXZfKHNlbGYsIHJocyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBlcmZvcm0gZGl2aXNpb24g d2l0aCByZW1haW5kZXIgYW5kIHJldHVybiB0aGUgcXVvdGllbnQuCisgCitAQCAtMTI0Miw3ICsx MjQyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQ b2x5bm9taWFsKToKKyAgICAgICAgICMgTm8gbmVlZCB0byBub3JtYWxpemUKKyAgICAgICAgIHJl dHVybiByZXQKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmhzKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2Rpdl8oc2VsZiwgcmhzKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6 OgorIAorQEAgLTE0NzQsNyArMTQ3NCw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxf dW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICBxci5fbm9ybWFsaXplKCkK KyAgICAgICAgIHJldHVybiBxbCwgcXIKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJp Z2h0X3IsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdo dF9yLCBpbnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcGFyaXNvbiBvZiBgYHNl bGZgYCBhbmQgYGByaWdodF9yYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWxfbXBhaXIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWxfbXBhaXIucHhkCitpbmRleCBmNzFjY2I1NzAzMC4u NzlmMDlkZWY2YWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJl bnRfcG9seW5vbWlhbF9tcGFpci5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv bGF1cmVudF9wb2x5bm9taWFsX21wYWlyLnB4ZAorQEAgLTcsOCArNyw4IEBAIGNkZWYgY2xhc3Mg TGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBvbHlub21pYWwpOgorICAgICBjZGVmIEVU dXBsZSBfbW9uCisgICAgIGNkZWYgTVBvbHlub21pYWwgX3BvbHkKKyAgICAgY2RlZiBQb2x5RGlj dCBfcHJvZAorLSAgICBjZGVmIF9jb21wdXRlX3BvbHlkaWN0KHNlbGYpIG5vZXhjZXB0CistICAg IGNkZWYgX25vcm1hbGl6ZShzZWxmLCBpPSopIG5vZXhjZXB0CistICAgIGNwZGVmIHJlc2NhbGVf dmFycyhzZWxmLCBkaWN0IGQsIGg9KiwgbmV3X3Jpbmc9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYg dG9yaWNfY29vcmRpbmF0ZV9jaGFuZ2Uoc2VsZiwgTSwgaD0qLCBuZXdfcmluZz0qKSBub2V4Y2Vw dAorLSAgICBjcGRlZiB0b3JpY19zdWJzdGl0dXRlKHNlbGYsIHYsIHYxLCBhLCBoPSosIG5ld19y aW5nPSopIG5vZXhjZXB0CisrICAgIGNkZWYgX2NvbXB1dGVfcG9seWRpY3Qoc2VsZikKKysgICAg Y2RlZiBfbm9ybWFsaXplKHNlbGYsIGk9KikKKysgICAgY3BkZWYgcmVzY2FsZV92YXJzKHNlbGYs IGRpY3QgZCwgaD0qLCBuZXdfcmluZz0qKQorKyAgICBjcGRlZiB0b3JpY19jb29yZGluYXRlX2No YW5nZShzZWxmLCBNLCBoPSosIG5ld19yaW5nPSopCisrICAgIGNwZGVmIHRvcmljX3N1YnN0aXR1 dGUoc2VsZiwgdiwgdjEsIGEsIGg9KiwgbmV3X3Jpbmc9KikKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbF9tcGFpci5weXggYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbF9tcGFpci5weXgKK2luZGV4IDI4 NTE2M2RhZGE0Li5iMzMwNDAyZGI0YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvbGF1cmVudF9wb2x5bm9taWFsX21wYWlyLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWxfbXBhaXIucHl4CitAQCAtMjUxLDcgKzI1MSw3 IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBvbHlub21pYWwp OgorICAgICAgICAgZnJvbSBzYWdlLm1pc2MubWlzY19jIGltcG9ydCBwcm9kCisgICAgICAgICBy ZXR1cm4gY29kb21haW4ocChpbV9nZW5zKSAqIHByb2QoaWcqKm1baW1fZ2Vucy5pbmRleChpZyld IGZvciBpZyBpbiBpbV9nZW5zKSkKKyAKKy0gICAgY2RlZiBfbm9ybWFsaXplKHNlbGYsIGk9Tm9u ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmLCBpPU5vbmUpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmVtb3ZlIHRoZSBjb21tb24gbW9ub21pYWxzIGZyb20gYGBzZWxm Ll9wb2x5YGAgYW5kIHN0b3JlCisgICAgICAgICB0aGVtIGluIGBgc2VsZi5fbW9uYGAuCitAQCAt MzAyLDcgKzMwMiw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVu dFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBzZWxmLl9wb2x5ID0gPE1vZHVsZUVsZW1l bnQgPiAoc2VsZi5fcG9seSAvLyBzZWxmLl9wb2x5Ll9wYXJlbnQuZ2VuKGkpKQorICAgICAgICAg ICAgICAgICBzZWxmLl9tb24gPSBzZWxmLl9tb24uZWFkZF9wKGUsIGkpCisgCistICAgIGNkZWYg X2NvbXB1dGVfcG9seWRpY3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2NvbXB1dGVfcG9s eWRpY3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC03 OTYsNyArNzk2LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50 UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgdi5zb3J0KCkKKyAgICAgICAgIHJldHVybiB0dXBs ZSh2KQorIAorLSAgICBjcGRlZiBkaWN0IGRpY3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGRpY3QgZGljdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZmBg IHJlcHJlc2VudGVkIGFzIGEgYGBkaWN0YGAuCisgCitAQCAtODM4LDcgKzgzOCw3IEBAIGNkZWYg Y2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAg ICAgICAgICAgICBkZW5vbSAqPSB2YXJbaV0gKiogKC1qKQorICAgICAgICAgcmV0dXJuIChudW1l ciwgZGVub20pCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgTGF1cmVudCBwb2x5bm9taWFsIGBgc2VsZiArIHJpZ2h0YGAuCisgCitAQCAtODYz LDcgKzg2Myw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBv bHlub21pYWwpOgorICAgICAgICAgICAgIGFucy5fcG9seSArPSByaWdodC5fcG9seQorICAgICAg ICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIExhdXJlbnQgcG9seW5vbWlhbCBgYHNlbGYgLSByaWdodGBgLgorIAorQEAg LTg4OSw3ICs4ODksNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExhdXJl bnRQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBhbnMuX3BvbHkgLT0gcmlnaHQuX3BvbHkKKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmhzKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmhzKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBkaXZpc2lvbiBvZiBgYHNlbGZgYCBieSBgYHJoc2BgLgorIAorQEAgLTk0MCw3 ICs5NDAsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExhdXJlbnRQb2x5 bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BvbHkuaXNfbW9u b21pYWwoKQorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBgYC1zZWxmYGAuCisg CitAQCAtOTU2LDcgKzk1Niw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIo TGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgYW5zLl9wb2x5ID0gLXNlbGYuX3BvbHkKKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGYgKiByaWdodGBgIHdoZXJlIGBgcmln aHRgYCBpcyBpbiBgYHNlbGZgYCdzIGJhc2UgcmluZy4KKyAKK0BAIC05NzIsNyArOTcyLDcgQEAg Y2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6Cisg ICAgICAgICBhbnMuX3BvbHkgPSBzZWxmLl9wb2x5ICogcmlnaHQKKyAgICAgICAgIHJldHVybiBh bnMKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gYGBsZWZ0ICogc2VsZmBgIHdoZXJlIGBgbGVmdGBgIGlzIGluIGBgc2VsZmBg J3MgYmFzZSByaW5nLgorIAorQEAgLTk4OCw3ICs5ODgsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQ b2x5bm9taWFsX21wYWlyKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIGFucy5fcG9seSA9 IGxlZnQgKiBzZWxmLl9wb2x5CisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9t dWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmICogcmlnaHRgYC4KKyAKK0BA IC0xMDA1LDcgKzEwMDUsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExh dXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIGFucy5fcG9seSA9IHNlbGYuX3BvbHkgKiAoIDwg TGF1cmVudFBvbHlub21pYWxfbXBhaXIgPiByaWdodCkuX3BvbHkKKyAgICAgICAgIHJldHVybiBh bnMKKyAKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBQ ZXJmb3JtIGRpdmlzaW9uIHdpdGggcmVtYWluZGVyIGFuZCByZXR1cm4gdGhlIHF1b3RpZW50Lgor IAorQEAgLTExMDcsNyArMTEwNyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBh aXIoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgcmwuX25vcm1hbGl6ZSgpCisgICAgICAg ICByZXR1cm4gKHFsLCBybCkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBp bnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBv cCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgdHdvIHBvbHlub21pYWxzIGluIGEg YExhdXJlbnRQb2x5bm9taWFsUmluZ2AgYmFzZWQgb24gdGhlIHRlcm0KKyAgICAgICAgIG9yZGVy IGZyb20gdGhlIHBhcmVudCByaW5nLiAgSWYgdGhlIHBhcmVudCByaW5nIGRvZXMgbm90IHNwZWNp ZnkgYSB0ZXJtCitAQCAtMTY4MCw3ICsxNjgwLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5v bWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgYW5zLl9wb2x5ID0g cm9vdAorICAgICAgICAgICAgIHJldHVybiAoVHJ1ZSwgYW5zKQorIAorLSAgICBjcGRlZiByZXNj YWxlX3ZhcnMoc2VsZiwgZGljdCBkLCBoPU5vbmUsIG5ld19yaW5nPU5vbmUpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiByZXNjYWxlX3ZhcnMoc2VsZiwgZGljdCBkLCBoPU5vbmUsIG5ld19yaW5nPU5v bmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmVzY2FsZSB2YXJpYWJsZXMgaW4gYSBMYXVy ZW50IHBvbHlub21pYWwuCisgCitAQCAtMTc0Nyw3ICsxNzQ3LDcgQEAgY2RlZiBjbGFzcyBMYXVy ZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0 dXJuIG5ld19yaW5nKGFucykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgdG9y aWNfY29vcmRpbmF0ZV9jaGFuZ2Uoc2VsZiwgTSwgaD1Ob25lLCBuZXdfcmluZz1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgdG9yaWNfY29vcmRpbmF0ZV9jaGFuZ2Uoc2VsZiwgTSwgaD1Ob25l LCBuZXdfcmluZz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEFwcGx5IGEgbWF0cml4 IHRvIHRoZSBleHBvbmVudHMgaW4gYSBMYXVyZW50IHBvbHlub21pYWwuCisgCitAQCAtMTgxNiw3 ICsxODE2LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0dXJuIG5ld19yaW5nKGFucykKKyAgICAgICAgIHJl dHVybiBhbnMKKyAKKy0gICAgY3BkZWYgdG9yaWNfc3Vic3RpdHV0ZShzZWxmLCB2LCB2MSwgYSwg aD1Ob25lLCBuZXdfcmluZz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdG9yaWNfc3Vic3Rp dHV0ZShzZWxmLCB2LCB2MSwgYSwgaD1Ob25lLCBuZXdfcmluZz1Ob25lKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFBlcmZvcm0gYSBzaW5nbGUtdmFyaWFibGUgc3Vic3RpdHV0aW9uIHVwIHRv IGEgdG9yaWMgY29vcmRpbmF0ZSBjaGFuZ2UuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvbXVsdGlfcG9seW5vbWlhbC5weGQKK2luZGV4IDNmNGZlMTY4ODhjLi45Yzk2Y2U3YTUw NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlh bC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbC5w eGQKK0BAIC0zLDggKzMsOCBAQCBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5jb21tdXRhdGl2 ZV9wb2x5bm9taWFsIGNpbXBvcnQgQ29tbXV0YXRpdmVQb2x5bm9taWFsCisgCisgY2RlZiBjbGFz cyBNUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICBjZGVmIGxvbmcgX2hh c2hfYyhzZWxmKSBleGNlcHQgLTEKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpIG5vZXhj ZXB0CistICAgIGNwZGVmIGRpY3QgX21wb2x5X2RpY3RfcmVjdXJzaXZlKHNlbGYsIHR1cGxlIHZh cnM9KiwgYmFzZV9yaW5nPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0 KQorKyAgICBjcGRlZiBkaWN0IF9tcG9seV9kaWN0X3JlY3Vyc2l2ZShzZWxmLCB0dXBsZSB2YXJz PSosIGJhc2VfcmluZz0qKQorIAorIAorIGNkZWYgY2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3Vs YXIoTVBvbHlub21pYWwpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv bXVsdGlfcG9seW5vbWlhbC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3Bv bHlub21pYWwucHl4CitpbmRleCA2NTI5MGU5ZTJkNy4uMzcyNDdmMzY1NzEgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWwucHl4CisrKysgYi9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWwucHl4CitAQCAtNDM0LDcg KzQzNCw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToK KyAgICAgICAgICAgICB6ICo9IHZhcgorICAgICAgICAgcmV0dXJuIHJpbmcodikKKyAKKy0gICAg Y3BkZWYgZGljdCBfbXBvbHlfZGljdF9yZWN1cnNpdmUoc2VsZiwgdHVwbGUgdmFycz1Ob25lLCBi YXNlX3Jpbmc9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgX21wb2x5X2RpY3RfcmVj dXJzaXZlKHNlbGYsIHR1cGxlIHZhcnM9Tm9uZSwgYmFzZV9yaW5nPU5vbmUpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIGEgYGBkaWN0YGAgb2YgY29lZmZpY2llbnQgZW50cmllcyBz dWl0YWJsZSBmb3IgY29uc3RydWN0aW9uCisgICAgICAgICBvZiBhIGBgTVBvbHlub21pYWxfcG9s eWRpY3RgYCB3aXRoIHRoZSBnaXZlbiB2YXJpYWJsZXMuCitAQCAtODEzLDcgKzgxMyw3IEBAIGNk ZWYgY2xhc3MgTVBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICAgICAgZFtlLnVud2VpZ2h0ZWRfZGVncmVlKCldW2VdID0gYworICAgICAgICAgcmV0dXJuIHtr OiBzZWxmLl9wYXJlbnQoZFtrXSkgZm9yIGsgaW4gZH0KKyAKKy0gICAgY3BkZWYgX21vZF8oc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCBvdGhlcik6CisgICAg ICAgICByIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjkyNiw3ICsyOTI2LDcgQEAg ZGVmIF9pc19NX2NvbnZleF8ocG9pbnRzKToKKyAgICAgcmV0dXJuIFRydWUKKyAKKyAKKy1jZGVm IHJlbW92ZV9mcm9tX3R1cGxlKGUsIGludCBpbmQpIG5vZXhjZXB0OgorK2NkZWYgcmVtb3ZlX2Zy b21fdHVwbGUoZSwgaW50IGluZCk6CisgICAgIHcgPSBsaXN0KGUpCisgICAgIGRlbCB3W2luZF0K KyAgICAgaWYgbGVuKHcpID09IDE6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB4ZCBiL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9pZGVhbF9saWJzaW5ndWxhci5weGQKK2lu ZGV4IGZlZmEyNDE1MjNkLi41OGY4NTM5NzNkYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9pZGVhbF9saWJzaW5ndWxhci5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9pZGVhbF9saWJzaW5n dWxhci5weGQKK0BAIC0xLDQgKzEsNCBAQAorIGZyb20gc2FnZS5saWJzLnNpbmd1bGFyLmRlY2wg Y2ltcG9ydCBpZGVhbCwgcmluZworIAorLWNkZWYgb2JqZWN0IHNpbmd1bGFyX2lkZWFsX3RvX3Nh Z2Vfc2VxdWVuY2UoaWRlYWwgKmksIHJpbmcgKnIsIG9iamVjdCBwYXJlbnQpIG5vZXhjZXB0Cisr Y2RlZiBvYmplY3Qgc2luZ3VsYXJfaWRlYWxfdG9fc2FnZV9zZXF1ZW5jZShpZGVhbCAqaSwgcmlu ZyAqciwgb2JqZWN0IHBhcmVudCkKKyBjZGVmIGlkZWFsICpzYWdlX2lkZWFsX3RvX3Npbmd1bGFy X2lkZWFsKEkpIGV4Y2VwdCBOVUxMCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB5eCBiL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9pZGVhbF9saWJzaW5ndWxhci5weXgKK2lu ZGV4IDM4ZTI1MWQ4NGNlLi4xNDgyMDQxODQ1NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9pZGVhbF9saWJzaW5ndWxhci5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9pZGVhbF9saWJzaW5n dWxhci5weXgKK0BAIC02Nyw3ICs2Nyw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUuc2VxdWVuY2Ug aW1wb3J0IFNlcXVlbmNlCisgCisgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwucGx1cmFsIGNp bXBvcnQgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwsIE5DUG9seW5vbWlhbF9wbHVyYWwKKyAKKy1j ZGVmIG9iamVjdCBzaW5ndWxhcl9pZGVhbF90b19zYWdlX3NlcXVlbmNlKGlkZWFsICppLCByaW5n ICpyLCBvYmplY3QgcGFyZW50KSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzaW5ndWxhcl9pZGVh bF90b19zYWdlX3NlcXVlbmNlKGlkZWFsICppLCByaW5nICpyLCBvYmplY3QgcGFyZW50KToKKyAg ICAgIiIiCisgICAgIGNvbnZlcnQgYSBTSU5HVUxBUiBpZGVhbCB0byBhIFNhZ2UgU2VxdWVuY2Ug KHRoZSBmb3JtYXQgU2FnZQorICAgICBzdG9yZXMgYSBHcm9lYm5lciBiYXNpcyBpbikKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2lu Z3VsYXIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xp YnNpbmd1bGFyLnB4ZAoraW5kZXggNzQ0Nzc0ZWEyMzEuLjVjYzU0NjExMmM5IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFy LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xp YnNpbmd1bGFyLnB4ZAorQEAgLTgsMTMgKzgsMTMgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJp bmdfbGlic2luZ3VsYXIKKyBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyKE1Qb2x5 bm9taWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgorICAgICBjZGVmIHBvbHkgKl9wb2x5CisgICAgIGNk ZWYgcmluZyAqX3BhcmVudF9yaW5nCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2Zsb29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX3JlcHJfc2hvcnRf KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2NvbnN0YW50KHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9ob21vZ2VuaXplKHNlbGYsIGludCB2YXIpIG5vZXhjZXB0CistICAgIGNwZGVm IE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCB4LCBNUG9s eW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgUCkgbm9leGNlcHQKKysgICAgY3BkZWYgX2FkZF8oc2Vs Ziwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfZmxv b3JkaXZfKHNlbGYsIHJpZ2h0KQorKyAgICBjcGRlZiBfcmVwcl9zaG9ydF8oc2VsZikKKysgICAg Y3BkZWYgaXNfY29uc3RhbnQoc2VsZikKKysgICAgY3BkZWYgX2hvbW9nZW5pemUoc2VsZiwgaW50 IHZhcikKKysgICAgY3BkZWYgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgX25ld19jb25zdGFudF9w b2x5KHNlbGYsIHgsIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBQKQorICAgICBjcGRlZiBs b25nIG51bWJlcl9vZl90ZXJtcyhzZWxmKSBub2V4Y2VwdAorIAorIGNkZWYgY2xhc3MgTVBvbHlu b21pYWxSaW5nX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsUmluZ19iYXNlKToKK0BAIC0yNiw0ICsy Niw0IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFs UmluZ19iYXNlKToKKyAgICAgY2RlZiByaW5nICpfcmluZworIAorICMgbmV3IHBvbHlub21pYWxz CistY2RlZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBuZXdfTVAoTVBvbHlub21pYWxSaW5nX2xp YnNpbmd1bGFyIHBhcmVudCwgcG9seSAqcCkgbm9leGNlcHQKKytjZGVmIE1Qb2x5bm9taWFsX2xp YnNpbmd1bGFyIG5ld19NUChNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgcGFyZW50LCBwb2x5 ICpwKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5v bWlhbF9saWJzaW5ndWxhci5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3Bv bHlub21pYWxfbGlic2luZ3VsYXIucHl4CitpbmRleCBlYzRhY2E1NzMzYy4uOGViZjEzY2MzY2Eg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxf bGlic2luZ3VsYXIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3Bv bHlub21pYWxfbGlic2luZ3VsYXIucHl4CitAQCAtNDY0LDcgKzQ2NCw3IEBAIGNkZWYgY2xhc3Mg TVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsUmluZ19iYXNlKToKKyAgICAg ICAgIG1lbW9baWQoc2VsZildID0gc2VsZgorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAg Y3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBgYFRydWVgYCBpZiBhbmQgb25seSBpZiB0aGVyZSBleGlzdHMgYSBjb2VyY2lvbiBt YXAgZnJvbQorICAgICAgICAgYGBvdGhlcmBgIHRvIGBgc2VsZmBgLgorQEAgLTE5NzUsNyArMTk3 NSw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGli c2luZ3VsYXJfYmFzZSk6CisgICAgICAgICBtZW1vW2lkKHNlbGYpXSA9IGNweQorICAgICAgICAg cmV0dXJuIGNweQorIAorLSAgICBjcGRlZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBfbmV3X2Nv bnN0YW50X3BvbHkoc2VsZiwgeCwgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIFApIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBfbmV3X2NvbnN0YW50X3Bv bHkoc2VsZiwgeCwgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIFApOgorICAgICAgICAgciIi IgorICAgICAgICAgUXVpY2tseSBjcmVhdGUgYSBuZXcgY29uc3RhbnQgcG9seW5vbWlhbCB3aXRo IHZhbHVlIHggaW4gdGhlIHBhcmVudCBQLgorIAorQEAgLTIxMzcsNyArMjEzNyw3IEBAIGNkZWYg Y2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGlic2luZ3VsYXJfYmFz ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9oYXNoX2MoKQorIAorLSAg ICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ29tcGFyZSBsZWZ0IGFuZCByaWdodC4KKyAKK0BAIC0yMTk1LDcgKzIxOTUsNyBAQCBjZGVm IGNsYXNzIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyX2Jh c2UpOgorICAgICAgICAgY2RlZiByaW5nICpyID0gKDxNUG9seW5vbWlhbF9saWJzaW5ndWxhcj5s ZWZ0KS5fcGFyZW50X3JpbmcKKyAgICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIHNpbmd1 bGFyX3BvbHlub21pYWxfY21wKHAsIHEsIHIpKQorIAorLSAgICBjcGRlZiBfYWRkXyhsZWZ0LCBy aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgQWRkIGxlZnQgYW5kIHJpZ2h0LgorIAorQEAgLTIyMTEsNyArMjIxMSw3 IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGlic2lu Z3VsYXJfYmFzZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxNUG9seW5v bWlhbF9saWJzaW5ndWxhcj5yaWdodCkuX3BvbHksIHIpCisgICAgICAgICByZXR1cm4gbmV3X01Q KCg8TVBvbHlub21pYWxfbGlic2luZ3VsYXI+bGVmdCkuX3BhcmVudCwgX3ApCisgCistICAgIGNw ZGVmIF9zdWJfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8obGVmdCwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCBsZWZ0IGFuZCByaWdodC4K KyAKK0BAIC0yMjI4LDcgKzIyMjgsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsX2xpYnNpbmd1 bGFyKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX3JpbmcpCisgICAgICAgICByZXR1cm4gbmV3X01QKCg8TVBvbHlub21pYWxf bGlic2luZ3VsYXI+bGVmdCkuX3BhcmVudCwgX3ApCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxm LCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVu dCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgc2VsZiB3aXRoIGEgYmFz ZSByaW5nIGVsZW1lbnQuCisgCitAQCAtMjI1Miw3ICsyMjUyLDcgQEAgY2RlZiBjbGFzcyBNUG9s eW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9iYXNlKToKKyAgICAg ICAgIHNpbmd1bGFyX3BvbHlub21pYWxfcm11bCgmX3AsIHNlbGYuX3BvbHksIGxlZnQsIF9yaW5n KQorICAgICAgICAgcmV0dXJuIG5ld19NUCgoPE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyPnNlbGYp Ll9wYXJlbnQsIF9wKQorIAorLSAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg TXVsdGlwbHkgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAtMjI3Niw3ICsyMjc2LDcgQEAgY2RlZiBj bGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9iYXNl KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPE1Qb2x5bm9taWFsX2xpYnNp bmd1bGFyPmxlZnQpLl9wYXJlbnRfcmluZykKKyAgICAgICAgIHJldHVybiBuZXdfTVAoKDxNUG9s eW5vbWlhbF9saWJzaW5ndWxhcj5sZWZ0KS5fcGFyZW50LF9wKQorIAorLSAgICBjcGRlZiBfZGl2 XyhsZWZ0LCByaWdodF9yaW5nZWxlbWVudCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKGxl ZnQsIHJpZ2h0X3JpbmdlbGVtZW50KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERpdmlkZSBs ZWZ0IGJ5IHJpZ2h0CisgCitAQCAtMjQ3OSw3ICsyNDc5LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5v bWlhbF9saWJzaW5ndWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9iYXNlKToKKyAgICAgICAg IHMgPSBzaW5ndWxhcl9wb2x5bm9taWFsX3N0cihzZWxmLl9wb2x5LCBfcmluZykKKyAgICAgICAg IHJldHVybiBzCisgCistICAgIGNwZGVmIF9yZXByX3Nob3J0XyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JlcHJfc2hvcnRfKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlz IGlzIGEgZmFzdGVyIGJ1dCBsZXNzIHByZXR0eSB3YXkgdG8gcHJpbnQgcG9seW5vbWlhbHMuIElm CisgICAgICAgICBhdmFpbGFibGUgaXQgdXNlcyB0aGUgc2hvcnQgU0lOR1VMQVIgbm90YXRpb24u CitAQCAtMzI4Miw3ICszMjgyLDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxh cihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9iYXNlKToKKyAgICAgICAgICAgICByQ2hhbmdlQ3Vy clJpbmcoX3JpbmcpCisgICAgICAgICByZXR1cm4gYm9vbChwX0lzSG9tb2dlbmVvdXMoc2VsZi5f cG9seSxfcmluZykpCisgCistICAgIGNwZGVmIF9ob21vZ2VuaXplKHNlbGYsIGludCB2YXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfaG9tb2dlbml6ZShzZWxmLCBpbnQgdmFyKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZmBgIGlmIGBgc2VsZmBgIGlzIGhvbW9nZW5lb3Vz LiAgT3RoZXJ3aXNlIHJldHVybgorICAgICAgICAgYSBob21vZ2VuaXplZCBwb2x5bm9taWFsIGNv bnN0cnVjdGVkIGJ5IG1vZGlmeWluZyB0aGUgZGVncmVlCitAQCAtMzkxNCw3ICszOTE0LDcgQEAg Y2RlZiBjbGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxh cl9iYXNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl92YXJpYWJs ZV9pbmRpY2VzXyhzb3J0PUZhbHNlKSkKKyAKKy0gICAgY3BkZWYgaXNfY29uc3RhbnQoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2NvbnN0YW50KHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhpcyBwb2x5bm9taWFsIGlzIGNvbnN0YW50Lgor IAorQEAgLTQwNTYsNyArNDA1Niw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3Vs YXIoTVBvbHlub21pYWxfbGlic2luZ3VsYXJfYmFzZSk6CisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHJldHVybiBGYWxzZQorIAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFBlcmZvcm0gZGl2aXNpb24gd2l0aCByZW1haW5kZXIgYW5kIHJldHVy biB0aGUgcXVvdGllbnQuCisgCitAQCAtNTkwOSw3ICs1OTA5LDcgQEAgY2RlZiBpbmxpbmUgcG9s eSAqYWRkd2l0aGNhcnJ5KHBvbHkgKnRlbXB2ZWN0b3IsIHBvbHkgKm1heHZlY3RvciwgaW50IHBv cywgcmluZworICAgICByZXR1cm4gdGVtcHZlY3RvcgorIAorIAorLWNkZWYgaW5saW5lIE1Qb2x5 bm9taWFsX2xpYnNpbmd1bGFyIG5ld19NUChNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgcGFy ZW50LCBwb2x5ICpqdWljZSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgTVBvbHlub21pYWxfbGli c2luZ3VsYXIgbmV3X01QKE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBwYXJlbnQsIHBvbHkg Kmp1aWNlKToKKyAgICAgIiIiCisgICAgIENvbnN0cnVjdCBNUG9seW5vbWlhbF9saWJzaW5ndWxh ciBmcm9tIHBhcmVudCBhbmQgU0lOR1VMQVIgcG9seS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZCBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHhkCitpbmRl eCBkNjM1MGMwMjBkMy4uNGNlOTAzM2RhZGIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weGQKK0BAIC04LDcg KzgsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19iYXNlKENvbW11dGF0aXZlUmluZyk6 CisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfbWFnbWFfZ2VucworICAgICBjZGVmIHB1YmxpYyBk aWN0IF9tYWdtYV9jYWNoZQorIAorLSAgICBjZGVmIF9jb2VyY2VfY19pbXBsKHNlbGYsIHgpIG5v ZXhjZXB0CisrICAgIGNkZWYgX2NvZXJjZV9jX2ltcGwoc2VsZiwgeCkKKyAKKyAKKyBjZGVmIGNs YXNzIEJvb2xlYW5Qb2x5bm9taWFsUmluZ19iYXNlKE1Qb2x5bm9taWFsUmluZ19iYXNlKToKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmlu Z19iYXNlLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9y aW5nX2Jhc2UucHl4CitpbmRleCBiYTJhYzBkYWVmNC4uNGFkMmEzZjFmYTkgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB5 eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3Jpbmdf YmFzZS5weXgKK0BAIC01NTUsNyArNTU1LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdf YmFzZShDb21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1 cm4gc2VsZi5fZ2VuZXJpY19jb2VyY2VfbWFwKHNlbGYuYmFzZV9yaW5nKCkpCisgCistICAgIGNk ZWYgX2NvZXJjZV9jX2ltcGwoc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2NvZXJjZV9j X2ltcGwoc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY2Fub25p Y2FsIGNvZXJjaW9uIG9mIHggdG8gdGhpcyBtdWx0aXZhcmlhdGUKKyAgICAgICAgIHBvbHlub21p YWwgcmluZywgaWYgb25lIGlzIGRlZmluZWQsIG9yIHJhaXNlIGEgVHlwZUVycm9yLgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5w eGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHhk CitpbmRleCA4NmIxNGY3ZDIxMy4uZjM4YmNiMGYwYzUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHhkCitAQCAtOSwyMyAr OSwyMyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWwoQWxnZWJyYUVsZW1lbnQpOgorICAgICBj ZGVmIF9pc19nZW4KKyAKKyAgICAgY2RlZiBsb25nIF9oYXNoX2Moc2VsZikgbm9leGNlcHQKKy0g ICAgY2RlZiBPcmVQb2x5bm9taWFsIF9uZXdfYyhzZWxmLCBsaXN0IGNvZWZmcywgUGFyZW50IFAs IGNoYXIgY2hlY2s9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgT3JlUG9seW5vbWlhbCBfbmV3X2Nv bnN0YW50X3BvbHkoc2VsZiwgUmluZ0VsZW1lbnQgYSwgUGFyZW50IFAsIGNoYXIgY2hlY2s9Kikg bm9leGNlcHQKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zs b29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmln aHQpIG5vZXhjZXB0CisrICAgIGNkZWYgT3JlUG9seW5vbWlhbCBfbmV3X2Moc2VsZiwgbGlzdCBj b2VmZnMsIFBhcmVudCBQLCBjaGFyIGNoZWNrPSopCisrICAgIGNwZGVmIE9yZVBvbHlub21pYWwg X25ld19jb25zdGFudF9wb2x5KHNlbGYsIFJpbmdFbGVtZW50IGEsIFBhcmVudCBQLCBjaGFyIGNo ZWNrPSopCisrICAgIGNwZGVmIF9uZWdfKHNlbGYpCisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2Vs ZiwgcmlnaHQpCisrICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KQorIAorICAgICBjcGRlZiBi aW50IGlzX3plcm8oc2VsZikgbm9leGNlcHQKKyAgICAgY3BkZWYgYmludCBpc19vbmUoc2VsZikg bm9leGNlcHQKKyAgCistICAgIGNkZWYgX2xlZnRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFs IG90aGVyKSBub2V4Y2VwdAorLSAgICBjZGVmIF9yaWdodF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlu b21pYWwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNkZWYgT3JlUG9seW5vbWlhbCBfbGVmdF9sY21f Y29mYWN0b3Ioc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhlcikgbm9leGNlcHQKKy0gICAgY2RlZiBP cmVQb2x5bm9taWFsIF9yaWdodF9sY21fY29mYWN0b3Ioc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhl cikgbm9leGNlcHQKKysgICAgY2RlZiBfbGVmdF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwg b3RoZXIpCisrICAgIGNkZWYgX3JpZ2h0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhl cikKKysgICAgY2RlZiBPcmVQb2x5bm9taWFsIF9sZWZ0X2xjbV9jb2ZhY3RvcihzZWxmLCBPcmVQ b2x5bm9taWFsIG90aGVyKQorKyAgICBjZGVmIE9yZVBvbHlub21pYWwgX3JpZ2h0X2xjbV9jb2Zh Y3RvcihzZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKQorIAorICAgICAjIEFic3RyYWN0IG1ldGhv ZHMKKy0gICAgY3BkZWYgSW50ZWdlciBkZWdyZWUoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg bGlzdCBjb2VmZmljaWVudHMoc2VsZiwgc3BhcnNlPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIElu dGVnZXIgZGVncmVlKHNlbGYpCisrICAgIGNwZGVmIGxpc3QgY29lZmZpY2llbnRzKHNlbGYsIHNw YXJzZT0qKQorIAorIAorIGNkZWYgdm9pZCBsbXVsX2dlbihsaXN0IEEsIE1vcnBoaXNtIG0sIGQp IG5vZXhjZXB0CitAQCAtMzQsMTIgKzM0LDEyIEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbF9n ZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWwpOgorICAgICBjZGVmIGxpc3QgX2NvZWZmcworIAor ICAgICBjZGVmIHZvaWQgX25vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYWRk XyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY2RlZiBsaXN0IF9tdWxfbGlzdChzZWxmLCBs aXN0IEEpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAor KyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY2RlZiBsaXN0IF9tdWxfbGlzdChz ZWxmLCBsaXN0IEEpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorIAorLSAgICBjcGRl ZiBkaWN0IGRpY3Qoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJp bnQgY29weT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBkaWN0IGRpY3Qoc2VsZikKKysgICAgY3Bk ZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT0qKQorIAorIAorIGNkZWYgY2xhc3MgT3JlUG9s eW5vbWlhbEJhc2VyaW5nSW5qZWN0aW9uKE1vcnBoaXNtKToKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB5eAoraW5kZXggODZjMmEw NTczNTMuLjQ3YjViN2U2YWQ3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB5eAorQEAgLTI1MSw3ICsyNTEsNyBAQCBjZGVm IGNsYXNzIE9yZVBvbHlub21pYWwoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5faGFzaF9jKCkKKyAKKy0gICAgY3BkZWYgSW50ZWdlciBkZWdyZWUo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEludGVnZXIgZGVncmVlKHNlbGYpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkZWdyZWUgb2YgYGBzZWxmYGAuCisgCitAQCAt MjcyLDcgKzI3Miw3IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbChBbGdlYnJhRWxlbWVudCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0g ICAgY2RlZiBPcmVQb2x5bm9taWFsIF9uZXdfYyhzZWxmLCBsaXN0IGNvZWZmcywgUGFyZW50IFAs IGNoYXIgY2hlY2s9MCkgbm9leGNlcHQ6CisrICAgIGNkZWYgT3JlUG9seW5vbWlhbCBfbmV3X2Mo c2VsZiwgbGlzdCBjb2VmZnMsIFBhcmVudCBQLCBjaGFyIGNoZWNrPTApOgorICAgICAgICAgciIi IgorICAgICAgICAgRmFzdCBjcmVhdGlvbiBvZiBhIG5ldyBPcmUgcG9seW5vbWlhbAorIAorQEAg LTI4Myw3ICsyODMsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWwoQWxnZWJyYUVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gUChjb2VmZnMpCisgCistICAgIGNwZGVm IE9yZVBvbHlub21pYWwgX25ld19jb25zdGFudF9wb2x5KHNlbGYsIFJpbmdFbGVtZW50IGEsIFBh cmVudCBQLCBjaGFyIGNoZWNrPTApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBPcmVQb2x5bm9taWFs IF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCBSaW5nRWxlbWVudCBhLCBQYXJlbnQgUCwgY2hhciBj aGVjaz0wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEZhc3QgY3JlYXRpb24gb2YgYSBuZXcg Y29uc3RhbnQgT3JlIHBvbHlub21pYWwKKyAKK0BAIC01ODAsNyArNTgwLDcgQEAgY2RlZiBjbGFz cyBPcmVQb2x5bm9taWFsKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICByYWlzZSBOb3RJ bXBsZW1lbnRlZEVycm9yKCJ0aGUgbGVhZGluZyBjb2VmZmljaWVudCBpcyBub3QgYSB1bml0IikK KyAgICAgICAgIHJldHVybiBhICogc2VsZgorIAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCBvdGhl cikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tb2RfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgcmVtYWluZGVyIGluIHRoZSAqcmlnaHQqIEV1Y2xpZGVh biBkaXZpc2lvbiBvZgorICAgICAgICAgYGBzZWxmYGAgYnkgYGBvdGhlcmBgYC4KK0BAIC02MDIs NyArNjAyLDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsKEFsZ2VicmFFbGVtZW50KToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYucmlnaHRfcXVvX3JlbShvdGhlcilbMV0K KyAKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBxdW90aWVudCBvZiB0aGUgKnJpZ2h0KiBFdWNsaWRlYW4gZGl2aXNpb24gb2YKKyAg ICAgICAgIGBgc2VsZmBgIGJ5IGBgcmlnaHRgYC4KK0BAIC02MjgsNyArNjI4LDcgQEAgY2RlZiBj bGFzcyBPcmVQb2x5bm9taWFsKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIHEsIF8gPSBzZWxm LnJpZ2h0X3F1b19yZW0ocmlnaHQpCisgICAgICAgICByZXR1cm4gcQorIAorLSAgICBjcGRlZiBf ZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgdGhpcyBP cmUgcG9seW5vbWlhbCBieSBgYHJpZ2h0YGAKKyAgICAgICAgIGluIHRoZSBmcmFjdGlvbiBmaWVs ZC4KK0BAIC05NDAsNyArOTQwLDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsKEFsZ2VicmFF bGVtZW50KToKKyAgICAgICAgICAgICBWID0gViAqIGxjCisgICAgICAgICByZXR1cm4gRywgVSwg VgorIAorLSAgICBjZGVmIF9sZWZ0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhlcikg bm9leGNlcHQ6CisrICAgIGNkZWYgX2xlZnRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFsIG90 aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgYW5kIHJl bWFpbmRlciBvZiB0aGUgbGVmdCBFdWNsaWRlYW4KKyAgICAgICAgIGRpdmlzaW9uIG9mIGBgc2Vs ZmBgIGJ5IGBgb3RoZXJgYCAoQyBpbXBsZW1lbnRhdGlvbikuCitAQCAtMTAwMCw3ICsxMDAwLDcg QEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAg ICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigiZGl2aXNpb24gYnkgemVybyBpcyBub3QgdmFsaWQi KQorICAgICAgICAgcmV0dXJuIHNlbGYuX2xlZnRfcXVvX3JlbShvdGhlcikKKyAKKy0gICAgY2Rl ZiBfcmlnaHRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfcmlnaHRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgYW5kIHJlbWFpbmRlciBvZiB0 aGUgcmlnaHQgRXVjbGlkZWFuCisgICAgICAgICBkaXZpc2lvbiBvZiBgYHNlbGZgYCBieSBgYG90 aGVyYGAgKEMgaW1wbGVtZW50YXRpb24pLgorQEAgLTEzMDksNyArMTMwOSw3IEBAIGNkZWYgY2xh c3MgT3JlUG9seW5vbWlhbChBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgQSA9IEEubGVm dF9tb25pYygpCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIE9yZVBvbHlub21pYWwg X2xlZnRfbGNtX2NvZmFjdG9yKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjZGVmIE9yZVBvbHlub21pYWwgX2xlZnRfbGNtX2NvZmFjdG9yKHNlbGYsIE9yZVBvbHlu b21pYWwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIE9yZSBwb2x5 bm9taWFsIGBVYCBzdWNoIHRoYXQgYFUgUCA9IGMgTGAKKyAgICAgICAgIHdoZXJlIGBQYCBpcyB0 aGlzIE9yZSBwb2x5bm9taWFsIChgYHNlbGZgYCksIGBMYAorQEAgLTEzODcsNyArMTM4Nyw3IEBA IGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbChBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAg VjEgPSBzICogVjEKKyAgICAgICAgIHJldHVybiBMLCBWMSwgTCAvLyBvdGhlcgorIAorLSAgICBj ZGVmIE9yZVBvbHlub21pYWwgX3JpZ2h0X2xjbV9jb2ZhY3RvcihzZWxmLCBPcmVQb2x5bm9taWFs IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBPcmVQb2x5bm9taWFsIF9yaWdodF9sY21fY29m YWN0b3Ioc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gYW4gT3JlIHBvbHlub21pYWwgYFVgIHN1Y2ggdGhhdCBgUCBVID0gTCBjYAorICAg ICAgICAgd2hlcmUgYFBgIGlzIHRoaXMgT3JlIHBvbHlub21pYWwgKGBgc2VsZmBgKSwgYExgCitA QCAtMTk0Miw3ICsxOTQyLDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsKEFsZ2VicmFFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuaXNfdGVybSgpIGFuZCBz ZWxmLmxlYWRpbmdfY29lZmZpY2llbnQoKSA9PSAxCisgCistICAgIGNwZGVmIGxpc3QgY29lZmZp Y2llbnRzKHNlbGYsIHNwYXJzZT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBjb2Vm ZmljaWVudHMoc2VsZiwgc3BhcnNlPVRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBjb2VmZmljaWVudHMgb2YgdGhlIG1vbm9taWFscyBhcHBlYXJpbmcgaW4gYGBzZWxm YGAuCisgCitAQCAtMjM1NCw3ICsyMzU0LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dl bmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0dXJuIC0yCisgICAg ICAgICByZXR1cm4gcmVzdWx0CisgCistICAgIGNkZWYgT3JlUG9seW5vbWlhbCBfbmV3X2Moc2Vs ZiwgbGlzdCBjb2VmZnMsIFBhcmVudCBQLCBjaGFyIGNoZWNrPTApIG5vZXhjZXB0OgorKyAgICBj ZGVmIE9yZVBvbHlub21pYWwgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCwgY2hh ciBjaGVjaz0wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEZhc3QgY3JlYXRpb24gb2YgYSBu ZXcgT3JlIHBvbHlub21pYWwgZ2l2ZW4gYSBsaXN0IG9mIGNvZWZmaWNpZW50cy4KKyAKK0BAIC0y Mzk3LDcgKzIzOTcsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShP cmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBkZWwgeFtuXQorICAgICAgICAgICAgIG4gLT0g MQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIENvbXBhcmUgdGhlIHR3byBPcmUgcG9seW5vbWlhbHMgYGBzZWxmYGAgYW5k IGBgb3RoZXJgYC4KKyAKK0BAIC0yNDYzLDcgKzI0NjMsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgIGV4Y2VwdCBJbmRl eEVycm9yOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLmJhc2VfcmluZygpLnplcm8oKQorIAor LSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgY29lZmZpY2llbnRzIG9mIGBgc2VsZmBgLgor IAorQEAgLTI0OTEsNyArMjQ5MSw3IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlKE9yZVBvbHlub21pYWwpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1 cm4gKDxPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX2NvZWZmcworIAorLSAgICBj cGRlZiBkaWN0IGRpY3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgZGljdChzZWxm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGRpY3Rpb25hcnkgcmVwcmVzZW50 YXRpb24gb2YgYGBzZWxmYGAuCisgCitAQCAtMjUxMyw3ICsyNTEzLDcgQEAgY2RlZiBjbGFzcyBP cmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg ICAgIFhbaV0gPSBjCisgICAgICAgICByZXR1cm4gWAorIAorLSAgICBjcGRlZiBJbnRlZ2VyIGRl Z3JlZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgSW50ZWdlciBkZWdyZWUoc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRlZ3JlZSBvZiBgYHNlbGZgYC4KKyAK K0BAIC0yNTUyLDcgKzI1NTIsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIEludGVn ZXIobGVuKHNlbGYuX2NvZWZmcykgLSAxKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdo dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIEFkZCB0d28gcG9seW5vbWlhbHMuCisgCitAQCAtMjU4Myw3ICsyNTgzLDcg QEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6 CisgICAgICAgICAgICAgciA9IHNlbGYuX25ld19jKFt4W2ldICsgeVtpXSBmb3IgaSBpbiByYW5n ZShkeCldLCBzZWxmLl9wYXJlbnQsIDEpCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRl ZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFN1YnRyYWN0IHBvbHlub21pYWwgYGByaWdo dGBgIGZyb20gYGBzZWxmYGAuCisgCitAQCAtMjYxNSw3ICsyNjE1LDcgQEAgY2RlZiBjbGFzcyBP cmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg ciA9IHNlbGYuX25ld19jKFt4W2ldIC0geVtpXSBmb3IgaSBpbiByYW5nZShkeCldLCBzZWxmLl9w YXJlbnQsIDEpCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIG5lZ2F0aXZlIG9mIGBgc2VsZmBgLgorIAorQEAgLTI2NzgsNyArMjY3OCw3 IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWwp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fY29lZmZz WzpuXSwgc2VsZi5fcGFyZW50LCAxKQorIAorLSAgICBjZGVmIGxpc3QgX211bF9saXN0KHNlbGYs IGxpc3QgQSkgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBfbXVsX2xpc3Qoc2VsZiwgbGlzdCBB KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBjb2VmZmljaWVu dHMgb2YgdGhlIHByb2R1Y3Qgb2YgdGhpcworICAgICAgICAgT3JlIHBvbHlub21pYWwgYnkgdGhh dCB3aG9zZSBjb2VmZmljaWVudHMgYXJlIGdpdmVuIGJ5IGBgQWBgLgorQEAgLTI2OTksNyArMjY5 OSw3IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21p YWwpOgorICAgICAgICAgICAgICAgICAgICAgQkFbal0gKz0gY29lZmYgKiBBW2pdCisgICAgICAg ICByZXR1cm4gQkEKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcykgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHMpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IGBgc2VsZiAqIHJpZ2h0YGAuCisgCitAQCAtMjcx OCw3ICsyNzE4LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3Jl UG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGNvZWZmcyA9IHNlbGYuX211bF9saXN0KFtzXSkK KyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhjb2VmZnMsIHNlbGYuX3BhcmVudCwgMSkKKyAK Ky0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgcykgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9ybXVsXyhzZWxmLCBFbGVtZW50IHMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSBwcm9kdWN0IGBgbGVmdCAqIHNlbGZgYC4KKyAKK0BAIC0yNzQ2LDcgKzI3NDYsNyBAQCBj ZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKFtzICogYyBmb3IgYyBpbiBz ZWxmLl9jb2VmZnNdLCBzZWxmLl9wYXJlbnQsIDEpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IGBgc2VsZiAqIHJpZ2h0YGAuCisg CitAQCAtMjc4NSw3ICsyNzg1LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgY29lZmZzID0gc2VsZi5fbXVsX2xp c3QoY29lZmZzKQorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGNvZWZmcywgc2VsZi5fcGFy ZW50LCAxKQorIAorLSAgICBjZGVmIF9sZWZ0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBv dGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2xlZnRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9t aWFsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQg YW5kIHJlbWFpbmRlciBvZiB0aGUgbGVmdCBFdWNsaWRlYW4KKyAgICAgICAgIGRpdmlzaW9uIG9m IGBgc2VsZmBgIGJ5IGBgb3RoZXJgYCAoQyBpbXBsZW1lbnRhdGlvbikuCitAQCAtMjgxNCw3ICsy ODE0LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5v bWlhbCk6CisgICAgICAgICBxdW8ucmV2ZXJzZSgpCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2MocXVvLCBzZWxmLl9wYXJlbnQpLCBzZWxmLl9uZXdfYyhBWzpkZWdCXSwgc2VsZi5fcGFyZW50 LCAxKQorIAorLSAgICBjZGVmIF9yaWdodF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3Ro ZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9yaWdodF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21p YWwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBh bmQgcmVtYWluZGVyIG9mIHRoZSByaWdodCBFdWNsaWRlYW4KKyAgICAgICAgIGRpdmlzaW9uIG9m IGBgc2VsZmBgIGJ5IGBgb3RoZXJgYCAoQyBpbXBsZW1lbnRhdGlvbikuCitAQCAtMjg1Miw3ICsy ODUyLDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5v bWlhbCk6CisgICAgICAgICBxdW8ucmV2ZXJzZSgpCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2MocXVvLCBzZWxmLl9wYXJlbnQpLCBzZWxmLl9uZXdfYyhBWzpkZWdCXSwgc2VsZi5fcGFyZW50 LCAxKQorIAorLSAgICBjcGRlZiBsaXN0IGNvZWZmaWNpZW50cyhzZWxmLCBzcGFyc2U9VHJ1ZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgY29lZmZpY2llbnRzKHNlbGYsIHNwYXJzZT1UcnVl KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29lZmZpY2llbnRzIG9mIHRo ZSBtb25vbWlhbHMgYXBwZWFyaW5nIGluIGBgc2VsZmBgLgorIAorQEAgLTI5ODgsNyArMjk4OCw3 IEBAIGNkZWYgY2xhc3MgQ29uc3RhbnRPcmVQb2x5bm9taWFsU2VjdGlvbihNYXApOgorICAgICAg ICAgICAgICAgICAgIG92ZXIgUmF0aW9uYWwgRmllbGQgdHdpc3RlZCBieSB0IHwtLT4gdCArIDEK KyAgICAgICAgICAgICBUbzogICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB0IG92ZXIg UmF0aW9uYWwgRmllbGQKKyAgICAgIiIiCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIHRo ZSBiYXNlIHJpbmcgaWYgYGBzZWxmYGAgaXMgYQorICAgICAgICAgY29uc3RhbnQgT3JlIHBvbHlu b21pYWwuIE90aGVyd2lzZSwgaXQgZmFpbHMuCitAQCAtMzA5Niw3ICszMDk2LDcgQEAgY2RlZiBj bGFzcyBPcmVQb2x5bm9taWFsQmFzZXJpbmdJbmplY3Rpb24oTW9ycGhpc20pOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYW5fZWxlbWVudAorIAorLSAgICBjcGRlZiBFbGVt ZW50IF9jYWxsXyhzZWxmLCBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvcnJlc3BvbmRp bmcgT3JlIHBvbHlub21pYWwgdG8gdGhlIGVsZW1lbnQgZnJvbSB0aGUKKyAgICAgICAgIGJhc2Ug cmluZyBhY2NvcmRpbmcgdG8gYGBzZWxmYGAuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bi b3JpL3Bib3JpLnB4ZAoraW5kZXggZjkwODNhNjgxYTIuLmFlNGFjMTM1M2QyIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weGQKKysrKyBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkvcGJvcmkucHhkCitAQCAtMTcsMTIgKzE3LDEyIEBA IGNkZWYgY2xhc3MgQm9vbGVhblBvbHlub21pYWxSaW5nKEJvb2xlYW5Qb2x5bm9taWFsUmluZ19i YXNlKToKKyAgICAgIyBpdCBpcyB2ZXJ5IGltcG9ydGFudCB0byBrZWVwIHRoaXMgY2FjaGVkLCBz aW5jZSBvdGhlcndpc2UgdGhlIG1hZ21hIGludGVyZmFjZSB3aWxsIGJyZWFrCisgICAgIGNkZWYg cHVibGljIG9iamVjdCBfX2NvdmVyX3JpbmcKKyAKKy0gICAgY2RlZiBfY29udmVydChzZWxmLCBy aHMpIG5vZXhjZXB0CisrICAgIGNkZWYgX2NvbnZlcnQoc2VsZiwgcmhzKQorIAorIGNkZWYgY2xh c3MgQm9vbGVhblBvbHlub21pYWwoTVBvbHlub21pYWwpOgorICAgICBjZGVmIFBCUG9seSBfcGJw b2x5CistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIp CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorIAorIGNkZWYgY2xhc3MgQm9vbGVTZXQ6 CisgICAgIGNkZWYgQm9vbGVhblBvbHlub21pYWxSaW5nIF9yaW5nCitAQCAtMzUsNyArMzUsNyBA QCBjZGVmIGNsYXNzIENDdWRkTmF2aWdhdG9yOgorIGNkZWYgY2xhc3MgQm9vbGVhbk1vbm9taWFs KE1vbm9pZEVsZW1lbnQpOgorICAgICBjZGVmIFBCTW9ub20gX3BibW9ub20KKyAgICAgY2RlZiBC b29sZWFuUG9seW5vbWlhbFJpbmcgX3JpbmcKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp IG5vZXhjZXB0CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorIAorIGNkZWYgY2xhc3Mg Qm9vbGVhbk1vbm9taWFsVmFyaWFibGVJdGVyYXRvcjoKKyAgICAgY2RlZiBvYmplY3QgcGFyZW50 CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weXgg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bib3JpL3Bib3JpLnB5eAoraW5kZXggZmNiYTgw ODUxZTguLjZmYWUzYjk2MzIzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wYm9yaS9wYm9yaS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkv cGJvcmkucHl4CitAQCAtNjA3LDcgKzYwNyw3IEBAIGNkZWYgY2xhc3MgQm9vbGVhblBvbHlub21p YWxSaW5nKEJvb2xlYW5Qb2x5bm9taWFsUmluZ19iYXNlKToKKyAgICAgICAgIHJldHVybiBzZWxm Ll9yZXByCisgCisgICAgICMgQ29lcmNpb24KKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8o c2VsZiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMp OgorICAgICAgICAgIiIiCisgICAgICAgICBUaGVyZSBpcyBjb2VyY2lvbiBmcm9tIHRoZSBiYXNl IHJpbmcsIGZyb20gYW55IGJvb2xlYW4KKyAgICAgICAgIHBvbHlub21pYWwgcmluZyB3aXRoIGNv bXBhdGlibGUgdmFyaWFibGUgbmFtZXMsCitAQCAtNjgzLDcgKzY4Myw3IEBAIGNkZWYgY2xhc3Mg Qm9vbGVhblBvbHlub21pYWxSaW5nKEJvb2xlYW5Qb2x5bm9taWFsUmluZ19iYXNlKToKKyAgICAg ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2Uu aGFzX2NvZXJjZV9tYXBfZnJvbShTLmJhc2UoKSkKKyAKKy0gICAgY2RlZiBfY29udmVydChzZWxm LCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2NvbnZlcnQoc2VsZiwgb3RoZXIpOgorICAg ICAgICAgciIiIgorICAgICAgICAgQ2Fub25pY2FsIGNvbnZlcnNpb24gb2YgZWxlbWVudHMgZnJv bSBvdGhlciBkb21haW5zIHRvCisgICAgICAgICB0aGlzIGJvb2xlYW4gcG9seW5vbWlhbCByaW5n LgorQEAgLTIyNjksNyArMjI2OSw3IEBAIGNkZWYgY2xhc3MgQm9vbGVhbk1vbm9taWFsKE1vbm9p ZEVsZW1lbnQpOgorICAgICAgICAgZ2VucyA9IHNlbGYuX3BhcmVudC5nZW5zKCkKKyAgICAgICAg IHJldHVybiBzZWxmLl9wYXJlbnQsICh0dXBsZShnZW5zLmluZGV4KHgpIGZvciB4IGluIHNlbGYu dmFyaWFibGVzKCkpLCkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQg b3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgQm9vbGVhbk1vbm9taWFsIG9iamVjdHMu CisgCitAQCAtMjYzMyw3ICsyNjMzLDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuTW9ub21pYWwoTW9u b2lkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBuZXdfQk1JX2Zyb21f Qm9vbGVhbk1vbm9taWFsKHNlbGYpCisgCistICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBNdWx0aXBseSB0aGlzIGJvb2xlYW4gbW9ub21pYWwgd2l0aCBhbm90aGVyIGJvb2xl YW4gbW9ub21pYWwuCisgCitAQCAtMjgwNSw3ICsyODA1LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFu TW9ub21pYWwoTW9ub2lkRWxlbWVudCk6CisgIworICMjIworIAorLWNkZWYgaW5saW5lIEJvb2xl YW5Nb25vbWlhbCBuZXdfQk0ocGFyZW50LCBCb29sZWFuUG9seW5vbWlhbFJpbmcgcmluZykgbm9l eGNlcHQ6CisrY2RlZiBpbmxpbmUgQm9vbGVhbk1vbm9taWFsIG5ld19CTShwYXJlbnQsIEJvb2xl YW5Qb2x5bm9taWFsUmluZyByaW5nKToKKyAgICAgY2RlZiBCb29sZWFuTW9ub21pYWwgbQorICAg ICBtID0gPEJvb2xlYW5Nb25vbWlhbD5Cb29sZWFuTW9ub21pYWwuX19uZXdfXyhCb29sZWFuTW9u b21pYWwpCisgICAgIG0uX3BhcmVudCA9IHBhcmVudAorQEAgLTI4MTMsMTMgKzI4MTMsMTMgQEAg Y2RlZiBpbmxpbmUgQm9vbGVhbk1vbm9taWFsIG5ld19CTShwYXJlbnQsIEJvb2xlYW5Qb2x5bm9t aWFsUmluZyByaW5nKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIG0KKyAKKyBjZGVmIGlubGluZSBC b29sZWFuTW9ub21pYWwgbmV3X0JNX2Zyb21fUEJNb25vbShwYXJlbnQsCistICAgICAgICBCb29s ZWFuUG9seW5vbWlhbFJpbmcgcmluZywgUEJNb25vbSBqdWljZSkgbm9leGNlcHQ6CisrICAgICAg ICBCb29sZWFuUG9seW5vbWlhbFJpbmcgcmluZywgUEJNb25vbSBqdWljZSk6CisgICAgIGNkZWYg Qm9vbGVhbk1vbm9taWFsIG0gPSBuZXdfQk0ocGFyZW50LCByaW5nKQorICAgICBtLl9wYm1vbm9t ID0ganVpY2UKKyAgICAgcmV0dXJuIG0KKyAKKyBjZGVmIGlubGluZSBCb29sZWFuTW9ub21pYWwg bmV3X0JNX2Zyb21fUEJWYXIocGFyZW50LAorLSAgICAgICAgQm9vbGVhblBvbHlub21pYWxSaW5n IHJpbmcsIFBCVmFyIGp1aWNlKSBub2V4Y2VwdDoKKysgICAgICAgIEJvb2xlYW5Qb2x5bm9taWFs UmluZyByaW5nLCBQQlZhciBqdWljZSk6CisgICAgIGNkZWYgQm9vbGVhbk1vbm9taWFsIG0gPSBu ZXdfQk0ocGFyZW50LCByaW5nKQorICAgICBtLl9wYm1vbm9tID0gUEJNb25vbShqdWljZSkKKyAg ICAgcmV0dXJuIG0KK0BAIC0yODYxLDcgKzI4NjEsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Nb25v bWlhbFZhcmlhYmxlSXRlcmF0b3I6CisgICAgICAgICByZXR1cm4gbmV3X0JNX2Zyb21fUEJWYXIo c2VsZi5wYXJlbnQsIHNlbGYuX3JpbmcsIHZhbHVlKQorIAorIGNkZWYgaW5saW5lIEJvb2xlYW5N b25vbWlhbFZhcmlhYmxlSXRlcmF0b3IgbmV3X0JNVklfZnJvbV9Cb29sZWFuTW9ub21pYWwoCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2xlYW5Nb25vbWlhbCBtb25vbSkgbm9leGNl cHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2xlYW5Nb25vbWlhbCBtb25vbSk6 CisgICAgICIiIgorICAgICBDb25zdHJ1Y3QgYSBuZXcgaXRlcmF0b3Igb3ZlciB0aGUgdmFyaWFi bGUgaW5kaWNlcyBvZiBhIGJvb2xlYW4KKyAgICAgbW9ub21pYWwuCitAQCAtMjkxMiw3ICsyOTEy LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuTW9ub21pYWxJdGVyYXRvcjoKKyAgICAgICAgIHJldHVy biBzZWxmLnBiaW5kW3ZhbHVlXQorIAorIAorLWNkZWYgaW5saW5lIEJvb2xlYW5Nb25vbWlhbEl0 ZXJhdG9yIG5ld19CTUlfZnJvbV9Cb29sZWFuTW9ub21pYWwoQm9vbGVhbk1vbm9taWFsIG1vbm9t KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBCb29sZWFuTW9ub21pYWxJdGVyYXRvciBuZXdfQk1J X2Zyb21fQm9vbGVhbk1vbm9taWFsKEJvb2xlYW5Nb25vbWlhbCBtb25vbSk6CisgICAgICIiIgor ICAgICBDb25zdHJ1Y3QgYSBuZXcgQm9vbGVhbk1vbm9taWFsSXRlcmF0b3IKKyAgICAgIiIiCitA QCAtMzAxNiw3ICszMDE2LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuUG9seW5vbWlhbChNUG9seW5v bWlhbCk6CisgICAgICAgICBSID0gc2VsZi5wYXJlbnQoKS5jb3Zlcl9yaW5nKCkKKyAgICAgICAg IHJldHVybiBSKHNlbGYpLl9sYXRleF8oKQorIAorLSAgICBjcGRlZiBfYWRkXyhsZWZ0LCByaWdo dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTMwMzEsNyArMzAzMSw3IEBAIGNkZWYgY2xh c3MgQm9vbGVhblBvbHlub21pYWwoTVBvbHlub21pYWwpOgorICAgICAgICAgcC5fcGJwb2x5Lmlh ZGQoKDxCb29sZWFuUG9seW5vbWlhbD5yaWdodCkuX3BicG9seSkKKyAgICAgICAgIHJldHVybiBw CisgCistICAgIGNwZGVmIF9zdWJfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3N1Yl8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6Cisg CitAQCAtMzA0Myw3ICszMDQzLDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuUG9seW5vbWlhbChNUG9s eW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBsZWZ0Ll9hZGRfKHJpZ2h0 KQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zMDY2LDcgKzMwNjYsNyBAQCBjZGVmIGNsYXNzIEJvb2xl YW5Qb2x5bm9taWFsKE1Qb2x5bm9taWFsKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKyAKKy0gICAgY3BkZWYgX211bF8obGVmdCwgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zMDgxLDcgKzMwODEsNyBAQCBjZGVmIGNs YXNzIEJvb2xlYW5Qb2x5bm9taWFsKE1Qb2x5bm9taWFsKToKKyAgICAgICAgIHAuX3BicG9seS5p bXVsKCg8Qm9vbGVhblBvbHlub21pYWw+cmlnaHQpLl9wYnBvbHkpCisgICAgICAgICByZXR1cm4g cAorIAorLSAgICBjcGRlZiBfZGl2XyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9kaXZfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6Ogor IAorQEAgLTMxMTcsNyArMzExNyw3IEBAIGNkZWYgY2xhc3MgQm9vbGVhblBvbHlub21pYWwoTVBv bHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcGJwb2x5ID09 IHJpZ2h0Ll9wYnBvbHkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQg b3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAt NDc5NCw3ICs0Nzk0LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuUG9seW5vbWlhbEl0ZXJhdG9yOgor ICAgICAgICAgICAgICAgICBzZWxmLm9iai5fcGFyZW50LCB2YWx1ZSkKKyAKKyAKKy1jZGVmIGlu bGluZSBCb29sZWFuUG9seW5vbWlhbEl0ZXJhdG9yIG5ld19CUElfZnJvbV9Cb29sZWFuUG9seW5v bWlhbChCb29sZWFuUG9seW5vbWlhbCBmKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBCb29sZWFu UG9seW5vbWlhbEl0ZXJhdG9yIG5ld19CUElfZnJvbV9Cb29sZWFuUG9seW5vbWlhbChCb29sZWFu UG9seW5vbWlhbCBmKToKKyAgICAgIiIiCisgICAgIENvbnN0cnVjdCBhIG5ldyBCb29sZWFuTW9u b21pYWxJdGVyYXRvcgorICAgICAiIiIKK0BAIC01MjE3LDM1ICs1MjE3LDM1IEBAIGNsYXNzIEJv b2xlYW5Qb2x5bm9taWFsSWRlYWwoTVBvbHlub21pYWxJZGVhbCk6CisgIyMKKyAKKyAKKy1jZGVm IGlubGluZSBCb29sZWFuUG9seW5vbWlhbCBuZXdfQlAoQm9vbGVhblBvbHlub21pYWxSaW5nIHBh cmVudCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgQm9vbGVhblBvbHlub21pYWwgbmV3X0JQKEJv b2xlYW5Qb2x5bm9taWFsUmluZyBwYXJlbnQpOgorICAgICBjZGVmIEJvb2xlYW5Qb2x5bm9taWFs IHAKKyAgICAgcCA9IDxCb29sZWFuUG9seW5vbWlhbD5Cb29sZWFuUG9seW5vbWlhbC5fX25ld19f KEJvb2xlYW5Qb2x5bm9taWFsKQorICAgICBwLl9wYXJlbnQgPSBwYXJlbnQKKyAgICAgcmV0dXJu IHAKKyAKKyAKKy1jZGVmIGlubGluZSBCb29sZWFuUG9seW5vbWlhbCBuZXdfQlBfZnJvbV9QQlZh cihCb29sZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50LCBQQlZhciBqdWljZSkgbm9leGNlcHQ6Cisr Y2RlZiBpbmxpbmUgQm9vbGVhblBvbHlub21pYWwgbmV3X0JQX2Zyb21fUEJWYXIoQm9vbGVhblBv bHlub21pYWxSaW5nIHBhcmVudCwgUEJWYXIganVpY2UpOgorICAgICBjZGVmIEJvb2xlYW5Qb2x5 bm9taWFsIHAgPSBuZXdfQlAocGFyZW50KQorICAgICBwLl9wYnBvbHkgPSBQQkJvb2xlUG9seW5v bWlhbChqdWljZSkKKyAgICAgcmV0dXJuIHAKKyAKKyAKKy1jZGVmIGlubGluZSBCb29sZWFuUG9s eW5vbWlhbCBuZXdfQlBfZnJvbV9QQlBvbHkoQm9vbGVhblBvbHlub21pYWxSaW5nIHBhcmVudCwg UEJQb2x5IGp1aWNlKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBCb29sZWFuUG9seW5vbWlhbCBu ZXdfQlBfZnJvbV9QQlBvbHkoQm9vbGVhblBvbHlub21pYWxSaW5nIHBhcmVudCwgUEJQb2x5IGp1 aWNlKToKKyAgICAgY2RlZiBCb29sZWFuUG9seW5vbWlhbCBwID0gbmV3X0JQKHBhcmVudCkKKyAg ICAgcC5fcGJwb2x5ID0ganVpY2UKKyAgICAgcmV0dXJuIHAKKyAKKy1jZGVmIGlubGluZSBCb29s ZWFuUG9seW5vbWlhbCBuZXdfQlBfZnJvbV9QQk1vbm9tKEJvb2xlYW5Qb2x5bm9taWFsUmluZyBw YXJlbnQsIFBCTW9ub20ganVpY2UpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIEJvb2xlYW5Qb2x5 bm9taWFsIG5ld19CUF9mcm9tX1BCTW9ub20oQm9vbGVhblBvbHlub21pYWxSaW5nIHBhcmVudCwg UEJNb25vbSBqdWljZSk6CisgICAgIGNkZWYgQm9vbGVhblBvbHlub21pYWwgcCA9IG5ld19CUChw YXJlbnQpCisgICAgIHAuX3BicG9seSA9IFBCQm9vbGVQb2x5bm9taWFsKGp1aWNlKQorICAgICBy ZXR1cm4gcAorIAorLWNkZWYgaW5saW5lIEJvb2xlYW5Qb2x5bm9taWFsIG5ld19CUF9mcm9tX1BC U2V0KEJvb2xlYW5Qb2x5bm9taWFsUmluZyBwYXJlbnQsIFBCU2V0IGp1aWNlKSBub2V4Y2VwdDoK KytjZGVmIGlubGluZSBCb29sZWFuUG9seW5vbWlhbCBuZXdfQlBfZnJvbV9QQlNldChCb29sZWFu UG9seW5vbWlhbFJpbmcgcGFyZW50LCBQQlNldCBqdWljZSk6CisgICAgIGNkZWYgQm9vbGVhblBv bHlub21pYWwgcCA9IG5ld19CUChwYXJlbnQpCisgICAgIHAuX3BicG9seSA9IFBCQm9vbGVQb2x5 bm9taWFsKGp1aWNlKQorICAgICByZXR1cm4gcAorIAorLWNkZWYgaW5saW5lIEJvb2xlYW5Qb2x5 bm9taWFsIG5ld19CUF9mcm9tX2ludChCb29sZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50LCBpbnQg anVpY2UpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIEJvb2xlYW5Qb2x5bm9taWFsIG5ld19CUF9m cm9tX2ludChCb29sZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50LCBpbnQganVpY2UpOgorICAgICBj ZGVmIEJvb2xlYW5Qb2x5bm9taWFsIHAgPSBuZXdfQlAocGFyZW50KQorICAgICBwLl9wYnBvbHkg PSBQQkJvb2xlUG9seW5vbWlhbChqdWljZSwgcGFyZW50Ll9wYnJpbmcpCisgICAgIHJldHVybiBw CitAQCAtNTg2OSw3ICs1ODY5LDcgQEAgY2RlZiBjbGFzcyBCb29sZVNldDoKKyAgICAgICAgIHJl dHVybiBzZWxmLl9wYnNldC5zaXplRG91YmxlKCkKKyAKKyAKKy1jZGVmIGlubGluZSBCb29sZVNl dCBuZXdfQlNfZnJvbV9QQlNldChQQlNldCBqdWljZSwgQm9vbGVhblBvbHlub21pYWxSaW5nIHJp bmcpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIEJvb2xlU2V0IG5ld19CU19mcm9tX1BCU2V0KFBC U2V0IGp1aWNlLCBCb29sZWFuUG9seW5vbWlhbFJpbmcgcmluZyk6CisgICAgICIiIgorICAgICBD b25zdHJ1Y3QgYSBuZXcgQm9vbGVTZXQKKyAgICAgIiIiCitAQCAtNTkxNyw3ICs1OTE3LDcgQEAg Y2RlZiBjbGFzcyBCb29sZVNldEl0ZXJhdG9yOgorICAgICAgICAgcmV0dXJuIG5ld19CTV9mcm9t X1BCTW9ub20oc2VsZi5fcGFyZW50LCBzZWxmLl9yaW5nLCB2YWx1ZSkKKyAKKyAKKy1jZGVmIGlu bGluZSBCb29sZVNldEl0ZXJhdG9yIG5ld19CU0lfZnJvbV9QQlNldEl0ZXIoQm9vbGVTZXQgcykg bm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgQm9vbGVTZXRJdGVyYXRvciBuZXdfQlNJX2Zyb21fUEJT ZXRJdGVyKEJvb2xlU2V0IHMpOgorICAgICAiIiIKKyAgICAgQ29uc3RydWN0IGEgbmV3IEJvb2xl U2V0SXRlcmF0b3IKKyAgICAgIiIiCitAQCAtNjEzNiw3ICs2MTM2LDcgQEAgY2RlZiBjbGFzcyBC b29sZWFuUG9seW5vbWlhbFZlY3RvcjoKKyAgICAgICAgIHNlbGYuX3ZlYy5wdXNoX2JhY2soPFBC Qm9vbGVQb2x5bm9taWFsPnApCisgCisgY2RlZiBpbmxpbmUgQm9vbGVhblBvbHlub21pYWxWZWN0 b3IgbmV3X0JQVl9mcm9tX1BCUG9seVZlY3RvcigKKy0gICAgICAgIEJvb2xlYW5Qb2x5bm9taWFs UmluZyBwYXJlbnQsIFBCUG9seVZlY3RvciBqdWljZSkgbm9leGNlcHQ6CisrICAgICAgICBCb29s ZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50LCBQQlBvbHlWZWN0b3IganVpY2UpOgorICAgICBjZGVm IEJvb2xlYW5Qb2x5bm9taWFsVmVjdG9yIG0KKyAgICAgbSA9IDxCb29sZWFuUG9seW5vbWlhbFZl Y3Rvcj5Cb29sZWFuUG9seW5vbWlhbFZlY3Rvci5fX25ld19fKEJvb2xlYW5Qb2x5bm9taWFsVmVj dG9yKQorICAgICBtLl92ZWMgPSBqdWljZQorQEAgLTYxNTgsNyArNjE1OCw3IEBAIGNkZWYgY2xh c3MgQm9vbGVhblBvbHlub21pYWxWZWN0b3JJdGVyYXRvcjoKKyAKKyAKKyBjZGVmIGlubGluZSBC b29sZWFuUG9seW5vbWlhbFZlY3Rvckl0ZXJhdG9yIG5ld19CUFZJX2Zyb21fUEJQb2x5VmVjdG9y SXRlcigKKy0gICAgICAgIEJvb2xlYW5Qb2x5bm9taWFsVmVjdG9yIHZlYykgbm9leGNlcHQ6Cisr ICAgICAgICBCb29sZWFuUG9seW5vbWlhbFZlY3RvciB2ZWMpOgorICAgICAiIiIKKyAgICAgQ29u c3RydWN0IGEgbmV3IEJvb2xlYW5Qb2x5bm9taWFsVmVjdG9ySXRlcmF0b3IKKyAgICAgIiIiCitA QCAtNzAwMCw3ICs3MDAwLDcgQEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5OgorIAorIAor IGNkZWYgY2xhc3MgQm9vbGVhbk11bEFjdGlvbihBY3Rpb24pOgorLSAgICBjcGRlZiBfYWN0Xyhz ZWxmLCBnLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgeCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC03MDI1LDcgKzcwMjUsNyBAQCBj ZGVmIGNsYXNzIEJvb2xlYW5NdWxBY3Rpb24oQWN0aW9uKToKKyAKKyAKKyBjZGVmIGlubGluZSBD Q3VkZE5hdmlnYXRvciBuZXdfQ05fZnJvbV9QQk5hdmlnYXRvcihQQk5hdmlnYXRvciBqdWljZSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9z c2l6ZV90KiBwYmluZCkgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCogcGJpbmQpOgorICAgICAiIiIKKyAgICAg Q29uc3RydWN0IGEgbmV3IENDdWRkTmF2aWdhdG9yCisgICAgICIiIgorQEAgLTc1NjAsNyArNzU2 MCw3IEBAIGNkZWYgbG9uZyBQQlJpbmdfaWRlbnRpZmllcihQQlJpbmcgcGJyaW5nKSBub2V4Y2Vw dDoKKyAgICAgcmV0dXJuIF9oYXNoCisgCisgCistY2RlZiBvYmplY3QgVGVybU9yZGVyX2Zyb21f UEJSaW5nKFBCUmluZyBfcmluZykgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgVGVybU9yZGVyX2Zy b21fUEJSaW5nKFBCUmluZyBfcmluZyk6CisgICAgIGNkZWYgaW50IG4gPSBfcmluZy5uVmFyaWFi bGVzKCkKKyAgICAgcGJfYmFzZV9vcmRlcl9jb2RlID0gX3Jpbmcub3JkZXJpbmcoKS5nZXRCYXNl T3JkZXJDb2RlKCkKKyAgICAgb3JkZXJfc3RyID0gaW52X29yZGVyX2RpY3RbcGJfYmFzZV9vcmRl cl9jb2RlXQorQEAgLTc1ODIsNyArNzU4Miw3IEBAIGNkZWYgb2JqZWN0IFRlcm1PcmRlcl9mcm9t X1BCUmluZyhQQlJpbmcgX3JpbmcpIG5vZXhjZXB0OgorICAgICByZXR1cm4gVAorIAorIAorLWNk ZWYgQm9vbGVhblBvbHlub21pYWxSaW5nIEJvb2xlYW5Qb2x5bm9taWFsUmluZ19mcm9tX1BCUmlu ZyhQQlJpbmcgX3JpbmcpIG5vZXhjZXB0OgorK2NkZWYgQm9vbGVhblBvbHlub21pYWxSaW5nIEJv b2xlYW5Qb2x5bm9taWFsUmluZ19mcm9tX1BCUmluZyhQQlJpbmcgX3JpbmcpOgorICAgICAiIiIK KyAgICAgR2V0IEJvb2xlYW5Qb2x5bm9taWFsUmluZyBmcm9tIEMrKy1pbXBsZW1lbnRhdGlvbgor ICAgICAiIiIKK0BAIC03ODk5LDcgKzc4OTksNyBAQCBjZGVmIGNsYXNzIEJvb2xlQ29uc3RhbnQ6 CisgICAgICAgICByZXR1cm4gc2VsZi5fcGJjb25zdC5oYXNDb25zdGFudFBhcnQoKQorIAorIAor LWNkZWYgb2JqZWN0IHBiX2Jsb2NrX29yZGVyKG4sIG9yZGVyX3N0ciwgYmxvY2tzKSBub2V4Y2Vw dDoKKytjZGVmIG9iamVjdCBwYl9ibG9ja19vcmRlcihuLCBvcmRlcl9zdHIsIGJsb2Nrcyk6Cisg ICAgIFQgPSBbVGVybU9yZGVyKG9yZGVyX3N0ciwgYmxvY2tlbmQgLSBibG9ja3N0YXJ0LCBmb3Jj ZT1UcnVlKQorICAgICAgICAgIGZvciAoYmxvY2tzdGFydCwgYmxvY2tlbmQpIGluIHppcChbMF0g KyBibG9ja3MsIGJsb2NrcyArIFtuXSldCisgICAgIGlmIFQ6CitAQCAtNzkxMCw3ICs3OTEwLDcg QEAgY2RlZiBvYmplY3QgcGJfYmxvY2tfb3JkZXIobiwgb3JkZXJfc3RyLCBibG9ja3MpIG5vZXhj ZXB0OgorICAgICByZXR1cm4gb3JkZXJfc3RyCisgCisgCistY3BkZWYgb2JqZWN0IFRlcm1PcmRl cl9mcm9tX3BiX29yZGVyKGludCBuLCBvcmRlciwgYmxvY2tzKSBub2V4Y2VwdDoKKytjcGRlZiBv YmplY3QgVGVybU9yZGVyX2Zyb21fcGJfb3JkZXIoaW50IG4sIG9yZGVyLCBibG9ja3MpOgorICAg ICBpZiBub3QgaXNpbnN0YW5jZShvcmRlciwgc3RyKToKKyAgICAgICAgIGlmIG9yZGVyID09IHBi YmxvY2tfZGxleDoKKyAgICAgICAgICAgICBvcmRlcl9zdHIgPSBwYl9ibG9ja19vcmRlcihuLCAi ZGVnbGV4IiwgYmxvY2tzKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cGx1cmFsLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZAoraW5kZXgg MDZiNDhjNzM3ZjMuLmEyMWQ4NmVlYzFmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wbHVyYWwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJh bC5weGQKK0BAIC0zMiwxNCArMzIsMTQgQEAgY2RlZiBjbGFzcyBFeHRlcmlvckFsZ2VicmFfcGx1 cmFsKE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKToKKyAKKyBjZGVmIGNsYXNzIE5DUG9seW5vbWlh bF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICBjZGVmIHBvbHkgKl9wb2x5CistICAgIGNwZGVm IF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhl cikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3JlcHJfc2hvcnRfKHNlbGYpIG5vZXhjZXB0CisrICAg IGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikK KysgICAgY3BkZWYgX3JlcHJfc2hvcnRfKHNlbGYpCisgICAgIGNkZWYgbG9uZyBfaGFzaF9jKHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2NvbnN0YW50KHNlbGYpIG5vZXhjZXB0CisrICAg IGNwZGVmIGlzX2NvbnN0YW50KHNlbGYpCisgIyAgICBjcGRlZiBfaG9tb2dlbml6ZShzZWxmLCBp bnQgdmFyKQorIAorLWNkZWYgTkNQb2x5bm9taWFsX3BsdXJhbCBuZXdfTkNQKE5DUG9seW5vbWlh bFJpbmdfcGx1cmFsIHBhcmVudCwgcG9seSAqanVpY2UpIG5vZXhjZXB0CisrY2RlZiBOQ1BvbHlu b21pYWxfcGx1cmFsIG5ld19OQ1AoTkNQb2x5bm9taWFsUmluZ19wbHVyYWwgcGFyZW50LCBwb2x5 ICpqdWljZSkKKyAKKy1jcGRlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgbmV3X0NSaW5n KFJpbmdXcmFwIHJ3LCBiYXNlX3JpbmcpIG5vZXhjZXB0CistY3BkZWYgTkNQb2x5bm9taWFsUmlu Z19wbHVyYWwgbmV3X05SaW5nKFJpbmdXcmFwIHJ3LCBiYXNlX3JpbmcpIG5vZXhjZXB0CisrY3Bk ZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIG5ld19DUmluZyhSaW5nV3JhcCBydywgYmFz ZV9yaW5nKQorK2NwZGVmIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIG5ld19OUmluZyhSaW5nV3Jh cCBydywgYmFzZV9yaW5nKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cGx1cmFsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5eAoraW5kZXgg NGZiNzEwNGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wbHVyYWwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJh bC5weXgKK0BAIC01NjQsNyArNTY0LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3Bs dXJhbChSaW5nKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYXMg bm9uY29tbXV0YXRpdmUgcG9seW5vbWlhbCIpICAjID8/PworICAgICAgICAgcmV0dXJuIG5ld19O Q1Aoc2VsZiwgX3ApCisgCistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKToKKyAgICAgICAg ICIiIgorICAgICAgICAgVGhlIG9ubHkgdGhpbmdzIHRoYXQgY29lcmNlIGludG8gdGhpcyByaW5n IGFyZToKKyAKK0BAIC0xNDY0LDcgKzE0NjQsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9w bHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5f aGFzaF9jKCkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAtMTUxNSw3 ICsxNTE1LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToK KyAgICAgICAgIGNkZWYgcmluZyAqciA9ICg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+bGVmdC5f cGFyZW50KS5fcmluZworICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgc2luZ3VsYXJf cG9seW5vbWlhbF9jbXAocCwgcSwgcikpCisgCistICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIi CisgICAgICAgICBBZGRzIGxlZnQgYW5kIHJpZ2h0LgorIAorQEAgLTE1MzQsNyArMTUzNCw3IEBA IGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPmxlZnQuX3Bh cmVudCkuX3JpbmcpCisgICAgICAgICByZXR1cm4gbmV3X05DUCgoPE5DUG9seW5vbWlhbFJpbmdf cGx1cmFsPmxlZnQuX3BhcmVudCksIF9wKQorIAorLSAgICBjcGRlZiBfc3ViXyhsZWZ0LCByaWdo dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgU3VidHJhY3QgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAtMTU1Niw3ICsxNTU2 LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9yaW5nKQorICAgICAgICAgcmV0dXJuIG5ld19O Q1AoKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5sZWZ0Ll9wYXJlbnQpLCBfcCkKKyAKKy0gICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9s bXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBs eSBgYHNlbGZgYCB3aXRoIGEgYmFzZSByaW5nIGVsZW1lbnQuCisgCitAQCAtMTU4Niw3ICsxNTg2 LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKKyAgICAg ICAgIHNpbmd1bGFyX3BvbHlub21pYWxfcm11bCgmX3AsIHNlbGYuX3BvbHksIGxlZnQsIF9yaW5n KQorICAgICAgICAgcmV0dXJuIG5ld19OQ1AoKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxm Ll9wYXJlbnQpLF9wKQorIAorLSAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg TXVsdGlwbHkgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAtMTYxNyw3ICsxNjE3LDcgQEAgY2RlZiBj bGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+bGVmdC5fcGFyZW50KS5f cmluZykKKyAgICAgICAgIHJldHVybiBuZXdfTkNQKCg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+ bGVmdC5fcGFyZW50KSxfcCkKKyAKKy0gICAgY3BkZWYgX2Rpdl8obGVmdCwgcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfZGl2XyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIERpdmlkZSBsZWZ0IGJ5IHJpZ2h0CisgCitAQCAtMTc5OSw3ICsxNzk5LDcgQEAgY2RlZiBj bGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKKyAgICAgICAgIHMgPSBzaW5n dWxhcl9wb2x5bm9taWFsX3N0cihzZWxmLl9wb2x5LCBfcmluZykKKyAgICAgICAgIHJldHVybiBz CisgCistICAgIGNwZGVmIF9yZXByX3Nob3J0XyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3JlcHJfc2hvcnRfKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGlzIGEgZmFz dGVyIGJ1dCBsZXNzIHByZXR0eSB3YXkgdG8gcHJpbnQgcG9seW5vbWlhbHMuIElmCisgICAgICAg ICBhdmFpbGFibGUgaXQgdXNlcyB0aGUgc2hvcnQgU0lOR1VMQVIgbm90YXRpb24uCitAQCAtMjU4 MSw3ICsyNTgxLDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50 KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5z ZWxmLl9wYXJlbnQpLl9iYXNlKQorICAgICAgICAgcmV0dXJuICg8TkNQb2x5bm9taWFsUmluZ19w bHVyYWw+c2VsZi5fcGFyZW50KS5fYmFzZS5femVyb19lbGVtZW50CisgCistICAgIGNwZGVmIGlz X2NvbnN0YW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19jb25zdGFudChzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoaXMgcG9seW5vbWlh bCBpcyBjb25zdGFudC4KKyAKK0BAIC0yNzk4LDcgKzI3OTgsNyBAQCBjZGVmIGNsYXNzIE5DUG9s eW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorIGNkZWYgaW5s aW5lIE5DUG9seW5vbWlhbF9wbHVyYWwgbmV3X05DUChOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBw YXJlbnQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbHkgKmp1 aWNlKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cG9seSAqanVpY2UpOgorICAgICAiIiIKKyAgICAgQ29uc3RydWN0IE5DUG9seW5vbWlhbF9wbHVy YWwgZnJvbSBwYXJlbnQgYW5kIFNJTkdVTEFSIHBvbHkuCisgCitAQCAtMjgxNiw3ICsyODE2LDcg QEAgY2RlZiBpbmxpbmUgTkNQb2x5bm9taWFsX3BsdXJhbCBuZXdfTkNQKE5DUG9seW5vbWlhbFJp bmdfcGx1cmFsIHBhcmVudCwKKyAgICAgcmV0dXJuIHAKKyAKKyAKKy1jcGRlZiBNUG9seW5vbWlh bFJpbmdfbGlic2luZ3VsYXIgbmV3X0NSaW5nKFJpbmdXcmFwIHJ3LCBiYXNlX3JpbmcpIG5vZXhj ZXB0OgorK2NwZGVmIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBuZXdfQ1JpbmcoUmluZ1dy YXAgcncsIGJhc2VfcmluZyk6CisgICAgICIiIgorICAgICBDb25zdHJ1Y3QgTVBvbHlub21pYWxS aW5nX2xpYnNpbmd1bGFyIGZyb20gcmluZ1dyYXAsIGFzc3VtaW5nIHRoZSBncm91bmQgZmllbGQg dG8gYmUgYmFzZV9yaW5nCisgCitAQCAtMjg4Niw3ICsyODg2LDcgQEAgY3BkZWYgTVBvbHlub21p YWxSaW5nX2xpYnNpbmd1bGFyIG5ld19DUmluZyhSaW5nV3JhcCBydywgYmFzZV9yaW5nKSBub2V4 Y2VwdDoKKyAgICAgcmV0dXJuIHNlbGYKKyAKKyAKKy1jcGRlZiBOQ1BvbHlub21pYWxSaW5nX3Bs dXJhbCBuZXdfTlJpbmcoUmluZ1dyYXAgcncsIGJhc2VfcmluZykgbm9leGNlcHQ6CisrY3BkZWYg TkNQb2x5bm9taWFsUmluZ19wbHVyYWwgbmV3X05SaW5nKFJpbmdXcmFwIHJ3LCBiYXNlX3Jpbmcp OgorICAgICAiIiIKKyAgICAgQ29uc3RydWN0IE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIGZyb20g cmluZ1dyYXAsIGFzc3VtaW5nIHRoZSBncm91bmQgZmllbGQgdG8gYmUgYmFzZV9yaW5nCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5ZGljdC5weGQgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlkaWN0LnB4ZAoraW5kZXggNDMyYWU3ZDhjNDcuLjRl Yzc3NjRlYTY4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5ZGlj dC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seWRpY3QucHhkCitAQCAt MSw4ICsxLDggQEAKKyBjZGVmIGNsYXNzIFBvbHlEaWN0OgorICAgICBjZGVmIGRpY3QgX19yZXBu CisgCistICAgIGNkZWYgUG9seURpY3QgX25ldyhzZWxmLCBkaWN0IHBkaWN0KSBub2V4Y2VwdAor LSAgICBjcGRlZiByZW1vdmVfemVyb3Moc2VsZiwgemVyb190ZXN0PSopIG5vZXhjZXB0CisrICAg IGNkZWYgUG9seURpY3QgX25ldyhzZWxmLCBkaWN0IHBkaWN0KQorKyAgICBjcGRlZiByZW1vdmVf emVyb3Moc2VsZiwgemVyb190ZXN0PSopCisgCisgCisgY2RlZiBjbGFzcyBFVHVwbGU6CitAQCAt MTEsNyArMTEsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKKyAgICAgY2RlZiBpbnQgKl9kYXRhCisg CisgICAgIGNkZWYgc2l6ZV90IGdldF9wb3NpdGlvbihzZWxmLCBzaXplX3QgaSwgc2l6ZV90IHN0 YXJ0LCBzaXplX3QgZW5kKSBub2V4Y2VwdAorLSAgICBjZGVmIEVUdXBsZSBfbmV3KHNlbGYpIG5v ZXhjZXB0CisrICAgIGNkZWYgRVR1cGxlIF9uZXcoc2VsZikKKyAgICAgY2RlZiBpbnQgZ2V0X2V4 cChzZWxmLCBzaXplX3QgaSkgbm9leGNlcHQKKyAKKyAgICAgY3BkZWYgaW50IHVud2VpZ2h0ZWRf ZGVncmVlKHNlbGYpIGV4Y2VwdCAqCitAQCAtMTksMjQgKzE5LDI0IEBAIGNkZWYgY2xhc3MgRVR1 cGxlOgorICAgICBjcGRlZiBpbnQgdW53ZWlnaHRlZF9xdW90aWVudF9kZWdyZWUoc2VsZiwgRVR1 cGxlIG90aGVyKSBleGNlcHQgKgorICAgICBjcGRlZiBpbnQgd2VpZ2h0ZWRfcXVvdGllbnRfZGVn cmVlKHNlbGYsIEVUdXBsZSBvdGhlciwgdHVwbGUgdykgZXhjZXB0ICoKKyAKKy0gICAgY3BkZWYg RVR1cGxlIGVhZGQoc2VsZiwgRVR1cGxlIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBFVHVw bGUgZXN1YihzZWxmLCBFVHVwbGUgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIEVUdXBsZSBl bXVsKHNlbGYsIGludCBmYWN0b3IpIG5vZXhjZXB0CistICAgIGNwZGVmIEVUdXBsZSBlbWluKHNl bGYsIEVUdXBsZSBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgRVR1cGxlIGVtYXgoc2VsZiwg RVR1cGxlIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBFVHVwbGUgZWFkZF9wKHNlbGYsIGlu dCBvdGhlciwgc2l6ZV90IHBvcykgbm9leGNlcHQKKy0gICAgY3BkZWYgRVR1cGxlIGVhZGRfc2Nh bGVkKHNlbGYsIEVUdXBsZSBvdGhlciwgaW50IHNjYWxhcikgbm9leGNlcHQKKysgICAgY3BkZWYg RVR1cGxlIGVhZGQoc2VsZiwgRVR1cGxlIG90aGVyKQorKyAgICBjcGRlZiBFVHVwbGUgZXN1Yihz ZWxmLCBFVHVwbGUgb3RoZXIpCisrICAgIGNwZGVmIEVUdXBsZSBlbXVsKHNlbGYsIGludCBmYWN0 b3IpCisrICAgIGNwZGVmIEVUdXBsZSBlbWluKHNlbGYsIEVUdXBsZSBvdGhlcikKKysgICAgY3Bk ZWYgRVR1cGxlIGVtYXgoc2VsZiwgRVR1cGxlIG90aGVyKQorKyAgICBjcGRlZiBFVHVwbGUgZWFk ZF9wKHNlbGYsIGludCBvdGhlciwgc2l6ZV90IHBvcykKKysgICAgY3BkZWYgRVR1cGxlIGVhZGRf c2NhbGVkKHNlbGYsIEVUdXBsZSBvdGhlciwgaW50IHNjYWxhcikKKyAgICAgY3BkZWYgaW50IGRv dHByb2Qoc2VsZiwgRVR1cGxlIG90aGVyKSBleGNlcHQgKgorLSAgICBjcGRlZiBFVHVwbGUgZXNj YWxhcl9kaXYoc2VsZiwgaW50IG4pIG5vZXhjZXB0CistICAgIGNwZGVmIEVUdXBsZSBkaXZpZGVf YnlfZ2NkKHNlbGYsIEVUdXBsZSBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgRVR1cGxlIGRp dmlkZV9ieV92YXIoc2VsZiwgc2l6ZV90IHBvcykgbm9leGNlcHQKKysgICAgY3BkZWYgRVR1cGxl IGVzY2FsYXJfZGl2KHNlbGYsIGludCBuKQorKyAgICBjcGRlZiBFVHVwbGUgZGl2aWRlX2J5X2dj ZChzZWxmLCBFVHVwbGUgb3RoZXIpCisrICAgIGNwZGVmIEVUdXBsZSBkaXZpZGVfYnlfdmFyKHNl bGYsIHNpemVfdCBwb3MpCisgICAgIGNwZGVmIGJpbnQgZGl2aWRlcyhzZWxmLCBFVHVwbGUgb3Ro ZXIpIGV4Y2VwdCAqCisgICAgIGNwZGVmIGJpbnQgaXNfY29uc3RhbnQoc2VsZikgbm9leGNlcHQK KyAgICAgY3BkZWYgYmludCBpc19tdWx0aXBsZV9vZihzZWxmLCBpbnQgbikgZXhjZXB0ICoKKy0g ICAgY3BkZWYgbGlzdCBub256ZXJvX3Bvc2l0aW9ucyhzZWxmLCBiaW50IHNvcnQ9Kikgbm9leGNl cHQKKy0gICAgY3BkZWYgY29tbW9uX25vbnplcm9fcG9zaXRpb25zKHNlbGYsIEVUdXBsZSBvdGhl ciwgYmludCBzb3J0PSopIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3Qgbm9uemVyb192YWx1ZXMo c2VsZiwgYmludCBzb3J0PSopIG5vZXhjZXB0CistICAgIGNwZGVmIEVUdXBsZSByZXZlcnNlZChz ZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBsaXN0IG5vbnplcm9fcG9zaXRpb25zKHNlbGYsIGJp bnQgc29ydD0qKQorKyAgICBjcGRlZiBjb21tb25fbm9uemVyb19wb3NpdGlvbnMoc2VsZiwgRVR1 cGxlIG90aGVyLCBiaW50IHNvcnQ9KikKKysgICAgY3BkZWYgbGlzdCBub256ZXJvX3ZhbHVlcyhz ZWxmLCBiaW50IHNvcnQ9KikKKysgICAgY3BkZWYgRVR1cGxlIHJldmVyc2VkKHNlbGYpCisgCisg Y3BkZWYgaW50IGdlbl9pbmRleChQb2x5RGljdCB4KSBub2V4Y2VwdAorLWNwZGVmIEVUdXBsZSBt b25vbWlhbF9leHBvbmVudChQb2x5RGljdCBwKSBub2V4Y2VwdAorK2NwZGVmIEVUdXBsZSBtb25v bWlhbF9leHBvbmVudChQb2x5RGljdCBwKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcG9seWRpY3QucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5ZGlj dC5weXgKK2luZGV4IGFmMjRlN2ZmMjQ1Li5iZjQyYTY1OWFlYSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seWRpY3QucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL3BvbHlkaWN0LnB5eAorQEAgLTY5LDcgKzY5LDcgQEAgY3BkZWYgaW50IGdlbl9p bmRleChQb2x5RGljdCB4KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGUuX2RhdGFbMF0KKyAKKyAK Ky1jcGRlZiBFVHVwbGUgbW9ub21pYWxfZXhwb25lbnQoUG9seURpY3QgcCkgbm9leGNlcHQ6Cisr Y3BkZWYgRVR1cGxlIG1vbm9taWFsX2V4cG9uZW50KFBvbHlEaWN0IHApOgorICAgICByIiIiCisg ICAgIFJldHVybiB0aGUgdW5pcXVlIGV4cG9uZW50IG9mIGBgcGBgIGlmIGl0IGlzIGEgbW9ub21p YWwgb3IgcmFpc2UgYSBgYFZhbHVlRXJyb3JgYC4KKyAKK0BAIC0xODksMTIgKzE4OSwxMiBAQCBj ZGVmIGNsYXNzIFBvbHlEaWN0OgorICAgICAgICAgICAgIGlmIHJlbW92ZV96ZXJvOgorICAgICAg ICAgICAgICAgICBzZWxmLnJlbW92ZV96ZXJvcygpCisgCistICAgIGNkZWYgUG9seURpY3QgX25l dyhzZWxmLCBkaWN0IHBkaWN0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBQb2x5RGljdCBfbmV3KHNl bGYsIGRpY3QgcGRpY3QpOgorICAgICAgICAgY2RlZiBQb2x5RGljdCBhbnMgPSBQb2x5RGljdC5f X25ld19fKFBvbHlEaWN0KQorICAgICAgICAgYW5zLl9fcmVwbiA9IHBkaWN0CisgICAgICAgICBy ZXR1cm4gYW5zCisgCistICAgIGNwZGVmIHJlbW92ZV96ZXJvcyhzZWxmLCB6ZXJvX3Rlc3Q9Tm9u ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlbW92ZV96ZXJvcyhzZWxmLCB6ZXJvX3Rlc3Q9Tm9u ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZW1vdmUgdGhlIGVudHJpZXMgd2l0aCB6ZXJv IGNvZWZmaWNpZW50cy4KKyAKK0BAIC0xNDMwLDcgKzE0MzAsNyBAQCBjZGVmIGNsYXNzIEVUdXBs ZToKKyAgICAgcXVlc3Rpb24gKGFsdGhvdWdoLCB0aGVyZSBpcyBubyBxdWVzdGlvbiB0aGF0IHRo aXMgaXMgbXVjaCBmYXN0ZXIKKyAgICAgdGhhbiB0aGUgcHJpb3IgdXNlIG9mIHB5dGhvbiBkaWN0 cykuCisgICAgICIiIgorLSAgICBjZGVmIEVUdXBsZSBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIEVUdXBsZSBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBRdWlja2x5 IGNyZWF0ZXMgYSBuZXcgaW5pdGlhbGl6ZWQgRVR1cGxlIHdpdGggdGhlCisgICAgICAgICBzYW1l IGxlbmd0aCBhcyBzZWxmLgorQEAgLTE5NzUsNyArMTk3NSw3IEBAIGNkZWYgY2xhc3MgRVR1cGxl OgorICAgICAgICAgICAgIGluZDEgKz0gMgorICAgICAgICAgcmV0dXJuIGRlZworIAorLSAgICBj cGRlZiBFVHVwbGUgZWFkZChzZWxmLCBFVHVwbGUgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBFVHVwbGUgZWFkZChzZWxmLCBFVHVwbGUgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHZlY3RvciBhZGRpdGlvbiBvZiBgYHNlbGZgYCB3aXRoIGBgb3RoZXJgYC4K KyAKK0BAIC0yMDI1LDcgKzIwMjUsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKKyAgICAgICAgICAg ICAgICAgcmVzdWx0Ll9ub256ZXJvICs9IDEKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0g ICAgY3BkZWYgRVR1cGxlIGVhZGRfcChzZWxmLCBpbnQgb3RoZXIsIHNpemVfdCBwb3MpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFVHVwbGUgZWFkZF9wKHNlbGYsIGludCBvdGhlciwgc2l6ZV90IHBv cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBgYG90aGVyYGAgdG8gYGBzZWxmYGAgYXQg cG9zaXRpb24gYGBwb3NgYC4KKyAKK0BAIC0yMTEzLDcgKzIxMTMsNyBAQCBjZGVmIGNsYXNzIEVU dXBsZToKKyAKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgRVR1cGxlIGVh ZGRfc2NhbGVkKHNlbGYsIEVUdXBsZSBvdGhlciwgaW50IHNjYWxhcikgbm9leGNlcHQ6CisrICAg IGNwZGVmIEVUdXBsZSBlYWRkX3NjYWxlZChzZWxmLCBFVHVwbGUgb3RoZXIsIGludCBzY2FsYXIp OgorICAgICAgICAgIiIiCisgICAgICAgICBWZWN0b3IgYWRkaXRpb24gb2YgYGBzZWxmYGAgd2l0 aCBgYHNjYWxhciAqIG90aGVyYGAuCisgCitAQCAtMjE1Miw3ICsyMTUyLDcgQEAgY2RlZiBjbGFz cyBFVHVwbGU6CisgICAgICAgICAgICAgICAgIHJlc3VsdC5fbm9uemVybyArPSAxCisgICAgICAg ICByZXR1cm4gcmVzdWx0CisgCistICAgIGNwZGVmIEVUdXBsZSBlc3ViKHNlbGYsIEVUdXBsZSBv dGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVUdXBsZSBlc3ViKHNlbGYsIEVUdXBsZSBvdGhl cik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFZlY3RvciBzdWJ0cmFjdGlvbiBvZiBgYHNlbGZg YCB3aXRoIGBgb3RoZXJgYC4KKyAKK0BAIC0yMTkwLDcgKzIxOTAsNyBAQCBjZGVmIGNsYXNzIEVU dXBsZToKKyAgICAgICAgICAgICAgICAgcmVzdWx0Ll9ub256ZXJvICs9IDEKKyAgICAgICAgIHJl dHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgRVR1cGxlIGVtdWwoc2VsZiwgaW50IGZhY3Rvcikg bm9leGNlcHQ6CisrICAgIGNwZGVmIEVUdXBsZSBlbXVsKHNlbGYsIGludCBmYWN0b3IpOgorICAg ICAgICAgIiIiCisgICAgICAgICBTY2FsYXIgVmVjdG9yIG11bHRpcGxpY2F0aW9uIG9mIGBgc2Vs ZmBgLgorIAorQEAgLTIyMTQsNyArMjIxNCw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICAg ICAgICAgICAgICByZXN1bHQuX2RhdGFbMiAqIGluZCArIDFdID0gc2VsZi5fZGF0YVsyICogaW5k ICsgMV0gKiBmYWN0b3IKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgRVR1 cGxlIGVtYXgoc2VsZiwgRVR1cGxlIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRVR1cGxl IGVtYXgoc2VsZiwgRVR1cGxlIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVmVjdG9y IG9mIG1heGltdW0gb2YgY29tcG9uZW50cyBvZiBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgorIAor QEAgLTIyNjEsNyArMjI2MSw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICAgICAgICAgICAg ICByZXN1bHQuX25vbnplcm8gKz0gMQorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBj cGRlZiBFVHVwbGUgZW1pbihzZWxmLCBFVHVwbGUgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBFVHVwbGUgZW1pbihzZWxmLCBFVHVwbGUgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAg ICBWZWN0b3Igb2YgbWluaW11bSBvZiBjb21wb25lbnRzIG9mIGBgc2VsZmBgIGFuZCBgYG90aGVy YGAuCisgCitAQCAtMjMzMSw3ICsyMzMxLDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CisgICAgICAg ICAgICAgcmVzdWx0ICs9IGV4cDEgKiBleHAyCisgICAgICAgICByZXR1cm4gcmVzdWx0CisgCist ICAgIGNwZGVmIEVUdXBsZSBlc2NhbGFyX2RpdihzZWxmLCBpbnQgbikgbm9leGNlcHQ6CisrICAg IGNwZGVmIEVUdXBsZSBlc2NhbGFyX2RpdihzZWxmLCBpbnQgbik6CisgICAgICAgICByIiIiCisg ICAgICAgICBEaXZpZGUgZWFjaCBleHBvbmVudCBieSBgYG5gYC4KKyAKK0BAIC0yMzcyLDcgKzIz NzIsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKKyAgICAgICAgICAgICAgICAgcmVzdWx0Ll9ub256 ZXJvICs9IDEKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgRVR1cGxlIGRp dmlkZV9ieV9nY2Qoc2VsZiwgRVR1cGxlIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRVR1 cGxlIGRpdmlkZV9ieV9nY2Qoc2VsZiwgRVR1cGxlIG90aGVyKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGBgc2VsZiAvIGdjZChzZWxmLCBvdGhlcilgYC4KKyAKK0BAIC0yNDE1LDcg KzI0MTUsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKKyAgICAgICAgICAgICBpbmQxICs9IDIKKyAg ICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgRVR1cGxlIGRpdmlkZV9ieV92YXIo c2VsZiwgc2l6ZV90IHBvcykgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVUdXBsZSBkaXZpZGVfYnlf dmFyKHNlbGYsIHNpemVfdCBwb3MpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gZGl2 aXNpb24gb2YgYGBzZWxmYGAgYnkgdGhlIHZhcmlhYmxlIHdpdGggaW5kZXggYGBwb3NgYC4KKyAK K0BAIC0yNTQyLDcgKzI1NDIsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKKyAgICAgICAgICAgICAg ICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBsaXN0 IG5vbnplcm9fcG9zaXRpb25zKHNlbGYsIGJpbnQgc29ydD1GYWxzZSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIGxpc3Qgbm9uemVyb19wb3NpdGlvbnMoc2VsZiwgYmludCBzb3J0PUZhbHNlKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwb3NpdGlvbnMgb2Ygbm9uLXplcm8gZXhw b25lbnRzIGluIHRoZSB0dXBsZS4KKyAKK0BAIC0yNTYxLDcgKzI1NjEsNyBAQCBjZGVmIGNsYXNz IEVUdXBsZToKKyAgICAgICAgIGNkZWYgc2l6ZV90IGluZAorICAgICAgICAgcmV0dXJuIFtzZWxm Ll9kYXRhWzIgKiBpbmRdIGZvciBpbmQgaW4gcmFuZ2Uoc2VsZi5fbm9uemVybyldCisgCistICAg IGNwZGVmIGNvbW1vbl9ub256ZXJvX3Bvc2l0aW9ucyhzZWxmLCBFVHVwbGUgb3RoZXIsIGJpbnQg c29ydD1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbW1vbl9ub256ZXJvX3Bvc2l0aW9u cyhzZWxmLCBFVHVwbGUgb3RoZXIsIGJpbnQgc29ydD1GYWxzZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybnMgYW4gb3B0aW9uYWxseSBzb3J0ZWQgbGlzdCBvZiBub24gemVybyBwb3Np dGlvbnMgZWl0aGVyCisgICAgICAgICBpbiBzZWxmIG9yIG90aGVyLCBpLmUuIHRoZSBvbmx5IHBv c2l0aW9ucyB0aGF0IG5lZWQgdG8gYmUKK0BAIC0yNTg0LDcgKzI1ODQsNyBAQCBjZGVmIGNsYXNz IEVUdXBsZToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHJlcworIAorLSAg ICBjcGRlZiBsaXN0IG5vbnplcm9fdmFsdWVzKHNlbGYsIGJpbnQgc29ydD1UcnVlKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgbGlzdCBub256ZXJvX3ZhbHVlcyhzZWxmLCBiaW50IHNvcnQ9VHJ1ZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbm9uLXplcm8gdmFsdWVzIG9mIHRo ZSB0dXBsZS4KKyAKK0BAIC0yNjA2LDcgKzI2MDYsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKKyAg ICAgICAgIGNkZWYgc2l6ZV90IGluZAorICAgICAgICAgcmV0dXJuIFtzZWxmLl9kYXRhWzIgKiBp bmQgKyAxXSBmb3IgaW5kIGluIHJhbmdlKHNlbGYuX25vbnplcm8pXQorIAorLSAgICBjcGRlZiBF VHVwbGUgcmV2ZXJzZWQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVUdXBsZSByZXZlcnNl ZChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSByZXZlcnNlZCBFVHVw bGUgb2YgYGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX2NvbXBpbGVkLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9jb21waWxlZC5weGQKK2luZGV4IDNlNWM5ZjQ2MTFmLi5lMWIxMWVjMWE0MSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21waWxlZC5w eGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21waWxlZC5w eGQKK0BAIC04LDE3ICs4LDE3IEBAIGNkZWYgY2xhc3MgQ29tcGlsZWRQb2x5bm9taWFsRnVuY3Rp b246CisgICAgIGNkZWYgZ2VuZXJpY19wZCBfZGFnCisgICAgIGNkZWYgb2JqZWN0IF9jb2VmZnMK KyAKKy0gICAgY2RlZiBvYmplY3QgX3BhcnNlX3N0cnVjdHVyZShDb21waWxlZFBvbHlub21pYWxG dW5jdGlvbikgbm9leGNlcHQKKy0gICAgY2RlZiBnZW5lcmljX3BkIF9nZXRfZ2FwKENvbXBpbGVk UG9seW5vbWlhbEZ1bmN0aW9uLCBCaW5hcnlUcmVlLCBpbnQpIG5vZXhjZXB0CisrICAgIGNkZWYg b2JqZWN0IF9wYXJzZV9zdHJ1Y3R1cmUoQ29tcGlsZWRQb2x5bm9taWFsRnVuY3Rpb24pCisrICAg IGNkZWYgZ2VuZXJpY19wZCBfZ2V0X2dhcChDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbiwgQmlu YXJ5VHJlZSwgaW50KQorICAgICBjZGVmIHZvaWQgX2ZpbGxfZ2Fwc19iaW5hcnkoQ29tcGlsZWRQ b2x5bm9taWFsRnVuY3Rpb24sIEJpbmFyeVRyZWUpIG5vZXhjZXB0CistICAgIGNkZWYgb2JqZWN0 IGV2YWwoQ29tcGlsZWRQb2x5bm9taWFsRnVuY3Rpb24sIG9iamVjdCkgbm9leGNlcHQKKysgICAg Y2RlZiBvYmplY3QgZXZhbChDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbiwgb2JqZWN0KQorIAor IGNkZWYgY2xhc3MgZ2VuZXJpY19wZDoKKyAgICAgY2RlZiBvYmplY3QgdmFsdWUKKyAgICAgY2Rl ZiBpbnQgcmVmcywgaGl0cworICAgICBjZGVmIGludCBsYWJlbAorICAgICBjZGVmIGludCBldmFs KHNlbGYsIHZhcnMsIGNvZWZmcykgZXhjZXB0IC0yCistICAgIGNkZWYgZ2VuZXJpY19wZCBub2R1 bW1pZXMoZ2VuZXJpY19wZCkgbm9leGNlcHQKKysgICAgY2RlZiBnZW5lcmljX3BkIG5vZHVtbWll cyhnZW5lcmljX3BkKQorICAgICBjZGVmIHZvaWQgcmVzZXQoc2VsZikgbm9leGNlcHQKKyAKKyBj ZGVmIGNsYXNzIGR1bW15X3BkKGdlbmVyaWNfcGQpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21waWxlZC5weXggYi9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL3BvbHlub21pYWxfY29tcGlsZWQucHl4CitpbmRleCAxMTQ1ZGZhZTdlYS4uMWEx NDAwNjdhZDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfY29tcGlsZWQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfY29tcGlsZWQucHl4CitAQCAtMTE5LDcgKzExOSw3IEBAIGNkZWYgY2xhc3MgQ29tcGlsZWRQ b2x5bm9taWFsRnVuY3Rpb246CisgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB4KToKKyAgICAgICAg IHJldHVybiBzZWxmLmV2YWwoeCkKKyAKKy0gICAgY2RlZiBvYmplY3QgZXZhbChDb21waWxlZFBv bHlub21pYWxGdW5jdGlvbiBzZWxmLCBvYmplY3QgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgb2Jq ZWN0IGV2YWwoQ29tcGlsZWRQb2x5bm9taWFsRnVuY3Rpb24gc2VsZiwgb2JqZWN0IHgpOgorICAg ICAgICAgY2RlZiBvYmplY3QgdGVtcAorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIHBkX2V2 YWwoc2VsZi5fZGFnLCB4LCBzZWxmLl9jb2VmZnMpICAjc2VlIGZ1cnRoZXIgZG93bgorQEAgLTEz MCw3ICsxMzAsNyBAQCBjZGVmIGNsYXNzIENvbXBpbGVkUG9seW5vbWlhbEZ1bmN0aW9uOgorICAg ICAgICAgICAgIHNlbGYuX2RhZy5yZXNldCgpCisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y KG1zZykKKyAKKy0gICAgY2RlZiBvYmplY3QgX3BhcnNlX3N0cnVjdHVyZShDb21waWxlZFBvbHlu b21pYWxGdW5jdGlvbiBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBvYmplY3QgX3BhcnNlX3N0 cnVjdHVyZShDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbiBzZWxmKToKKyAgICAgICAgICIiIgor ICAgICAgICAgTG9vcCB0aHJvdWdoIHRoZSBjb2VmZmljaWVudHMgb2YgdGhlIHBvbHlub21pYWws IGFuZCBjb2xsZWN0CisgICAgICAgICBjb2VmZmljaWVudCBnYXAgd2lkdGhzLiAgTWVhbndoaWxl LCBjb25zdHJ1Y3QgdGhlIGV2YWx1YXRpb24KK0BAIC0xNjksNyArMTY5LDcgQEAgY2RlZiBjbGFz cyBDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbjoKKyAKKyAgICAgICAgIHJldHVybiBnYXBzLCBz CisgCistICAgIGNkZWYgZ2VuZXJpY19wZCBfZ2V0X2dhcChDb21waWxlZFBvbHlub21pYWxGdW5j dGlvbiBzZWxmLCBCaW5hcnlUcmVlIGdhcHMsIGludCBnYXApIG5vZXhjZXB0OgorKyAgICBjZGVm IGdlbmVyaWNfcGQgX2dldF9nYXAoQ29tcGlsZWRQb2x5bm9taWFsRnVuY3Rpb24gc2VsZiwgQmlu YXJ5VHJlZSBnYXBzLCBpbnQgZ2FwKToKKyAgICAgICAgICIiIgorICAgICAgICAgRmluZCBhbiBl bnRyeSBpbiB0aGUgQmluYXJ5VHJlZSBnYXBzLCBpZGVudGlmaWVkIGJ5IHRoZSBpbnQgZ2FwLgor ICAgICAgICAgSWYgc3VjaCBhbiBlbnRyeSBkb2VzIG5vdCBleGlzdCwgY3JlYXRlIGl0IGFuZCBw dXQgaXQgaW4gdGhlIHRyZWUuCitAQCAtMzY3LDcgKzM2Nyw3IEBAIGNkZWYgY2xhc3MgZ2VuZXJp Y19wZDoKKyAgICAgY2RlZiBpbnQgZXZhbChnZW5lcmljX3BkIHNlbGYsIG9iamVjdCB2YXJzLCBv YmplY3QgY29lZmZzKSBleGNlcHQgLTI6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy cm9yCisgCistICAgIGNkZWYgZ2VuZXJpY19wZCBub2R1bW1pZXMoZ2VuZXJpY19wZCBzZWxmKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBnZW5lcmljX3BkIG5vZHVtbWllcyhnZW5lcmljX3BkIHNlbGYp OgorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKyAgICAgY2RlZiB2b2lkIHJlc2V0KGdlbmVyaWNf cGQgc2VsZikgbm9leGNlcHQ6CitAQCAtMzgxLDcgKzM4MSw3IEBAIGNkZWYgY2xhc3MgZHVtbXlf cGQoZ2VuZXJpY19wZCk6CisgICAgIGNkZWYgdm9pZCBmaWxsKGR1bW15X3BkIHNlbGYsIGdlbmVy aWNfcGQgbGluaykgbm9leGNlcHQ6CisgICAgICAgICBzZWxmLmxpbmsgPSBsaW5rCisgCistICAg IGNkZWYgZ2VuZXJpY19wZCBub2R1bW1pZXMoZHVtbXlfcGQgc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgZ2VuZXJpY19wZCBub2R1bW1pZXMoZHVtbXlfcGQgc2VsZik6CisgICAgICAgICAjc29y cnkgZ3V5cywgdGhpcyBpcyBteSBzdG9wCisgICAgICAgICBzZWxmLmxpbmsucmVmcyA9IHNlbGYu cmVmcworICAgICAgICAgcmV0dXJuIHNlbGYubGluay5ub2R1bW1pZXMoKQorQEAgLTQyNiw3ICs0 MjYsNyBAQCBjZGVmIGNsYXNzIHVuYXJ5X3BkKGdlbmVyaWNfcGQpOgorICAgICAgICAgc2VsZi5v cGVyYW5kID0gb3BlcmFuZAorICAgICAgICAgc2VsZi5vcGVyYW5kLnJlZnMgKz0gMQorIAorLSAg ICBjZGVmIGdlbmVyaWNfcGQgbm9kdW1taWVzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdl bmVyaWNfcGQgbm9kdW1taWVzKHNlbGYpOgorICAgICAgICAgc2VsZi5vcGVyYW5kID0gc2VsZi5v cGVyYW5kLm5vZHVtbWllcygpCisgICAgICAgICByZXR1cm4gc2VsZgorIAorQEAgLTQ2Nyw3ICs0 NjcsNyBAQCBjZGVmIGNsYXNzIGJpbmFyeV9wZChnZW5lcmljX3BkKToKKyAgICAgICAgIHNlbGYu bGVmdC5yZWZzKz0gMQorICAgICAgICAgc2VsZi5yaWdodC5yZWZzKz0gMQorIAorLSAgICBjZGVm IGdlbmVyaWNfcGQgbm9kdW1taWVzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdlbmVyaWNf cGQgbm9kdW1taWVzKHNlbGYpOgorICAgICAgICAgc2VsZi5sZWZ0ID0gc2VsZi5sZWZ0Lm5vZHVt bWllcygpCisgICAgICAgICBzZWxmLnJpZ2h0ID0gc2VsZi5yaWdodC5ub2R1bW1pZXMoKQorICAg ICAgICAgcmV0dXJuIHNlbGYKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfY29tcGxleF9hcmIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAoraW5kZXggMjllM2NjNGZkNjEuLmU1NGQ4NWU5NjFi IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBs ZXhfYXJiLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2Nv bXBsZXhfYXJiLnB4ZAorQEAgLTMsNCArMyw0IEBAIGZyb20gc2FnZS5yaW5ncy5wb2x5bm9taWFs LnBvbHlub21pYWxfZWxlbWVudCBjaW1wb3J0IFBvbHlub21pYWwKKyAKKyBjZGVmIGNsYXNzIFBv bHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgIGNkZWYgYWNiX3BvbHlfc3Ry dWN0WzFdIF9wb2x5ICMgaHR0cHM6Ly9naXRodWIuY29tL2N5dGhvbi9jeXRob24vaXNzdWVzLzE5 ODQKKy0gICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIF9uZXcoc2VsZikgbm9leGNlcHQK KysgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIF9uZXcoc2VsZikKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIucHl4IGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB5eAoraW5k ZXggODFlNzk5YjdhOGQuLmVjMjJlM2NkYzQwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB5eAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB5eAorQEAgLTg3LDcgKzg3LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAg ICAgIiIiCisgICAgICAgICBhY2JfcG9seV9jbGVhcihzZWxmLl9wb2x5KQorIAorLSAgICBjZGVm IFBvbHlub21pYWxfY29tcGxleF9hcmIgX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBQ b2x5bm9taWFsX2NvbXBsZXhfYXJiIF9uZXcoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gYSBuZXcgcG9seW5vbWlhbCB3aXRoIHRoZSBzYW1lIHBhcmVudCBhcyB0aGlzIG9u ZS4KKyAgICAgICAgICIiIgorQEAgLTIzMSwxMyArMjMxLDEzIEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNtYWxsSW50ZWdlcihhY2JfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkpCisgCistICAgIGNk ZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIGdl dF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKToKKyAgICAgICAgIGNkZWYgQ29tcGxleEJhbGwg cmVzID0gQ29tcGxleEJhbGwuX19uZXdfXyhDb21wbGV4QmFsbCkKKyAgICAgICAgIHJlcy5fcGFy ZW50ID0gc2VsZi5fcGFyZW50Ll9iYXNlCisgICAgICAgICBhY2JfcG9seV9nZXRfY29lZmZfYWNi KHJlcy52YWx1ZSwgc2VsZi5fcG9seSwgbikKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAg Y3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgY29lZmZpY2llbnQgbGlzdCBvZiB0aGlzIHBvbHlub21pYWwuCisgCitA QCAtMjcxLDcgKzI3MSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5 bm9taWFsKToKKyAKKyAgICAgIyBSaW5nIGFuZCBFdWNsaWRlYW4gYXJpdGhtZXRpYworIAorLSAg ICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNl bGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHR3 byBwb2x5bm9taWFscy4KKyAKK0BAIC0yOTEsNyArMjkxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgb3Bw b3NpdGUgb2YgdGhpcyBwb2x5bm9taWFsLgorIAorQEAgLTMwNyw3ICszMDcsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBzaWdfb2Zm KCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdHdvIHBvbHlub21pYWxzLgorIAor QEAgLTMyNyw3ICszMjcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9s eW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0g ICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhz ZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qg b2YgdHdvIHBvbHlub21pYWxzLgorIAorQEAgLTM0OCw3ICszNDgsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGEpOgorICAgICAgICAg ciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTM2OCw3ICszNjgsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQg YSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGEpOgorICAgICAg ICAgciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTQyOSw3ICs0MjksNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgCisgICAgICMgU3ludGFj dGljIHRyYW5zZm9ybWF0aW9ucworIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNl bGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2Vs ZiwgbG9uZyBuKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdHJ1bmNhdGlv biB0byBkZWdyZWUgYG4gLSAxYCBvZiB0aGlzIHBvbHlub21pYWwuCisgCitAQCAtNDYwLDcgKzQ2 MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAg ICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVmIF9pbnBs YWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2lucGxhY2Vf dHJ1bmNhdGUoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAg IG4gPSAwCisgICAgICAgICBhY2JfcG9seV90cnVuY2F0ZShzZWxmLl9wb2x5LCBuKQorQEAgLTUz NCw3ICs1MzQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlh bCk6CisgCisgICAgICMgVHJ1bmNhdGVkIGFuZCBwb3dlciBzZXJpZXMgYXJpdGhtZXRpYworIAor LSAgICBjcGRlZiBQb2x5bm9taWFsIF9tdWxfdHJ1bmNfKHNlbGYsIFBvbHlub21pYWwgb3RoZXIs IGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90cnVuY18oc2Vs ZiwgUG9seW5vbWlhbCBvdGhlciwgbG9uZyBuKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgcHJvZHVjdCBvZiBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLCB0cnVuY2F0ZWQgYmVm b3JlIGRlZ3JlZcKgYG5gLgorIAorQEAgLTU2Miw3ICs1NjIsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBpbnZlcnNlX3Nlcmllc190 cnVuYyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIGludmVy c2Vfc2VyaWVzX3RydW5jKHNlbGYsIGxvbmcgbik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIHBvd2VyIHNlcmllcyBleHBhbnNpb24gYXTCoDAgb2YgdGhlIGludmVyc2Ugb2Yg dGhpcworICAgICAgICAgcG9seW5vbWlhbCwgdHJ1bmNhdGVkIGJlZm9yZSBkZWdyZWXCoGBuYC4K K0BAIC01OTAsNyArNTkwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBv bHlub21pYWwpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCist ICAgIGNwZGVmIFBvbHlub21pYWwgX3Bvd2VyX3RydW5jKHNlbGYsIHVuc2lnbmVkIGxvbmcgZXhw bywgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCBfcG93ZXJfdHJ1bmMo c2VsZiwgdW5zaWduZWQgbG9uZyBleHBvLCBsb25nIG4pOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIGEgcG93ZXIgb2YgdGhpcyBwb2x5bm9taWFsLCB0cnVuY2F0ZWQgYmVmb3JlIGRl Z3JlZcKgYG5gLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF9lbGVtZW50LnB4ZAoraW5kZXggOWI4YmY0MWZhMDYuLmE4ZjJjZjMwNTdiIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHhkCisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5weGQKK0BAIC03 LDU4ICs3LDU4IEBAIGZyb20gc2FnZS5yaW5ncy5wb2x5bm9taWFsLnBvbHlub21pYWxfY29tcGls ZWQgY2ltcG9ydCBDb21waWxlZFBvbHlub21pYWxGdW5jdGlvCisgCisgCisgY2RlZiBjbGFzcyBQ b2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CistICAgIGNkZWYgUG9seW5vbWlhbCBf bmV3X2dlbmVyaWMoc2VsZiwgbGlzdCBjb2VmZnMpIG5vZXhjZXB0CisrICAgIGNkZWYgUG9seW5v bWlhbCBfbmV3X2dlbmVyaWMoc2VsZiwgbGlzdCBjb2VmZnMpCisgICAgIGNkZWYgY2hhciBfaXNf Z2VuCisgICAgIGNkZWYgQ29tcGlsZWRQb2x5bm9taWFsRnVuY3Rpb24gX2NvbXBpbGVkCistICAg IGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBj cGRlZiBQb2x5bm9taWFsIGludmVyc2Vfc2VyaWVzX3RydW5jKHNlbGYsIGxvbmcgcHJlYykgbm9l eGNlcHQKKysgICAgY3BkZWYgUG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pCisrICAg IGNwZGVmIFBvbHlub21pYWwgaW52ZXJzZV9zZXJpZXNfdHJ1bmMoc2VsZiwgbG9uZyBwcmVjKQor ICAgICBjZGVmIGxvbmcgX2hhc2hfYyhzZWxmKSBleGNlcHQgLTEKKy0gICAgY3BkZWYgY29uc3Rh bnRfY29lZmZpY2llbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbmV3 X2NvbnN0YW50X3BvbHkoc2VsZiwgYSwgUGFyZW50IFApIG5vZXhjZXB0CistICAgIGNwZGVmIGxp c3QgbGlzdChzZWxmLCBiaW50IGNvcHk9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF9nZW5l cmljKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorLSAgICBjZGVmIF9zcXVhcmVfZ2VuZXJpYyhzZWxm KSBub2V4Y2VwdAorKyAgICBjcGRlZiBjb25zdGFudF9jb2VmZmljaWVudChzZWxmKQorKyAgICBj cGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCBhLCBQYXJlbnQgUCkKKysg ICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT0qKQorKyAgICBjcGRlZiBfbXVsX2dl bmVyaWMoc2VsZiwgcmlnaHQpCisrICAgIGNkZWYgX3NxdWFyZV9nZW5lcmljKHNlbGYpCisgCisg ICAgIGNwZGVmIGJpbnQgaXNfemVybyhzZWxmKSBleGNlcHQgLTEKKyAgICAgY3BkZWYgYmludCBp c19vbmUoc2VsZikgZXhjZXB0IC0xCisgICAgIGNwZGVmIGJpbnQgaXNfdGVybShzZWxmKSBleGNl cHQgLTEKKyAKKy0gICAgY3BkZWYgZGljdCBfbXBvbHlfZGljdF9yZWN1cnNpdmUoc2VsZiwgdHVw bGUgdmFyaWFibGVzPSosIGJhc2VfcmluZz0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBkaWN0IF9t cG9seV9kaWN0X3JlY3Vyc2l2ZShzZWxmLCB0dXBsZSB2YXJpYWJsZXM9KiwgYmFzZV9yaW5nPSop CisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCBy aWdodCkgbm9leGNlcHQKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQ b2x5bm9taWFsIHJpZ2h0LCBsb25nIG4pIG5vZXhjZXB0CistICAgIGNwZGVmIFBvbHlub21pYWwg X3Bvd2VyX3RydW5jKHNlbGYsIHVuc2lnbmVkIGxvbmcgbiwgbG9uZyBwcmVjKSBub2V4Y2VwdAor LSAgICBjZGVmIFBvbHlub21pYWwgX211bF90ZXJtKHNlbGYsIFBvbHlub21pYWwgdGVybSwgYmlu dCB0ZXJtX29uX3JpZ2h0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikK KysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2Vs ZiwgcmlnaHQpCisrICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90cnVuY18oc2VsZiwgUG9seW5v bWlhbCByaWdodCwgbG9uZyBuKQorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9wb3dlcl90cnVuYyhz ZWxmLCB1bnNpZ25lZCBsb25nIG4sIGxvbmcgcHJlYykKKysgICAgY2RlZiBQb2x5bm9taWFsIF9t dWxfdGVybShzZWxmLCBQb2x5bm9taWFsIHRlcm0sIGJpbnQgdGVybV9vbl9yaWdodCkKKyAKKyAg ICAgIyBVTlNBRkUsIG9ubHkgY2FsbCBmcm9tIGFuIGlucGxhY2Ugb3BlcmF0b3IKKyAgICAgIyBt YXkgcmV0dXJuIGEgbmV3IGVsZW1lbnQgaWYgbm90IHBvc3NpYmxlIHRvIG1vZGlmeSBpbnBsYWNl CistICAgIGNkZWYgX2lucGxhY2VfdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorKyAg ICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgbikKKyAKKy0gICAgY2RlZiBnZXRf Y29lZmZfYyhzZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0CistICAgIGNkZWYgZ2V0X3Vuc2Fm ZShzZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0CisrICAgIGNkZWYgZ2V0X2NvZWZmX2Moc2Vs ZiwgUHlfc3NpemVfdCBpKQorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBp KQorICAgICBjcGRlZiBsb25nIG51bWJlcl9vZl90ZXJtcyhzZWxmKSBub2V4Y2VwdAorIAorICAg ICAjIFNlZSAyMzIyNworLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQKKy0g ICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0CistICAgIGNwZGVmIF9mbG9vcmRp dl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KQor KyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxm LCByaWdodCkKKyAKKyAgICAgY2RlZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAKKyBj ZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKy0gICAgY2Rl ZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJl bnQgUCkgbm9leGNlcHQKKysgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgX25ld19j KHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCkKKyAgICAgY2RlZiBsaXN0IF9jb2VmZnMKKyAg ICAgY2RlZiBpbnQgX25vcm1hbGl6ZShzZWxmKSBleGNlcHQgLTEKKy0gICAgY3BkZWYgbGlzdCBs aXN0KHNlbGYsIGJpbnQgY29weT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2Vs ZiwgYmludCBjb3B5PSopCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Vf aW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorICAgICBwYXNzCisgCistY3BkZWYg aXNfUG9seW5vbWlhbChmKSBub2V4Y2VwdAorLWNwZGVmIFBvbHlub21pYWwgZ2VuZXJpY19wb3dl cl90cnVuYyhQb2x5bm9taWFsIHAsIEludGVnZXIgbiwgbG9uZyBwcmVjKSBub2V4Y2VwdAorLWNw ZGVmIGxpc3QgX2RpY3RfdG9fbGlzdChkaWN0IHgsIHplcm8pIG5vZXhjZXB0CisrY3BkZWYgaXNf UG9seW5vbWlhbChmKQorK2NwZGVmIFBvbHlub21pYWwgZ2VuZXJpY19wb3dlcl90cnVuYyhQb2x5 bm9taWFsIHAsIEludGVnZXIgbiwgbG9uZyBwcmVjKQorK2NwZGVmIGxpc3QgX2RpY3RfdG9fbGlz dChkaWN0IHgsIHplcm8pCisgCisgY3BkZWYgYmludCBwb2x5bm9taWFsX2lzX3ZhcmlhYmxlKHgp IG5vZXhjZXB0CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5 bm9taWFsX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X2VsZW1lbnQucHl4CitpbmRleCA5OWYwMDYxOGJjMS4uZjA5ZGM2YTdmYmQgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB5eAorQEAgLTEz NCw3ICsxMzQsNyBAQCBmcm9tIHNhZ2UuY2F0ZWdvcmllcy5tb3JwaGlzbSBjaW1wb3J0IE1vcnBo aXNtCisgZnJvbSBzYWdlLm1pc2Muc3VwZXJzZWRlZCBpbXBvcnQgZGVwcmVjYXRpb25fY3l0aG9u IGFzIGRlcHJlY2F0aW9uLCBkZXByZWNhdGVkX2Z1bmN0aW9uX2FsaWFzCisgZnJvbSBzYWdlLm1p c2MuY2FjaGVmdW5jIGltcG9ydCBjYWNoZWRfbWV0aG9kCisgCistY3BkZWYgaXNfUG9seW5vbWlh bChmKSBub2V4Y2VwdDoKKytjcGRlZiBpc19Qb2x5bm9taWFsKGYpOgorICAgICAiIiIKKyAgICAg UmV0dXJuIGBgVHJ1ZWBgIGlmIGBgZmBgIGlzIG9mIHR5cGUgdW5pdmFyaWF0ZSBwb2x5bm9taWFs LgorIAorQEAgLTI0NCw3ICsyNDQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRp dmVQb2x5bm9taWFsKToKKyAgICAgICAgIENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQuX19pbml0 X18oc2VsZiwgcGFyZW50KQorICAgICAgICAgc2VsZi5faXNfZ2VuID0gaXNfZ2VuCisgCistICAg IGNkZWYgUG9seW5vbWlhbCBfbmV3X2dlbmVyaWMoc2VsZiwgbGlzdCBjb2VmZnMpIG5vZXhjZXB0 OgorKyAgICBjZGVmIFBvbHlub21pYWwgX25ld19nZW5lcmljKHNlbGYsIGxpc3QgY29lZmZzKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFF1aWNrbHkgY29uc3RydWN0IGEgbmV3IHBvbHlub21p YWwgb2YgdGhlIHNhbWUgdHlwZSBhcyBgYHNlbGZgYCwKKyAgICAgICAgIGJ5cGFzc2luZyB0aGUg cGFyZW50J3MgZWxlbWVudCBjb25zdHJ1Y3Rvci4KK0BAIC0yNTgsNyArMjU4LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgbiAt PSAxCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIGNvZWZmcywgY2hl Y2s9RmFsc2UpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgQWRk IHR3byBwb2x5bm9taWFscy4KKyAKK0BAIC0yODcsNyArMjg3LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAgICBsb3cgPSBbeFtpXSArIHlb aV0gZm9yIGkgaW4gcmFuZ2UobWluKV0KKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfZ2VuZXJp Yyhsb3cgKyBoaWdoKQorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2dlbmVyaWMoWy14 IGZvciB4IGluIHNlbGYubGlzdChjb3B5PUZhbHNlKV0pCisgCisgICAgIGNwZGVmIGJpbnQgaXNf emVybyhzZWxmKSBleGNlcHQgLTE6CitAQCAtMzcwLDcgKzM3MCw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICByZXR1cm4g cG9pbnQoeiwgKmFyZ3MsICoqa3dkcykKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IoInBsb3R0aW5nIG9mIHBvbHlub21pYWxzIG92ZXIgJXMgbm90IGltcGxlbWVudGVkIiVSKQor IAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IE11bHRpcGx5IHNlbGYgb24gdGhlIGxlZnQgYnkgYSBzY2FsYXIuCisgCitAQCAtMzkwLDcgKzM5 MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCisgICAgICAgICByZXR1cm4gc2Vs Zi5fcGFyZW50KGxlZnQpICogc2VsZgorIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVu dCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgc2VsZiBvbiB0aGUgcmlnaHQgYnkg YSBzY2FsYXIuCisgCitAQCAtMTAxMSw3ICsxMDExLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs KENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIGV4cHIgKj0geAorICAg ICAgICAgcmV0dXJuIGV4cHIKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBp bnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBv cCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wYXJlIHRoZSB0d28gcG9seW5vbWlhbHMg c2VsZiBhbmQgb3RoZXIuCisgCitAQCAtMTE3Nyw3ICsxMTc3LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgCisgICAgICAgICByZXR1cm4gc2VsZi5n ZXRfY29lZmZfYyhweW9iamVjdF90b19sb25nKG4pKQorIAorLSAgICBjZGVmIGdldF9jb2VmZl9j KHNlbGYsIFB5X3NzaXplX3QgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X2NvZWZmX2Moc2Vs ZiwgUHlfc3NpemVfdCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgaWAt dGggY29lZmZpY2llbnQgb2YgYGBzZWxmYGAuCisgICAgICAgICAiIiIKK0BAIC0xMTg3LDcgKzEx ODcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5fYmFzZS56ZXJv KCkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGBpYC10aCBjb2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAK K0BAIC0xNjY5LDcgKzE2NjksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCJJbXBvc3NpYmxlIGludmVyc2UgbW9kdWxvIikKKyAKKy0gICAgY3BkZWYgUG9s eW5vbWlhbCBpbnZlcnNlX3Nlcmllc190cnVuYyhzZWxmLCBsb25nIHByZWMpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBQb2x5bm9taWFsIGludmVyc2Vfc2VyaWVzX3RydW5jKHNlbGYsIGxvbmcgcHJl Yyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBwb2x5bm9taWFsIGFwcHJveGlt YXRpb24gb2YgcHJlY2lzaW9uIGBgcHJlY2BgIG9mIHRoZSBpbnZlcnNlCisgICAgICAgICBzZXJp ZXMgb2YgdGhpcyBwb2x5bm9taWFsLgorQEAgLTE3ODQsNyArMTc4NCw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAg ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJvbmx5IGltcGxlbWVudGVkIGZvciBjZXJ0YWlu IGJhc2UgcmluZ3MiKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg RVhBTVBMRVM6OgorIAorQEAgLTE4NDAsNyArMTg0MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5fbXVsX2dlbmVyaWMocmlnaHQpCisgCistICAgIGNwZGVmIFBvbHlub21pYWwg X211bF90cnVuY18oc2VsZiwgUG9seW5vbWlhbCByaWdodCwgbG9uZyBuKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0LCBs b25nIG4pOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB0cnVuY2F0ZWQgbXVs dGlwbGljYXRpb24gb2YgdHdvIHBvbHlub21pYWxzIHVwIHRvIGBgbmBgLgorIAorQEAgLTMwMjEs NyArMzAyMSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwp OgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wb3dlcl90cnVuYyhtcHpfZ2V0X3VpKFpabi52 YWx1ZSksIHByZWMpCisgICAgICAgICByZXR1cm4gZ2VuZXJpY19wb3dlcl90cnVuYyhzZWxmLCBa Wm4sIHB5b2JqZWN0X3RvX2xvbmcocHJlYykpCisgCistICAgIGNwZGVmIFBvbHlub21pYWwgX3Bv d2VyX3RydW5jKHNlbGYsIHVuc2lnbmVkIGxvbmcgbiwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgUG9seW5vbWlhbCBfcG93ZXJfdHJ1bmMoc2VsZiwgdW5zaWduZWQgbG9uZyBuLCBs b25nIHByZWMpOgorICAgICAgICAgciIiIgorICAgICAgICAgVHJ1bmNhdGVkIGBgbmBgLXRoIHBv d2VyIG9mIHRoaXMgcG9seW5vbWlhbCB1cCB0byBwcmVjaXNpb24gYGBwcmVjYGAKKyAKK0BAIC0z MzA5LDcgKzMzMDksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9t aWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigicG9seW5vbWlh bHMgYXJlIGltbXV0YWJsZSIpCisgCistICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFF1b3RpZW50IG9mIGRpdmlzaW9uIG9mIGBgc2VsZmBgIGJ5IGBgb3Ro ZXJgYC4gVGhpcyBpcyBkZW5vdGVkIC8vLgorIAorQEAgLTMzOTMsNyArMzM5Myw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgcmV0dXJu IChzZWxmLmRlZ3JlZSgpID09IHNlbGYudmFsdWF0aW9uKCkgYW5kCisgICAgICAgICAgICAgICAg IHNlbGYubGVhZGluZ19jb2VmZmljaWVudCgpLl9pc19hdG9taWMoKSkKKyAKKy0gICAgY3BkZWYg X211bF9nZW5lcmljKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF9nZW5l cmljKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgcHJv ZHVjdCBvZiBgYHNlbGZgYCBhbmQgYGByaWdodGBgIHVzaW5nIHRoZSBjbGFzc2ljYWwgcXVhZHJh dGljCisgICAgICAgICBhbGdvcml0aG0uIFRoaXMgbWV0aG9kIGlzIHRoZSBkZWZhdWx0IGZvciBp bmV4YWN0IHJpbmdzLgorQEAgLTM0NTcsNyArMzQ1Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBsaXN0IHkgPSByaWdodC5s aXN0KGNvcHk9RmFsc2UpCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2dlbmVyaWMoZG9fc2No b29sYm9va19wcm9kdWN0KHgsIHksIC0xKSkKKyAKKy0gICAgY2RlZiBfc3F1YXJlX2dlbmVyaWMo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3NxdWFyZV9nZW5lcmljKHNlbGYpOgorICAgICAg ICAgY2RlZiBsaXN0IHggPSBzZWxmLmxpc3QoY29weT1GYWxzZSkKKyAgICAgICAgIGNkZWYgUHlf c3NpemVfdCBpLCBqCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgZCA9IGxlbih4KS0xCitAQCAt MzcyNSw3ICszNzI1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5v bWlhbCk6CisgCisgICAgIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCisgICAgIEBjeXRob24u d3JhcGFyb3VuZChGYWxzZSkKKy0gICAgY2RlZiBQb2x5bm9taWFsIF9tdWxfdGVybShzZWxmLCBQ b2x5bm9taWFsIHRlcm0sIGJpbnQgdGVybV9vbl9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYg UG9seW5vbWlhbCBfbXVsX3Rlcm0oc2VsZiwgUG9seW5vbWlhbCB0ZXJtLCBiaW50IHRlcm1fb25f cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxm ICogdGVybWBgLCB3aGVyZSBgYHRlcm1gYCBpcyBhIHBvbHlub21pYWwKKyAgICAgICAgIHdpdGgg YSBzaW5nbGUgdGVybS4KK0BAIC0zNzU5LDcgKzM3NTksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKQorIAorLSAgICBjcGRlZiBiYXNlX2V4dGVuZChzZWxm LCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZV9leHRlbmQoc2VsZiwgUik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBhIGNvcHkgb2YgdGhpcyBwb2x5bm9taWFsIGJ1dCB3aXRo IGNvZWZmaWNpZW50cyBpbiBgYFJgYCwgaWYKKyAgICAgICAgIHRoZXJlIGlzIGEgbmF0dXJhbCBt YXAgZnJvbSB0aGUgY29lZmZpY2llbnQgcmluZyBvZiBgYHNlbGZgYCB0byBgYFJgYC4KK0BAIC0z ODUyLDcgKzM4NTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9t aWFsKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5j aGFuZ2VfcmluZyhSKShzZWxmLmxpc3QoY29weT1GYWxzZSkpCisgCistICAgIGNwZGVmIGRpY3Qg X21wb2x5X2RpY3RfcmVjdXJzaXZlKHNlbGYsIHR1cGxlIHZhcmlhYmxlcz1Ob25lLCBiYXNlX3Jp bmc9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgX21wb2x5X2RpY3RfcmVjdXJzaXZl KHNlbGYsIHR1cGxlIHZhcmlhYmxlcz1Ob25lLCBiYXNlX3Jpbmc9Tm9uZSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiBhIGRpY3Qgb2YgY29lZmZpY2llbnQgZW50cmllcyBzdWl0YWJs ZSBmb3IgY29uc3RydWN0aW9uIG9mIGEKKyAgICAgICAgIE1Qb2x5bm9taWFsX3BvbHlkaWN0IHdp dGggdGhlIGdpdmVuIHZhcmlhYmxlcy4KK0BAIC02MDIwLDcgKzYwMjAsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIHJldHVybiBN CisgCistICAgIGNwZGVmIGNvbnN0YW50X2NvZWZmaWNpZW50KHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBjb25zdGFudF9jb2VmZmljaWVudChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBjb25zdGFudCBjb2VmZmljaWVudCBvZiB0aGlzIHBvbHlub21pYWwuCisg CitAQCAtNjAzOCw3ICs2MDM4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZl UG9seW5vbWlhbCk6CisgICAgICAgICAjIHNlbGYuZGVncmVlKCkgPj0gMAorICAgICAgICAgcmV0 dXJuIHNlbGYuZ2V0X3Vuc2FmZSgwKQorIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29u c3RhbnRfcG9seShzZWxmLCBhLCBQYXJlbnQgUCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlu b21pYWwgX25ld19jb25zdGFudF9wb2x5KHNlbGYsIGEsIFBhcmVudCBQKToKKyAgICAgICAgICIi IgorICAgICAgICAgQ3JlYXRlIGEgbmV3IGNvbnN0YW50IHBvbHlub21pYWwgZnJvbSBhIGluIFAs IHdoaWNoIE1VU1QgYmUgYW4KKyAgICAgICAgIGVsZW1lbnQgb2YgdGhlIGJhc2UgcmluZyBvZiBQ ICh0aGlzIGlzIG5vdCBjaGVja2VkKS4KK0BAIC02NTQ5LDcgKzY1NDksNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUHlfc3Np emVfdCBpCisgICAgICAgICByZXR1cm4gW2kgZm9yIGksIGMgaW4gZW51bWVyYXRlKHNlbGYubGlz dChjb3B5PUZhbHNlKSkgaWYgY10KKyAKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQg Y29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29w eT1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbmV3IGNvcHkgb2YgdGhl IGxpc3Qgb2YgdGhlIHVuZGVybHlpbmcgZWxlbWVudHMgb2YgYGBzZWxmYGAuCisgCitAQCAtMTAy MDQsNyArMTAyMDQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9t aWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuc2hpZnQoLWspCisgCist ICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgUG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBwb2x5bm9taWFsIG9mIGRlZ3JlZSBgPCBuYCB3aGljaCBp cyBlcXVpdmFsZW50CisgICAgICAgICB0byBzZWxmIG1vZHVsbyBgeF5uYC4KK0BAIC0xMDIyNSw3 ICsxMDIyNSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwp OgorICAgICAgICAgIyBXZSBtdXN0IG5vdCBoYXZlIGNoZWNrPUZhbHNlLCBzaW5jZSAwIG11c3Qg bm90IGhhdmUgX2NvZWZmcyA9IFswXS4KKyAgICAgICAgIHJldHVybiA8UG9seW5vbWlhbD5zZWxm Ll9wYXJlbnQoc2VsZls6bl0pIywgY2hlY2s9RmFsc2UpCisgCistICAgIGNkZWYgX2lucGxhY2Vf dHJ1bmNhdGUoc2VsZiwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5wbGFjZV90 cnVuY2F0ZShzZWxmLCBsb25nIHByZWMpOgorICAgICAgICAgcmV0dXJuIHNlbGYudHJ1bmNhdGUo cHJlYykKKyAKKyAgICAgQGNhY2hlZF9tZXRob2QKK0BAIC0xMTcxOSw3ICsxMTcxOSw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorIEBjeXRob24uYm91 bmRzY2hlY2soRmFsc2UpCisgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorIEBjeXRob24ub3Zl cmZsb3djaGVjayhGYWxzZSkKKy1jZGVmIGxpc3QgZG9fc2Nob29sYm9va19wcm9kdWN0KGxpc3Qg eCwgbGlzdCB5LCBQeV9zc2l6ZV90IGRlZykgbm9leGNlcHQ6CisrY2RlZiBsaXN0IGRvX3NjaG9v bGJvb2tfcHJvZHVjdChsaXN0IHgsIGxpc3QgeSwgUHlfc3NpemVfdCBkZWcpOgorICAgICAiIiIK KyAgICAgQ29tcHV0ZSB0aGUgdHJ1bmNhdGVkIG11bHRpcGxpY2F0aW9uIG9mIHR3byBwb2x5bm9t aWFscyByZXByZXNlbnRlZCBieQorICAgICBsaXN0cywgdXNpbmcgdGhlIHNjaG9vbGJvb2sgYWxn b3JpdGhtLgorQEAgLTExNzcxLDcgKzExNzcxLDcgQEAgY2RlZiBsaXN0IGRvX3NjaG9vbGJvb2tf cHJvZHVjdChsaXN0IHgsIGxpc3QgeSwgUHlfc3NpemVfdCBkZWcpIG5vZXhjZXB0OgorIEBjeXRo b24uYm91bmRzY2hlY2soRmFsc2UpCisgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorIEBjeXRo b24ub3ZlcmZsb3djaGVjayhGYWxzZSkKKy1jZGVmIGxpc3QgZG9fa2FyYXRzdWJhX2RpZmZlcmVu dF9zaXplKGxpc3QgbGVmdCwgbGlzdCByaWdodCwgUHlfc3NpemVfdCBLX3RocmVzaG9sZCkgbm9l eGNlcHQ6CisrY2RlZiBsaXN0IGRvX2thcmF0c3ViYV9kaWZmZXJlbnRfc2l6ZShsaXN0IGxlZnQs IGxpc3QgcmlnaHQsIFB5X3NzaXplX3QgS190aHJlc2hvbGQpOgorICAgICAiIiIKKyAgICAgTXVs dGlwbHkgdHdvIHBvbHlub21pYWxzIG9mIGRpZmZlcmVudCBkZWdyZWVzIGJ5IHNwbGl0dGluZyB0 aGUgb25lIG9mCisgICAgIGxhcmdlc3QgZGVncmVlIGluIGNodW5rcyB0aGF0IGFyZSBtdWx0aXBs aWVkIHdpdGggdGhlIG90aGVyIHVzaW5nIHRoZQorQEAgLTExODUzLDcgKzExODUzLDcgQEAgY2Rl ZiBsaXN0IGRvX2thcmF0c3ViYV9kaWZmZXJlbnRfc2l6ZShsaXN0IGxlZnQsIGxpc3QgcmlnaHQs IFB5X3NzaXplX3QgS190aHJlc2gKKyBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQorIEBjeXRo b24ud3JhcGFyb3VuZChGYWxzZSkKKyBAY3l0aG9uLm92ZXJmbG93Y2hlY2soRmFsc2UpCistY2Rl ZiBsaXN0IGRvX2thcmF0c3ViYShsaXN0IGxlZnQsIGxpc3QgcmlnaHQsIFB5X3NzaXplX3QgS190 aHJlc2hvbGQsUHlfc3NpemVfdCBzdGFydF9sLCBQeV9zc2l6ZV90IHN0YXJ0X3IsUHlfc3NpemVf dCBudW1fZWx0cykgbm9leGNlcHQ6CisrY2RlZiBsaXN0IGRvX2thcmF0c3ViYShsaXN0IGxlZnQs IGxpc3QgcmlnaHQsIFB5X3NzaXplX3QgS190aHJlc2hvbGQsUHlfc3NpemVfdCBzdGFydF9sLCBQ eV9zc2l6ZV90IHN0YXJ0X3IsUHlfc3NpemVfdCBudW1fZWx0cyk6CisgICAgICIiIgorICAgICBD b3JlIHJvdXRpbmUgZm9yIEthcmF0c3ViYSBtdWx0aXBsaWNhdGlvbi4gVGhpcyBmdW5jdGlvbiB3 b3JrcyBmb3IgdHdvCisgICAgIHBvbHlub21pYWxzIG9mIHRoZSBzYW1lIGRlZ3JlZS4KK0BAIC0x MjAzMiwxNCArMTIwMzIsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Uo UG9seW5vbWlhbCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9 IHgKKyAKKy0gICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgX25ld19jKHNlbGYsIGxp c3QgY29lZmZzLCBQYXJlbnQgUCkgbm9leGNlcHQ6CisrICAgIGNkZWYgUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlIF9uZXdfYyhzZWxmLCBsaXN0IGNvZWZmcywgUGFyZW50IFApOgorICAgICAgICAg Y2RlZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJp Y19kZW5zZSBmID0gPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT50Ll9fbmV3X18odCkKKyAgICAg ICAgIGYuX3BhcmVudCA9IFAKKyAgICAgICAgIGYuX2NvZWZmcyA9IGNvZWZmcworICAgICAgICAg cmV0dXJuIGYKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbmV3X2NvbnN0YW50X3BvbHkoc2Vs ZiwgYSwgUGFyZW50IFApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29u c3RhbnRfcG9seShzZWxmLCBhLCBQYXJlbnQgUCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENy ZWF0ZSBhIG5ldyBjb25zdGFudCBwb2x5bm9taWFsIGluIFAgd2l0aCB2YWx1ZSBhLgorIAorQEAg LTEyMTExLDcgKzEyMTExLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Uo UG9seW5vbWlhbCk6CisgCisgICAgIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCisgICAgIEBj eXRob24ud3JhcGFyb3VuZChGYWxzZSkKKy0gICAgY2RlZiBQb2x5bm9taWFsIF9tdWxfdGVybShz ZWxmLCBQb2x5bm9taWFsIHRlcm0sIGJpbnQgdGVybV9vbl9yaWdodCkgbm9leGNlcHQ6CisrICAg IGNkZWYgUG9seW5vbWlhbCBfbXVsX3Rlcm0oc2VsZiwgUG9seW5vbWlhbCB0ZXJtLCBiaW50IHRl cm1fb25fcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qg YGBzZWxmICogdGVybWBgLCB3aGVyZSBgYHRlcm1gYCBpcyBhIHBvbHlub21pYWwKKyAgICAgICAg IHdpdGggYSBzaW5nbGUgdGVybS4KK0BAIC0xMjE2Myw3ICsxMjE2Myw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorIAorICAgICBAY3l0aG9uLmJv dW5kc2NoZWNrKEZhbHNlKQorICAgICBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCistICAgIGNk ZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIGdl dF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBgbmAtdGggY29lZmZpY2llbnQgb2YgYGBzZWxmYGAuCisgCitAQCAtMTIyNjAsNyAr MTIyNjAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFs KToKKyAgICAgICAgIHJlcy5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBBZGQgdHdvIHBvbHlub21pYWxz LgorIAorQEAgLTEyMjkxLDcgKzEyMjkxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVy biBzZWxmLl9uZXdfYyhsb3cgKyBoaWdoLCBzZWxmLl9wYXJlbnQpCisgCistICAgIGNwZGVmIF9z dWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQp OgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVzCisgICAgICAgICBj ZGVmIFB5X3NzaXplX3QgY2hlY2s9MCwgaSwgbWluCisgICAgICAgICB4ID0gKDxQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2U+c2VsZikuX2NvZWZmcworQEAgLTEyMzEyLDcgKzEyMzEyLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBl bHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhsb3cgKyBoaWdoLCBzZWxmLl9w YXJlbnQpCisgCistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAgIGlmIG5vdCBzZWxm Ll9jb2VmZnM6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGlmIGMuX3BhcmVu dCBpcyBub3QgKDxFbGVtZW50PnNlbGYuX2NvZWZmc1swXSkuX3BhcmVudDoKK0BAIC0xMjMyNCw3 ICsxMjMyNCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21p YWwpOgorICAgICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJlcworIAor LSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICBpZiBub3Qgc2VsZi5fY29lZmZzOgor ICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBpZiBjLl9wYXJlbnQgaXMgbm90ICg8 RWxlbWVudD5zZWxmLl9jb2VmZnNbMF0pLl9wYXJlbnQ6CitAQCAtMTIzMzYsNyArMTIzMzYsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAg ICAgIHJlcy5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYg Y29uc3RhbnRfY29lZmZpY2llbnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbnN0YW50 X2NvZWZmaWNpZW50KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNv bnN0YW50IGNvZWZmaWNpZW50IG9mIHRoaXMgcG9seW5vbWlhbC4KKyAKK0BAIC0xMjM1NSw3ICsx MjM1NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29lZmZzWzBdCisg CistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBhIG5ldyBjb3B5IG9mIHRoZSBsaXN0IG9mIHRoZSB1bmRlcmx5aW5n IGVsZW1lbnRzIG9mIGBgc2VsZmBgLgorIAorQEAgLTEyNTQyLDcgKzEyNTQyLDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgCisgICAgICAgICBy ZXR1cm4gc2VsZi5fbmV3X2MocXVvLHNlbGYuX3BhcmVudCksIHNlbGYuX25ld19jKHgsc2VsZi5f cGFyZW50KS5faW5wbGFjZV90cnVuY2F0ZShuLTEpCisgCistICAgIGNwZGVmIFBvbHlub21pYWwg dHJ1bmNhdGUoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCB0 cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBwb2x5bm9taWFsIG9mIGRlZ3JlZSBgPCBuYCB3aGljaCBpcyBlcXVpdmFsZW50CisgICAgICAg ICB0byBzZWxmIG1vZHVsbyBgeF5uYC4KK0BAIC0xMjU3Niw3ICsxMjU3Niw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIG4g LT0gMQorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX2NvZWZmc1s6bl0sIHNlbGYu X3BhcmVudCkKKyAKKy0gICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBsb25nIG4pIG5v ZXhjZXB0OgorKyAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgbik6CisgICAg ICAgICBpZiBuIDwgbGVuKHNlbGYuX2NvZWZmcyk6CisgICAgICAgICAgICAgd2hpbGUgbiA+IDAg YW5kIG5vdCBzZWxmLl9jb2VmZnNbbi0xXToKKyAgICAgICAgICAgICAgICAgbiAtPSAxCitAQCAt MTI2MjcsNyArMTI2MjcsNyBAQCBkZWYgdW5pdmVyc2FsX2Rpc2NyaW1pbmFudChuKToKKyAgICAg cmV0dXJuICgxIC0gKG4mMikpKnAucmVzdWx0YW50KHAuZGVyaXZhdGl2ZSgpKS8vcHIxLmdlbihu KQorIAorIAorLWNwZGVmIFBvbHlub21pYWwgZ2VuZXJpY19wb3dlcl90cnVuYyhQb2x5bm9taWFs IHAsIEludGVnZXIgbiwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKytjcGRlZiBQb2x5bm9taWFsIGdl bmVyaWNfcG93ZXJfdHJ1bmMoUG9seW5vbWlhbCBwLCBJbnRlZ2VyIG4sIGxvbmcgcHJlYyk6Cisg ICAgIHIiIiIKKyAgICAgR2VuZXJpYyB0cnVuY2F0ZWQgcG93ZXIgYWxnb3JpdGhtCisgCitAQCAt MTI3MDYsNyArMTI3MDYsNyBAQCBjcGRlZiBQb2x5bm9taWFsIGdlbmVyaWNfcG93ZXJfdHJ1bmMo UG9seW5vbWlhbCBwLCBJbnRlZ2VyIG4sIGxvbmcgcHJlYykgbm9leGNlcAorIAorICAgICByZXR1 cm4gcG93ZXIKKyAKKy1jcGRlZiBsaXN0IF9kaWN0X3RvX2xpc3QoZGljdCB4LCB6ZXJvKSBub2V4 Y2VwdDoKKytjcGRlZiBsaXN0IF9kaWN0X3RvX2xpc3QoZGljdCB4LCB6ZXJvKToKKyAgICAgIiIi CisgICAgIENvbnZlcnQgYSBkaWN0IHRvIGEgbGlzdC4KKyAKK0BAIC0xMjg4NCw3ICsxMjg4NCw3 IEBAIGNkZWYgY2xhc3MgQ29uc3RhbnRQb2x5bm9taWFsU2VjdGlvbihNYXApOgorICAgICAgICAg Li4uCisgICAgICAgICBUeXBlRXJyb3I6IG5vdCBhIGNvbnN0YW50IHBvbHlub21pYWwKKyAgICAg IiIiCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVT VFM6OgorIAorQEAgLTEyOTk2LDcgKzEyOTk2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsQmFz ZXJpbmdJbmplY3Rpb24oTW9ycGhpc20pOgorICAgICAgICAgc2VsZi5fcmVwcl90eXBlX3N0ciA9 ICJQb2x5bm9taWFsIGJhc2UgaW5qZWN0aW9uIgorICAgICAgICAgc2VsZi5fbmV3X2NvbnN0YW50 X3BvbHlfID0gc2VsZi5fYW5fZWxlbWVudC5fbmV3X2NvbnN0YW50X3BvbHkKKyAKKy0gICAgY2Rl ZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRy YV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAg LTEzMDE0LDcgKzEzMDE0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsQmFzZXJpbmdJbmplY3Rp b24oTW9ycGhpc20pOgorICAgICAgICAgICAgICAgICBfbmV3X2NvbnN0YW50X3BvbHlfPXNlbGYu X25ld19jb25zdGFudF9wb2x5XykKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91 cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBF WEFNUExFUzo6CisgCitAQCAtMTMwMzAsNyArMTMwMzAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxCYXNlcmluZ0luamVjdGlvbihNb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl9hbl9lbGVtZW50 ID0gX3Nsb3RzWydfYW5fZWxlbWVudCddCisgICAgICAgICBzZWxmLl9uZXdfY29uc3RhbnRfcG9s eV8gPSBfc2xvdHNbJ19uZXdfY29uc3RhbnRfcG9seV8nXQorIAorLSAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xMzA0Niw3ICsx MzA0Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbEJhc2VyaW5nSW5qZWN0aW9uKE1vcnBoaXNt KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jb25zdGFudF9wb2x5 Xyh4LCBzZWxmLl9jb2RvbWFpbikKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2Fy Z3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAg IiIiCisgICAgICAgICBURVNUUzo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wb2x5bm9taWFsX2dmMngucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5bm9taWFsX2dmMngucHl4CitpbmRleCAyODM5YjI2NmI0YS4uYzNiYWZlOTUxY2EgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZ2YyeC5weXgKKysr KyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9nZjJ4LnB5eAorQEAgLTcw LDcgKzcwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX0dGMlgoUG9seW5vbWlhbF90ZW1wbGF0 ZSk6CisgICAgICAgICAgICAgcGFzcworICAgICAgICAgUG9seW5vbWlhbF90ZW1wbGF0ZS5fX2lu aXRfXyhzZWxmLCBwYXJlbnQsIHgsIGNoZWNrLCBpc19nZW4sIGNvbnN0cnVjdCkKKyAKKy0gICAg Y2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYg Z2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGBpYC10aCBjb2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludC5weGQKK2luZGV4IGI4OGMyYTY2YTc2Li5iMWI1OTNkNmEyNiAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQucHhkCitAQCAtNyw2ICs3LDYgQEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5wYXJl bnQgY2ltcG9ydCBQYXJlbnQKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9m bGludChQb2x5bm9taWFsKToKKyAgICAgY2RlZiBmbXB6X3BvbHlfdCBfcG9seQorIAorLSAgICBj ZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBfbmV3KHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIGxvbmcgbiwgdmFsdWUpIG5vZXhjZXB0Cist ICAgIGNwZGVmIEludGVnZXIgY29udGVudChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBfbmV3KHNlbGYpCisrICAgIGNwZGVmIF91bnNhZmVf bXV0YXRlKHNlbGYsIGxvbmcgbiwgdmFsdWUpCisrICAgIGNwZGVmIEludGVnZXIgY29udGVudChz ZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB5eAoraW5kZXggMDRlNzk0MGFmNTUuLmFhMmE3NTA2 OTk5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weXgKK0BAIC0xMDksNyArMTA5LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIGZtcHpfcG9seV9jbGVhcihzZWxmLl9wb2x5KQorIAorLSAgICBj ZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBfbmV3KHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBfbmV3KHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUXVpY2tseSBjcmVhdGVzIGEgbmV3IGluaXRpYWxpemVkIFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludAorICAgICAgICAgd2l0aCB0aGUgY29ycmVjdCBw YXJlbnQgYW5kIF9pc19nZW4gPT0gMC4KK0BAIC0xMTksNyArMTE5LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICB4Ll9p c19nZW4gPSAwCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIF9u ZXdfY29uc3RhbnRfcG9seShzZWxmLCBhLCBQYXJlbnQgUCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IFBvbHlub21pYWwgX25ld19jb25zdGFudF9wb2x5KHNlbGYsIGEsIFBhcmVudCBQKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRlcyBhIG5ldyBjb25zdGFudCBwb2x5bm9t aWFsIHdpdGggdmFsdWUgYSBpbiBwYXJlbnQgUAorIAorQEAgLTQ3NCw3ICs0NzQsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAKKyAg ICAgICAgIHJldHVybiBQb2x5bm9taWFsLl9fY2FsbF9fKHNlbGYsICp4LCAqKmt3ZHMpCisgCist ICAgIGNwZGVmIEludGVnZXIgY29udGVudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgSW50 ZWdlciBjb250ZW50KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBn cmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0aGUgY29lZmZpY2llbnRzIG9mIHRoaXMKKyAgICAg ICAgIHBvbHlub21pYWwuIFRoZSBzaWduIGlzIHRoZSBzaWduIG9mIHRoZSBsZWFkaW5nIGNvZWZm aWNpZW50LiAgVGhlCitAQCAtNTM3LDcgKzUzNyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgcmV0dXJuIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludCwgXAorICAgICAgICAgICAgICAgIChzZWxmLnBhcmVudCgp LCBzZWxmLmxpc3QoKSwgRmFsc2UsIHNlbGYuaXNfZ2VuKCkpCisgCistICAgIGNkZWYgZ2V0X3Vu c2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUo c2VsZiwgUHlfc3NpemVfdCBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBg bmAtdGggY29lZmZpY2llbnQgb2YgYGBzZWxmYGAuCisgCitAQCAtNjM2LDcgKzYzNiw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgICAgIG5hbWUgPSBzZWxmLnBhcmVudCgpLmxhdGV4X3ZhcmlhYmxlX25hbWVzKClbMF0K KyAgICAgICAgIHJldHVybiBzZWxmLl9yZXByKG5hbWU9bmFtZSwgbGF0ZXg9VHJ1ZSkKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgcGx1 cyBgYHJpZ2h0YGAuCisgCitAQCAtNjU2LDcgKzY1Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgcmV0dXJuIHgKKyAK KyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf c3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxm YGAgbWludXMgYGByaWdodGBgLgorIAorQEAgLTY3Niw3ICs2NzYsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIHJldHVy biB4CisgCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBuZWdhdGl2ZSBvZiBg YHNlbGZgYC4KKyAKK0BAIC05NTksNyArOTU5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYu X3BhcmVudChyciksIHNzLCB0dAorIAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiBgYHNlbGZgYCBtdWx0aXBsaWVkIGJ5IGBgcmlnaHRgYC4KKyAKK0BA IC05NzYsNyArOTc2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4Cisg CistICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90cnVuY18oc2VsZiwgUG9seW5vbWlhbCByaWdo dCwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhz ZWxmLCBQb2x5bm9taWFsIHJpZ2h0LCBsb25nIG4pOgorICAgICAgICAgciIiIgorICAgICAgICAg VHJ1bmNhdGVkIG11bHRpcGxpY2F0aW9uCisgCitAQCAtMTAwNyw3ICsxMDA3LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxm LCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1l bnQgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZmBgIG11bHRp cGxpZWQgYnkgYGByaWdodGBgLCB3aGVyZSBgYHJpZ2h0YGAgaXMgYSBzY2FsYXIgKGludGVnZXIp LgorIAorQEAgLTEwMjUsNyArMTAyNSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4geAorIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiBgYHNlbGZgYCBtdWx0aXBsaWVkIGJ5IGBgcmlnaHRgYCwgd2hl cmUgcmlnaHQgaXMgYSBzY2FsYXIgKGludGVnZXIpLgorIAorQEAgLTExNjUsNyArMTE2NSw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiBy ZXMKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfcG93ZXJfdHJ1bmMoc2VsZiwgdW5zaWduZWQg bG9uZyBuLCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9wb3dl cl90cnVuYyhzZWxmLCB1bnNpZ25lZCBsb25nIG4sIGxvbmcgcHJlYyk6CisgICAgICAgICByIiIi CisgICAgICAgICBUcnVuY2F0ZWQgcG93ZXIKKyAKK0BAIC0xMjUzLDcgKzEyNTMsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVm IFBvbHlub21pYWwgaW52ZXJzZV9zZXJpZXNfdHJ1bmMoc2VsZiwgbG9uZyBwcmVjKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCBpbnZlcnNlX3Nlcmllc190cnVuYyhzZWxmLCBsb25n IHByZWMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgcG9seW5vbWlhbCBhcHBy b3hpbWF0aW9uIG9mIHByZWNpc2lvbiBgYHByZWNgYCBvZiB0aGUgaW52ZXJzZQorICAgICAgICAg c2VyaWVzIG9mIHRoaXMgcG9seW5vbWlhbC4KK0BAIC0xMzA4LDcgKzEzMDgsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfdW5zYWZlX211 dGF0ZShzZWxmLCBsb25nIG4sIHZhbHVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Vuc2FmZV9t dXRhdGUoc2VsZiwgbG9uZyBuLCB2YWx1ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBTZXRz IGNvZWZmaWNpZW50IG9mIGB4Xm5gIHRvIHZhbHVlLgorIAorQEAgLTE3MzEsNyArMTczMSw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAgICAgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwucGFkaWNzLnBvbHlub21pYWxfcGFk aWMgaW1wb3J0IF9wYXJpX3BhZGljX2ZhY3Rvcml6YXRpb25fdG9fc2FnZQorICAgICAgICAgcmV0 dXJuIF9wYXJpX3BhZGljX2ZhY3Rvcml6YXRpb25fdG9fc2FnZShHLCBSLCBzZWxmLmxlYWRpbmdf Y29lZmZpY2llbnQoKSkKKyAKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1U cnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVl KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbmV3IGNvcHkgb2YgdGhlIGxpc3Qg b2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgIGVsZW1lbnRzIG9mIGBgc2VsZmBgLgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwucHhkCitpbmRleCA5ODJmYWZiOGViYi4uZmNkOTA3ZTFhYmUgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwucHhkCitAQCAtNCw0ICs0LDQgQEAgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwu cG9seW5vbWlhbF9lbGVtZW50IGNpbXBvcnQgUG9seW5vbWlhbAorIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgY2RlZiBaWlhfYyBfcG9s eQorIAorLSAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgX25ldyhzZWxmKSBu b2V4Y2VwdAorKyAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgX25ldyhzZWxm KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9udGwucHl4CitpbmRleCA2ZjdmZmEzYjVjYy4uNmEwNzQ3ZDQwZTkgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9udGwucHl4CitAQCAtNzMsNyArNzMsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgIHIiIiIKKyAgICAgQSBk ZW5zZSBwb2x5bm9taWFsIG92ZXIgdGhlIGludGVnZXJzLCBpbXBsZW1lbnRlZCB2aWEgTlRMLgor ICAgICAiIiIKKy0gICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsIF9uZXcoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBfbmV3 KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUXVpY2tseSBjcmVhdGVzIGEgbmV3IGlu aXRpYWxpemVkIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwKKyAgICAgICAgIHdpdGggdGhl IGNvcnJlY3QgcGFyZW50IGFuZCBfaXNfZ2VuID09IDAuCitAQCAtMzM4LDcgKzMzOCw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAg ICAgIHJldHVybiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLCBcCisgICAgICAgICAgICAg ICAgKHNlbGYucGFyZW50KCksIHNlbGYubGlzdCgpLCBGYWxzZSwgc2VsZi5pc19nZW4oKSkKKyAK Ky0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisrICAg IGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIGBuYC10aCBjb2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK0BAIC00 MjgsNyArNDI4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBv bHlub21pYWwpOgorICAgICAgICAgICAgIG5hbWUgPSBzZWxmLnBhcmVudCgpLmxhdGV4X3Zhcmlh YmxlX25hbWVzKClbMF0KKyAgICAgICAgIHJldHVybiBzZWxmLl9yZXByKG5hbWUsIGxhdGV4PVRy dWUpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyBz ZWxmIHBsdXMgcmlnaHQuCisgCitAQCAtNDQ2LDcgKzQ0Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIHJldHVybiB4Cisg CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHNlbGYg bWludXMgcmlnaHQuCisgCitAQCAtNDY0LDcgKzQ2NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIHJldHVybiB4CisgCisg CistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgbmVnYXRpdmUgb2YgYGBzZWxmYGAu CisgCitAQCAtNjgwLDcgKzY4MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXR1cm4gUyhyciksIHNzLCB0dAor IAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgc2Vs ZiBtdWx0aXBsaWVkIGJ5IHJpZ2h0LgorIAorQEAgLTY5NSw3ICs2OTUsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg ICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCkuX3BvbHkpCisgICAgICAg ICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybnMgc2VsZiBtdWx0aXBsaWVkIGJ5IHJpZ2h0LCB3aGVyZSBy aWdodCBpcyBhIHNjYWxhciAoaW50ZWdlcikuCisgCitAQCAtNzE0LDcgKzcxNCw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAg IFpaWF9tdWxfWlooeC5fcG9seSwgc2VsZi5fcG9seSwgX3JpZ2h0KQorICAgICAgICAgcmV0dXJu IHgKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm5zIHNlbGYgbXVsdGlwbGllZCBieSByaWdodCwgd2hlcmUgcmlnaHQgaXMg YSBzY2FsYXIgKGludGVnZXIpLgorIAorQEAgLTEwODgsNyArMTA4OCw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGZyb20g c2FnZS5yaW5ncy5wb2x5bm9taWFsLnBhZGljcy5wb2x5bm9taWFsX3BhZGljIGltcG9ydCBfcGFy aV9wYWRpY19mYWN0b3JpemF0aW9uX3RvX3NhZ2UKKyAgICAgICAgIHJldHVybiBfcGFyaV9wYWRp Y19mYWN0b3JpemF0aW9uX3RvX3NhZ2UoRywgUiwgc2VsZi5sZWFkaW5nX2NvZWZmaWNpZW50KCkp CisgCistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBjb3B5IG9mIHRoZSBsaXN0IG9mIHRoZSB1bmRlcmx5 aW5nCisgICAgICAgICBlbGVtZW50cyBvZiBgYHNlbGZgYC4KK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkIGIvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4ZAoraW5kZXgg ZjQ3NmRjNzgyY2UuLjY5MzRhY2ZlZThkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4ZAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4ZAorQEAgLTIyLDE0ICsy MiwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6Cisg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2Vf bW9kX24pOgorICAgICBjZGVmIHp6X3BYX2MgeAorICAgICBjZGVmIG50bF96el9wQ29udGV4dF9j bGFzcyBjCistICAgIGNkZWYgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eiBfbmV3KHNlbGYp IG5vZXhjZXB0CistICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorKyAgICBj ZGVmIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenogX25ldyhzZWxmKQorKyAgICBjcGRlZiBf bW9kXyhzZWxmLCByaWdodCkKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9u dGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgIGNkZWYgWlpfcFhfYyB4CisgICAg IGNkZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGMKKy0gICAgY2RlZiBQb2x5bm9taWFsX2RlbnNl X21vZG5fbnRsX1paIF9uZXcoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0CisrICAgIGNkZWYgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWiBf bmV3KHNlbGYpCisrICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KQorIAorIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9kZW5zZV9tb2RfcChQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgcGFz cworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2Ru X2RlbnNlX250bC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9k bl9kZW5zZV9udGwucHl4CitpbmRleCBiNWY0YzdmZWQwNC4uMDJlZDIxMzMxZWIgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwu cHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5z ZV9udGwucHl4CitAQCAtMTg4LDcgKzE4OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5z ZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X3BvbHkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbikgbm9leGNl cHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBuYC10aCBjb2VmZmljaWVudCBvZiBgYHNlbGZgYC4K KyAKK0BAIC0yMjAsMTAgKzIyMCwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9k X24oUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0dXJuICh+c2VsZikqKigtbikKKyAgICAg ICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX3BvbHkqKm4sIGNvbnN0cnVjdD1UcnVlKQor IAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9h ZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX3Bv bHkgKyAoPFBvbHlub21pYWxfZGVuc2VfbW9kX24+cmlnaHQpLl9wb2x5LCBjb25zdHJ1Y3Q9VHJ1 ZSkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC0yMzMsNyArMjMzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9u KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQo KShzZWxmLl9wb2x5ICogKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fcG9seSwgY29u c3RydWN0PVRydWUpCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAgIHRyeToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShaWl9wWChbY10sIHNlbGYucGFyZW50 KCkubW9kdWx1cygpKSAqIHNlbGYuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorICAgICAgICAgZXhj ZXB0IFJ1bnRpbWVFcnJvciBhcyBtc2c6ICMgc2hvdWxkIHRoaXMgcmVhbGx5IGJlIGEgVHlwZUVy cm9yCitAQCAtMjg0LDcgKzI4NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2Rf bihQb2x5bm9taWFsKToKKyAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX3BvbHku bGVmdF9zaGlmdChuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdD1U cnVlKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNl bGYuX3BvbHkgLSAoPFBvbHlub21pYWxfZGVuc2VfbW9kX24+cmlnaHQpLl9wb2x5LCBjb25zdHJ1 Y3Q9VHJ1ZSkKKyAKKyAgICAgZGVmIF9fZmxvb3JkaXZfXyhzZWxmLCByaWdodCk6CitAQCAtMzE2 LDcgKzMxNiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFs KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihtYXgoc2VsZi5f cG9seS5kZWdyZWUoKSwgLTEpKQorIAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBj b3B5PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5 PVRydWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBuZXcgY29weSBvZiB0aGUg bGlzdCBvZiB0aGUgdW5kZXJseWluZworICAgICAgICAgZWxlbWVudHMgb2YgYGBzZWxmYGAuCitA QCAtNjc0LDcgKzY3NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96 eihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgICAgIHNlbGYueCA9IG50bC54CisgICAg ICAgICBzZWxmLmMgPSBudGwuYworIAorLSAgICBjZGVmIFBvbHlub21pYWxfZGVuc2VfbW9kbl9u dGxfenogX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBQb2x5bm9taWFsX2RlbnNlX21v ZG5fbnRsX3p6IF9uZXcoc2VsZik6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfZGVuc2VfbW9k bl9udGxfenogeSA9IDxQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6PlBvbHlub21pYWxfZGVu c2VfbW9kbl9udGxfenouX19uZXdfXyhQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KQorICAg ICAgICAgeS5jID0gc2VsZi5jCisgICAgICAgICB5Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKK0BA IC02OTgsNyArNjk4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6 KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAg IHJldHVybiBbIHp6X3BfcmVwKHp6X3BYX0dldENvZWZmKHNlbGYueCwgaSkpIGZvciBpIGZyb20g MCA8PSBpIDw9IHp6X3BYX2RlZyhzZWxmLngpIF0KKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNl bGYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQ eV9zc2l6ZV90IG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBuYC10aCBj b2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK0BAIC03MjAsNyArNzIwLDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgor ICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgICAgICAgICB6el9wWF9TZXRDb2VmZl9sb25n KHNlbGYueCwgbiwgdmFsdWUpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFRFU1RTOjoKKyAKK0BAIC03MzcsNyArNzM3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAg aWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9z dWJfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC03NTQsNyArNzU0LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVu c2VfbW9kX24pOgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVy biByCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9tdWxfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoK KyAKK0BAIC03NzQsNyArNzc0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5f bnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdf b2ZmKCkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90 cnVuY18oc2VsZiwgUG9seW5vbWlhbCByaWdodCwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0LCBsb25nIG4p OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIGBgc2VsZmBg IGFuZCBgYHJpZ2h0YGAgdHJ1bmNhdGVkIHRvIHRoZQorICAgICAgICAgZ2l2ZW4gbGVuZ3RoIGBu YAorQEAgLTgxMiw3ICs4MTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9u dGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBpZiBkb19zaWc6IHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1l bnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAg ICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtODI4LDcgKzgyOCw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eihQb2x5bm9taWFsX2RlbnNlX21vZF9u KToKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcgorIAor LSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoK KyAKK0BAIC05MzgsNyArOTM4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5f bnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICByZXR1cm4gcSwgcgorIAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiB0aGUgd2hvbGUgcGFydCBvZiBgYHNlbGZgYC9gYHJpZ2h0YGAs IHdpdGhvdXQgcmVtYWluZGVyLgorIAorQEAgLTk2Miw3ICs5NjIsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBxCisgCistICAgIGNwZGVmIF9tb2RfKHNl bGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTE2OSw3ICsxMTY5LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2Vf bW9kX24pOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4genpfcFhfZGVnKHNlbGYueCkK KyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGlzIHBvbHlub21pYWwgbW9kIGB4Xm5gLgorIAorQEAg LTEyNTAsMTcgKzEyNTAsMTcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRs X1paKFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgaWYgPG9iamVjdD5zZWxmLmMg aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgCistICAgIGNk ZWYgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWiBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlogX25ldyhzZWxmKToKKyAgICAgICAg IGNkZWYgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWiB5ID0gPFBvbHlub21pYWxfZGVuc2Vf bW9kbl9udGxfWlo+UG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWi5fX25ld19fKFBvbHlub21p YWxfZGVuc2VfbW9kbl9udGxfWlopCisgICAgICAgICB5LmMgPSBzZWxmLmMKKyAgICAgICAgIHku X3BhcmVudCA9IHNlbGYuX3BhcmVudAorICAgICAgICAgcmV0dXJuIHkKKyAKKyAKKy0gICAgY3Bk ZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg bGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgIHJldHVybiBbc2VsZi5n ZXRfdW5zYWZlKG4pIGZvciBuIGZyb20gMCA8PSBuIDw9IHNlbGYuZGVncmVlKCldCisgCistICAg IGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0OgorKyAgICBjZGVm IGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBgbmAtdGggY29lZmZpY2llbnQgb2YgYGBzZWxmYGAuCisgCitAQCAtMTI5Miw3 ICsxMjkyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlu b21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgY2RlZiBudGxfWlpfcCB2YWwgPSBudGxfWlpf cChhLCBzZWxmLmMpCisgICAgICAgICBaWl9wWF9TZXRDb2VmZihzZWxmLngsIG4sIHZhbC54KQor IAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf YWRkXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitA QCAtMTMwOSw3ICsxMzA5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRs X1paKFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2Zm KCkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xMzI2LDcgKzEzMjYsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAg ICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3Bk ZWYgX211bF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwg X3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTEzNDYsNyAr MTM0Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQb2x5bm9t aWFsX2RlbnNlX21vZF9uKToKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIF9tdWxfdHJ1bmNfKHNlbGYsIFBv bHlub21pYWwgcmlnaHQsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwg X211bF90cnVuY18oc2VsZiwgUG9seW5vbWlhbCByaWdodCwgbG9uZyBuKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAg dHJ1bmNhdGVkIHRvIHRoZQorICAgICAgICAgZ2l2ZW4gbGVuZ3RoIGBuYCwgb25seSByZXR1cm4g dGVybXMgb2YgZGVncmVlIGxlc3MgdGhhbiBgbmAuCitAQCAtMTM4NCw3ICsxMzg0LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2VfbW9k X24pOgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByCisg CistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6 OgorIAorQEAgLTE0MDEsNyArMTQwMSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9t b2RuX250bF9aWihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgICAgIGlmIGRvX3NpZzog c2lnX29mZigpCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwg RWxlbWVudCBjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xNDk1LDcgKzE0OTUsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5z ZV9tb2Rfbik6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBxLCByCisgCist ICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf Zmxvb3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSB3aG9sZSBwYXJ0IG9mIGBgc2VsZmBgIC8gYGByaWdodGBgLCB3aXRob3V0IHJlbWFpbmRlci4K KyAKK0BAIC0xNTE5LDcgKzE1MTksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9k bl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiBxCisgCistICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtMTczMCw3ICsxNzMwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gWlpfcFhfZGVnKHNlbGYueCkKKyAKKy0gICAgY3BkZWYgUG9s eW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5 bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGlzIHBvbHlub21pYWwgbW9kIGB4Xm5gLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQgYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHhkCitpbmRleCBk YWNjYTk4NzgzMC4uZjQ2NDRmMTlkMDQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHhkCitAQCAtMTMsOCArMTMs OCBAQCBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQgY2ltcG9y dCBQb2x5bm9taWFsCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICBjZGVmIGZtcHFfcG9seV90IF9wb2x5CisgCistICAgIGNkZWYgUG9seW5v bWlhbF9yYXRpb25hbF9mbGludCBfbmV3KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tb2Rf KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCB1 bnNpZ25lZCBsb25nIG4sIHZhbHVlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBQb2x5bm9taWFsIHRy dW5jYXRlKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKysgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50IF9uZXcoc2VsZikKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpCisrICAg IGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIHVuc2lnbmVkIGxvbmcgbiwgdmFsdWUpCisrICAg IGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKQorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weXgg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4 CitpbmRleCBlYjUzNDQ3NGViNy4uM2VjMmViMDMzMDIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CitAQCAt MTA5LDcgKzEwOSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5 bm9taWFsKToKKyAgICAgIyBBbGxvY2F0aW9uICYgaW5pdGlhbGlzYXRpb24gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIAorLSAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgX25ldyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IF9uZXcoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRlcyBhIG5ldyBwb2x5bm9taWFsIG9i amVjdCBpbiB0aGlzIGNsYXNzLgorIAorQEAgLTEzMCw3ICsxMzAsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICByZXMuX2lzX2dl biA9IDAKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbmV3 X2NvbnN0YW50X3BvbHkoc2VsZiwgeCwgUGFyZW50IFApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQ b2x5bm9taWFsIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCB4LCBQYXJlbnQgUCk6CisgICAgICAg ICByIiIiCisgICAgICAgICBRdWlja2x5IGNyZWF0ZXMgYSBuZXcgY29uc3RhbnQgcG9seW5vbWlh bCB3aXRoIHZhbHVlIHggaW4gcGFyZW50IFAKKyAKK0BAIC0zNDgsNyArMzQ4LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgc2Vs Zi5fcGFyZW50Ll9zaW5ndWxhcl8oc2luZ3VsYXIpLnNldF9yaW5nKCkgICMgRXhwZW5zaXZlIQor ICAgICAgICAgcmV0dXJuIHNpbmd1bGFyKHNlbGYuX3Npbmd1bGFyX2luaXRfKCkpCisgCistICAg IGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiBhIGxpc3Qgd2l0aCB0aGUgY29lZmZpY2llbnRzIG9mIGBgc2VsZmBgLgorIAor QEAgLTM5Miw3ICszOTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQo UG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzbWFsbEludGVnZXIo Zm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNl bGYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQ eV9zc2l6ZV90IG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBuYC10aCBj b2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK0BAIC00MTQsNyArNDE0LDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgZm1wcV9w b2x5X2dldF9jb2VmZl9tcHEoei52YWx1ZSwgc2VsZi5fcG9seSwgbikKKyAgICAgICAgIHJldHVy biB6CisgCistICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIHVuc2lnbmVkIGxvbmcgbiwg dmFsdWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCB1bnNpZ25l ZCBsb25nIG4sIHZhbHVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0cyB0aGUgYG5gLXRo IGNvZWZmaWNpZW50IG9mIGBgc2VsZmBgIHRvIHZhbHVlLgorIAorQEAgLTU2MSw3ICs1NjEsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgCisg ICAgICAgICByZXR1cm4gUG9seW5vbWlhbC5fX2NhbGxfXyhzZWxmLCAqeCwgKiprd2RzKQorIAor LSAgICBjcGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHNlbGYgdHJ1bmNhdGVkIG1vZHVsbyBgdF5uYC4KKyAKK0BAIC04 NDgsNyArODQ4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAjIEFyaXRobWV0aWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHN1 bSBvZiB0d28gcmF0aW9uYWwgcG9seW5vbWlhbHMuCisgCitAQCAtODc2LDcgKzg3Niw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg IGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVm IF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdHdv IHJhdGlvbmFsIHBvbHlub21pYWxzLgorIAorQEAgLTkwNCw3ICs5MDQsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBkb19z aWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfbmVnXyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gcmF0aW9uYWwgcG9seW5vbWlhbHMu CisgCitAQCAtMTA1OCw3ICsxMDU4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4g ZCwgcywgdAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSBwcm9kdWN0IG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtMTA4Nyw3ICsx MDg3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAK Ky0gICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0 LCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9tdWxfdHJ1bmNfKHNl bGYsIFBvbHlub21pYWwgcmlnaHQsIGxvbmcgbik6CisgICAgICAgICByIiIiCisgICAgICAgICBU cnVuY2F0ZWQgbXVsdGlwbGljYXRpb24uCisgCitAQCAtMTEyNCw3ICsxMTI0LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgaWYg ZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3Jt dWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxm LCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBgbGVmdCAq IHNlbGZgYCwgd2hlcmUgYGBsZWZ0YGAgaXMgYSByYXRpb25hbCBudW1iZXIuCisgCitAQCAtMTE0 NCw3ICsxMTQ0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBy ZXMKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gYGBzZWxmICogcmlnaHRgYCwgd2hlcmUgYGByaWdodGBgIGlzIGEgcmF0 aW9uYWwgbnVtYmVyLgorIAorQEAgLTEzNTgsNyArMTM1OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIGludmVyc2Vfc2VyaWVz X3RydW5jKHNlbGYsIGxvbmcgcHJlYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwg aW52ZXJzZV9zZXJpZXNfdHJ1bmMoc2VsZiwgbG9uZyBwcmVjKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiBhIHBvbHlub21pYWwgYXBwcm94aW1hdGlvbiBvZiBwcmVjaXNpb24gYGBw cmVjYGAgb2YgdGhlIGludmVyc2UKKyAgICAgICAgIHNlcmllcyBvZiB0aGlzIHBvbHlub21pYWwu CitAQCAtMTQwNiw3ICsxNDA2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVz CisgCistICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X21vZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJl bWFpbmRlciBvZiBgYHNlbGZgYCBhbmQgYGByaWdodGBgIG9idGFpbiBieSBFdWNsaWRlYW4gZGl2 aXNpb24uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9t aWFsX3JlYWxfbXBmcl9kZW5zZS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfcmVhbF9tcGZyX2RlbnNlLnB5eAoraW5kZXggNTczZjc4OGQ2OGMuLjJiZjAwNTU3N2Fi IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JlYWxf bXBmcl9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF9yZWFsX21wZnJfZGVuc2UucHl4CitAQCAtMTg0LDcgKzE4NCw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIG1ha2VfUG9seW5vbWlhbFJlYWxEZW5zZSwgKHNlbGYuX3BhcmVudCwgc2VsZi5saXN0KCkp CisgCistICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbm9y bWFsaXplKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZW1vdmUgYWxsIGxlYWRpbmcg MCdzLgorICAgICAgICAgIiIiCitAQCAtMTk3LDcgKzE5Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSA8 bXBmcl90Kj5jaGVja19yZWFsbG9jYXJyYXkoc2VsZi5fY29lZmZzLCBpKzEsIHNpemVvZihtcGZy X3QpKQorICAgICAgICAgICAgIHNlbGYuX2RlZ3JlZSA9IGkKKyAKKy0gICAgY2RlZiBnZXRfdW5z YWZlKHNlbGYsIFB5X3NzaXplX3QgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShz ZWxmLCBQeV9zc2l6ZV90IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBp YC10aCBjb2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK0BAIC0yMjUsNyArMjI1LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgbXBmcl9z ZXQoci52YWx1ZSwgc2VsZi5fY29lZmZzW2ldLCBzZWxmLl9iYXNlX3Jpbmcucm5kKQorICAgICAg ICAgcmV0dXJuIHIKKyAKKy0gICAgY2RlZiBQb2x5bm9taWFsUmVhbERlbnNlIF9uZXcoc2VsZiwg UHlfc3NpemVfdCBkZWdyZWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIFBvbHlub21pYWxSZWFsRGVu c2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IGRlZ3JlZSk6CisgICAgICAgICBjZGVmIFB5X3NzaXpl X3QgaQorICAgICAgICAgY2RlZiBpbnQgcHJlYyA9IHNlbGYuX2Jhc2VfcmluZy5fcHJlYworICAg ICAgICAgY2RlZiBQb2x5bm9taWFsUmVhbERlbnNlIGYgPSA8UG9seW5vbWlhbFJlYWxEZW5zZT5Q b2x5bm9taWFsUmVhbERlbnNlLl9fbmV3X18oUG9seW5vbWlhbFJlYWxEZW5zZSkKK0BAIC0yNTcs NyArMjU3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKHNlbGYuX2RlZ3JlZSkK KyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbik6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBwb2x5bm9taWFsIG9mIGRlZ3JlZSBgPCBuYCB3 aGljaCBpcyBlcXVpdmFsZW50IHRvIHNlbGYKKyAgICAgICAgIG1vZHVsbyBgeF5uYC4KK0BAIC0z MTAsNyArMzEwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwp OgorICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi50cnVuY2F0ZShpKzEpCisgICAgICAgICBy ZXR1cm4gc2VsZi5fbmV3KC0xKQorIAorLSAgICBjcGRlZiBzaGlmdChzZWxmLCBQeV9zc2l6ZV90 IG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzaGlmdChzZWxmLCBQeV9zc2l6ZV90IG4pOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyB0aGlzIHBvbHlub21pYWwgbXVsdGlwbGllZCBi eSB0aGUgcG93ZXIgYHhebmAuIElmIGBuYAorICAgICAgICAgaXMgbmVnYXRpdmUsIHRlcm1zIGJl bG93IGB4Xm5gIHdpbGwgYmUgZGlzY2FyZGVkLiBEb2VzIG5vdAorQEAgLTM1MSw3ICszNTEsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAg ICAgICAgIG1wZnJfc2V0KGYuX2NvZWZmc1tpXSwgc2VsZi5fY29lZmZzW2ktbl0sIHNlbGYuX2Jh c2VfcmluZy5ybmQpCisgICAgICAgICByZXR1cm4gZgorIAorLSAgICBjcGRlZiBsaXN0IGxpc3Qo c2VsZiwgYmludCBjb3B5PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2Vs ZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6Cisg CitAQCAtMzg2LDcgKzM4Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbFJlYWxEZW5zZShQb2x5 bm9taWFsKToKKyAgICAgICAgICAgICBtcGZyX25lZyhmLl9jb2VmZnNbaV0sIHNlbGYuX2NvZWZm c1tpXSwgcm5kKQorICAgICAgICAgcmV0dXJuIGYKKyAKKy0gICAgY3BkZWYgX2FkZF8obGVmdCwg X3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8obGVmdCwgX3JpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTQxOSw3ICs0MTksNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBmLl9ub3Jt YWxpemUoKQorICAgICAgICAgcmV0dXJuIGYKKyAKKy0gICAgY3BkZWYgX3N1Yl8obGVmdCwgX3Jp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8obGVmdCwgX3JpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTQ1MCw3ICs0NTAsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBmLl9ub3JtYWxp emUoKQorICAgICAgICAgcmV0dXJuIGYKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1l bnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDcyLDcgKzQ3Miw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBt cGZyX211bChmLl9jb2VmZnNbaV0sIHNlbGYuX2NvZWZmc1tpXSwgYS52YWx1ZSwgcm5kKQorICAg ICAgICAgcmV0dXJuIGYKKyAKKy0gICAgY3BkZWYgX211bF8obGVmdCwgX3JpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX211bF8obGVmdCwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgSGVyZSB3ZSB1c2UgdGhlIG5haXZlIGBPKG5eMilgIGFsZ29yaXRobSwgYXMgYXN5bXB0b3Rp Y2FsbHkgZmFzdGVyIGFsZ29yaXRobXMgc3VjaAorICAgICAgICAgYXMgS2FyYXRzdWJhIGNhbiBo YXZlIHZlcnkgaW5hY2N1cmF0ZSByZXN1bHRzIGR1ZSB0byBpbnRlcm1lZGlhdGUgcm91bmRpbmcg ZXJyb3JzLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF9yaW5nX2hvbW9tb3JwaGlzbS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfcmluZ19ob21vbW9ycGhpc20ucHl4CitpbmRleCAzYmUyNWY4MjljNC4uN2UzZTI3ZGQ1 MjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmlu Z19ob21vbW9ycGhpc20ucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfcmluZ19ob21vbW9ycGhpc20ucHl4CitAQCAtMzYsNyArMzYsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxSaW5nSG9tb21vcnBoaXNtX2Zyb21fYmFzZShSaW5nSG9tb21vcnBoaXNtX2Zy b21fYmFzZSk6CisgICAgICAgICAgICAgICAgICAgVG86ICAgUmF0aW9uYWwgRmllbGQKKyAKKyAg ICAgIiIiCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAg RXZhbHVhdGUgdGhlIGhvbW9tb3JwaGlzbSBgYHNlbGZgYCBhdCBgYHhgYC4KKyAKK0BAIC02NSw3 ICs2NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbFJpbmdIb21vbW9ycGhpc21fZnJvbV9iYXNl KFJpbmdIb21vbW9ycGhpc21fZnJvbV9iYXNlKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgcmV0dXJuIFAoW2YoYikgZm9yIGIgaW4geF0pCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KToK KyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGUgYGBzZWxmYGAgYXQgYGB4YGAgd2l0aCBh ZGRpdGlvbmFsIChrZXl3b3JkKSBhcmd1bWVudHMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3RlbXBsYXRlLnB4aSBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvcG9seW5vbWlhbF90ZW1wbGF0ZS5weGkKK2luZGV4IDI2N2I4Nzk4NjdiLi4z MDVhMjQzODRhMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5v bWlhbF90ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5v bWlhbF90ZW1wbGF0ZS5weGkKK0BAIC0yOSw3ICsyOSw3IEBAIGZyb20gc2FnZS5pbnRlcmZhY2Vz LnNpbmd1bGFyIGltcG9ydCBzaW5ndWxhciBhcyBzaW5ndWxhcl9kZWZhdWx0CisgZGVmIG1ha2Vf ZWxlbWVudChwYXJlbnQsIGFyZ3MpOgorICAgICByZXR1cm4gcGFyZW50KCphcmdzKQorIAorLWNk ZWYgaW5saW5lIFBvbHlub21pYWxfdGVtcGxhdGUgZWxlbWVudF9zaGlmdChzZWxmLCBpbnQgbikg bm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgUG9seW5vbWlhbF90ZW1wbGF0ZSBlbGVtZW50X3NoaWZ0 KHNlbGYsIGludCBuKToKKyAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYsIFBvbHlub21pYWxf dGVtcGxhdGUpOgorICAgICAgICAgIGlmIG4gPiAwOgorICAgICAgICAgICAgICBlcnJvcl9tc2cg PSAiQ2Fubm90IHNoaWZ0ICVzIDw8ICVuLiIlKHNlbGYsIG4pCitAQCAtMTg5LDcgKzE4OSw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF90ZW1wbGF0ZShQb2x5bm9taWFsKToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIG1ha2VfZWxlbWVudCwgKCg8UG9seW5vbWlhbF90ZW1wbGF0ZT5z ZWxmKS5fcGFyZW50LCAoc2VsZi5saXN0KCksIEZhbHNlLCBzZWxmLmlzX2dlbigpKSkKKyAKKy0g ICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIiIgorICAg ICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTIyNCw3ICsyMjQsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfdGVtcGxhdGUoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNlbGVt ZW50X2Rlc3RydWN0KCZzZWxmLngsICg8UG9seW5vbWlhbF90ZW1wbGF0ZT5zZWxmKS5fY3BhcmVu dCkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC0yNDIsNyArMjQyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3RlbXBsYXRlKFBv bHlub21pYWwpOgorICAgICAgICAgI2Fzc2VydChyLl9wYXJlbnQocGFyaShzZWxmKSArIHBhcmko cmlnaHQpKSA9PSByKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2Vs ZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNzYsNyArMjc2LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgorICAgICAgICAgI2Fzc2Vy dChyLl9wYXJlbnQoLXBhcmkoc2VsZikpID09IHIpCisgICAgICAgICByZXR1cm4gcgorIAorLSAg ICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2xtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC0zMjIsNyArMzIyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3RlbXBs YXRlKFBvbHlub21pYWwpOgorICAgICAgICAgY2VsZW1lbnRfbXVsX3NjYWxhcigmci54LCAmKDxQ b2x5bm9taWFsX3RlbXBsYXRlPnNlbGYpLngsIGxlZnQsICg8UG9seW5vbWlhbF90ZW1wbGF0ZT5z ZWxmKS5fY3BhcmVudCkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9tdWxfKHNl bGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDA5LDcgKzQwOSw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF90ZW1wbGF0ZShQb2x5bm9taWFsKToKKyAgICAgICAgICNhc3Nl cnQodC5fcGFyZW50KHRwKSA9PSB0KQorICAgICAgICAgcmV0dXJuIHIscyx0CisgCistICAgIGNw ZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmxvb3Jk aXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTQ0NCw3ICs0NDQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfdGVtcGxhdGUoUG9seW5v bWlhbCk6CisgICAgICAgICBjZWxlbWVudF9mbG9vcmRpdigmci54LCAmKDxQb2x5bm9taWFsX3Rl bXBsYXRlPnNlbGYpLngsICYoPFBvbHlub21pYWxfdGVtcGxhdGU+cmlnaHQpLngsICg8UG9seW5v bWlhbF90ZW1wbGF0ZT5zZWxmKS5fY3BhcmVudCkKKyAgICAgICAgIHJldHVybiByCisgCistICAg IGNwZGVmIF9tb2RfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21vZF8oc2Vs Ziwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNTEz LDcgKzUxMyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF90ZW1wbGF0ZShQb2x5bm9taWFsKToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIG5vdCBjZWxlbWVudF9pc196ZXJvKCZzZWxm LngsICg8UG9seW5vbWlhbF90ZW1wbGF0ZT5zZWxmKS5fY3BhcmVudCkKKyAKKy0gICAgY3BkZWYg X3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmlj aGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC03MzEsNyArNzMxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3RlbXBs YXRlKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gSW50ZWdlcihj ZWxlbWVudF9sZW4oJnNlbGYueCwgKDxQb2x5bm9taWFsX3RlbXBsYXRlPnNlbGYpLl9jcGFyZW50 KS0xKQorIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgdGhpcyBwb2x5bm9taWFsIG1vZCBgeF5uYC4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfdGVt cGxhdGVfaGVhZGVyLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF90 ZW1wbGF0ZV9oZWFkZXIucHhpCitpbmRleCBiYTcxODRmNjY0My4uNjRhYjEwNmYzMTQgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfdGVtcGxhdGVfaGVh ZGVyLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3RlbXBs YXRlX2hlYWRlci5weGkKK0BAIC03LDQgKzcsNCBAQCBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlh bC5wb2x5bm9taWFsX2VsZW1lbnQgY2ltcG9ydCBQb2x5bm9taWFsCisgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgorICAgICBjZGVmIGNlbGVtZW50IHgKKyAgICAg Y2RlZiBjcGFyZW50IF9jcGFyZW50CistICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KSBub2V4 Y2VwdAorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfem1vZF9mbGludC5weGQgYi9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfem1vZF9mbGludC5weGQKK2luZGV4IDg4N2Y0NmVh NmViLi5jNmE5MmYzZGY2YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cG9seW5vbWlhbF96bW9kX2ZsaW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX3ptb2RfZmxpbnQucHhkCitAQCAtMTAsOCArMTAsOCBAQCBpbmNsdWRlICJw b2x5bm9taWFsX3RlbXBsYXRlX2hlYWRlci5weGkiCisgY2RlZiBjcGFyZW50IGdldF9jcGFyZW50 KHBhcmVudCkgZXhjZXB0PyAwCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3ptb2RfZmxpbnQo UG9seW5vbWlhbF90ZW1wbGF0ZSk6CistICAgIGNkZWYgUG9seW5vbWlhbF90ZW1wbGF0ZSBfbmV3 KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgUG9seW5vbWlhbF90ZW1wbGF0ZSBfbmV3KHNlbGYp CisgICAgIGNkZWYgaW50IF9zZXRfbGlzdChzZWxmLCB4KSBleGNlcHQgLTEKKyAgICAgY2RlZiBp bnQgX3NldF9mbXB6X3BvbHkoc2VsZiwgZm1wel9wb2x5X3QpIGV4Y2VwdCAtMQorLSAgICBjcGRl ZiBQb2x5bm9taWFsIF9tdWxfdHJ1bmNfb3Bwb3NpdGUoc2VsZiwgUG9seW5vbWlhbF96bW9kX2Zs aW50IG90aGVyLCBsZW5ndGgpIG5vZXhjZXB0CistICAgIGNwZGVmIHJhdGlvbmFsX3JlY29uc3Ry dWN0aW9uKHNlbGYsIG0sIG5fZGVnPT8sIGRfZGVnPT8pIG5vZXhjZXB0CisrICAgIGNwZGVmIFBv bHlub21pYWwgX211bF90cnVuY19vcHBvc2l0ZShzZWxmLCBQb2x5bm9taWFsX3ptb2RfZmxpbnQg b3RoZXIsIGxlbmd0aCkKKysgICAgY3BkZWYgcmF0aW9uYWxfcmVjb25zdHJ1Y3Rpb24oc2VsZiwg bSwgbl9kZWc9PywgZF9kZWc9PykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfem1vZF9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfem1vZF9mbGludC5weXgKK2luZGV4IDgzOTBmYWIxNGI0Li4yZGY1NTM3NTVm NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF96bW9k X2ZsaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3pt b2RfZmxpbnQucHl4CitAQCAtMTIyLDcgKzEyMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF96 bW9kX2ZsaW50KFBvbHlub21pYWxfdGVtcGxhdGUpOgorICAgICAgICAgICAgICAgICBwYXNzCisg ICAgICAgICBQb2x5bm9taWFsX3RlbXBsYXRlLl9faW5pdF9fKHNlbGYsIHBhcmVudCwgeCwgY2hl Y2ssIGlzX2dlbiwgY29uc3RydWN0KQorIAorLSAgICBjZGVmIFBvbHlub21pYWxfdGVtcGxhdGUg X25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBQb2x5bm9taWFsX3RlbXBsYXRlIF9uZXco c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMzcsNyAr MTM3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3ptb2RfZmxpbnQoUG9seW5vbWlhbF90ZW1w bGF0ZSk6CisgICAgICAgICBlLl9jcGFyZW50ID0gc2VsZi5fY3BhcmVudAorICAgICAgICAgcmV0 dXJuIGUKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbmV3X2NvbnN0YW50X3BvbHkoc2VsZiwg eCwgUGFyZW50IFApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3Rh bnRfcG9seShzZWxmLCB4LCBQYXJlbnQgUCk6CisgICAgICAgICByIiIiCisgICAgICAgICBRdWlj a2x5IGNyZWF0ZXMgYSBuZXcgY29uc3RhbnQgcG9seW5vbWlhbCB3aXRoIHZhbHVlIHggaW4gcGFy ZW50IFAuCisgCitAQCAtMjQ0LDcgKzI0NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF96bW9k X2ZsaW50KFBvbHlub21pYWxfdGVtcGxhdGUpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gMAorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGlgLXRoIGNvZWZmaWNpZW50IG9mIGBgc2Vs ZmBgLgorIAorQEAgLTQxMiw3ICs0MTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfem1vZF9m bGludChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmFpc2UgSW5kZXhFcnJvcigiUG9seW5vbWlhbCBjb2VmZmljaWVudCBpbmRleCBtdXN0IGJlIG5v bm5lZ2F0aXZlLiIpCisgCistICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90cnVuY18oc2VsZiwg UG9seW5vbWlhbCByaWdodCwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlh bCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0LCBsb25nIG4pOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBwb2x5bm9taWFsIGFuZCBv dGhlciB0cnVuY2F0ZWQgdG8gdGhlCisgICAgICAgICBnaXZlbiBsZW5ndGggYG5gLgorQEAgLTQ0 NSw3ICs0NDUsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfem1vZF9mbGludChQb2x5bm9taWFs X3RlbXBsYXRlKToKKyAKKyAgICAgX211bF9zaG9ydCA9IF9tdWxfdHJ1bmNfCisgCistICAgIGNw ZGVmIFBvbHlub21pYWwgX211bF90cnVuY19vcHBvc2l0ZShzZWxmLCBQb2x5bm9taWFsX3ptb2Rf ZmxpbnQgb3RoZXIsIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9tdWxfdHJ1 bmNfb3Bwb3NpdGUoc2VsZiwgUG9seW5vbWlhbF96bW9kX2ZsaW50IG90aGVyLCBuKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgcG9seW5vbWlhbCBh bmQgb3RoZXIgaWdub3JpbmcgdGhlIGxlYXN0CisgICAgICAgICBzaWduaWZpY2FudCBgbmAgdGVy bXMgb2YgdGhlIHJlc3VsdCB3aGljaCBtYXkgYmUgc2V0IHRvIGFueXRoaW5nLgorQEAgLTQ4Miw3 ICs0ODIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfem1vZF9mbGludChQb2x5bm9taWFsX3Rl bXBsYXRlKToKKyAKKyAgICAgX211bF9zaG9ydF9vcHBvc2l0ZSA9IF9tdWxfdHJ1bmNfb3Bwb3Np dGUKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfcG93ZXJfdHJ1bmMoc2VsZiwgdW5zaWduZWQg bG9uZyBuLCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9wb3dl cl90cnVuYyhzZWxmLCB1bnNpZ25lZCBsb25nIG4sIGxvbmcgcHJlYyk6CisgICAgICAgICByIiIi CisgICAgICAgICBURVNUUzo6CisgCitAQCAtNTE5LDcgKzUxOSw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF96bW9kX2ZsaW50KFBvbHlub21pYWxfdGVtcGxhdGUpOgorICAgICAgICAgbm1vZF9w b2x5X3Bvd190cnVuYygmYW5zLngsICZzZWxmLngsIG4sIHByZWMpCisgICAgICAgICByZXR1cm4g YW5zCisgCistICAgIGNwZGVmIHJhdGlvbmFsX3JlY29uc3RydWN0aW9uKHNlbGYsIG0sIG5fZGVn PTAsIGRfZGVnPTApIG5vZXhjZXB0OgorKyAgICBjcGRlZiByYXRpb25hbF9yZWNvbnN0cnVjdGlv bihzZWxmLCBtLCBuX2RlZz0wLCBkX2RlZz0wKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29u c3RydWN0IGEgcmF0aW9uYWwgZnVuY3Rpb24gYG4vZGAgc3VjaCB0aGF0IGBwKmRgIGlzIGVxdWl2 YWxlbnQgdG8gYG5gCisgICAgICAgICBtb2R1bG8gYG1gIHdoZXJlIGBwYCBpcyB0aGlzIHBvbHlu b21pYWwuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X3p6X3BleC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfenpfcGV4 LnB5eAoraW5kZXggOWEwMzg0YzY0M2IuLmI4YzlkMGJjYmQ4IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3p6X3BleC5weXgKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF96el9wZXgucHl4CitAQCAtNDQsNyArNDQsNyBA QCBpbmNsdWRlICJwb2x5bm9taWFsX3RlbXBsYXRlLnB4aSIKKyAKKyBmcm9tIHNhZ2UubGlicy5u dGwubnRsX1paX3BFIGNpbXBvcnQgbnRsX1paX3BFCisgCistY2RlZiBpbmxpbmUgWlpfcEVfY190 b19saXN0KFpaX3BFX2MgeCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgWlpfcEVfY190b19saXN0 KFpaX3BFX2MgeCk6CisgICAgIGNkZWYgbGlzdCBMID0gW10KKyAgICAgY2RlZiBaWl9wWF9jIGNf cFgKKyAgICAgY2RlZiBaWl9wX2MgY19wCitAQCAtMTUyLDcgKzE1Miw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9aWl9wRVgoUG9seW5vbWlhbF90ZW1wbGF0ZSk6CisgCisgICAgICAgICBQb2x5 bm9taWFsX3RlbXBsYXRlLl9faW5pdF9fKHNlbGYsIHBhcmVudCwgeCwgY2hlY2ssIGlzX2dlbiwg Y29uc3RydWN0KQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBpYC10aCBjb2VmZmljaWVudCBvZiBgYHNl bGZgYC4KKyAKK0BAIC0xNzYsNyArMTc2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX1paX3BF WChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAgICAgICAgIGNkZWYgWlpfcEVfYyBjX3BFID0gWlpf cEVYX2NvZWZmKHNlbGYueCwgaSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX2Jhc2Uo WlpfcEVfY190b19saXN0KGNfcEUpKQorIAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmlu dCBjb3B5PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBj b3B5PVRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGNv ZWZmaWNpZW50cy4KKyAKK0BAIC0xOTgsNyArMTk4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X1paX3BFWChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAgICAgICAgIHJldHVybiBbSyhaWl9wRV9j X3RvX2xpc3QoWlpfcEVYX2NvZWZmKHNlbGYueCwgaSkpKQorICAgICAgICAgICAgICAgICBmb3Ig aSBpbiByYW5nZShjZWxlbWVudF9sZW4oJnNlbGYueCwgKDxQb2x5bm9taWFsX3RlbXBsYXRlPnNl bGYpLl9jcGFyZW50KSldCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGxlZnQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00MTAsNyArNDEwLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX1paX3BFWChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAgICAgICAg IFpaX3BFWF9NaW5Qb2x5TW9kKHIueCwgKDxQb2x5bm9taWFsX1paX3BFWD4oc2VsZiAlIG90aGVy KSkueCwgKDxQb2x5bm9taWFsX1paX3BFWD5vdGhlcikueCkKKyAgICAgICAgIHJldHVybiByCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAgICAgciIiIgor ICAgICAgICAgRVhBTVBMRVM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvc2tld19wb2x5bm9taWFsX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9za2V3X3BvbHlub21pYWxfZWxlbWVudC5weGQKK2luZGV4IGQ5NjdlODk4OTA5Li4xZWIz OGI1YjQ3NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5 bm9taWFsX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdf cG9seW5vbWlhbF9lbGVtZW50LnB4ZAorQEAgLTMsNiArMyw2IEBAIGZyb20gc2FnZS5yaW5ncy5w b2x5bm9taWFsLm9yZV9wb2x5bm9taWFsX2VsZW1lbnQgY2ltcG9ydCBPcmVQb2x5bm9taWFsX2dl bmVyaWNfCisgY2RlZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZSk6CisgICAgIGNkZWYgdm9pZCBfaW5wbGFjZV9ybXVsKHNlbGYs IFNrZXdQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmlnaHQpIG5vZXhjZXB0CisgICAgIGNkZWYg dm9pZCBfaW5wbGFjZV9wb3coc2VsZiwgUHlfc3NpemVfdCBuKSBub2V4Y2VwdAorLSAgICBjcGRl ZiByaWdodF9wb3dlcl9tb2Qoc2VsZiwgZXhwLCBtb2R1bHVzKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBsZWZ0X3Bvd2VyX21vZChzZWxmLCBleHAsIG1vZHVsdXMpIG5vZXhjZXB0CistICAgIGNwZGVm IG9wZXJhdG9yX2V2YWwoc2VsZiwgZXZhbF9wdCkgbm9leGNlcHQKKysgICAgY3BkZWYgcmlnaHRf cG93ZXJfbW9kKHNlbGYsIGV4cCwgbW9kdWx1cykKKysgICAgY3BkZWYgbGVmdF9wb3dlcl9tb2Qo c2VsZiwgZXhwLCBtb2R1bHVzKQorKyAgICBjcGRlZiBvcGVyYXRvcl9ldmFsKHNlbGYsIGV2YWxf cHQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21p YWxfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlh bF9lbGVtZW50LnB5eAoraW5kZXggYjEwM2FjMzc1MDguLmNmNWZkOWJkMDkwIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZWxlbWVudC5weXgK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2VsZW1lbnQu cHl4CitAQCAtNjQsNyArNjQsNyBAQCBjZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UoT3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKToKKyAgICAgR2VuZXJpYyBpbXBsZW1l bnRhdGlvbiBvZiBkZW5zZSBza2V3IHBvbHlub21pYWwgc3VwcG9ydGluZyBhbnkgdmFsaWQgYmFz ZQorICAgICByaW5nIGFuZCB0d2lzdGluZyBtb3JwaGlzbS4KKyAgICAgIiIiCistICAgIGNwZGVm IGxlZnRfcG93ZXJfbW9kKHNlbGYsIGV4cCwgbW9kdWx1cykgbm9leGNlcHQ6CisrICAgIGNwZGVm IGxlZnRfcG93ZXJfbW9kKHNlbGYsIGV4cCwgbW9kdWx1cyk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHJlbWFpbmRlciBvZiBgYHNlbGYqKmV4cGBgIGluIHRoZSBsZWZ0IGV1 Y2xpZGVhbiBkaXZpc2lvbgorICAgICAgICAgYnkgYGBtb2R1bHVzYGAuCitAQCAtMTI3LDcgKzEy Nyw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9t aWFsX2dlbmVyaWNfZGVuc2UpOgorICAgICAgICAgICAgIF8sIHIgPSByLl9sZWZ0X3F1b19yZW0o bW9kdWx1cykKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIHJpZ2h0X3Bvd2VyX21v ZChzZWxmLCBleHAsIG1vZHVsdXMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByaWdodF9wb3dlcl9t b2Qoc2VsZiwgZXhwLCBtb2R1bHVzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgcmVtYWluZGVyIG9mIGBgc2VsZioqZXhwYGAgaW4gdGhlIHJpZ2h0IGV1Y2xpZGVhbiBkaXZp c2lvbgorICAgICAgICAgYnkgYGBtb2R1bHVzYGAuCitAQCAtMzMwLDcgKzMzMCw3IEBAIGNkZWYg Y2xhc3MgU2tld1BvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5vcGVyYXRvcl9ldmFs KGV2YWxfcHQpCisgCistICAgIGNwZGVmIG9wZXJhdG9yX2V2YWwoc2VsZiwgZXZhbF9wdCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIG9wZXJhdG9yX2V2YWwoc2VsZiwgZXZhbF9wdCk6CisgICAgICAg ICByIiIiCisgICAgICAgICBFdmFsdWF0ZSBgYHNlbGZgYCBhdCBgYGV2YWxfcHRgYCBieSB0aGUg b3BlcmF0b3IgZXZhbHVhdGlvbgorICAgICAgICAgbWV0aG9kLgorQEAgLTQ2MSw3ICs0NjEsNyBA QCBjZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbF9n ZW5lcmljX2RlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIFsgc2VsZihlKSBm b3IgZSBpbiBldmFsX3B0cyBdCisgCistICAgIGNwZGVmIE1vZHVsZUVsZW1lbnQgX2xtdWxfKHNl bGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBNb2R1bGVFbGVtZW50IF9s bXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgcHJvZHVjdCBgYHNlbGYgKiByaWdodGBgLgorIAorQEAgLTQ5MCw3ICs0OTAsNyBAQCBj ZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQsIDApCisg ICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBNb2R1bGVFbGVtZW50IF9ybXVsXyhzZWxm LCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBNb2R1bGVFbGVtZW50IF9ybXVs XyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBwcm9kdWN0IGBgbGVmdCAqIHNlbGZgYC4KKyAKK0BAIC01MTcsNyArNTE3LDcgQEAgY2RlZiBj bGFzcyBTa2V3UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZSk6CisgICAgICAgICByID0gc2VsZi5fbmV3X2MoWyBsZWZ0KnhbaV0gZm9yIGkgZnJvbSAw IDw9IGkgPCBsZW4oeCkgXSwgc2VsZi5fcGFyZW50LCAwKQorICAgICAgICAgcmV0dXJuIHIKKyAK Ky0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVs XyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1 Y3QgYGBzZWxmICogcmlnaHRgYC4KKyAKK0BAIC02MzEsNyArNjMxLDcgQEAgY2RlZiBjbGFzcyBT a2V3UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSk6 CisgICAgICAgICAgICAgICAgIHNlbGYuX2lucGxhY2Vfcm11bChzZWxmcG93KQorICAgICAgICAg ICAgIG4gPSBuID4+IDEKKyAKKy0gICAgY2RlZiBfbGVmdF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlu b21pYWwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9sZWZ0X3F1b19yZW0oc2VsZiwgT3Jl UG9seW5vbWlhbCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1 b3RpZW50IGFuZCByZW1haW5kZXIgb2YgdGhlIGxlZnQgZXVjbGlkZWFuCisgICAgICAgICBkaXZp c2lvbiBvZiBgYHNlbGZgYCBieSBgYG90aGVyYGAgKEMgaW1wbGVtZW50YXRpb24pLgorQEAgLTY2 MCw3ICs2NjAsNyBAQCBjZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3Jl UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKToKKyAgICAgICAgIHEucmV2ZXJzZSgpCisgICAgICAg ICByZXR1cm4gKHNlbGYuX25ld19jKHEsIHBhcmVudCksIHNlbGYuX25ld19jKGFbOmRiXSwgcGFy ZW50LCAxKSkKKyAKKy0gICAgY2RlZiBfcmlnaHRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFs IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcmlnaHRfcXVvX3JlbShzZWxmLCBPcmVQb2x5 bm9taWFsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGll bnQgYW5kIHJlbWFpbmRlciBvZiB0aGUgcmlnaHQgZXVjbGlkZWFuCisgICAgICAgICBkaXZpc2lv biBvZiBgYHNlbGZgYCBieSBgYG90aGVyYGAgKEMgaW1wbGVtZW50YXRpb24pLgorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVs ZC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVf ZmllbGQucHhkCitpbmRleCAxNzE4NTU0Y2MzYS4uZjI3Y2ZkZDZmZjEgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmllbGQucHhk CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVf ZmllbGQucHhkCitAQCAtNSwxNCArNSwxNCBAQCBjZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2Zp bml0ZV9maWVsZF9kZW5zZSAoU2tld1BvbHlub21pYWxfZmluaXRlX29yZGVyX2RlbnNlKQorICAg ICBjZGVmIGRpY3QgX3R5cGVzCisgICAgIGNkZWYgX2ZhY3Rvcml6YXRpb24KKyAKKy0gICAgY2Rl ZiBpbmxpbmUgX3JlZHVjZWRfbm9ybV9mYWN0b3JlZChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVm IGlubGluZSBfcmVkdWNlZF9ub3JtX2ZhY3RvcmVkKHNlbGYpCisgCisgICAgICMgRmluZGluZyBk aXZpc29ycworLSAgICBjZGVmIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9maWVsZF9kZW5zZSBfcmRp dmlzb3JfYyhQLCBOKSBub2V4Y2VwdAorKyAgICBjZGVmIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9m aWVsZF9kZW5zZSBfcmRpdmlzb3JfYyhQLCBOKQorIAorICAgICAjIEZpbmRpbmcgZmFjdG9yaXph dGlvbnMKKy0gICAgY2RlZiBfZmFjdG9yX2Moc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfZmFj dG9yX3VuaWZvcm1fYyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIF9mYWN0b3JfYyhzZWxmKQor KyAgICBjZGVmIF9mYWN0b3JfdW5pZm9ybV9jKHNlbGYpCisgCistY2RlZiBpbmxpbmUgU2tld1Bv bHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlIG11bF9vcChTa2V3UG9seW5vbWlhbF9maW5pdGVf ZmllbGRfZGVuc2UgUCwgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlIFEpIG5vZXhj ZXB0OgorK2NkZWYgaW5saW5lIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9maWVsZF9kZW5zZSBtdWxf b3AoU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlIFAsIFNrZXdQb2x5bm9taWFsX2Zp bml0ZV9maWVsZF9kZW5zZSBRKToKKyAgICAgcmV0dXJuIFEgKiBQCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX2ZpZWxkLnB5eCBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5w eXgKK2luZGV4IDFhMTc2Mjg4Mzk1Li5iOTUzOGQwNzI2MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5w eXgKK0BAIC00NCw3ICs0NCw3IEBAIGZyb20gc2FnZS5jb21iaW5hdC5xX2FuYWxvZ3VlcyBpbXBv cnQgcV9qb3JkYW4KKyAKKyAKKyBjZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9maWVs ZF9kZW5zZShTa2V3UG9seW5vbWlhbF9maW5pdGVfb3JkZXJfZGVuc2UpOgorLSAgICBjZGVmIGlu bGluZSBfcmVkdWNlZF9ub3JtX2ZhY3RvcmVkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlu bGluZSBfcmVkdWNlZF9ub3JtX2ZhY3RvcmVkKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHJlZHVjZWQgbm9ybSBvZiB0aGlzIHBvbHlub21pYWwgZmFjdG9yaXplZCBp biB0aGUgY2VudGVyLgorICAgICAgICAgIiIiCitAQCAtMjEzLDcgKzIxMyw3IEBAIGNkZWYgY2xh c3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNrZXdQb2x5bm9taWFsX2Zpbml0 ZV9vcmRlcl9kZW5zZSk6CisgICAgICMgRmluZGluZyBkaXZpc29ycworICAgICAjIC0tLS0tLS0t LS0tLS0tLS0KKyAKKy0gICAgY2RlZiBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmllbGRfZGVuc2Ug X3JkaXZpc29yX2Moc2VsZiwgTikgbm9leGNlcHQ6CisrICAgIGNkZWYgU2tld1BvbHlub21pYWxf ZmluaXRlX2ZpZWxkX2RlbnNlIF9yZGl2aXNvcl9jKHNlbGYsIE4pOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIGEgcmlnaHQgZGl2aXNvciBvZiB0aGlzIHNrZXcgcG9seW5vbWlhbCB3 aG9zZQorICAgICAgICAgcmVkdWNlZCBub3JtIGlzIGBOYC4KK0BAIC03NDgsNyArNzQ4LDcgQEAg Y2RlZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmllbGRfZGVuc2UoU2tld1BvbHlub21p YWxfZmluaXRlX29yZGVyX2RlbnNlKToKKyAgICAgIyBGaW5kaW5nIGZhY3Rvcml6YXRpb25zCisg ICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorLSAgICBjZGVmIF9mYWN0b3JfYyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZmFjdG9yX2Moc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBDb21wdXRlIGEgZmFjdG9yaXphdGlvbiBvZiBgYHNlbGZgYC4KKyAKK0BAIC04MTks NyArODE5LDcgQEAgY2RlZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmllbGRfZGVuc2Uo U2tld1BvbHlub21pYWxfZmluaXRlX29yZGVyX2RlbnNlKToKKyAgICAgICAgIGZhY3RvcnMucmV2 ZXJzZSgpCisgICAgICAgICByZXR1cm4gRmFjdG9yaXphdGlvbihmYWN0b3JzLCBzb3J0PUZhbHNl LCB1bml0PXVuaXQpCisgCistICAgIGNkZWYgX2ZhY3Rvcl91bmlmb3JtX2Moc2VsZikgbm9leGNl cHQ6CisrICAgIGNkZWYgX2ZhY3Rvcl91bmlmb3JtX2Moc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBDb21wdXRlIGEgdW5pZm9ybWx5IGRpc3RyaWJ1dGVkIGZhY3Rvcml6YXRpb24gb2Yg YGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3 X3BvbHlub21pYWxfZmluaXRlX29yZGVyLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv c2tld19wb2x5bm9taWFsX2Zpbml0ZV9vcmRlci5weGQKK2luZGV4IGJmYWY4ZDA0ZDE0Li40Mzg3 NzNhMzllZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5 bm9taWFsX2Zpbml0ZV9vcmRlci5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv c2tld19wb2x5bm9taWFsX2Zpbml0ZV9vcmRlci5weGQKK0BAIC01LDYgKzUsNiBAQCBjZGVmIGNs YXNzIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSAoU2tld1BvbHlub21pYWxfZ2Vu ZXJpY19kZW5zZSk6CisgICAgIGNkZWYgX2NoYXJwb2x5CisgICAgIGNkZWYgX29wdGJvdW5kCisg CistICAgIGNkZWYgX21hdHBoaXJfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9tYXRtdWxf YyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIF9tYXRwaGlyX2Moc2VsZikKKysgICAgY2RlZiBf bWF0bXVsX2Moc2VsZikKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3NrZXdfcG9seW5vbWlhbF9maW5pdGVfb3JkZXIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX29yZGVyLnB5eAoraW5kZXggNGViZTUwYzMwN2Iu LmZjZGE0NDIwMzc4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3 X3BvbHlub21pYWxfZmluaXRlX29yZGVyLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX29yZGVyLnB5eAorQEAgLTcwLDcgKzcwLDcgQEAg Y2RlZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9maW5pdGVfb3JkZXJfZGVuc2UoU2tld1BvbHlub21p YWxfZ2VuZXJpY19kZW5zZSk6CisgICAgICAgICBzZWxmLl9jaGFycG9seSA9IE5vbmUKKyAgICAg ICAgIHNlbGYuX29wdGJvdW5kID0gTm9uZQorIAorLSAgICBjZGVmIF9tYXRwaGlyX2Moc2VsZikg bm9leGNlcHQ6CisrICAgIGNkZWYgX21hdHBoaXJfYyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgbWF0cml4IG9mIHRoZSBtdWx0aXBsaWNhdGlvbiBieSBgWF5yYCBv bgorICAgICAgICAgdGhlIHF1b3RpZW50IGBLW1gsXHNpZ21hXSAvIEtbWCxcc2lnbWFdKnNlbGZg LgorQEAgLTEyMSw3ICsxMjEsNyBAQCBjZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9v cmRlcl9kZW5zZShTa2V3UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKToKKyAgICAgICAgICAgICBw aGlyLmFwcGVuZChsaW5lKQorICAgICAgICAgcmV0dXJuIG1hdHJpeChrLCBwaGlyKQorIAorLSAg ICBjZGVmIF9tYXRtdWxfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0bXVsX2Moc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1hdHJpeCBvZiB0aGUgbXVs dGlwbGljYXRpb24gYnkgYGBzZWxmYGAgb24KKyAgICAgICAgIGBLW1gsXHNpZ21hXWAgY29uc2lk ZXJlZCBhcyBhIGZyZWUgbW9kdWxlIG92ZXIgYEtbWF5yXWAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3dlaWwvd2VpbF9wb2x5bm9taWFscy5weXggYi9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL3dlaWwvd2VpbF9wb2x5bm9taWFscy5weXgKK2luZGV4IGQ1ZWJkMjkw NmFiLi42YTczZTI3NDhlNCAxMDA3NTUKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv d2VpbC93ZWlsX3BvbHlub21pYWxzLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC93ZWlsL3dlaWxfcG9seW5vbWlhbHMucHl4CitAQCAtMTc1LDcgKzE3NSw3IEBAIGNkZWYgY2xh c3MgZGZzX21hbmFnZXI6CisgICAgICAgICAgICAgY291bnQgKz0gc2VsZi5keV9kYXRhX2J1Zltp XS5ub2RlX2NvdW50CisgICAgICAgICByZXR1cm4gY291bnQKKyAKKy0gICAgY3BkZWYgb2JqZWN0 IGFkdmFuY2VfZXhoYXVzdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0IGFkdmFu Y2VfZXhoYXVzdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWR2YW5jZSB0aGUgdHJl ZSBleGhhdXN0aW9uLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmll c19tcG9seS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHl4CitpbmRl eCAyODQ2ZDU2M2E5Ny4uNzE0ZDkzOWMzMGIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w b3dlcl9zZXJpZXNfbXBvbHkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNf bXBvbHkucHl4CitAQCAtMTA2LDcgKzEwNiw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfbXBv bHkoUG93ZXJTZXJpZXMpOgorICAgICBkZWYgX21wb2x5KHNlbGYpOgorICAgICAgICAgcmV0dXJu IHNlbGYuX19mCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0X3IpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodF9yKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBwcm9kdWN0IG9mIHR3byBwb3dlciBzZXJpZXMuCisgICAgICAgICAiIiIKK0BA IC0xMzAsNyArMTMwLDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19tcG9seShQb3dlclNlcmll cyk6CisgICAgICAgICByZXR1cm4gUG93ZXJTZXJpZXNfbXBvbHkoc2VsZi5fcGFyZW50LCAtc2Vs Zi5fX2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9w cmVjLCBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0X20pOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzoKKyAgICAgICAgICIiIgorQEAgLTEzOCw3ICsxMzgsNyBAQCBjZGVm IGNsYXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAgIHJldHVybiBQ b3dlclNlcmllc19tcG9seShzZWxmLl9wYXJlbnQsIHNlbGYuX19mICsgcmlnaHQuX19mLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbW9uX3ByZWNfYyhyaWdodCks IGNoZWNrPVRydWUpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20pIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodF9tKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIGRpZmZlcmVuY2Ugb2YgdHdvIHBvd2VyIHNlcmllcy4KKyAKK0BAIC0xNDgsMTEg KzE0OCwxMSBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAg ICAgICAgIHJldHVybiBQb3dlclNlcmllc19tcG9seShzZWxmLl9wYXJlbnQsIHNlbGYuX19mIC0g cmlnaHQuX19mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbW9u X3ByZWNfYyhyaWdodCksIGNoZWNrPVRydWUpCisgCistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBF bGVtZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKToK KyAgICAgICAgIHJldHVybiBQb3dlclNlcmllc19tcG9seShzZWxmLl9wYXJlbnQsIHNlbGYuX19m Ll9ybXVsXyhjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wcmVj LCBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgcmV0 dXJuIFBvd2VyU2VyaWVzX21wb2x5KHNlbGYuX3BhcmVudCwgc2VsZi5fX2YuX2xtdWxfKGMpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByZWMsIGNoZWNrPUZhbHNl KQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19wYXJpLnB5eCBi L3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19wYXJpLnB5eAoraW5kZXggOWU2YTRkNWYzMTcu LjI0NzkyYzk0MTIzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3Bh cmkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcGFyaS5weXgKK0BAIC04 MSw3ICs4MSw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQgUGFyZW50Cisg ZnJvbSBzYWdlLnJpbmdzLmluZmluaXR5IGltcG9ydCBpbmZpbml0eQorIAorIAorLWNkZWYgUG93 ZXJTZXJpZXNfcGFyaSBjb25zdHJ1Y3RfZnJvbV9wYXJpKHBhcmVudCwgcGFyaV9nZW4gZykgbm9l eGNlcHQ6CisrY2RlZiBQb3dlclNlcmllc19wYXJpIGNvbnN0cnVjdF9mcm9tX3BhcmkocGFyZW50 LCBwYXJpX2dlbiBnKToKKyAgICAgciIiIgorICAgICBGYXN0IGNvbnN0cnVjdGlvbiBvZiBwb3dl ciBzZXJpZXMgZnJvbSBQQVJJIG9iamVjdHMgb2Ygc3VpdGFibGUKKyAgICAgdHlwZSAoc2VyaWVz LCBwb2x5bm9taWFscywgc2NhbGFycyBhbmQgcmF0aW9uYWwgZnVuY3Rpb25zKS4KK0BAIC01NTcs NyArNTU3LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19wYXJpKFBvd2VyU2VyaWVzKToKKyAg ICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50LmxhdXJlbnRfc2VyaWVzX3JpbmcoKShoKQor ICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdF9mcm9tX3Bhcmkoc2VsZi5fcGFyZW50LCBoKQorIAor LSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkaXRpb24gb2YgcG93ZXIg c2VyaWVzLgorIAorQEAgLTU3NCw3ICs1NzQsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX3Bh cmkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gY29uc3RydWN0 X2Zyb21fcGFyaShzZWxmLl9wYXJlbnQsIHNlbGYuZyArICg8UG93ZXJTZXJpZXNfcGFyaT5yaWdo dCkuZykKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0 aW9uIG9mIHBvd2VyIHNlcmllcy4KKyAKK0BAIC01ODgsNyArNTg4LDcgQEAgY2RlZiBjbGFzcyBQ b3dlclNlcmllc19wYXJpKFBvd2VyU2VyaWVzKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIGNvbnN0cnVjdF9mcm9tX3Bhcmkoc2VsZi5fcGFyZW50LCBzZWxmLmcgLSAoPFBvd2VyU2Vy aWVzX3Bhcmk+cmlnaHQpLmcpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBNdWx0aXBsaWNhdGlvbiBvZiBwb3dlciBzZXJpZXMuCisgCitAQCAtNjAxLDcgKzYwMSw3 IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfcGFyaShQb3dlclNlcmllcyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RfZnJvbV9wYXJpKHNlbGYuX3BhcmVudCwgc2Vs Zi5nICogKDxQb3dlclNlcmllc19wYXJpPnJpZ2h0KS5nKQorIAorLSAgICBjcGRlZiBfcm11bF8o c2VsZiwgRWxlbWVudCBjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1l bnQgYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJpZ2h0IG11bHRpcGxpY2F0aW9uIGJ5IGEg c2NhbGFyLgorIAorQEAgLTYxNSw3ICs2MTUsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX3Bh cmkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gY29uc3RydWN0 X2Zyb21fcGFyaShzZWxmLl9wYXJlbnQsIHNlbGYuZyAqIGMpCisgCistICAgIGNwZGVmIF9sbXVs XyhzZWxmLCBFbGVtZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxl bWVudCBjKToKKyAgICAgICAgICIiIgorICAgICAgICAgTGVmdCBtdWx0aXBsaWNhdGlvbiBieSBh IHNjYWxhci4KKyAKK0BAIC02MjksNyArNjI5LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19w YXJpKFBvd2VyU2VyaWVzKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGNvbnN0cnVj dF9mcm9tX3Bhcmkoc2VsZi5fcGFyZW50LCBjICogc2VsZi5nKQorIAorLSAgICBjcGRlZiBfZGl2 XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToK KyAgICAgICAgICIiIgorICAgICAgICAgRGl2aXNpb24gb2YgcG93ZXIgc2VyaWVzLgorIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19wb2x5LnB5eCBiL3NyYy9zYWdl L3JpbmdzL3Bvd2VyX3Nlcmllc19wb2x5LnB5eAoraW5kZXggNDVlMWIxMDVhYjEuLmUxYzQ1ZmY1 ZDUxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3BvbHkucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcG9seS5weXgKK0BAIC00OTAsNyArNDkw LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAg IHJldHVybiBQb3dlclNlcmllc19wb2x5KHNlbGYuX3BhcmVudCwgLXNlbGYuX19mLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJlYywgY2hlY2s9RmFs c2UpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0X20pIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWRkXyhzZWxmLCByaWdodF9tKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBM RVM6OgorIAorQEAgLTUyMiw3ICs1MjIsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX3BvbHko UG93ZXJTZXJpZXMpOgorICAgICAgICAgcmV0dXJuIFBvd2VyU2VyaWVzX3BvbHkoc2VsZi5fcGFy ZW50LCBzZWxmLl9fZiArIHJpZ2h0Ll9fZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuY29tbW9uX3ByZWNfYyhyaWdodCksIGNoZWNrPVRydWUpCisgCistICAgIGNwZGVm IF9zdWJfKHNlbGYsIHJpZ2h0X20pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBy aWdodF9tKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkaWZmZXJlbmNlIG9m IHR3byBwb3dlciBzZXJpZXMuCisgCitAQCAtNTM3LDcgKzUzNyw3IEBAIGNkZWYgY2xhc3MgUG93 ZXJTZXJpZXNfcG9seShQb3dlclNlcmllcyk6CisgICAgICAgICByZXR1cm4gUG93ZXJTZXJpZXNf cG9seShzZWxmLl9wYXJlbnQsIHNlbGYuX19mIC0gcmlnaHQuX19mLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5jb21tb25fcHJlY19jKHJpZ2h0KSwgY2hlY2s9VHJ1ZSkK KyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHRfcikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9tdWxfKHNlbGYsIHJpZ2h0X3IpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IHByb2R1Y3Qgb2YgdHdvIHBvd2VyIHNlcmllcy4KKyAKK0BAIC01NTMsNyArNTUzLDcgQEAgY2Rl ZiBjbGFzcyBQb3dlclNlcmllc19wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHByZWM9cHJlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNoZWNrPVRydWUpICAjIGNoZWNrLCBzaW5jZSB0cnVuY2F0aW9uIG1heSBiZSBuZWVkZWQK KyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0 aXBseSBgYHNlbGZgYCBvbiB0aGUgcmlnaHQgYnkgYSBzY2FsYXIuCisgCitAQCAtNTY2LDcgKzU2 Niw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfcG9seShQb3dlclNlcmllcyk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBQb3dlclNlcmllc19wb2x5KHNlbGYuX3BhcmVudCwgc2Vs Zi5fX2YgKiBjLCBzZWxmLl9wcmVjLCBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX2xtdWxf KHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVt ZW50IGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBgYHNlbGZgYCBvbiB0aGUg bGVmdCBieSBhIHNjYWxhci4KKyAKK0BAIC03NTAsNyArNzUwLDcgQEAgY2RlZiBjbGFzcyBQb3dl clNlcmllc19wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmV0dXJuIHNlbGYuX19mLnRydW5jYXRlKHByZWMpCisgCistICAgIGNkZWYgX2lucGxhY2VfdHJ1 bmNhdGUoc2VsZiwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5wbGFjZV90cnVu Y2F0ZShzZWxmLCBsb25nIHByZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBUcnVuY2F0ZSBg YHNlbGZgYCB0byBwcmVjaXNpb24gYGBwcmVjYGAgaW4gcGxhY2UuCisgCitAQCAtMTI1MSw3ICsx MjUxLDcgQEAgY2RlZiBjbGFzcyBCYXNlUmluZ0Zsb29yRGl2QWN0aW9uKEFjdGlvbik6CisgICAg ICIiIgorICAgICBUaGUgZmxvb3IgZGl2aXNpb24gYWN0aW9uIG9mIHRoZSBiYXNlIHJpbmcgb24g YSBmb3JtYWwgcG93ZXIgc2VyaWVzLgorICAgICAiIiIKKy0gICAgY3BkZWYgX2FjdF8oc2VsZiwg ZywgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIHgpOgorICAgICAgICAg ciIiIgorICAgICAgICAgTGV0IGBgZ2BgIGFjdCBvbiBgYHhgYCB1bmRlciBgYHNlbGZgYC4KKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB4 ZCBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCitpbmRleCBi OGMyODEwMzEzMS4uZTVjMDMxZWUxNDcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dl cl9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2Vy aWVzX3JpbmdfZWxlbWVudC5weGQKK0BAIC0zLDkgKzMsOSBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJl LmVsZW1lbnQgY2ltcG9ydCBBbGdlYnJhRWxlbWVudCwgUmluZ0VsZW1lbnQKKyBjZGVmIGNsYXNz IFBvd2VyU2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgY2RlZiBjaGFyIF9pc19nZW4KKyAg ICAgY2RlZiBfcHJlYworLSAgICBjZGVmIGNvbW1vbl9wcmVjX2Moc2VsZiwgUG93ZXJTZXJpZXMg b3RoZXIpIG5vZXhjZXB0CisrICAgIGNkZWYgY29tbW9uX3ByZWNfYyhzZWxmLCBQb3dlclNlcmll cyBvdGhlcikKKyAgICAgI19wcmVjKHNlbGYsIFJpbmdFbGVtZW50IHJpZ2h0X3IpCisgCisgICAg ICMgVU5TQUZFLCBvbmx5IGNhbGwgZnJvbSBhbiBpbnBsYWNlIG9wZXJhdG9yCisgICAgICMgbWF5 IHJldHVybiBhIG5ldyBlbGVtZW50IGlmIG5vdCBwb3NzaWJsZSB0byBtb2RpZnkgaW5wbGFjZQor LSAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgcHJlYykgbm9leGNlcHQKKysg ICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBsb25nIHByZWMpCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weXggYi9zcmMvc2FnZS9y aW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAoraW5kZXggZjY2ZTdiNmU5MDQuLjE1 MDVhNDlhOTk1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3Jpbmdf ZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1l bnQucHl4CitAQCAtMjU0LDcgKzI1NCw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXMoQWxnZWJy YUVsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1l bnRlZEVycm9yCisgCistICAgIGNwZGVmIGJhc2VfZXh0ZW5kKHNlbGYsIFIpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBiYXNlX2V4dGVuZChzZWxmLCBSKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGEgY29weSBvZiB0aGlzIHBvd2VyIHNlcmllcyBidXQgd2l0aCBjb2VmZmljaWVudHMg aW4gUi4KKyAKK0BAIC0zMTEsNyArMzExLDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdl YnJhRWxlbWVudCk6CisgICAgICAgICBTID0gc2VsZi5fcGFyZW50LmNoYW5nZV9yaW5nKFIpCisg ICAgICAgICByZXR1cm4gUyhzZWxmKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmln aHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwg aW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmlzb24gb2Ygc2VsZiBhbmQg YGByaWdodGBgLgorIAorQEAgLTgxMyw3ICs4MTMsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVz KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIHYgPSBbYVtpXSBmb3IgaSBpbiByYW5nZShtaW4o cHJlYywgbGVuKGEpKSldCisgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Ll9wb2x5X3Jpbmco KSh2KQorIAorLSAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgcHJlYykgbm9l eGNlcHQ6CisrICAgIGNkZWYgX2lucGxhY2VfdHJ1bmNhdGUoc2VsZiwgbG9uZyBwcmVjKToKKyAg ICAgICAgIHJldHVybiBzZWxmLnRydW5jYXRlKHByZWMpCisgCisgICAgIGRlZiBhZGRfYmlnb2go c2VsZiwgcHJlYyk6CitAQCAtOTE3LDcgKzkxNyw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXMo QWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLnByZWMoKQorICAgICAg ICAgcmV0dXJuIG1pbihzZWxmLnByZWMoKSwgZi5wcmVjKCkpCisgCistICAgIGNkZWYgY29tbW9u X3ByZWNfYyhzZWxmLCBQb3dlclNlcmllcyBmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBjb21tb25f cHJlY19jKHNlbGYsIFBvd2VyU2VyaWVzIGYpOgorICAgICAgICAgaWYgc2VsZi5fcHJlYyBpcyBp bmZpbml0eToKKyAgICAgICAgICAgICByZXR1cm4gZi5fcHJlYworICAgICAgICAgZWxpZiBmLl9w cmVjIGlzIGluZmluaXR5OgorQEAgLTEwNDgsNyArMTA0OCw3IEBAIGNkZWYgY2xhc3MgUG93ZXJT ZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgdltrLW5dID0geAor ICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudCh2LCBzZWxmLnByZWMoKS1uKQorIAorLSAgICBj cGRlZiBfZGl2XyhzZWxmLCBkZW5vbV9yKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2Vs ZiwgZGVub21fcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wdWlzZXV4X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4IGIv c3JjL3NhZ2UvcmluZ3MvcHVpc2V1eF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAoraW5kZXggM2Y1 MGZiNDVlMmUuLjM0ZjRlOTY2YWFkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcHVpc2V1 eF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcHVpc2V1eF9z ZXJpZXNfcmluZ19lbGVtZW50LnB5eAorQEAgLTM1NCw3ICszNTQsNyBAQCBjZGVmIGNsYXNzIFB1 aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgbiA9IGcgLyBuCisgICAgICAg ICByZXR1cm4gZywgbSwgbgorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodF9tKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgc3VtLgorIAorQEAgLTM3Niw3ICszNzYsNyBAQCBjZGVmIGNsYXNz IFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgbCA9IGwxICsgbDIKKyAg ICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgbCwgZykKKyAKKy0gICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgcmlnaHRfbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYs IHJpZ2h0X20pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Uu CisgCitAQCAtMzk4LDcgKzM5OCw3IEBAIGNkZWYgY2xhc3MgUHVpc2V1eFNlcmllcyhBbGdlYnJh RWxlbWVudCk6CisgICAgICAgICBsID0gbDEgLSBsMgorICAgICAgICAgcmV0dXJuIHR5cGUoc2Vs Zikoc2VsZi5fcGFyZW50LCBsLCBnKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodF9y KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHRfcik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdC4KKyAKK0BAIC00MjAsNyArNDIwLDcgQEAg Y2RlZiBjbGFzcyBQdWlzZXV4U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIGwgPSBs MSAqIGwyCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIGwsIGcpCisg CistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSByaWdodCBzY2FsYXIgbXVsdGlwbGljYXRpb24uCisgCitAQCAtNDMzLDcgKzQzMyw3IEBA IGNkZWYgY2xhc3MgUHVpc2V1eFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgc2VsZi5fbC5fcm11bF8o YyksIHNlbGYuX2UpCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBsZWZ0IHNjYWxhciBtdWx0aXBsaWNhdGlvbi4KKyAKK0BAIC00 NDYsNyArNDQ2LDcgQEAgY2RlZiBjbGFzcyBQdWlzZXV4U2VyaWVzKEFsZ2VicmFFbGVtZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBz ZWxmLl9sLl9sbXVsXyhjKSwgc2VsZi5fZSkKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmln aHRfcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0X3IpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50LgorIAorQEAgLTUwOCw3ICs1MDgs NyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAg ICAgIGUgPSBzZWxmLl9lICogaW50KGRlbm9tKQorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZiko c2VsZi5fcGFyZW50LCBsLCBlKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHRf ciwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0X3Is IGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wYXJpc29uIG9mIGBgc2VsZmBg IGFuZCBgYHJpZ2h0YGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmF0aW9uYWwu cHhkIGIvc3JjL3NhZ2UvcmluZ3MvcmF0aW9uYWwucHhkCitpbmRleCBmODBlYzIyZTlhOS4uZjQy Zjg2NTE1ZDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yYXRpb25hbC5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3JhdGlvbmFsLnB4ZAorQEAgLTMsMTcgKzMsMTcgQEAgZnJvbSBzYWdl LmxpYnMuZ21wLnR5cGVzIGNpbXBvcnQgbXBxX3QKKyBjaW1wb3J0IHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQKKyBjaW1wb3J0IHNhZ2UucmluZ3MuaW50ZWdlciBhcyBpbnRlZ2VyCisgCistY3BkZWYg cmF0aW9uYWxfcG93ZXJfcGFydHMoYSwgUmF0aW9uYWwgYiwgZmFjdG9yX2xpbWl0PT8pIG5vZXhj ZXB0CisrY3BkZWYgcmF0aW9uYWxfcG93ZXJfcGFydHMoYSwgUmF0aW9uYWwgYiwgZmFjdG9yX2xp bWl0PT8pCisgCisgY2RlZiBjbGFzcyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZp ZWxkRWxlbWVudCk6CisgICAgIGNkZWYgbXBxX3QgdmFsdWUKKyAKKy0gICAgY3BkZWYgX2FkZF8o c2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY2RlZiBf X3NldF92YWx1ZShzZWxmLCB4LCB1bnNpZ25lZCBpbnQgYmFzZSkgbm9leGNlcHQKKysgICAgY3Bk ZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorKyAg ICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikKKysgICAgY2RlZiBfX3NldF92YWx1ZShzZWxmLCB4 LCB1bnNpZ25lZCBpbnQgYmFzZSkKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX21wcShSYXRpb25h bCBzZWxmLCBtcHFfdCB2YWx1ZSkgbm9leGNlcHQKKy0gICAgY2RlZiBfbHNoaWZ0KHNlbGYsIGxv bmcgaW50IGV4cCkgbm9leGNlcHQKKy0gICAgY2RlZiBfcnNoaWZ0KHNlbGYsIGxvbmcgaW50IGV4 cCkgbm9leGNlcHQKKysgICAgY2RlZiBfbHNoaWZ0KHNlbGYsIGxvbmcgaW50IGV4cCkKKysgICAg Y2RlZiBfcnNoaWZ0KHNlbGYsIGxvbmcgaW50IGV4cCkKKyAKKy0gICAgY2RlZiBfdmFsX3VuaXQo c2VsZiwgaW50ZWdlci5JbnRlZ2VyIHApIG5vZXhjZXB0CisrICAgIGNkZWYgX3ZhbF91bml0KHNl bGYsIGludGVnZXIuSW50ZWdlciBwKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JhdGlv bmFsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JhdGlvbmFsLnB5eAoraW5kZXggNjIwOTEzODZlNWQu LmViZmI3NGM4OWE2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmF0aW9uYWwucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9yYXRpb25hbC5weXgKK0BAIC0xNDMsNyArMTQzLDcgQEAgY2Rl ZiBpbmxpbmUgdm9pZCBzZXRfZnJvbV9SYXRpb25hbChSYXRpb25hbCBzZWxmLCBSYXRpb25hbCBv dGhlcikgbm9leGNlcHQ6CisgY2RlZiBpbmxpbmUgdm9pZCBzZXRfZnJvbV9JbnRlZ2VyKFJhdGlv bmFsIHNlbGYsIGludGVnZXIuSW50ZWdlciBvdGhlcikgbm9leGNlcHQ6CisgICAgIG1wcV9zZXRf eihzZWxmLnZhbHVlLCBvdGhlci52YWx1ZSkKKyAKKy1jZGVmIG9iamVjdCBSYXRpb25hbF9tdWxf KFJhdGlvbmFsIGEsIFJhdGlvbmFsIGIpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IFJhdGlvbmFs X211bF8oUmF0aW9uYWwgYSwgUmF0aW9uYWwgYik6CisgICAgIGNkZWYgUmF0aW9uYWwgeAorICAg ICB4ID0gPFJhdGlvbmFsPiBSYXRpb25hbC5fX25ld19fKFJhdGlvbmFsKQorIAorQEAgLTE1Myw3 ICsxNTMsNyBAQCBjZGVmIG9iamVjdCBSYXRpb25hbF9tdWxfKFJhdGlvbmFsIGEsIFJhdGlvbmFs IGIpIG5vZXhjZXB0OgorIAorICAgICByZXR1cm4geAorIAorLWNkZWYgb2JqZWN0IFJhdGlvbmFs X2Rpdl8oUmF0aW9uYWwgYSwgUmF0aW9uYWwgYikgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgUmF0 aW9uYWxfZGl2XyhSYXRpb25hbCBhLCBSYXRpb25hbCBiKToKKyAgICAgY2RlZiBSYXRpb25hbCB4 CisgICAgIHggPSA8UmF0aW9uYWw+IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwpCisgCitAQCAt MTYzLDcgKzE2Myw3IEBAIGNkZWYgb2JqZWN0IFJhdGlvbmFsX2Rpdl8oUmF0aW9uYWwgYSwgUmF0 aW9uYWwgYikgbm9leGNlcHQ6CisgCisgICAgIHJldHVybiB4CisgCistY2RlZiBSYXRpb25hbF9h ZGRfKFJhdGlvbmFsIHNlbGYsIFJhdGlvbmFsIG90aGVyKSBub2V4Y2VwdDoKKytjZGVmIFJhdGlv bmFsX2FkZF8oUmF0aW9uYWwgc2VsZiwgUmF0aW9uYWwgb3RoZXIpOgorICAgICBjZGVmIFJhdGlv bmFsIHgKKyAgICAgeCA9IDxSYXRpb25hbD4gUmF0aW9uYWwuX19uZXdfXyhSYXRpb25hbCkKKyAg ICAgc2lnX29uKCkKK0BAIC0xNzEsNyArMTcxLDcgQEAgY2RlZiBSYXRpb25hbF9hZGRfKFJhdGlv bmFsIHNlbGYsIFJhdGlvbmFsIG90aGVyKSBub2V4Y2VwdDoKKyAgICAgc2lnX29mZigpCisgICAg IHJldHVybiB4CisgCistY2RlZiBSYXRpb25hbF9zdWJfKFJhdGlvbmFsIHNlbGYsIFJhdGlvbmFs IG90aGVyKSBub2V4Y2VwdDoKKytjZGVmIFJhdGlvbmFsX3N1Yl8oUmF0aW9uYWwgc2VsZiwgUmF0 aW9uYWwgb3RoZXIpOgorICAgICBjZGVmIFJhdGlvbmFsIHgKKyAgICAgeCA9IDxSYXRpb25hbD4g UmF0aW9uYWwuX19uZXdfXyhSYXRpb25hbCkKKyAKK0BAIC0xODQsMTQgKzE4NCwxNCBAQCBjZGVm IFJhdGlvbmFsX3N1Yl8oUmF0aW9uYWwgc2VsZiwgUmF0aW9uYWwgb3RoZXIpIG5vZXhjZXB0Ogor IGNkZWYgUGFyZW50IHRoZV9yYXRpb25hbF9yaW5nID0gc2FnZS5yaW5ncy5yYXRpb25hbF9maWVs ZC5RCisgCisgIyBtYWtlIHN1cmUgemVyby9vbmUgZWxlbWVudHMgYXJlIHNldAorLWNkZWYgc2V0 X3plcm9fb25lX2VsZW1lbnRzKCkgbm9leGNlcHQ6CisrY2RlZiBzZXRfemVyb19vbmVfZWxlbWVu dHMoKToKKyAgICAgZ2xvYmFsIHRoZV9yYXRpb25hbF9yaW5nCisgICAgIHRoZV9yYXRpb25hbF9y aW5nLl96ZXJvX2VsZW1lbnQgPSBSYXRpb25hbCgwKQorICAgICB0aGVfcmF0aW9uYWxfcmluZy5f b25lX2VsZW1lbnQgPSBSYXRpb25hbCgxKQorIAorIHNldF96ZXJvX29uZV9lbGVtZW50cygpCisg CistY3BkZWYgSW50ZWdlciBpbnRlZ2VyX3JhdGlvbmFsX3Bvd2VyKEludGVnZXIgYSwgUmF0aW9u YWwgYikgbm9leGNlcHQ6CisrY3BkZWYgSW50ZWdlciBpbnRlZ2VyX3JhdGlvbmFsX3Bvd2VyKElu dGVnZXIgYSwgUmF0aW9uYWwgYik6CisgICAgICIiIgorICAgICBDb21wdXRlIGBhXmJgIGFzIGFu IGludGVnZXIsIGlmIGl0IGlzIGludGVncmFsLCBvciByZXR1cm4gYGBOb25lYGAuCisgCitAQCAt MjczLDcgKzI3Myw3IEBAIGNwZGVmIEludGVnZXIgaW50ZWdlcl9yYXRpb25hbF9wb3dlcihJbnRl Z2VyIGEsIFJhdGlvbmFsIGIpIG5vZXhjZXB0OgorICAgICByZXR1cm4gegorIAorIAorLWNwZGVm IHJhdGlvbmFsX3Bvd2VyX3BhcnRzKGEsIFJhdGlvbmFsIGIsIGZhY3Rvcl9saW1pdD0xMCoqNSkg bm9leGNlcHQ6CisrY3BkZWYgcmF0aW9uYWxfcG93ZXJfcGFydHMoYSwgUmF0aW9uYWwgYiwgZmFj dG9yX2xpbWl0PTEwKio1KToKKyAgICAgIiIiCisgICAgIENvbXB1dGUgcmF0aW9uYWxzIG9yIGlu dGVnZXJzIGBjYCBhbmQgYGRgIHN1Y2ggdGhhdCBgYV5iID0gYypkXmJgCisgICAgIHdpdGggYGRg IHNtYWxsLiBUaGlzIGlzIHVzZWQgZm9yIHNpbXBsaWZ5aW5nIHJhZGljYWxzLgorQEAgLTU3Nyw3 ICs1NzcsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmll bGRFbGVtZW50KToKKyAKKyAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihmInVuYWJsZSB0byBjb252 ZXJ0IHJhdGlvbmFsIHtzZWxmfSB0byBhbiBpbnRlZ2VyIikKKyAKKy0gICAgY2RlZiBfX3NldF92 YWx1ZShzZWxmLCB4LCB1bnNpZ25lZCBpbnQgYmFzZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX19z ZXRfdmFsdWUoc2VsZiwgeCwgdW5zaWduZWQgaW50IGJhc2UpOgorICAgICAgICAgY2RlZiBpbnQg bgorICAgICAgICAgY2RlZiBSYXRpb25hbCB0ZW1wX3JhdGlvbmFsCisgICAgICAgICBjZGVmIGlu dGVnZXIuSW50ZWdlciBhLCBiCitAQCAtODMxLDcgKzgzMSw3IEBAIGNkZWYgY2xhc3MgUmF0aW9u YWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgbCA9IHNl bGYuY29udGludWVkX2ZyYWN0aW9uX2xpc3QoKQorICAgICAgICAgcmV0dXJuIENvbnRpbnVlZEZy YWN0aW9uX3BlcmlvZGljKGwpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwg aW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQg b3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wYXJlIHR3byByYXRpb25hbCBudW1iZXJz LgorIAorQEAgLTE4MTIsNyArMTgxMiw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1 Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorIAorICAgICAjIFRPRE8gLS0gY2hhbmdlIHRv IHVzZSBjcGRlZj8gIElmIHNvLCBtdXN0IGZpeAorICAgICAjIGNvZGUgaW4gcGFkaWNzLCBldGMu ICBEbyBzZWFyY2hfc3JjKCdfdmFsX3VuaXQnKS4KKy0gICAgY2RlZiBfdmFsX3VuaXQoUmF0aW9u YWwgc2VsZiwgaW50ZWdlci5JbnRlZ2VyIHApIG5vZXhjZXB0OgorKyAgICBjZGVmIF92YWxfdW5p dChSYXRpb25hbCBzZWxmLCBpbnRlZ2VyLkludGVnZXIgcCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFRoaXMgaXMgY2FsbGVkIGJ5IDptZXRoOmB2YWxfdW5pdCgpYC4KKyAKK0BAIC0yMzM2LDcg KzIzMzYsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmll bGRFbGVtZW50KToKKyAKKyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3AobGVm dCwgcmlnaHQsIG9wZXJhdG9yLmFkZCkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBgYHJpZ2h0YGAgcGx1cyBgYHNlbGZgYC4KKyAKK0BAIC0yMzg4LDcg KzIzODgsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmll bGRFbGVtZW50KToKKyAKKyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3AobGVm dCwgcmlnaHQsIG9wZXJhdG9yLnN1YikKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBgYHNlbGZgYCBtaW51cyBgYHJpZ2h0YGAuCisgCitAQCAtMjQwMiw3 ICsyNDAyLDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZp ZWxkRWxlbWVudCk6CisgICAgICAgICBtcHFfc3ViKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmF0 aW9uYWw+cmlnaHQpLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX25l Z18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBOZWdhdGUgYGBzZWxmYGAuCisgCitAQCAtMjQ0MSw3ICsyNDQxLDcgQEAgY2Rl ZiBjbGFzcyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6Cisg CisgICAgICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwuYmluX29wKGxlZnQsIHJpZ2h0LCBvcGVy YXRvci5tdWwpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gYGBzZWxmYGAgdGltZXMgYGByaWdodGBgLgorIAorQEAgLTI0OTgsNyArMjQ5OCw3IEBAIGNk ZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgor IAorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdodCwgb3Bl cmF0b3IudHJ1ZWRpdikKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBgYHNlbGZgYCBkaXZpZGVkIGJ5IGBgcmlnaHRgYC4KKyAKK0BAIC0yNTQyLDcgKzI1 NDIsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRF bGVtZW50KToKKyAgICAgICAgIG1wcV9pbnYoeC52YWx1ZSwgc2VsZi52YWx1ZSkKKyAgICAgICAg IHJldHVybiB4CisgCistICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSYWlz ZSBgYHNlbGZgYCB0byB0aGUgcmF0aW9uYWwgcG93ZXIgYGBvdGhlcmBgLgorIAorQEAgLTI2Mzcs NyArMjYzNyw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5G aWVsZEVsZW1lbnQpOgorICAgICAgICAgZnJvbSBzYWdlLnN5bWJvbGljLnJpbmcgaW1wb3J0IFNS CisgICAgICAgICByZXR1cm4gU1IoYykgKiBTUihkKS5wb3dlcihuLCBob2xkPVRydWUpCisgCist ICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcG93X2lu dChzZWxmLCBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmFpc2UgYGBzZWxmYGAgdG8gdGhl IGludGVnZXIgcG93ZXIgYGBuYGAuCisgCitAQCAtMjY1Nyw3ICsyNjU3LDcgQEAgY2RlZiBjbGFz cyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAg ICAjIGJlIHBhcnRpY3VsYXJseSBlZmZpY2llbnQgaGVyZS4KKyAgICAgICAgIHJldHVybiBzZWxm Ll9wb3dfKFJhdGlvbmFsKG4pKQorIAorLSAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG4p IG5vZXhjZXB0OgorKyAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG4pOgorICAgICAgICAg IiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtMzY5NCw3ICszNjk0LDcgQEAgY2RlZiBjbGFz cyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAg ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gYS5wcmltZV90b19TX3BhcnQoUykg PT0gMQorIAorLSAgICBjZGVmIF9sc2hpZnQoc2VsZiwgbG9uZyBpbnQgZXhwKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfbHNoaWZ0KHNlbGYsIGxvbmcgaW50IGV4cCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gYGBzZWxmICogMl5leHBgYC4KKyAgICAgICAgICIiIgorQEAgLTM3NDIs NyArMzc0Miw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5G aWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICByZXR1cm4gKDxSYXRpb25hbD54KS5fbHNo aWZ0KHkpCisgICAgICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwuYmluX29wKHgsIHksIG9wZXJh dG9yLmxzaGlmdCkKKyAKKy0gICAgY2RlZiBfcnNoaWZ0KHNlbGYsIGxvbmcgaW50IGV4cCkgbm9l eGNlcHQ6CisrICAgIGNkZWYgX3JzaGlmdChzZWxmLCBsb25nIGludCBleHApOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZiAvIDJeZXhwYGAuCisgICAgICAgICAiIiIKK0BA IC00MTMwLDcgKzQxMzAsNyBAQCBjZGVmIGNsYXNzIFpfdG9fUShNb3JwaGlzbSk6CisgICAgICAg ICBpbXBvcnQgc2FnZS5jYXRlZ29yaWVzLmhvbXNldAorICAgICAgICAgTW9ycGhpc20uX19pbml0 X18oc2VsZiwgc2FnZS5jYXRlZ29yaWVzLmhvbXNldC5Ib20oaW50ZWdlcl9yaW5nLlpaLCByYXRp b25hbF9maWVsZC5RUSkpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBpbWFnZSBvZiB0aGUgbW9ycGhpc20gb24gYGB4YGAuCisg CitAQCAtNDE5Nyw3ICs0MTk3LDcgQEAgY2RlZiBjbGFzcyBRX3RvX1ooTWFwKToKKyAgICAgICAg IHNhZ2U6IHR5cGUoWlouY29udmVydF9tYXBfZnJvbShRUSkpCisgICAgICAgICA8Y2xhc3MgJ3Nh Z2UucmluZ3MucmF0aW9uYWwuUV90b19aJz4KKyAgICAgIiIiCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxm LCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQSBmYXN0IG1hcCBmcm9tIHRoZSByYXRpb25h bHMgdG8gdGhlIGludGVnZXJzLgorIAorQEAgLTQyNTIsNyArNDI1Miw3IEBAIGNkZWYgY2xhc3Mg aW50X3RvX1EoTW9ycGhpc20pOgorICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgc2Fn ZS5jYXRlZ29yaWVzLmhvbXNldC5Ib20oCisgICAgICAgICAgICAgU2V0X1B5dGhvblR5cGUobG9u ZyksIHJhdGlvbmFsX2ZpZWxkLlFRKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgYSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIGEpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGltYWdlIG9mIHRoZSBtb3JwaGlzbSBvbiBg YGFgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2FyYi5weGQgYi9zcmMv c2FnZS9yaW5ncy9yZWFsX2FyYi5weGQKK2luZGV4IDBhM2E2OGQxMDU3Li45Zjg1NjhlZjZhZiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfYXJiLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9hcmIucHhkCitAQCAtOSwxMiArOSwxMiBAQCBjZGVmIGludCBhcmJfdG9fbXBm aShtcGZpX3QgdGFyZ2V0LCBhcmJfdCBzb3VyY2UsIGNvbnN0IGxvbmcgcHJlY2lzaW9uKSBleGNl cHQgLQorIAorIGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgorICAgICBjZGVmIGFy Yl90IHZhbHVlCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBj cGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgUmVhbEludGVydmFs RmllbGRFbGVtZW50IF9yZWFsX21wZmlfKHNlbGYsIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzIHBh cmVudCkgbm9leGNlcHQKKy0gICAgY3BkZWYgUmVhbEJhbGwgcHNpKHNlbGYpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhl cikKKysgICAgY3BkZWYgUmVhbEludGVydmFsRmllbGRFbGVtZW50IF9yZWFsX21wZmlfKHNlbGYs IFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzIHBhcmVudCkKKysgICAgY3BkZWYgUmVhbEJhbGwgcHNp KHNlbGYpCisgCistICAgIGNkZWYgaW5saW5lIFJlYWxCYWxsIF9uZXcoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNkZWYgaW5saW5lIFJlYWxCYWxsIF9uZXcoc2VsZik6CisgICAgICAgICBjZGVmIFJl YWxCYWxsIHJlcyA9IFJlYWxCYWxsLl9fbmV3X18oUmVhbEJhbGwpCisgICAgICAgICByZXMuX3Bh cmVudCA9IHNlbGYuX3BhcmVudAorICAgICAgICAgcmV0dXJuIHJlcworZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3JlYWxfYXJiLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfYXJiLnB5eAor aW5kZXggZTFiYzBjMDhmMTYuLmExODMzMmE1YWJhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvcmVhbF9hcmIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2FyYi5weXgKK0BAIC0x NTQ5LDcgKzE1NDksNyBAQCBjZGVmIGNsYXNzIFJlYWxCYWxsKFJpbmdFbGVtZW50KToKKyAKKyAg ICAgIyBDb252ZXJzaW9ucworIAorLSAgICBjcGRlZiBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQg X3JlYWxfbXBmaV8oc2VsZiwgUmVhbEludGVydmFsRmllbGRfY2xhc3MgcGFyZW50KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgUmVhbEludGVydmFsRmllbGRFbGVtZW50IF9yZWFsX21wZmlfKHNlbGYs IFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzIHBhcmVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBhIDptb2Q6YHJlYWwgaW50ZXJ2YWwgPHNhZ2UucmluZ3MucmVhbF9tcGZpPmAgY29u dGFpbmluZyB0aGlzIGJhbGwuCisgCitAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgY2RlZiBjbGFzcyBS ZWFsQmFsbChSaW5nRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBhcmJf aXNfZXhhY3Qoc2VsZi52YWx1ZSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0 LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGlu dCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgYGBsZWZ0YGAgYW5kIGBgcmln aHRgYC4KKyAKK0BAIC0yNzg5LDcgKzI3ODksNyBAQCBjZGVmIGNsYXNzIFJlYWxCYWxsKFJpbmdF bGVtZW50KToKKyAgICAgICAgIGlmIF9kb19zaWcocHJlYyhzZWxmKSk6IHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBzdW0gb2YgdHdvIGJhbGxzLCByb3VuZGVkIHRvIHRoZSBhbWJpZW50IGZp ZWxkJ3MgcHJlY2lzaW9uLgorIAorQEAgLTI4MDcsNyArMjgwNyw3IEBAIGNkZWYgY2xhc3MgUmVh bEJhbGwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgaWYgX2RvX3NpZyhwcmVjKHNlbGYpKTogc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90 aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdHdvIGJhbGxzLCByb3VuZGVk IHRvIHRoZSBhbWJpZW50IGZpZWxkJ3MKKyAgICAgICAgIHByZWNpc2lvbi4KK0BAIC0yODI2LDcg KzI4MjYsNyBAQCBjZGVmIGNsYXNzIFJlYWxCYWxsKFJpbmdFbGVtZW50KToKKyAgICAgICAgIGlm IF9kb19zaWcocHJlYyhzZWxmKSk6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAor LSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxf KHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0 IG9mIHR3byBiYWxscywgcm91bmRlZCB0byB0aGUgYW1iaWVudCBmaWVsZCdzCisgICAgICAgICBw cmVjaXNpb24uCitAQCAtMjg0NSw3ICsyODQ1LDcgQEAgY2RlZiBjbGFzcyBSZWFsQmFsbChSaW5n RWxlbWVudCk6CisgICAgICAgICBpZiBfZG9fc2lnKHByZWMoc2VsZikpOiBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgdHdvIGJhbGxzLCByb3VuZGVkIHRvIHRoZSBhbWJp ZW50IGZpZWxkJ3MKKyAgICAgICAgIHByZWNpc2lvbi4KK0BAIC0zODQyLDcgKzM4NDIsNyBAQCBj ZGVmIGNsYXNzIFJlYWxCYWxsKFJpbmdFbGVtZW50KToKKyAgICAgICAgIGlmIF9kb19zaWcocHJl YyhzZWxmKSk6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRl ZiBSZWFsQmFsbCBwc2koc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFJlYWxCYWxsIHBzaShz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgZGlnYW1tYSBmdW5jdGlv biB3aXRoIGFyZ3VtZW50IHNlbGYuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVh bF9kb3VibGUucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGUucHhkCitpbmRleCBlMmM2 NTdmYWVjMi4uMDZkNDEyMWVmMjYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2Rv dWJsZS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfZG91YmxlLnB4ZAorQEAgLTMsMTMg KzMsMTMgQEAgZnJvbSBzYWdlLnJpbmdzLnJpbmcgY2ltcG9ydCBGaWVsZAorIGNpbXBvcnQgc2Fn ZS5yaW5ncy5hYmMKKyAKKyBjZGVmIGNsYXNzIFJlYWxEb3VibGVGaWVsZF9jbGFzcyhzYWdlLnJp bmdzLmFiYy5SZWFsRG91YmxlRmllbGQpOgorLSAgICBjZGVmIF9uZXdfYyhzZWxmLCBkb3VibGUg dmFsdWUpIG5vZXhjZXB0CisrICAgIGNkZWYgX25ld19jKHNlbGYsIGRvdWJsZSB2YWx1ZSkKKyAK KyBjZGVmIGNsYXNzIFJlYWxEb3VibGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgIGNkZWYg ZG91YmxlIF92YWx1ZQorLSAgICBjZGVmIF9uZXdfYyhzZWxmLCBkb3VibGUgdmFsdWUpIG5vZXhj ZXB0CistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgUmVhbERvdWJsZUVsZW1lbnQg YWJzKFJlYWxEb3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgX25ld19jKHNl bGYsIGRvdWJsZSB2YWx1ZSkKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNw ZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBSZWFsRG91YmxlRWxlbWVudCBhYnMo UmVhbERvdWJsZUVsZW1lbnQgc2VsZikKKyAKKy1jZGVmIGRvdWJsZV9yZXByKGRvdWJsZSB4KSBu b2V4Y2VwdAorK2NkZWYgZG91YmxlX3JlcHIoZG91YmxlIHgpCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcmVhbF9kb3VibGUucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGUucHl4 CitpbmRleCAzM2MzZWI2MDZhZi4uNWNiNjE5Nzc0ZDEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9y aW5ncy9yZWFsX2RvdWJsZS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfZG91YmxlLnB5 eAorQEAgLTI3OCw3ICsyNzgsNyBAQCBjZGVmIGNsYXNzIFJlYWxEb3VibGVGaWVsZF9jbGFzcyhz YWdlLnJpbmdzLmFiYy5SZWFsRG91YmxlRmllbGQpOgorICAgICAgICAgZnJvbSBzYWdlLnJpbmdz LmNvbXBsZXhfZG91YmxlIGltcG9ydCBDREYKKyAgICAgICAgIHJldHVybiBDREYKKyAKKy0gICAg Y3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9j b2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBDYW5vbmlj YWwgY29lcmNpb24gb2YgYGBTYGAgdG8gdGhlIHJlYWwgZG91YmxlIGZpZWxkLgorIAorQEAgLTQ3 Myw3ICs0NzMsNyBAQCBjZGVmIGNsYXNzIFJlYWxEb3VibGVGaWVsZF9jbGFzcyhzYWdlLnJpbmdz LmFiYy5SZWFsRG91YmxlRmllbGQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gSW50 ZWdlcigwKQorIAorLSAgICBjZGVmIF9uZXdfYyhzZWxmLCBkb3VibGUgdmFsdWUpIG5vZXhjZXB0 OgorKyAgICBjZGVmIF9uZXdfYyhzZWxmLCBkb3VibGUgdmFsdWUpOgorICAgICAgICAgY2RlZiBS ZWFsRG91YmxlRWxlbWVudCB4CisgICAgICAgICB4ID0gUFlfTkVXKFJlYWxEb3VibGVFbGVtZW50 KQorICAgICAgICAgeC5fdmFsdWUgPSB2YWx1ZQorQEAgLTc0MSw3ICs3NDEsNyBAQCBjZGVmIGNs YXNzIFJlYWxEb3VibGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBSZWFsRG91YmxlRWxlbWVudCwgKHNlbGYuX3ZhbHVlLCApCisgCistICAgIGNk ZWYgX25ld19jKHNlbGYsIGRvdWJsZSB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX25ld19j KHNlbGYsIGRvdWJsZSB2YWx1ZSk6CisgICAgICAgICBjZGVmIFJlYWxEb3VibGVFbGVtZW50IHgK KyAgICAgICAgIHggPSBQWV9ORVcoUmVhbERvdWJsZUVsZW1lbnQpCisgICAgICAgICB4Ll92YWx1 ZSA9IHZhbHVlCitAQCAtMTMxMCw3ICsxMzEwLDcgQEAgY2RlZiBjbGFzcyBSZWFsRG91YmxlRWxl bWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgeC5fdmFsdWUgPSAxLjAgLyBzZWxmLl92YWx1 ZQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEFkZCB0d28gcmVhbCBudW1iZXJzIHdpdGggdGhlIHNhbWUgcGFyZW50LgorIAorQEAg LTEzMjMsNyArMTMyMyw3IEBAIGNkZWYgY2xhc3MgUmVhbERvdWJsZUVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgIHguX3ZhbHVlID0gc2VsZi5fdmFsdWUgKyAoPFJlYWxEb3VibGVFbGVt ZW50PnJpZ2h0KS5fdmFsdWUKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9zdWJf KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCB0d28gcmVhbCBudW1iZXJzIHdpdGggdGhl IHNhbWUgcGFyZW50LgorIAorQEAgLTEzMzYsNyArMTMzNiw3IEBAIGNkZWYgY2xhc3MgUmVhbERv dWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIHguX3ZhbHVlID0gc2VsZi5fdmFs dWUgLSAoPFJlYWxEb3VibGVFbGVtZW50PnJpZ2h0KS5fdmFsdWUKKyAgICAgICAgIHJldHVybiB4 CisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSB0d28g cmVhbCBudW1iZXJzIHdpdGggdGhlIHNhbWUgcGFyZW50LgorIAorQEAgLTEzNDksNyArMTM0OSw3 IEBAIGNkZWYgY2xhc3MgUmVhbERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAg IHguX3ZhbHVlID0gc2VsZi5fdmFsdWUgKiAoPFJlYWxEb3VibGVFbGVtZW50PnJpZ2h0KS5fdmFs dWUKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBEaXZpZGUgYGBzZWxmYGAgYnkgYGByaWdodGBgLgorIAorQEAgLTE0MTAsNyArMTQx MCw3IEBAIGNkZWYgY2xhc3MgUmVhbERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKC1zZWxmLl92YWx1ZSkK KyAKKy0gICAgY3BkZWYgUmVhbERvdWJsZUVsZW1lbnQgYWJzKFJlYWxEb3VibGVFbGVtZW50IHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBSZWFsRG91YmxlRWxlbWVudCBhYnMoUmVhbERvdWJs ZUVsZW1lbnQgc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIGFic29s dXRlIHZhbHVlIG9mIGBgc2VsZmBgLgorIAorQEAgLTE3NDEsNyArMTc0MSw3IEBAIGNkZWYgY2xh c3MgUmVhbERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIGJvb2wobGliYy5tYXRoLmlzaW5mKHNlbGYuX3ZhbHVlKSkKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJp Y2ggY29tcGFyaXNvbiBvZiBgYGxlZnRgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTE5OTksNyAr MTk5OSw3IEBAIGNkZWYgY2xhc3MgVG9SREYoTW9ycGhpc20pOgorICAgICAgICAgICAgIFIgPSBT ZXRfUHl0aG9uVHlwZShSKQorICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgSG9tKFIs IFJERikpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAg ICAgU2VuZCBgYHhgYCB0byB0aGUgaW1hZ2UgdW5kZXIgdGhpcyBtYXAuCisgCitAQCAtMjE4Niw3 ICsyMTg2LDcgQEAgZWxzZToKKyAgICAgIyBGcm9tIGhlcmUgb24sIGNhbGxpbmcgUFlfTkVXKFJl YWxEb3VibGVFbGVtZW50KSBhY3R1YWxseSBjcmVhdGVzIGFuIGluc3RhbmNlIG9mIFJlYWxEb3Vi bGVFbGVtZW50X2dzbAorIAorIAorLWNkZWYgZG91YmxlX3JlcHIoZG91YmxlIHgpIG5vZXhjZXB0 OgorK2NkZWYgZG91YmxlX3JlcHIoZG91YmxlIHgpOgorICAgICAiIiIKKyAgICAgQ29udmVydCBh IGRvdWJsZSB0byBhIHN0cmluZyB3aXRoIG1heGltdW0gcHJlY2lzaW9uLgorICAgICAiIiIKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2RvdWJsZV9lbGVtZW50X2dzbC5weGQgYi9z cmMvc2FnZS9yaW5ncy9yZWFsX2RvdWJsZV9lbGVtZW50X2dzbC5weGQKK2luZGV4IDE3NjJjNWY5 NDRiLi44MDI1MTc0ZDE1YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfZG91Ymxl X2VsZW1lbnRfZ3NsLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGVfZWxlbWVu dF9nc2wucHhkCitAQCAtMiw2ICsyLDYgQEAgZnJvbSBzYWdlLnJpbmdzLnJlYWxfZG91YmxlIGNp bXBvcnQgUmVhbERvdWJsZUVsZW1lbnQKKyAKKyAKKyBjZGVmIGNsYXNzIFJlYWxEb3VibGVFbGVt ZW50X2dzbChSZWFsRG91YmxlRWxlbWVudCk6CistICAgIGNkZWYgX19wb3dfZG91YmxlKHNlbGYs IGRvdWJsZSBleHBvbmVudCwgZG91YmxlIHNpZ24pIG5vZXhjZXB0CistICAgIGNwZGVmIF9wb3df KHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjZGVmIF9sb2dfYmFzZShzZWxmLCBkb3VibGUg bG9nX29mX2Jhc2UpIG5vZXhjZXB0CisrICAgIGNkZWYgX19wb3dfZG91YmxlKHNlbGYsIGRvdWJs ZSBleHBvbmVudCwgZG91YmxlIHNpZ24pCisrICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKQor KyAgICBjZGVmIF9sb2dfYmFzZShzZWxmLCBkb3VibGUgbG9nX29mX2Jhc2UpCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGVfZWxlbWVudF9nc2wucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9kb3VibGVfZWxlbWVudF9nc2wucHl4CitpbmRleCAzN2Q5NWUyYzZkZi4uOWQ1 ZjJkOWE5M2IgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2RvdWJsZV9lbGVtZW50 X2dzbC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfZG91YmxlX2VsZW1lbnRfZ3NsLnB5 eAorQEAgLTU3LDcgKzU3LDcgQEAgY2RlZiBjbGFzcyBSZWFsRG91YmxlRWxlbWVudF9nc2woUmVh bERvdWJsZUVsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs ZiAqKiAoZmxvYXQoMSkvbikKKyAKKy0gICAgY2RlZiBfX3Bvd19kb3VibGUoc2VsZiwgZG91Ymxl IGV4cG9uZW50LCBkb3VibGUgc2lnbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX19wb3dfZG91Ymxl KHNlbGYsIGRvdWJsZSBleHBvbmVudCwgZG91YmxlIHNpZ24pOgorICAgICAgICAgIiIiCisgICAg ICAgICBJZiBgYHNpZ24gPT0gMWBgIG9yIGBgc2VsZiA+PSAwYGAsIHJldHVybiBgYHNlbGYgXiBl eHBvbmVudGBgLgorICAgICAgICAgSWYgYGBzaWduID09IC0xYGAgYW5kIGBgc2VsZiA8IDBgYCwg cmV0dXJuIGBgLSBhYnMoc2VsZikgXiBleHBvbmVudGBgLgorQEAgLTg0LDcgKzg0LDcgQEAgY2Rl ZiBjbGFzcyBSZWFsRG91YmxlRWxlbWVudF9nc2woUmVhbERvdWJsZUVsZW1lbnQpOgorICAgICAg ICAgICAgIHYgPSAtdgorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNpZ24gKiBnc2xfc2Zf ZXhwKGdzbF9zZl9sb2codikgKiBleHBvbmVudCkpCisgCistICAgIGNwZGVmIF9wb3dfKHNlbGYs IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgcmFpc2VkIHRvIHRoZSByZWFsIGRvdWJs ZSBwb3dlciBgYG90aGVyYGAuCisgCitAQCAtMTE3LDcgKzExNyw3IEBAIGNkZWYgY2xhc3MgUmVh bERvdWJsZUVsZW1lbnRfZ3NsKFJlYWxEb3VibGVFbGVtZW50KToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmV0dXJuIHNlbGYuX19wb3dfZG91YmxlKCg8UmVhbERvdWJsZUVsZW1lbnQ+b3RoZXIp Ll92YWx1ZSwgMSkKKyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gYGBzZWxmYGAgcmFpc2VkIHRvIHRoZSBpbnRlZ2VyIHBvd2VyIGBgbmBgLgorIAorQEAgLTE3 NCw3ICsxNzQsNyBAQCBjZGVmIGNsYXNzIFJlYWxEb3VibGVFbGVtZW50X2dzbChSZWFsRG91Ymxl RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9fcG93X2RvdWJs ZShuLCAtMS4wIGlmIChuICYgMSkgZWxzZSAxLjApCisgCistICAgIGNkZWYgX3Bvd19sb25nKHNl bGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3Bvd19sb25nKHNlbGYsIGxvbmcgbik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgYGBzZWxmYGAgcmFpc2VkIHRvIHRoZSBw b3dlciBgYG5gYC4KKyAKK0BAIC0yMTQsNyArMjE0LDcgQEAgY2RlZiBjbGFzcyBSZWFsRG91Ymxl RWxlbWVudF9nc2woUmVhbERvdWJsZUVsZW1lbnQpOgorICAgICAgICAgIyBvZiBuIHRvIGRvdWJs ZSBtaWdodCBjaGFuZ2UgYW4gb2RkIG51bWJlciB0byBhbiBldmVuIG51bWJlci4KKyAgICAgICAg IHJldHVybiBzZWxmLl9fcG93X2RvdWJsZSg8ZG91YmxlPm4sIC0xLjAgaWYgKG4gJiAxKSBlbHNl IDEuMCkKKyAKKy0gICAgY2RlZiBfbG9nX2Jhc2Uoc2VsZiwgZG91YmxlIGxvZ19vZl9iYXNlKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfbG9nX2Jhc2Uoc2VsZiwgZG91YmxlIGxvZ19vZl9iYXNlKToK KyAgICAgICAgIGlmIHNlbGYuX3ZhbHVlID09IDA6CisgICAgICAgICAgICAgZnJvbSBzYWdlLnJp bmdzLnJlYWxfZG91YmxlIGltcG9ydCBSREYKKyAgICAgICAgICAgICByZXR1cm4gUkRGKC0xKS9S REYoMCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2ludGVydmFsX2Fic29sdXRl LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfaW50ZXJ2YWxfYWJzb2x1dGUucHl4CitpbmRleCA1 YjVlNjYzYTVkYy4uZDE5MDMyOTg3MmUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yZWFs X2ludGVydmFsX2Fic29sdXRlLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9pbnRlcnZh bF9hYnNvbHV0ZS5weXgKK0BAIC0yMyw3ICsyMyw3IEBAIGZyb20gc2FnZS5yaW5ncy5yYXRpb25h bF9maWVsZCBpbXBvcnQgUVEKKyBjZGVmIEludGVnZXIgemVybyA9IEludGVnZXIoMCkKKyBjZGVm IEludGVnZXIgb25lID0gSW50ZWdlcigxKQorIAorLWNwZGVmIGlubGluZSBJbnRlZ2VyIHNoaWZ0 X2Zsb29yKEludGVnZXIgeCwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrY3BkZWYgaW5saW5lIElu dGVnZXIgc2hpZnRfZmxvb3IoSW50ZWdlciB4LCBsb25nIHNoaWZ0KToKKyAgICAgciIiIgorICAg ICBSZXR1cm4gYHggLyAyXnNgIHdoZXJlIGBzYCBpcyB0aGUgdmFsdWUgb2YgYGBzaGlmdGBgLCBy b3VuZGVkIHRvd2FyZHMKKyAgICAgYC1caW5mdHlgLiBGb3IgaW50ZXJuYWwgdXNlLgorQEAgLTQw LDcgKzQwLDcgQEAgY3BkZWYgaW5saW5lIEludGVnZXIgc2hpZnRfZmxvb3IoSW50ZWdlciB4LCBs b25nIHNoaWZ0KSBub2V4Y2VwdDoKKyAgICAgbXB6X2ZkaXZfcV8yZXhwKHoudmFsdWUsIHgudmFs dWUsIHNoaWZ0KQorICAgICByZXR1cm4gegorIAorLWNwZGVmIGlubGluZSBJbnRlZ2VyIHNoaWZ0 X2NlaWwoSW50ZWdlciB4LCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgSW50 ZWdlciBzaGlmdF9jZWlsKEludGVnZXIgeCwgbG9uZyBzaGlmdCk6CisgICAgIHIiIiIKKyAgICAg UmV0dXJuIGB4IC8gMl5zYCB3aGVyZSBgc2AgaXMgdGhlIHZhbHVlIG9mIGBgc2hpZnRgYCwgcm91 bmRlZCB0b3dhcmRzCisgICAgIGArXGluZnR5YC4gRm9yIGludGVybmFsIHVzZS4KK0BAIC0xNjEs NyArMTYxLDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxBYnNvbHV0ZUZpZWxkX2NsYXNzKEZp ZWxkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIFJlYWxJbnRlcnZhbEFic29sdXRl RWxlbWVudChzZWxmLCB4KQorIAorLSAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBS KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEFueXRoaW5nIHRoYXQgY29lcmNlcyBpbnRvIHRoZSByZWFscyBj b2VyY2VzIGludG8gdGhpcyByaW5nLgorIAorQEAgLTIyMyw3ICsyMjMsNyBAQCBjZGVmIGNsYXNz IFJlYWxJbnRlcnZhbEFic29sdXRlRmllbGRfY2xhc3MoRmllbGQpOgorICAgICAgICAgcmV0dXJu IHNlbGYuX2Fic3ByZWMKKyAKKyAKKy1jZGVmIGlubGluZSBzaGlmdF9sZWZ0KHZhbHVlLCBzaGlm dCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgc2hpZnRfbGVmdCh2YWx1ZSwgc2hpZnQpOgorICAg ICAiIiIKKyAgICAgVXRpbGl0eSBmdW5jdGlvbiBmb3Igb3BlcmFuZHMgdGhhdCBkb24ndCBzdXBw b3J0IHRoZSBgYDw8YGAgb3BlcmF0b3IuCisgICAgICIiIgorQEAgLTMxOSw3ICszMTksNyBAQCBj ZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gUmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50LCAo c2VsZi5fcGFyZW50LCBzZWxmLmVuZHBvaW50cygpKQorIAorLSAgICBjZGVmIF9uZXdfYyhzZWxm LCBJbnRlZ2VyIF9tYW50aXNzYSwgSW50ZWdlciBfZGlhbWV0ZXIpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9uZXdfYyhzZWxmLCBJbnRlZ2VyIF9tYW50aXNzYSwgSW50ZWdlciBfZGlhbWV0ZXIpOgor ICAgICAgICAgY2RlZiBSZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQgeAorICAgICAgICAgeCA9 IDxSZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQ+UmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50 Ll9fbmV3X18oUmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KQorICAgICAgICAgeC5fcGFyZW50 ID0gc2VsZi5fcGFyZW50CitAQCAtMzI3LDcgKzMyNyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVy dmFsQWJzb2x1dGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICB4Ll9kaWFtZXRlciA9 IF9kaWFtZXRlcgorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgbG93ZXIoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGxvd2VyKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGxvd2VyIGJvdW5kIG9mIGBgc2VsZmBgLgorIAorQEAgLTM0MCw3ICszNDAs NyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gUVEoc2VsZi5fbWFudGlzc2EpID4+ICg8 UmVhbEludGVydmFsQWJzb2x1dGVGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9hYnNwcmVjCisg CistICAgIGNwZGVmIG1pZHBvaW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBtaWRwb2lu dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtaWRwb2ludCBvZiBg YHNlbGZgYC4KKyAKK0BAIC0zNTcsNyArMzU3LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxB YnNvbHV0ZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIChzZWxmLl9tYW50aXNzYSArIHNlbGYuX2RpYW1ldGVyIC8gMikgPj4gKDxSZWFsSW50ZXJ2 YWxBYnNvbHV0ZUZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX2Fic3ByZWMKKyAKKy0gICAgY3Bk ZWYgdXBwZXIoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHVwcGVyKHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHVwcGVyIGJvdW5kIG9mIGBgc2VsZmBgLgorIAor QEAgLTM3MCw3ICszNzAsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVu dChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gUVEoc2VsZi5f bWFudGlzc2EgKyBzZWxmLl9kaWFtZXRlcikgPj4gKDxSZWFsSW50ZXJ2YWxBYnNvbHV0ZUZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX2Fic3ByZWMKKyAKKy0gICAgY3BkZWYgYWJzb2x1dGVfZGlh bWV0ZXIoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFic29sdXRlX2RpYW1ldGVyKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpYW1ldGVyIGBgc2VsZmBgLgor IAorQEAgLTM5MCw3ICszOTAsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxl bWVudChGaWVsZEVsZW1lbnQpOgorIAorICAgICBkaWFtZXRlciA9IGFic29sdXRlX2RpYW1ldGVy CisgCistICAgIGNwZGVmIGVuZHBvaW50cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZW5k cG9pbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxlZnQgYW5k IHJpZ2h0IGVuZHBvaW50cyBvZiBgYHNlbGZgYCwgYXMgYSB0dXBsZS4KKyAKK0BAIC02MTIsNyAr NjEyLDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuYWJzKCkKKyAKKy0gICAg Y3BkZWYgYWJzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhYnMoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgYGBzZWxmYGAuCisg CitAQCAtNjM4LDcgKzYzOCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsQWJzb2x1dGVFbGVt ZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBz ZWxmLl9uZXdfYyh6ZXJvLCBtYXgoLXNlbGYuX21hbnRpc3NhLCBzZWxmLl9tYW50aXNzYSArIHNl bGYuX2RpYW1ldGVyKSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX290aGVyKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX290aGVyKToKKyAgICAgICAgICIiIgorICAgICAg ICAgVEVTVFM6OgorIAorQEAgLTY1Niw3ICs2NTYsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZh bEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgY2RlZiBSZWFsSW50ZXJ2 YWxBYnNvbHV0ZUVsZW1lbnQgb3RoZXIgPSA8UmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50Pl9v dGhlcgorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX21hbnRpc3NhICsgb3RoZXIu X21hbnRpc3NhLCBzZWxmLl9kaWFtZXRlciArIG90aGVyLl9kaWFtZXRlcikKKyAKKy0gICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgX290aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwg X290aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTY3Niw3ICs2 NzYsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1l bnQpOgorICAgICAgICAgY2RlZiBSZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQgb3RoZXIgPSA8 UmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50Pl9vdGhlcgorICAgICAgICAgcmV0dXJuIHNlbGYu X25ld19jKHNlbGYuX21hbnRpc3NhIC0gb3RoZXIuX21hbnRpc3NhIC0gb3RoZXIuX2RpYW1ldGVy LCBzZWxmLl9kaWFtZXRlciArIG90aGVyLl9kaWFtZXRlcikKKyAKKy0gICAgY3BkZWYgX211bF8o c2VsZiwgX290aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgX290aGVyKToK KyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTczMSw3ICs3MzEsNyBAQCBj ZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAg ICAgICAgICAgIHJlcyA9IC1yZXMKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYg X2FjdGVkX3Vwb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgYGBBYnNwcmVjICogcmVscHJlYyAtPiBhYnNwcmVjYGAgd29ya3MgYmV0 dGVyIHRoYW4gY29lcmNpbmcgYm90aAorICAgICAgICAgb3BlcmFuZHMgdG8gYWJzb2x1dGUgcHJl Y2lzaW9uIGZpcnN0LgorQEAgLTgzNiw3ICs4MzYsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZh bEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHJlcyA9IC1yZXMK KyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgX290aGVyKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgX290aGVyKToKKyAgICAgICAgICIiIgor ICAgICAgICAgVEVTVFM6OgorIAorQEAgLTkyMCw3ICs5MjAsNyBAQCBjZGVmIGNsYXNzIFJlYWxJ bnRlcnZhbEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5zaGlmdCgtbikKKyAKKy0gICAgY2RlZiBzaGlmdChzZWxmLCBsb25n IG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIHNoaWZ0KHNlbGYsIGxvbmcgbik6CisgICAgICAgICBp ZiBuID49IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX21hbnRpc3Nh IDw8IG4sIHNlbGYuX2RpYW1ldGVyIDw8IG4pCisgICAgICAgICBlbHNlOgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3JlYWxfbGF6eS5weGQgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2xhenku cHhkCitpbmRleCA1NjE5ZTQ5MmU5ZS4uNjBhNjU4MGE1NTAgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9yZWFsX2xhenkucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2xhenkucHhk CitAQCAtMiwxNSArMiwxNSBAQCBmcm9tIHNhZ2UucmluZ3MucmluZyBjaW1wb3J0IEZpZWxkCisg ZnJvbSBzYWdlLnN0cnVjdHVyZS5lbGVtZW50IGNpbXBvcnQgUmluZ0VsZW1lbnQsIE1vZHVsZUVs ZW1lbnQsIEVsZW1lbnQsIEZpZWxkRWxlbWVudAorIAorIGNkZWYgY2xhc3MgTGF6eUZpZWxkKEZp ZWxkKToKKy0gICAgY3BkZWYgaW50ZXJ2YWxfZmllbGQoc2VsZiwgcHJlYz0qKSBub2V4Y2VwdAor KyAgICBjcGRlZiBpbnRlcnZhbF9maWVsZChzZWxmLCBwcmVjPSopCisgCisgY2RlZiBjbGFzcyBM YXp5RmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90 aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0g ICAgY2RlZiBMYXp5RmllbGRFbGVtZW50IF9uZXdfd3JhcHBlcihzZWxmLCB2YWx1ZSkgbm9leGNl cHQKKy0gICAgY2RlZiBMYXp5RmllbGRFbGVtZW50IF9uZXdfYmlub3Aoc2VsZiwgTGF6eUZpZWxk RWxlbWVudCBsZWZ0LCBMYXp5RmllbGRFbGVtZW50IHJpZ2h0LCBvcCkgbm9leGNlcHQKKy0gICAg Y2RlZiBMYXp5RmllbGRFbGVtZW50IF9uZXdfdW5vcChzZWxmLCBMYXp5RmllbGRFbGVtZW50IGFy Zywgb3ApIG5vZXhjZXB0CistICAgIGNwZGVmIGV2YWwoc2VsZiwgUikgbm9leGNlcHQKKysgICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQor KyAgICBjZGVmIExhenlGaWVsZEVsZW1lbnQgX25ld193cmFwcGVyKHNlbGYsIHZhbHVlKQorKyAg ICBjZGVmIExhenlGaWVsZEVsZW1lbnQgX25ld19iaW5vcChzZWxmLCBMYXp5RmllbGRFbGVtZW50 IGxlZnQsIExhenlGaWVsZEVsZW1lbnQgcmlnaHQsIG9wKQorKyAgICBjZGVmIExhenlGaWVsZEVs ZW1lbnQgX25ld191bm9wKHNlbGYsIExhenlGaWVsZEVsZW1lbnQgYXJnLCBvcCkKKysgICAgY3Bk ZWYgZXZhbChzZWxmLCBSKQorICAgICBjcGRlZiBpbnQgZGVwdGgoc2VsZikgbm9leGNlcHQKKyAK KyBjZGVmIGNsYXNzIExhenlXcmFwcGVyKExhenlGaWVsZEVsZW1lbnQpOgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3JlYWxfbGF6eS5weXggYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2xhenku cHl4CitpbmRleCBlYTZjN2IyNjRmYi4uMWJhMzk0NzQxZmEgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9yZWFsX2xhenkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2xhenkucHl4 CitAQCAtNjMsNyArNjMsNyBAQCBjZGVmIGxhdGVfaW1wb3J0KCk6CisgCisgY2RlZiBfUVF4ID0g Tm9uZQorIAorLWNkZWYgUVF4KCkgbm9leGNlcHQ6CisrY2RlZiBRUXgoKToKKyAgICAgZ2xvYmFs IF9RUXgKKyAgICAgaWYgX1FReCBpcyBOb25lOgorICAgICAgICAgX1FReCA9IFFRWyd4J10KK0BA IC0xMzQsNyArMTM0LDcgQEAgY2RlZiBjbGFzcyBMYXp5RmllbGQoRmllbGQpOgorICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorIAorLSAgICBj cGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Nv ZXJjZV9tYXBfZnJvbV8oc2VsZiwgUik6CisgICAgICAgICByIiIiCisgICAgICAgICBUaGUgb25s eSB0aGluZ3MgdGhhdCBjb2VyY2UgaW50byB0aGlzIHJpbmcgYXJlIGV4YWN0IHJpbmdzIHRoYXQK KyAgICAgICAgIGVtYmVkIGludG8gYFxSUmAgb3IgYFxDQ2AgKGRlcGVuZGluZyBvbiB3aGV0aGVy IHRoaXMgZmllbGQKK0BAIC0yMDYsNyArMjA2LDcgQEAgY2RlZiBjbGFzcyBMYXp5RmllbGQoRmll bGQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gQ0xGCisgCistICAgIGNwZGVmIGlu dGVydmFsX2ZpZWxkKHNlbGYsIHByZWM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGludGVy dmFsX2ZpZWxkKHNlbGYsIHByZWM9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFic3Ry YWN0IG1ldGhvZCB0byBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJ2YWwgZmllbGQuCisg CitAQCAtNTQxLDcgKzU0MSw3IEBAIGNkZWYgaW50IGdldF9uZXdfcHJlYyhSLCBpbnQgZGVwdGgp IGV4Y2VwdCAtMToKKyAKKyBjZGVmIGNsYXNzIExhenlGaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50 KToKKyAKKy0gICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfYWRkXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBgYGxlZnRg YCB3aXRoIGBgcmlnaHRgYC4KKyAKK0BAIC01NTcsNyArNTU3LDcgQEAgY2RlZiBjbGFzcyBMYXp5 RmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg ICAgIHJldHVybiBsZWZ0Ll9uZXdfYmlub3AobGVmdCwgcmlnaHQsIGFkZCkKKyAKKy0gICAgY3Bk ZWYgX3N1Yl8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhsZWZ0LCBy aWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IGBgcmlnaHRgYCBmcm9tIGBg bGVmdGBgLgorIAorQEAgLTU3Myw3ICs1NzMsNyBAQCBjZGVmIGNsYXNzIExhenlGaWVsZEVsZW1l bnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgcmV0dXJu IGxlZnQuX25ld19iaW5vcChsZWZ0LCByaWdodCwgc3ViKQorIAorLSAgICBjcGRlZiBfbXVsXyhs ZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgYGBsZWZ0YGAgd2l0aCBgYHJpZ2h0YGAuCisg CitAQCAtNTg5LDcgKzU4OSw3IEBAIGNkZWYgY2xhc3MgTGF6eUZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICByZXR1cm4gbGVmdC5fbmV3 X2Jpbm9wKGxlZnQsIHJpZ2h0LCBtdWwpCisgCistICAgIGNwZGVmIF9kaXZfKGxlZnQsIHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIi CisgICAgICAgICBEaXZpZGUgYGBsZWZ0YGAgYnkgYGByaWdodGBgLgorIAorQEAgLTY1Myw3ICs2 NTMsNyBAQCBjZGVmIGNsYXNzIExhenlGaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld191bm9wKHNlbGYsIGludikKKyAKKy0g ICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIElmIHRoaW5ncyBhcmUgYmVpbmcgd3JhcHBlZCwgdHJpZXMgdG8gY29tcGFyZSB2YWx1ZXMu IFRoYXQgZmFpbGluZywgaXQKKyAgICAgICAgIHRyaWVzIHRvIGNvbXBhcmUgaW50ZXJ2YWxzLCB3 aGljaCBtYXkgcmV0dXJuIGEgZmFsc2UgbmVnYXRpdmUuCitAQCAtNzA3LDEzICs3MDcsMTMgQEAg Y2RlZiBjbGFzcyBMYXp5RmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBoYXNoKGNvbXBsZXgoc2VsZikpCisgCistICAgIGNkZWYgTGF6eUZp ZWxkRWxlbWVudCBfbmV3X3dyYXBwZXIoc2VsZiwgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjZGVm IExhenlGaWVsZEVsZW1lbnQgX25ld193cmFwcGVyKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIGNk ZWYgTGF6eVdyYXBwZXIgZSA9IDxMYXp5V3JhcHBlcj5MYXp5V3JhcHBlci5fX25ld19fKExhenlX cmFwcGVyKQorICAgICAgICAgZS5fcGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICBlLl92 YWx1ZSA9IHZhbHVlCisgICAgICAgICByZXR1cm4gZQorIAorLSAgICBjZGVmIExhenlGaWVsZEVs ZW1lbnQgX25ld19iaW5vcChzZWxmLCBMYXp5RmllbGRFbGVtZW50IGxlZnQsIExhenlGaWVsZEVs ZW1lbnQgcmlnaHQsIG9wKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMYXp5RmllbGRFbGVtZW50IF9u ZXdfYmlub3Aoc2VsZiwgTGF6eUZpZWxkRWxlbWVudCBsZWZ0LCBMYXp5RmllbGRFbGVtZW50IHJp Z2h0LCBvcCk6CisgICAgICAgICBjZGVmIExhenlCaW5vcCBlID0gPExhenlCaW5vcD5MYXp5Qmlu b3AuX19uZXdfXyhMYXp5Qmlub3ApCisgICAgICAgICBlLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQK KyAgICAgICAgIGUuX2xlZnQgPSBsZWZ0CitAQCAtNzIxLDcgKzcyMSw3IEBAIGNkZWYgY2xhc3Mg TGF6eUZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgZS5fb3AgPSBvcAorICAg ICAgICAgcmV0dXJuIGUKKyAKKy0gICAgY2RlZiBMYXp5RmllbGRFbGVtZW50IF9uZXdfdW5vcChz ZWxmLCBMYXp5RmllbGRFbGVtZW50IGFyZywgb3ApIG5vZXhjZXB0OgorKyAgICBjZGVmIExhenlG aWVsZEVsZW1lbnQgX25ld191bm9wKHNlbGYsIExhenlGaWVsZEVsZW1lbnQgYXJnLCBvcCk6Cisg ICAgICAgICBjZGVmIExhenlVbm9wIGUgPSA8TGF6eVVub3A+TGF6eVVub3AuX19uZXdfXyhMYXp5 VW5vcCkKKyAgICAgICAgIGUuX3BhcmVudCA9IHNlbGYuX3BhcmVudAorICAgICAgICAgZS5fb3Ag PSBvcAorQEAgLTgyNCw3ICs4MjQsNyBAQCBjZGVmIGNsYXNzIExhenlGaWVsZEVsZW1lbnQoRmll bGRFbGVtZW50KToKKyAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgcmV0 dXJuIGNvbXBsZXgoc2VsZi5ldmFsKENvbXBsZXhGaWVsZCg1MykpKQorIAorLSAgICBjcGRlZiBl dmFsKHNlbGYsIFIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBldmFsKHNlbGYsIFIpOgorICAgICAg ICAgIiIiCisgICAgICAgICBBYnN0cmFjdCBtZXRob2QgZm9yIGNvbnZlcnRpbmcgYGBzZWxmYGAg aW50byBhbiBlbGVtZW50IG9mIGBgUmBgLgorIAorQEAgLTEwMTIsNyArMTAxMiw3IEBAIGNkZWYg Y2xhc3MgTGF6eVdyYXBwZXIoTGF6eUZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBoYXNoKHNlbGYuX3ZhbHVlKQorIAorLSAgICBjcGRlZiBldmFsKHNlbGYsIFIp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBldmFsKHNlbGYsIFIpOgorICAgICAgICAgIiIiCisgICAg ICAgICBDb252ZXJ0IGBgc2VsZmBgIGludG8gYW4gZWxlbWVudCBvZiBgYFJgYC4KKyAKK0BAIC0x MTEwLDcgKzExMTAsNyBAQCBjZGVmIGNsYXNzIExhenlCaW5vcChMYXp5RmllbGRFbGVtZW50KToK KyAgICAgICAgIGNkZWYgaW50IHJpZ2h0ID0gc2VsZi5fcmlnaHQuZGVwdGgoKQorICAgICAgICAg cmV0dXJuIDEgKyAobGVmdCBpZiBsZWZ0ID4gcmlnaHQgZWxzZSByaWdodCkKKyAKKy0gICAgY3Bk ZWYgZXZhbChzZWxmLCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZXZhbChzZWxmLCBSKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ29udmVydCB0aGUgb3BlcmFuZHMgdG8gZWxlbWVudHMgb2Yg YGBSYGAsIHRoZW4gcGVyZm9ybSB0aGUgb3BlcmF0aW9uCisgICAgICAgICBvbiB0aGVtLgorQEAg LTEyNDYsNyArMTI0Niw3IEBAIGNkZWYgY2xhc3MgTGF6eVVub3AoTGF6eUZpZWxkRWxlbWVudCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAxICsgc2VsZi5fYXJnLmRlcHRoKCkKKyAK Ky0gICAgY3BkZWYgZXZhbChzZWxmLCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZXZhbChzZWxm LCBSKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBgYHNlbGZgYCBpbnRvIGFuIGVs ZW1lbnQgb2YgYGBSYGAuCisgCitAQCAtMTMyNSw3ICsxMzI1LDcgQEAgY2RlZiBjbGFzcyBMYXp5 TmFtZWRVbm9wKExhenlVbm9wKToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImV4dHJh IGFyZ3MgbXVzdCBiZSBhIHR1cGxlIikKKyAgICAgICAgIHNlbGYuX2V4dHJhX2FyZ3MgPSBleHRy YV9hcmdzCisgCistICAgIGNwZGVmIGV2YWwoc2VsZiwgUikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGV2YWwoc2VsZiwgUik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgYGBzZWxmYGAg aW50byBhbiBlbGVtZW50IG9mIGBgUmBgLgorIAorQEAgLTE0NjgsNyArMTQ2OCw3IEBAIGNkZWYg Y2xhc3MgTGF6eUNvbnN0YW50KExhenlGaWVsZEVsZW1lbnQpOgorICAgICAgICAgc2VsZi5fbmFt ZSA9IG5hbWUKKyAgICAgICAgIHNlbGYuX2V4dHJhX2FyZ3MgPSBleHRyYV9hcmdzCisgCistICAg IGNwZGVmIGV2YWwoc2VsZiwgUikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGV2YWwoc2VsZiwgUik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgYGBzZWxmYGAgaW50byBhbiBlbGVtZW50 IG9mIGBgUmBgLgorIAorQEAgLTE2MjYsNyArMTYyNiw3IEBAIGNkZWYgY2xhc3MgTGF6eUFsZ2Vi cmFpYyhMYXp5RmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBhcHByb3ggPSAoQ0MgaWYgcHJl YyA9PSAwIGVsc2UgQ29tcGxleEZpZWxkKHByZWMpKShhcHByb3gpCisgICAgICAgICBzZWxmLl9y b290X2FwcHJveCA9IGFwcHJveAorIAorLSAgICBjcGRlZiBldmFsKHNlbGYsIFIpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBldmFsKHNlbGYsIFIpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252 ZXJ0IGBgc2VsZmBgIGludG8gYW4gZWxlbWVudCBvZiBgYFJgYC4KKyAKK0BAIC0xNzMzLDcgKzE3 MzMsNyBAQCBjZGVmIGNsYXNzIExhenlXcmFwcGVyTW9ycGhpc20oTW9ycGhpc20pOgorICAgICAg ICAgZnJvbSBzYWdlLmNhdGVnb3JpZXMuaG9tc2V0IGltcG9ydCBIb20KKyAgICAgICAgIE1vcnBo aXNtLl9faW5pdF9fKHNlbGYsIEhvbShkb21haW4sIGNvZG9tYWluKSkKKyAKKy0gICAgY3BkZWYg RWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3Jl YWxfbXBmaS5weGQKK2luZGV4IGY5ZmM3YTE5NjljLi5mMTA3ZGJkZDg5YSAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxf bXBmaS5weGQKK0BAIC0zMiw3ICszMiw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRf Y2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICBjZGVmIFJlYWxG aWVsZF9jbGFzcyBfX3VwcGVyX2ZpZWxkCisgICAgIGNkZWYgb2JqZWN0IF9tdWx0aXBsaWNhdGl2 ZV9vcmRlcgorIAorLSAgICBjZGVmIGlubGluZSBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgX25l dyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgUmVhbEludGVydmFsRmllbGRFbGVt ZW50IF9uZXcoc2VsZik6CisgICAgICAgICAiIiJSZXR1cm4gYSBuZXcgcmVhbCBpbnRlcnZhbCB3 aXRoIHBhcmVudCBgYHNlbGZgYC4iIiIKKyAgICAgICAgIHQgPSA8dHlwZT5zZWxmLmVsZW1lbnRf Y2xhc3MKKyAgICAgICAgIHJldHVybiA8UmVhbEludGVydmFsRmllbGRFbGVtZW50Pih0Ll9fbmV3 X18odCwgc2VsZikpCitAQCAtNDEsOSArNDEsOSBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZp ZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyBjZGVmIGNsYXNz IFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgIGNkZWYgbXBmaV90 IHZhbHVlCisgCistICAgIGNkZWYgaW5saW5lIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCBfbmV3 KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1l bnQgX25ldyhzZWxmKToKKyAgICAgICAgICIiIlJldHVybiBhIG5ldyByZWFsIGludGVydmFsIHdp dGggc2FtZSBwYXJlbnQgYXMgYGBzZWxmYGAuIiIiCisgICAgICAgICByZXR1cm4gKDxSZWFsSW50 ZXJ2YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9uZXcoKQorLSAgICBjZGVmIFJlYWxJbnRl cnZhbEZpZWxkRWxlbWVudCBhYnMoUmVhbEludGVydmFsRmllbGRFbGVtZW50IHNlbGYpIG5vZXhj ZXB0CistICAgIGNkZWYgUmF0aW9uYWwgX3NpbXBsZXN0X3JhdGlvbmFsX2hlbHBlcihzZWxmKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfc3RyX3F1ZXN0aW9uX3N0eWxlKHNlbGYsIGludCBiYXNlLCBp bnQgZXJyb3JfZGlnaXRzLCBlLCBiaW50IHByZWZlcl9zY2kpIG5vZXhjZXB0CisrICAgIGNkZWYg UmVhbEludGVydmFsRmllbGRFbGVtZW50IGFicyhSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgc2Vs ZikKKysgICAgY2RlZiBSYXRpb25hbCBfc2ltcGxlc3RfcmF0aW9uYWxfaGVscGVyKHNlbGYpCisr ICAgIGNwZGVmIF9zdHJfcXVlc3Rpb25fc3R5bGUoc2VsZiwgaW50IGJhc2UsIGludCBlcnJvcl9k aWdpdHMsIGUsIGJpbnQgcHJlZmVyX3NjaSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9y ZWFsX21wZmkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB5eAoraW5kZXggNjkxNDNj MjQzZjMuLmExMzk5MWM4MmZlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZp LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB5eAorQEAgLTMwNSw3ICszMDUs NyBAQCBwcmludGluZ19lcnJvcl9kaWdpdHMgPSAwCisgIyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg CisgY2RlZiBkaWN0IFJlYWxJbnRlcnZhbEZpZWxkX2NhY2hlID0ge30KKy1jcGRlZiBSZWFsSW50 ZXJ2YWxGaWVsZF9jbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZChwcmVjPTUzLCBzY2lfbm90PUZhbHNl KSBub2V4Y2VwdDoKKytjcGRlZiBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyBSZWFsSW50ZXJ2YWxG aWVsZChwcmVjPTUzLCBzY2lfbm90PUZhbHNlKToKKyAgICAgciIiIgorICAgICBDb25zdHJ1Y3Qg YSA6Y2xhc3M6YFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzYCwgd2l0aCBjYWNoaW5nLgorIAorQEAg LTc0OSw3ICs3NDksNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2Uu cmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeydzY2lfbm90Jzogc2VsZi5zY2llbnRpZmljX25vdGF0aW9uKCksICd0eXBlJzog J0ludGVydmFsJ30pLAorICAgICAgICAgICAgICAgIHNhZ2UucmluZ3MucmF0aW9uYWxfZmllbGQu UVEpCisgCistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQ2Fub25pY2FsIGNvZXJjaW9uIGZyb20gYGBTYGAgdG8gdGhpcyByZWFsIGludGVydmFs IGZpZWxkLgorIAorQEAgLTE2OTQsNyArMTY5NCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFs RmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmFpc2UgVmFsdWVFcnJvcignSWxsZWdhbCBpbnRlcnZhbCBwcmludGluZyBzdHlsZSAlcycgJSBw cmludGluZ19zdHlsZSkKKyAKKy0gICAgY3BkZWYgX3N0cl9xdWVzdGlvbl9zdHlsZShzZWxmLCBp bnQgYmFzZSwgaW50IGVycm9yX2RpZ2l0cywgZSwgYmludCBwcmVmZXJfc2NpKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3N0cl9xdWVzdGlvbl9zdHlsZShzZWxmLCBpbnQgYmFzZSwgaW50IGVycm9y X2RpZ2l0cywgZSwgYmludCBwcmVmZXJfc2NpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENv bXB1dGUgdGhlICJxdWVzdGlvbi1zdHlsZSBwcmludCByZXByZXNlbnRhdGlvbiIgb2YgdGhpcyB2 YWx1ZSwKKyAgICAgICAgIHdpdGggdGhlIGdpdmVuIGJhc2UgYW5kIGVycm9yX2RpZ2l0cy4gU2Vl IHRoZSBkb2N1bWVudGF0aW9uIGZvcgorQEAgLTI2ODUsNyArMjY4NSw3IEBAIGNkZWYgY2xhc3Mg UmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmV0dXJuIEVsZW1lbnQuX19ydHJ1ZWRpdl9fKHJpZ2h0LCBsZWZ0KQorIAor LSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRf KHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIHR3byByZWFsIGludGVy dmFscyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BAIC0yNzI5LDcgKzI3MjksNyBAQCBjZGVm IGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICBt cGZpX2ludih4LnZhbHVlLCBzZWxmLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAg Y3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxm LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byByZWFsIGludGVy dmFscyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BAIC0yNzQ3LDcgKzI3NDcsNyBAQCBjZGVm IGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICBt cGZpX3N1Yih4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudD5y aWdodCkudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxm LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgdHdvIHJlYWwgaW50ZXJ2YWxzIHdpdGggdGhlIHNh bWUgcGFyZW50LgorIAorQEAgLTI3ODQsNyArMjc4NCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVy dmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgIHJldHVybiB4CisgCisgCist ICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgYGBzZWxmYGAgYnkg YGByaWdodGBgLCB3aGVyZSBib3RoIGFyZSByZWFsIGludGVydmFscyB3aXRoIHRoZQorICAgICAg ICAgc2FtZSBwYXJlbnQuCitAQCAtMjgxMSw3ICsyODExLDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50 ZXJ2YWxGaWVsZEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgKDxSZWFs SW50ZXJ2YWxGaWVsZEVsZW1lbnQ+cmlnaHQpLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAK Ky0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFkZGl0aXZlICJpbnZlcnNlIiBv ZiB0aGlzIGludGVydmFsLiAoVGVjaG5pY2FsbHksCisgICAgICAgICBub24tcHJlY2lzZSBpbnRl cnZhbHMgZG9uJ3QgaGF2ZSBhZGRpdGl2ZSBpbnZlcnNlcy4pCitAQCAtMjg1MCw3ICsyODUwLDcg QEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5hYnMoKQorIAorLSAgICBjZGVmIFJlYWxJ bnRlcnZhbEZpZWxkRWxlbWVudCBhYnMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgUmVhbElu dGVydmFsRmllbGRFbGVtZW50IGFicyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0zNjU1LDcgKzM2NTUs NyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudChSaW5nRWxlbWVudCk6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd19vcGVuLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWdoX29wZW4pCisgCistICAgIGNk ZWYgUmF0aW9uYWwgX3NpbXBsZXN0X3JhdGlvbmFsX2hlbHBlcihzZWxmKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBSYXRpb25hbCBfc2ltcGxlc3RfcmF0aW9uYWxfaGVscGVyKHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBzaW1wbGVzdCByYXRpb25hbCBpbiBhbiBpbnRl cnZhbCB3aGljaCBpcyBlaXRoZXIgZXF1YWwKKyAgICAgICAgIHRvIG9yIHNsaWdodGx5IGxhcmdl ciB0aGFuIGBgc2VsZmBgLiBXZSBhc3N1bWUgdGhhdCBib3RoIGVuZHBvaW50cyBvZgorQEAgLTM2 OTUsNyArMzY5NSw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIG1wZmlfbmFuX3Aoc2VsZi52 YWx1ZSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEltcGxlbWVudCBjb21wYXJpc29ucyBiZXR3ZWVuIGludGVydmFscy4K KyAKK0BAIC01MTg4LDcgKzUxODgsNyBAQCBkZWYgX3NpbXBsZXN0X3JhdGlvbmFsX3Rlc3RfaGVs cGVyKGxvdywgaGlnaCwgbG93X29wZW49RmFsc2UsIGhpZ2hfb3Blbj1GYWxzZSk6CisgICAgICIi IgorICAgICByZXR1cm4gX3NpbXBsZXN0X3JhdGlvbmFsX2V4YWN0KGxvdywgaGlnaCwgbG93X29w ZW4sIGhpZ2hfb3BlbikKKyAKKy1jZGVmIF9zaW1wbGVzdF9yYXRpb25hbF9leGFjdChSYXRpb25h bCBsb3csIFJhdGlvbmFsIGhpZ2gsIGludCBsb3dfb3BlbiwgaW50IGhpZ2hfb3Blbikgbm9leGNl cHQ6CisrY2RlZiBfc2ltcGxlc3RfcmF0aW9uYWxfZXhhY3QoUmF0aW9uYWwgbG93LCBSYXRpb25h bCBoaWdoLCBpbnQgbG93X29wZW4sIGludCBoaWdoX29wZW4pOgorICAgICAiIiIKKyAgICAgUmV0 dXJuIHRoZSBzaW1wbGVzdCByYXRpb25hbCBiZXR3ZWVuIGBgbG93YGAgYW5kIGBgaGlnaGBgLiBN YXkgcmV0dXJuCisgICAgIGBgbG93YGAgb3IgYGBoaWdoYGAgdW5sZXNzIGBgbG93X29wZW5gYCBv ciBgYGhpZ2hfb3BlbmBgIChyZXNwZWN0aXZlbHkpIGFyZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3JlYWxfbXBmci5weGQgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCitpbmRl eCA2ZTA2ZTVjNWVhNC4uNzg1ZDQwMjgzNmMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9y ZWFsX21wZnIucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCitAQCAtMTAs MTkgKzEwLDE5IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJl YWxGaWVsZCk6CisgICAgIGNkZWYgYmludCBzY2lfbm90CisgICAgIGNkZWYgbXBmcl9ybmRfdCBy bmQKKyAgICAgY2RlZiBvYmplY3Qgcm5kX3N0cgorLSAgICBjZGVmIGlubGluZSBSZWFsTnVtYmVy IF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIFJlYWxOdW1iZXIgX25ldyhz ZWxmKToKKyAgICAgICAgICIiIlJldHVybiBhIG5ldyByZWFsIG51bWJlciB3aXRoIHBhcmVudCBg YHNlbGZgYC4iIiIKKyAgICAgICAgIHJldHVybiA8UmVhbE51bWJlcj4oUmVhbE51bWJlci5fX25l d19fKFJlYWxOdW1iZXIsIHNlbGYpKQorIAorIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0 cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgY2RlZiBtcGZyX3QgdmFsdWUKKy0g ICAgY2RlZiBpbmxpbmUgUmVhbE51bWJlciBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVm IGlubGluZSBSZWFsTnVtYmVyIF9uZXcoc2VsZik6CisgICAgICAgICAiIiJSZXR1cm4gYSBuZXcg cmVhbCBudW1iZXIgd2l0aCBzYW1lIHBhcmVudCBhcyBgYHNlbGZgYC4iIiIKKyAgICAgICAgIHJl dHVybiA8UmVhbE51bWJlcj4oUmVhbE51bWJlci5fX25ld19fKFJlYWxOdW1iZXIsIHNlbGYuX3Bh cmVudCkpCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmln aHQpIG5vZXhjZXB0CistICAgIGNkZWYgX3NldChzZWxmLCB4LCBpbnQgYmFzZSkgbm9leGNlcHQK Ky0gICAgY2RlZiBSZWFsTnVtYmVyIGFicyhSZWFsTnVtYmVyIHNlbGYpIG5vZXhjZXB0CisrICAg IGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikK KysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpCisrICAgIGNkZWYgX3NldChzZWxmLCB4LCBp bnQgYmFzZSkKKysgICAgY2RlZiBSZWFsTnVtYmVyIGFicyhSZWFsTnVtYmVyIHNlbGYpCisgCist Y3BkZWYgUmVhbEZpZWxkKG1wZnJfcHJlY190IHByZWM9KiwgaW50IHNjaV9ub3Q9Kiwgcm5kPSop IG5vZXhjZXB0CisrY3BkZWYgUmVhbEZpZWxkKG1wZnJfcHJlY190IHByZWM9KiwgaW50IHNjaV9u b3Q9Kiwgcm5kPSopCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eCBi L3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKK2luZGV4IDIwYmE4ZGZhMjg0Li41MmU3NjI1 OWQyNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKK0BAIC0zNzEsNyArMzcxLDcgQEAgY2RlZiBkb3Vi bGUgTE9HX1RFTl9UV09fUExVU19FUFNJTE9OID0gMy4zMjE5MjgwOTQ4ODczNjMgIyBhIHNtYWxs IG92ZXJlc3RpbWF0ZQorIAorIGNkZWYgb2JqZWN0IFJlYWxGaWVsZF9jYWNoZSA9IHNhZ2UubWlz Yy53ZWFrX2RpY3QuV2Vha1ZhbHVlRGljdGlvbmFyeSgpCisgCistY3BkZWYgUmVhbEZpZWxkKG1w ZnJfcHJlY190IHByZWM9NTMsIGludCBzY2lfbm90PTAsIHJuZD1NUEZSX1JORE4pIG5vZXhjZXB0 OgorK2NwZGVmIFJlYWxGaWVsZChtcGZyX3ByZWNfdCBwcmVjPTUzLCBpbnQgc2NpX25vdD0wLCBy bmQ9TVBGUl9STkROKToKKyAgICAgIiIiCisgICAgIFJlYWxGaWVsZChwcmVjLCBzY2lfbm90LCBy bmQpOgorIAorQEAgLTY2NSw3ICs2NjUsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhz YWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgei5fc2V0KHgsIGJhc2UpCisgICAg ICAgICByZXR1cm4gegorIAorLSAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUyk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIENhbm9uaWNhbCBjb2VyY2lvbiBvZiB4IHRvIHRoaXMgTVBGUiByZWFs IGZpZWxkLgorIAorQEAgLTE0NTEsNyArMTQ1MSw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihz YWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgcmV0dXJuIG51bXB5X29iamVjdF9pbnRlcmZhY2UKKyAKKy0gICAgY2RlZiBfc2V0 KHNlbGYsIHgsIGludCBiYXNlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfc2V0KHNlbGYsIHgsIGlu dCBiYXNlKToKKyAgICAgICAgICMgVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBleGNlcHQgd2hl biB0aGUgbnVtYmVyIGlzIGJlaW5nIGNyZWF0ZWQuCisgICAgICAgICAjIFJlYWwgTnVtYmVycyBh cmUgc3VwcG9zZWQgdG8gYmUgaW1tdXRhYmxlLgorICAgICAgICAgY2RlZiBSZWFsRmllbGRfY2xh c3MgcGFyZW50CitAQCAtMjQyNSw3ICsyNDI1LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICByZXR1cm4gRWxlbWVudC5fX3J0cnVlZGl2X18ocmlnaHQsIGxlZnQpCisgCistICAg IGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2Vs Ziwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgdHdvIHJlYWwgbnVtYmVycyB3 aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BAIC0yNDU0LDcgKzI0NTQsNyBAQCBjZGVmIGNsYXNz IFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQoMSkgLyBzZWxmCisgCistICAgIGNw ZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCB0d28gcmVhbCBudW1iZXJz IHdpdGggdGhlIHNhbWUgcGFyZW50LgorIAorQEAgLTI0OTUsNyArMjQ5NSw3IEBAIGNkZWYgY2xh c3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAg ICAgIGltcG9ydCBzeW1weQorICAgICAgICAgcmV0dXJuIHN5bXB5LkZsb2F0KHNlbGYsIHByZWNp c2lvbj1zZWxmLl9wYXJlbnQucHJlY2lzaW9uKCkpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYs IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBNdWx0aXBseSB0d28gcmVhbCBudW1iZXJzIHdpdGggdGhlIHNhbWUg cGFyZW50LgorIAorQEAgLTI1MjgsNyArMjUyOCw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihz YWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgIHJldHVybiB4Cisg CisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgYGBzZWxm YGAgYnkgb3RoZXIsIHdoZXJlIGJvdGggYXJlIHJlYWwgbnVtYmVycyB3aXRoIHRoZSBzYW1lCisg ICAgICAgICBwYXJlbnQuCitAQCAtMjU0OCw3ICsyNTQ4LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVt YmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICAg ICAgKDxSZWFsTnVtYmVyPnJpZ2h0KS52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5ybmQpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgbmVnYXRpdmUgb2YgYGBzZWxmYGAuCisgCitAQCAtMjU4Miw3ICsyNTgyLDcg QEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1l bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5hYnMoKQorIAorLSAgICBj ZGVmIFJlYWxOdW1iZXIgYWJzKFJlYWxOdW1iZXIgc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg UmVhbE51bWJlciBhYnMoUmVhbE51bWJlciBzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0yOTM1LDcgKzI5 MzUsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5n RWxlbWVudCk6CisgICAgICMgUm91bmRpbmcgZXRjCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMK KyAKKy0gICAgY3BkZWYgX21vZF8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bW9kXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFs dWUgb2YgYGBsZWZ0IC0gbipyaWdodGBgLCByb3VuZGVkIGFjY29yZGluZyB0byB0aGUKKyAgICAg ICAgIHJvdW5kaW5nIG1vZGUgb2YgdGhlIHBhcmVudCwgd2hlcmUgYGBuYGAgaXMgdGhlIGludGVn ZXIgcXVvdGllbnQgb2YKK0BAIC00MDU5LDcgKzQwNTksNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1i ZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBub3QgbXBmcl96ZXJvX3Aoc2VsZi52YWx1ZSkKKyAKKy0gICAgY3BkZWYg X3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmlj aGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBh cmUgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYCBhY2NvcmRpbmcgdG8gdGhlIHJpY2gKKyAgICAgICAg IGNvbXBhcmlzb24gb3BlcmF0b3IgYGBvcGBgLgorQEAgLTU4NjcsNyArNTg2Nyw3IEBAIGRlZiBf X2NyZWF0ZV9fUmVhbE51bWJlcl92ZXJzaW9uMChwYXJlbnQsIHgsIGJhc2U9MTApOgorIAorIAor IGNkZWYgY2xhc3MgUlJ0b1JSKE1hcCk6CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAg ICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTU5MTYsNyArNTkxNiw3IEBAIGNk ZWYgY2xhc3MgUlJ0b1JSKE1hcCk6CisgICAgICAgICByZXR1cm4gUlJ0b1JSKHNlbGYuX2NvZG9t YWluLCBzZWxmLmRvbWFpbigpKQorIAorIGNkZWYgY2xhc3MgWlp0b1JSKE1hcCk6CistICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTU5MzEsNyArNTkzMSw3IEBAIGNkZWYgY2xhc3MgWlp0b1JSKE1hcCk6CisgICAgICAgICBy ZXR1cm4geQorIAorIGNkZWYgY2xhc3MgUVF0b1JSKE1hcCk6CistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxm LCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTU5NDYsNyAr NTk0Niw3IEBAIGNkZWYgY2xhc3MgUVF0b1JSKE1hcCk6CisgICAgICAgICByZXR1cm4geQorIAor IGNkZWYgY2xhc3MgZG91YmxlX3RvUlIoTWFwKToKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBUYWtlcyBhbnl0aGluZyB0aGF0IGNhbiBiZSBjb252ZXJ0 ZWQgdG8gYSBkb3VibGUuCisgCitAQCAtNTk2Niw3ICs1OTY2LDcgQEAgY2RlZiBjbGFzcyBkb3Vi bGVfdG9SUihNYXApOgorICAgICAgICAgcmV0dXJuIHkKKyAKKyBjZGVmIGNsYXNzIGludF90b1JS KE1hcCk6CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAg VGFrZXMgUHl0aG9uIGludC9sb25nIGluc3RhbmNlcy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9yaW5nX2V4dGVuc2lvbi5weGQgYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lv bi5weGQKK2luZGV4IDk5ZGMwMzZkYTc5Li40NzhiZDZlZWY3NSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19l eHRlbnNpb24ucHhkCitAQCAtMTQsMTIgKzE0LDEyIEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lv bl9nZW5lcmljKENvbW11dGF0aXZlUmluZyk6CisgICAgIGNkZWYgUmluZ0V4dGVuc2lvbl9nZW5l cmljIF9mcmFjdGlvbl9maWVsZAorICAgICBjZGVmIHR5cGUgX2ZyYWN0aW9uX2ZpZWxkX3R5cGUK KyAKKy0gICAgY3BkZWYgaXNfZGVmaW5lZF9vdmVyKHNlbGYsIGJhc2UpIG5vZXhjZXB0CistICAg IGNwZGVmIENvbW11dGF0aXZlUmluZyBfY2hlY2tfYmFzZShzZWxmLCBDb21tdXRhdGl2ZVJpbmcg YmFzZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2RlZ3JlZV9vdmVyKHNlbGYsIENvbW11dGF0aXZl UmluZyBiYXNlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNfZmluaXRlX292ZXIoc2VsZiwgQ29t bXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19mcmVlX292ZXIoc2Vs ZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0CistICAgIGNkZWYgTWFwIF9kZWZpbmlu Z19tb3JwaGlzbV9mcmFjdGlvbl9maWVsZChzZWxmLCBiaW50IGV4dGVuZF9iYXNlKSBub2V4Y2Vw dAorKyAgICBjcGRlZiBpc19kZWZpbmVkX292ZXIoc2VsZiwgYmFzZSkKKysgICAgY3BkZWYgQ29t bXV0YXRpdmVSaW5nIF9jaGVja19iYXNlKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKQorKyAg ICBjcGRlZiBfZGVncmVlX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpCisrICAgIGNw ZGVmIF9pc19maW5pdGVfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkKKysgICAgY3Bk ZWYgX2lzX2ZyZWVfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkKKysgICAgY2RlZiBN YXAgX2RlZmluaW5nX21vcnBoaXNtX2ZyYWN0aW9uX2ZpZWxkKHNlbGYsIGJpbnQgZXh0ZW5kX2Jh c2UpCisgCisgCisgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uRnJhY3Rpb25GaWVsZChSaW5nRXh0 ZW5zaW9uX2dlbmVyaWMpOgorQEAgLTMxLDcgKzMxLDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5z aW9uV2l0aEJhc2lzKFJpbmdFeHRlbnNpb25fZ2VuZXJpYyk6CisgICAgIGNkZWYgX2Jhc2lzX25h bWVzCisgICAgIGNkZWYgX2Jhc2lzX2xhdGV4X25hbWVzCisgCistICAgIGNwZGVmIF9iYXNpc19v dmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYmFz aXNfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkKKyAgICAgIyBjcGRlZiBfZnJlZV9t b2R1bGUoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UsIGJpbnQgbWFwKQorIAorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uLnB5eCBiL3NyYy9zYWdlL3Jpbmdz L3JpbmdfZXh0ZW5zaW9uLnB5eAoraW5kZXggZDQxMmFiNDdlMjcuLjljMjE0YTFmZmVlIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb24ucHl4CisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9yaW5nX2V4dGVuc2lvbi5weXgKK0BAIC0xMDA3LDcgKzEwMDcsNyBAQCBjZGVmIGNs YXNzIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyhDb21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgICAg IHJhaXNlIFJ1bnRpbWVFcnJvcigiYmFja2VuZCBpcyBub3QgZXhwb3NlZCB0byB0aGUgdXNlcjsg Y2Fubm90IHByaW50IikKKyAgICAgICAgIHJldHVybiBsYXRleChzZWxmLl9iYWNrZW5kKQorIAor LSAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiBhIGNvZXJjZSBtYXAgZnJvbSB0aGlzIGV4dGVuc2lvbiB0byBgYG90aGVy YGAgaWYgZGVmaW5lZC4KKyAKK0BAIC0xMTY4LDcgKzExNjgsNyBAQCBjZGVmIGNsYXNzIFJpbmdF eHRlbnNpb25fZ2VuZXJpYyhDb21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5iYXNlcygpWy0xXQorIAorLSAgICBjcGRlZiBpc19kZWZpbmVkX292ZXIo c2VsZiwgYmFzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2RlZmluZWRfb3ZlcihzZWxmLCBi YXNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB3aGV0aGVyIG9yIG5vdCBgYGJh c2VgYCBpcyBvbmUgb2YgdGhlIGJhc2VzIG9mIHRoaXMKKyAgICAgICAgIGV4dGVuc2lvbi4KK0BA IC0xMjE2LDcgKzEyMTYsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyhDb21t dXRhdGl2ZVJpbmcpOgorICAgICAgICAgICAgIGIgPSAoPFJpbmdFeHRlbnNpb25fZ2VuZXJpYz5i KS5fYmFzZQorICAgICAgICAgcmV0dXJuIGIgaXMgYmFzZQorIAorLSAgICBjcGRlZiBDb21tdXRh dGl2ZVJpbmcgX2NoZWNrX2Jhc2Uoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBDb21tdXRhdGl2ZVJpbmcgX2NoZWNrX2Jhc2Uoc2VsZiwgQ29tbXV0YXRp dmVSaW5nIGJhc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBiYXNlYGAg aXMgb25lIG9mIHRoZSBzdWNjZXNzaXZlIGJhc2VzIG9mIHRoaXMKKyAgICAgICAgIGV4dGVuc2lv biBhbmQsIGlmIGl0IGlzLCBub3JtYWxpemUgaXQuCitAQCAtMTQ2NCw3ICsxNDY0LDcgQEAgY2Rl ZiBjbGFzcyBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMoQ29tbXV0YXRpdmVSaW5nKToKKyAgICAgICAg IGJhc2UgPSBzZWxmLl9jaGVja19iYXNlKGJhc2UpCisgICAgICAgICByZXR1cm4gc2VsZi5fZGVn cmVlX292ZXIoYmFzZSkKKyAKKy0gICAgY3BkZWYgX2RlZ3JlZV9vdmVyKHNlbGYsIENvbW11dGF0 aXZlUmluZyBiYXNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2RlZ3JlZV9vdmVyKHNlbGYsIENv bW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg ZGVncmVlIG9mIHRoaXMgZXh0ZW5zaW9uIG92ZXIgYGBiYXNlYGAuCisgCitAQCAtMTYwNCw3ICsx NjA0LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMoQ29tbXV0YXRpdmVSaW5n KToKKyAgICAgICAgICAgICBiID0gKDxSaW5nRXh0ZW5zaW9uX2dlbmVyaWM/PmIpLl9iYXNlCisg ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNwZGVmIF9pc19maW5p dGVfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9pc19maW5pdGVfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gd2hldGhlciBvciBub3QgdGhpcyBleHRlbnNpb24gaXMgZmlu aXRlIG92ZXIgYGBiYXNlYGAuCisgCitAQCAtMTY2Nyw3ICsxNjY3LDcgQEAgY2RlZiBjbGFzcyBS aW5nRXh0ZW5zaW9uX2dlbmVyaWMoQ29tbXV0YXRpdmVSaW5nKToKKyAgICAgICAgICAgICBiID0g KDxSaW5nRXh0ZW5zaW9uX2dlbmVyaWM/PmIpLl9iYXNlCisgICAgICAgICByYWlzZSBOb3RJbXBs ZW1lbnRlZEVycm9yCisgCistICAgIGNwZGVmIF9pc19mcmVlX292ZXIoc2VsZiwgQ29tbXV0YXRp dmVSaW5nIGJhc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfZnJlZV9vdmVyKHNlbGYsIENv bW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB3aGV0 aGVyIG9yIG5vdCB0aGlzIGV4dGVuc2lvbiBpcyBmaW5pdGUgb3ZlciBgYGJhc2VgYC4KKyAKK0BA IC0xNzg1LDcgKzE3ODUsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyhDb21t dXRhdGl2ZVJpbmcpOgorICAgICAgICAgY29uc3RydWN0b3IgPSBSaW5nRXh0ZW5zaW9uRnJhY3Rp b25GaWVsZCwgeydyaW5nJzogc2VsZiwgJ2lzX2JhY2tlbmRfZXhwb3NlZCc6IHNlbGYuX2lzX2Jh Y2tlbmRfZXhwb3NlZH0KKyAgICAgICAgIHJldHVybiBSaW5nRXh0ZW5zaW9uKHJpbmcsIGRlZmlu aW5nX21vcnBoaXNtLCBjb25zdHJ1Y3RvcnM9W2NvbnN0cnVjdG9yXSkKKyAKKy0gICAgY2RlZiBN YXAgX2RlZmluaW5nX21vcnBoaXNtX2ZyYWN0aW9uX2ZpZWxkKHNlbGYsIGJpbnQgZXh0ZW5kX2Jh c2UpIG5vZXhjZXB0OgorKyAgICBjZGVmIE1hcCBfZGVmaW5pbmdfbW9ycGhpc21fZnJhY3Rpb25f ZmllbGQoc2VsZiwgYmludCBleHRlbmRfYmFzZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGRlZmluaW5nIG1vcnBoaXNtIG9mIHRoZSBmcmFjdGlvbiBmaWVsZCBvZiB0aGlz IGV4dGVuc2lvbi4KKyAKK0BAIC0yMjEwLDcgKzIyMTAsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRl bnNpb25XaXRoQmFzaXMoUmluZ0V4dGVuc2lvbl9nZW5lcmljKToKKyAgICAgICAgICAgICBiID0g Yi5iYXNlX3JpbmcoKQorICAgICAgICAgcmV0dXJuIGJhc2UKKyAKKy0gICAgY3BkZWYgX2RlZ3Jl ZV9vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2RlZ3JlZV9vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgZGVncmVlIG9mIHRoaXMgZXh0ZW5zaW9uIG92ZXIgYGBiYXNl YGAuCisgCitAQCAtMjIzNyw3ICsyMjM3LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uV2l0 aEJhc2lzKFJpbmdFeHRlbnNpb25fZ2VuZXJpYyk6CisgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIHJldHVybiBsZW4oc2VsZi5fYmFzaXMpICogc2VsZi5fYmFzZS5fZGVncmVlX292ZXIoYmFz ZSkKKyAKKy0gICAgY3BkZWYgX2lzX2Zpbml0ZV9vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBi YXNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2Zpbml0ZV9vdmVyKHNlbGYsIENvbW11dGF0 aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB3aGV0aGVyIG9y IG5vdCB0aGlzIGV4dGVuc2lvbiBpcyBmaW5pdGUgb3ZlciBgYGJhc2VgYC4KKyAKK0BAIC0yMjU2 LDcgKzIyNTYsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRoQmFzaXMoUmluZ0V4dGVu c2lvbl9nZW5lcmljKToKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgcmV0dXJu IHNlbGYuX2Jhc2UuX2lzX2Zpbml0ZV9vdmVyKGJhc2UpCisgCistICAgIGNwZGVmIF9pc19mcmVl X292ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf aXNfZnJlZV9vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGlzIGV4dGVuc2lvbiBpcyBmcmVlIG92 ZXIgYGBiYXNlYGAuCisgCitAQCAtMjMxNyw3ICsyMzE3LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0 ZW5zaW9uV2l0aEJhc2lzKFJpbmdFeHRlbnNpb25fZ2VuZXJpYyk6CisgICAgICAgICBiYXNlID0g c2VsZi5fY2hlY2tfYmFzZShiYXNlKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2lzX292ZXIo YmFzZSkKKyAKKy0gICAgY3BkZWYgX2Jhc2lzX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJh c2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYmFzaXNfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJp bmcgYmFzZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBiYXNpcyBvZiB0aGlz IGV4dGVuc2lvbiBvdmVyIGBgYmFzZWBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jpbmdz L3JpbmdfZXh0ZW5zaW9uX2NvbnZlcnNpb24ucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRl bnNpb25fY29udmVyc2lvbi5weGQKK2luZGV4IDc0ZTA5ZTRmMzU2Li5lMzgxNWE0MTFiYSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2NvbnZlcnNpb24ucHhkCisr KysgYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9jb252ZXJzaW9uLnB4ZAorQEAgLTEs MTcgKzEsMTcgQEAKKyBmcm9tIHNhZ2UucmluZ3MucmluZ19leHRlbnNpb24gY2ltcG9ydCBSaW5n RXh0ZW5zaW9uX2dlbmVyaWMKKyAKKyAKKy1jcGRlZiBiYWNrZW5kX3BhcmVudChSKSBub2V4Y2Vw dAorLWNwZGVmIGZyb21fYmFja2VuZF9wYXJlbnQoUiwgUmluZ0V4dGVuc2lvbl9nZW5lcmljIEUp IG5vZXhjZXB0CisrY3BkZWYgYmFja2VuZF9wYXJlbnQoUikKKytjcGRlZiBmcm9tX2JhY2tlbmRf cGFyZW50KFIsIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyBFKQorIAorLWNwZGVmIGJhY2tlbmRfZWxl bWVudCh4KSBub2V4Y2VwdAorLWNwZGVmIGZyb21fYmFja2VuZF9lbGVtZW50KHgsIFJpbmdFeHRl bnNpb25fZ2VuZXJpYyBFKSBub2V4Y2VwdAorK2NwZGVmIGJhY2tlbmRfZWxlbWVudCh4KQorK2Nw ZGVmIGZyb21fYmFja2VuZF9lbGVtZW50KHgsIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyBFKQorIAor LWNkZWYgX2JhY2tlbmRfbW9ycGhpc20oZikgbm9leGNlcHQKKy1jcGRlZiBiYWNrZW5kX21vcnBo aXNtKGYsIGZvcmdldD0qKSBub2V4Y2VwdAorLWNwZGVmIGZyb21fYmFja2VuZF9tb3JwaGlzbShm LCBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgRSkgbm9leGNlcHQKKytjZGVmIF9iYWNrZW5kX21vcnBo aXNtKGYpCisrY3BkZWYgYmFja2VuZF9tb3JwaGlzbShmLCBmb3JnZXQ9KikKKytjcGRlZiBmcm9t X2JhY2tlbmRfbW9ycGhpc20oZiwgUmluZ0V4dGVuc2lvbl9nZW5lcmljIEUpCisgCistY3BkZWYg dG9fYmFja2VuZChhcmcpIG5vZXhjZXB0CistY3BkZWYgZnJvbV9iYWNrZW5kKGFyZywgRSkgbm9l eGNlcHQKKytjcGRlZiB0b19iYWNrZW5kKGFyZykKKytjcGRlZiBmcm9tX2JhY2tlbmQoYXJnLCBF KQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2NvbnZl cnNpb24ucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb25fY29udmVyc2lvbi5weXgK K2luZGV4IDU5NzMyMGU4YWY4Li5lZWI2MDc3Y2QwYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL3JpbmdfZXh0ZW5zaW9uX2NvbnZlcnNpb24ucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9y aW5nX2V4dGVuc2lvbl9jb252ZXJzaW9uLnB5eAorQEAgLTI2LDcgKzI2LDcgQEAgZnJvbSBzYWdl LnJpbmdzLnJpbmdfZXh0ZW5zaW9uX21vcnBoaXNtIGNpbXBvcnQgUmluZ0V4dGVuc2lvbkJhY2tl bmRSZXZlcnNlSXNvbW8KKyAjIEZvciBwYXJlbnRzCisgIyMjIyMjIyMjIyMjIworIAorLWNwZGVm IGJhY2tlbmRfcGFyZW50KFIpIG5vZXhjZXB0OgorK2NwZGVmIGJhY2tlbmRfcGFyZW50KFIpOgor ICAgICByIiIiCisgICAgIFJldHVybiB0aGUgYmFja2VuZCBwYXJlbnQgb2YgYGBSYGAuCisgCitA QCAtNDksNyArNDksNyBAQCBjcGRlZiBiYWNrZW5kX3BhcmVudChSKSBub2V4Y2VwdDoKKyAgICAg ZWxzZToKKyAgICAgICAgIHJldHVybiBSCisgCistY3BkZWYgZnJvbV9iYWNrZW5kX3BhcmVudChS LCBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgRSkgbm9leGNlcHQ6CisrY3BkZWYgZnJvbV9iYWNrZW5k X3BhcmVudChSLCBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgRSk6CisgICAgIHIiIiIKKyAgICAgVHJ5 IHRvIHJlY29uc3RydWN0IGEgcmluZyBleHRlbnNpb24gKHNvbWVob3cgcmVsYXRlZCB0byBgYEVg YCkKKyAgICAgd2hvc2UgYmFja2VuZCBpcyBgYFJgYC4KK0BAIC0xMDcsNyArMTA3LDcgQEAgY3Bk ZWYgZnJvbV9iYWNrZW5kX3BhcmVudChSLCBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgRSkgbm9leGNl cHQ6CisgIyBGb3IgZWxlbWVudHMKKyAjIyMjIyMjIyMjIyMjIworIAorLWNwZGVmIGJhY2tlbmRf ZWxlbWVudCh4KSBub2V4Y2VwdDoKKytjcGRlZiBiYWNrZW5kX2VsZW1lbnQoeCk6CisgICAgIHIi IiIKKyAgICAgUmV0dXJuIHRoZSBiYWNrZW5kIGVsZW1lbnQgb2YgYGB4YGAuCisgCitAQCAtMTMw LDcgKzEzMCw3IEBAIGNwZGVmIGJhY2tlbmRfZWxlbWVudCh4KSBub2V4Y2VwdDoKKyAgICAgZWxz ZToKKyAgICAgICAgIHJldHVybiB4CisgCistY3BkZWYgZnJvbV9iYWNrZW5kX2VsZW1lbnQoeCwg UmluZ0V4dGVuc2lvbl9nZW5lcmljIEUpIG5vZXhjZXB0OgorK2NwZGVmIGZyb21fYmFja2VuZF9l bGVtZW50KHgsIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyBFKToKKyAgICAgciIiIgorICAgICBUcnkg dG8gcmVjb25zdHJ1Y3QgYW4gZWxlbWVudCBpbiBhIHJpbmcgZXh0ZW5zaW9uIChzb21laG93Cisg ICAgIHJlbGF0ZWQgdG8gYGBFYGApIHdob3NlIGJhY2tlbmQgaXMgYGB4YGAuCitAQCAtMTgxLDcg KzE4MSw3IEBAIGNwZGVmIGZyb21fYmFja2VuZF9lbGVtZW50KHgsIFJpbmdFeHRlbnNpb25fZ2Vu ZXJpYyBFKSBub2V4Y2VwdDoKKyAjIEZvciBtb3JwaGlzbXMKKyAjIyMjIyMjIyMjIyMjIyMKKyAK Ky1jZGVmIF9iYWNrZW5kX21vcnBoaXNtKGYpIG5vZXhjZXB0OgorK2NkZWYgX2JhY2tlbmRfbW9y cGhpc20oZik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBiYWNrZW5kIG1vcnBoaXNtIG9m IGBgZmBgLgorIAorQEAgLTI0Myw3ICsyNDMsNyBAQCBjZGVmIF9iYWNrZW5kX21vcnBoaXNtKGYp IG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiByaW5nLmNvZXJjZV9tYXBfZnJvbShkb21h aW4pCisgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy1jcGRlZiBiYWNrZW5kX21v cnBoaXNtKGYsIGZvcmdldD0iYWxsIikgbm9leGNlcHQ6CisrY3BkZWYgYmFja2VuZF9tb3JwaGlz bShmLCBmb3JnZXQ9ImFsbCIpOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgYmFja2VuZCBt b3JwaGlzbSBvZiBgYGZgYC4KKyAKK0BAIC0yOTksNyArMjk5LDcgQEAgY3BkZWYgYmFja2VuZF9t b3JwaGlzbShmLCBmb3JnZXQ9ImFsbCIpIG5vZXhjZXB0OgorICAgICAgICAgICAgIGcgPSBSaW5n RXh0ZW5zaW9uQmFja2VuZFJldmVyc2VJc29tb3JwaGlzbShmLmNvZG9tYWluKCkuSG9tKHJpbmcp KSAqIGcKKyAgICAgcmV0dXJuIGcKKyAKKy1jcGRlZiBmcm9tX2JhY2tlbmRfbW9ycGhpc20oZiwg UmluZ0V4dGVuc2lvbl9nZW5lcmljIEUpIG5vZXhjZXB0OgorK2NwZGVmIGZyb21fYmFja2VuZF9t b3JwaGlzbShmLCBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgRSk6CisgICAgIHIiIiIKKyAgICAgVHJ5 IHRvIHJlY29uc3RydWN0IGEgbW9ycGhpc20gYmV0d2VlbiByaW5nIGV4dGVuc2lvbnMKKyAgICAg KHNvbWVob3cgcmVsYXRlZCB0byBgYEVgYCkgd2hvc2UgYmFja2VuZCBpcyBgYGZgYC4KK0BAIC0z MzYsNyArMzM2LDcgQEAgY3BkZWYgZnJvbV9iYWNrZW5kX21vcnBoaXNtKGYsIFJpbmdFeHRlbnNp b25fZ2VuZXJpYyBFKSBub2V4Y2VwdDoKKyAjIEdlbmVyaWMKKyAjIyMjIyMjIyMKKyAKKy1jcGRl ZiB0b19iYWNrZW5kKGFyZykgbm9leGNlcHQ6CisrY3BkZWYgdG9fYmFja2VuZChhcmcpOgorICAg ICByIiIiCisgICAgIFJldHVybiB0aGUgYmFja2VuZCBvZiBgYGFyZ2BgLgorIAorQEAgLTM5Miw3 ICszOTIsNyBAQCBjcGRlZiB0b19iYWNrZW5kKGFyZykgbm9leGNlcHQ6CisgICAgICAgICByZXR1 cm4gKDxSaW5nRXh0ZW5zaW9uRWxlbWVudD5hcmcpLl9iYWNrZW5kCisgICAgIHJldHVybiBhcmcK KyAKKy1jcGRlZiBmcm9tX2JhY2tlbmQoYXJnLCBFKSBub2V4Y2VwdDoKKytjcGRlZiBmcm9tX2Jh Y2tlbmQoYXJnLCBFKToKKyAgICAgciIiIgorICAgICBUcnkgdG8gcmVjb25zdHJ1Y3Qgc29tZXRo aW5nIChzb21laG93IHJlbGF0ZWQgdG8gYGBFYGApCisgICAgIHdob3NlIGJhY2tlbmQgaXMgYGBh cmdgYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9lbGVtZW50 LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2VsZW1lbnQucHhkCitpbmRleCAz MmNlMTM4NTI0OC4uNmI2MmFkNThjMDYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yaW5n X2V4dGVuc2lvbl9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNp b25fZWxlbWVudC5weGQKK0BAIC0xMywxMCArMTMsMTAgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5z aW9uRnJhY3Rpb25GaWVsZEVsZW1lbnQoUmluZ0V4dGVuc2lvbkVsZW1lbnQpOgorICAgICBwYXNz CisgCisgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uV2l0aEJhc2lzRWxlbWVudChSaW5nRXh0ZW5z aW9uRWxlbWVudCk6CistICAgIGNkZWYgX3ZlY3RvcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFz ZSkgbm9leGNlcHQKKy0gICAgY2RlZiBfbWF0cml4KHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNl KSBub2V4Y2VwdAorLSAgICBjZGVmIF90cmFjZShzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkg bm9leGNlcHQKKy0gICAgY2RlZiBfbm9ybShzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkgbm9l eGNlcHQKKy0gICAgY3BkZWYgbWlucG9seShzZWxmLCBiYXNlPSosIHZhcj0qKSBub2V4Y2VwdAor KyAgICBjZGVmIF92ZWN0b3Ioc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpCisrICAgIGNkZWYg X21hdHJpeChzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkKKysgICAgY2RlZiBfdHJhY2Uoc2Vs ZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpCisrICAgIGNkZWYgX25vcm0oc2VsZiwgQ29tbXV0YXRp dmVSaW5nIGJhc2UpCisrICAgIGNwZGVmIG1pbnBvbHkoc2VsZiwgYmFzZT0qLCB2YXI9KikKKyAK KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9lbGVtZW50LnB5 eCBiL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2VsZW1lbnQucHl4CitpbmRleCBhOGIy YTI1ZjMzNS4uNzI5NzkzZDNiZmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4 dGVuc2lvbl9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb25f ZWxlbWVudC5weXgKK0BAIC0zNTgsNyArMzU4LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9u RWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIHBhcmVudC5iYXNlKCkoYmFzZShzZWxmLl9iYWNrZW5kKSkKKyAgICAgICAgIHJhaXNlIE5v dEltcGxlbWVudGVkRXJyb3IoImNhbm5vdCBjYXN0ICVzIHRvIHRoZSBiYXNlIiAlIHNlbGYpCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgciIiIgor ICAgICAgICAgQ29tcGFyZSB0aGlzIGVsZW1lbnQgd2l0aCBgYHJpZ2h0YGAgYWNjb3JkaW5nIHRv CisgICAgICAgICB0aGUgcmljaCBjb21wYXJpc29uIG9wZXJhdG9yIGBgb3BgYC4KK0BAIC0zODYs NyArMzg2LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uRWxlbWVudChDb21tdXRhdGl2ZUFs Z2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGxlZnQuX2JhY2tl bmQuX3JpY2hjbXBfKGJhY2tlbmRfZWxlbWVudChyaWdodCksIG9wKQorIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZixvdGhlcik6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHN1bSBvZiB0aGlzIGVsZW1lbnQg YW5kIGBgb3RoZXJgYC4KKyAKK0BAIC00MDYsNyArNDA2LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0 ZW5zaW9uRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIGFucy5f YmFja2VuZCA9IHNlbGYuX2JhY2tlbmQgKyAoPFJpbmdFeHRlbnNpb25FbGVtZW50Pm90aGVyKS5f YmFja2VuZAorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIG9wcG9zaXRlIG9mIHRoaXMgZWxlbWVudC4KKyAKK0BAIC00MjYsNyArNDI2 LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFF bGVtZW50KToKKyAgICAgICAgIGFucy5fYmFja2VuZCA9IC1zZWxmLl9iYWNrZW5kCisgICAgICAg ICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfc3ViXyhzZWxmLG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgb3RoZXJgYC4KKyAKK0BA IC00NDYsNyArNDQ2LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uRWxlbWVudChDb21tdXRh dGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIGFucy5fYmFja2VuZCA9IHNlbGYuX2JhY2tl bmQgLSAoPFJpbmdFeHRlbnNpb25FbGVtZW50Pm90aGVyKS5fYmFja2VuZAorICAgICAgICAgcmV0 dXJuIGFucworIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLG90aGVyKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX211bF8oc2VsZixvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g dGhlIHByb2R1Y3Qgb2YgdGhpcyBlbGVtZW50IGFuZCBgYG90aGVyYGAuCisgCitAQCAtNDY2LDcg KzQ2Niw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbkVsZW1lbnQoQ29tbXV0YXRpdmVBbGdl YnJhRWxlbWVudCk6CisgICAgICAgICBhbnMuX2JhY2tlbmQgPSBzZWxmLl9iYWNrZW5kICogKDxS aW5nRXh0ZW5zaW9uRWxlbWVudD5vdGhlcikuX2JhY2tlbmQKKyAgICAgICAgIHJldHVybiBhbnMK KyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZixvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9k aXZfKHNlbGYsb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90 aWVudCBvZiB0aGlzIGVsZW1lbnQgYnkgYGBvdGhlcmBgLAorICAgICAgICAgY29uc2lkZXJlZCBh cyBhbiBlbGVtZW50IG9mIHRoZSBmcmFjdGlvbiBmaWVsZC4KK0BAIC0xMDM2LDcgKzEwMzYsNyBA QCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRoQmFzaXNFbGVtZW50KFJpbmdFeHRlbnNpb25F bGVtZW50KToKKyAgICAgICAgIGJhc2UgPSAoPFJpbmdFeHRlbnNpb25fZ2VuZXJpYz5zZWxmLl9w YXJlbnQpLl9jaGVja19iYXNlKGJhc2UpCisgICAgICAgICByZXR1cm4gc2VsZi5fdmVjdG9yKGJh c2UpCisgCistICAgIGNkZWYgX3ZlY3RvcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkgbm9l eGNlcHQ6CisrICAgIGNkZWYgX3ZlY3RvcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZlY3RvciBvZiBjb29yZGluYXRlcyBv ZiB0aGlzIGVsZW1lbnQgb3ZlciBgYGJhc2VgYAorICAgICAgICAgKGluIHRoZSBiYXNpcyBvdXRw dXQgYnkgdGhlIG1ldGhvZCA6bWV0aDpgYmFzaXNfb3ZlcmApLgorQEAgLTEyMDEsNyArMTIwMSw3 IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbldpdGhCYXNpc0VsZW1lbnQoUmluZ0V4dGVuc2lv bkVsZW1lbnQpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInRoZSBleHRlbnNpb24g aXMgbm90IGZpbml0ZSBmcmVlIikKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXRyaXgoYmFzZSkK KyAKKy0gICAgY2RlZiBfbWF0cml4KHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfbWF0cml4KHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbWF0cml4IG9mIHRoZSBtdWx0aXBsaWNhdGlv biBieSB0aGlzIGVsZW1lbnQgKGluCisgICAgICAgICB0aGUgYmFzaXMgb3V0cHV0IGJ5IDptZXRo OmBiYXNpc19vdmVyYCkuCitAQCAtMTI4OSw3ICsxMjg5LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0 ZW5zaW9uV2l0aEJhc2lzRWxlbWVudChSaW5nRXh0ZW5zaW9uRWxlbWVudCk6CisgICAgICAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIGV4dGVuc2lvbiBpcyBub3QgZmluaXRlIGZyZWUiKQor ICAgICAgICAgcmV0dXJuIHNlbGYuX3RyYWNlKGJhc2UpCisgCistICAgIGNkZWYgX3RyYWNlKHNl bGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdHJhY2Uoc2Vs ZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSB0cmFjZSBvZiB0aGlzIGVsZW1lbnQgb3ZlciBgYGJhc2VgYC4KKyAKK0BAIC0xMzgyLDcg KzEzODIsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRoQmFzaXNFbGVtZW50KFJpbmdF eHRlbnNpb25FbGVtZW50KToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0aGUgZXh0 ZW5zaW9uIGlzIG5vdCBmaW5pdGUgZnJlZSIpCisgICAgICAgICByZXR1cm4gc2VsZi5fbm9ybShi YXNlKQorIAorLSAgICBjZGVmIF9ub3JtKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfbm9ybShzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG5vcm0gb2YgdGhpcyBlbGVtZW50IG92ZXIg YGBiYXNlYGAuCisgCitAQCAtMTQ4Niw3ICsxNDg2LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5z aW9uV2l0aEJhc2lzRWxlbWVudChSaW5nRXh0ZW5zaW9uRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLm1hdHJpeChiYXNlKS5jaGFycG9seSh2YXIpCisgCistICAg IGNwZGVmIG1pbnBvbHkoc2VsZiwgYmFzZT1Ob25lLCB2YXI9J3gnKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgbWlucG9seShzZWxmLCBiYXNlPU5vbmUsIHZhcj0neCcpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBtaW5pbWFsIHBvbHlub21pYWwgb2YgdGhpcyBlbGVtZW50IG92 ZXIgYGBiYXNlYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNp b25fbW9ycGhpc20ucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb25fbW9ycGhpc20u cHhkCitpbmRleCBmM2Q4OGVjMzg5MS4uYTAyYWZmMzFhNTAgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9tb3JwaGlzbS5weGQKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3JpbmdfZXh0ZW5zaW9uX21vcnBoaXNtLnB4ZAorQEAgLTQsNyArNCw3IEBAIGZyb20gc2FnZS5y aW5ncy5tb3JwaGlzbSBjaW1wb3J0IFJpbmdNYXAKKyBmcm9tIHNhZ2UucmluZ3MucmluZ19leHRl bnNpb25fZWxlbWVudCBjaW1wb3J0IFJpbmdFeHRlbnNpb25FbGVtZW50CisgCisgCistY2RlZiBh cmVfZXF1YWxfbW9ycGhpc21zKGYsIGcpIG5vZXhjZXB0CisrY2RlZiBhcmVfZXF1YWxfbW9ycGhp c21zKGYsIGcpCisgCisgCisgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uSG9tb21vcnBoaXNtKFJp bmdNYXApOgorQEAgLTMxLDQgKzMxLDQgQEAgY2RlZiBjbGFzcyBNYXBSZWxhdGl2ZVJpbmdUb0Zy ZWVNb2R1bGUoTWFwKToKKyAgICAgY2RlZiBNYXAgX2pMCisgICAgIGNkZWYgX21hdHJpeAorIAor LSAgICBjZGVmIGxpc3QgYmFja2VuZF9jb2VmZmljaWVudHMoc2VsZiwgUmluZ0V4dGVuc2lvbkVs ZW1lbnQgeCkgbm9leGNlcHQKKysgICAgY2RlZiBsaXN0IGJhY2tlbmRfY29lZmZpY2llbnRzKHNl bGYsIFJpbmdFeHRlbnNpb25FbGVtZW50IHgpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv cmluZ19leHRlbnNpb25fbW9ycGhpc20ucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNp b25fbW9ycGhpc20ucHl4CitpbmRleCA0ZDc4ZWUxYzVkMC4uZjg2MWQwMTVhMzUgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9tb3JwaGlzbS5weXgKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX21vcnBoaXNtLnB5eAorQEAgLTI5LDcgKzI5LDcg QEAgZnJvbSBzYWdlLnJpbmdzLnJpbmdfZXh0ZW5zaW9uX2NvbnZlcnNpb24gY2ltcG9ydCBiYWNr ZW5kX3BhcmVudCwgYmFja2VuZF9lbGVtZW4KKyAKKyAKKyAjIEkgZG9uJ3QgdHJ1c3QgdGhlIG9w ZXJhdG9yID09CistY2RlZiBhcmVfZXF1YWxfbW9ycGhpc21zKGYsIGcpIG5vZXhjZXB0OgorK2Nk ZWYgYXJlX2VxdWFsX21vcnBoaXNtcyhmLCBnKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gYGBU cnVlYGAgaWYgYGBmYGAgYW5kIGBgZ2BgIGNvaW5jaWRlIG9uIHRoZQorICAgICBnZW5lcmF0b3Jz IG9mIHRoZSBkb21haW4sIGBgRmFsc2VgYCBvdGhlcndpc2UuCitAQCAtMjI3LDcgKzIyNyw3IEBA IGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbkhvbW9tb3JwaGlzbShSaW5nTWFwKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuICJSaW5nIgorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGltYWdlIG9mIGBgeGBgIHVuZGVy IHRoaXMgbW9ycGhpc20uCisgCitAQCAtMzE4LDcgKzMxOCw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4 dGVuc2lvbkhvbW9tb3JwaGlzbShSaW5nTWFwKToKKyAgICAgICAgICAgICBiYXNlX21hcCA9IGJh c2VfbWFwLmV4dGVuZF9jb2RvbWFpbihzZWxmLmNvZG9tYWluKCkpCisgICAgICAgICByZXR1cm4g YmFzZV9tYXAKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAg ICAgICByIiIiCisgICAgICAgICBDb21wYXJlIHRoaXMgZWxlbWVudCB3aXRoIGBgb3RoZXJgYCBh Y2NvcmRpbmcgdG8KKyAgICAgICAgIHRoZSByaWNoIGNvbXBhcmlzb24gb3BlcmF0b3IgYGBvcGBg LgorQEAgLTQ5NCw3ICs0OTQsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25Ib21vbW9ycGhp c20oUmluZ01hcCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBiYWNrZW5k CisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6 CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEhlbHBlciBmdW5jdGlvbiBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisg CitAQCAtNTEyLDcgKzUxMiw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbkhvbW9tb3JwaGlz bShSaW5nTWFwKToKKyAgICAgICAgIHNlbGYuX2JhY2tlbmQgPSBfc2xvdHNbJ19iYWNrZW5kJ10K KyAgICAgICAgIFJpbmdNYXAuX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNk ZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0 cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmdW5jdGlvbiBm b3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtNTk4LDcgKzU5OCw3IEBAIGNkZWYgY2xh c3MgUmluZ0V4dGVuc2lvbkJhY2tlbmRJc29tb3JwaGlzbShSaW5nRXh0ZW5zaW9uSG9tb21vcnBo aXNtKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICIiCisgCistICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCB4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW1hZ2Ugb2Yg YGB4YGAgdW5kZXIgdGhpcyBtb3JwaGlzbS4KKyAKK0BAIC02ODgsNyArNjg4LDcgQEAgY2RlZiBj bGFzcyBSaW5nRXh0ZW5zaW9uQmFja2VuZFJldmVyc2VJc29tb3JwaGlzbShSaW5nRXh0ZW5zaW9u SG9tb21vcnBoaXNtKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICIiCisgCistICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVt ZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg aW1hZ2Ugb2YgYGB4YGAgdW5kZXIgdGhpcyBtb3JwaGlzbS4KKyAKK0BAIC03NzEsNyArNzcxLDcg QEAgY2RlZiBjbGFzcyBNYXBGcmVlTW9kdWxlVG9SZWxhdGl2ZVJpbmcoTWFwKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgdikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHYpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbWFnZSBvZiBgYHhgYCB1bmRlciB0 aGlzIG1vcnBoaXNtLgorIAorQEAgLTg4MCw3ICs4ODAsNyBAQCBjZGVmIGNsYXNzIE1hcFJlbGF0 aXZlUmluZ1RvRnJlZU1vZHVsZShNYXApOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g VHJ1ZQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGltYWdlIG9mIGBgeGBgIHVuZGVyIHRoaXMgbW9ycGhpc20uCisgCitAQCAt ODk4LDcgKzg5OCw3IEBAIGNkZWYgY2xhc3MgTWFwUmVsYXRpdmVSaW5nVG9GcmVlTW9kdWxlKE1h cCk6CisgICAgICAgICBjb2VmZnMgPSBzZWxmLmJhY2tlbmRfY29lZmZpY2llbnRzKHgpCisgICAg ICAgICByZXR1cm4gc2VsZi5jb2RvbWFpbigpKGNvZWZmcykKKyAKKy0gICAgY2RlZiBsaXN0IGJh Y2tlbmRfY29lZmZpY2llbnRzKHNlbGYsIFJpbmdFeHRlbnNpb25FbGVtZW50IHgpIG5vZXhjZXB0 OgorKyAgICBjZGVmIGxpc3QgYmFja2VuZF9jb2VmZmljaWVudHMoc2VsZiwgUmluZ0V4dGVuc2lv bkVsZW1lbnQgeCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvb3JkaW5h dGVzIG9mIHRoZSBpbWFnZSBvZiBgYHhgYAorICAgICAgICAgYXMgZWxlbWVudHMgb2YgdGhlIGJh Y2tlbmQgcmluZy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9zZW1pcmluZ3MvdHJvcGlj YWxfc2VtaXJpbmcucHl4IGIvc3JjL3NhZ2UvcmluZ3Mvc2VtaXJpbmdzL3Ryb3BpY2FsX3NlbWly aW5nLnB5eAoraW5kZXggM2YyNWZiOGFmOTguLjI5MjIyOThlMjg2IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3Mvc2VtaXJpbmdzL3Ryb3BpY2FsX3NlbWlyaW5nLnB5eAorKysrIGIvc3JjL3Nh Z2UvcmluZ3Mvc2VtaXJpbmdzL3Ryb3BpY2FsX3NlbWlyaW5nLnB5eAorQEAgLTM4LDcgKzM4LDcg QEAgY2RlZiBjbGFzcyBUcm9waWNhbFNlbWlyaW5nRWxlbWVudChFbGVtZW50KToKKyAgICAgIiIi CisgICAgIGNkZWYgTW9kdWxlRWxlbWVudCBfdmFsCisgCistICAgIGNkZWYgVHJvcGljYWxTZW1p cmluZ0VsZW1lbnQgX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBUcm9waWNhbFNlbWly aW5nRWxlbWVudCBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBu ZXcgdHJvcGljYWwgc2VtaXJpbmcgZWxlbWVudCB3aXRoIHBhcmVudCBgYHNlbGZgLgorICAgICAg ICAgIiIiCitAQCAtMTMyLDcgKzEzMiw3IEBAIGNkZWYgY2xhc3MgVHJvcGljYWxTZW1pcmluZ0Vs ZW1lbnQoRWxlbWVudCk6CisgICAgICAgICByZXR1cm4gaGFzaChzZWxmLl92YWwpCisgCisgICAg ICMgQ29tcGFyaXNvbnMKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3Ap IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHN0YW5kYXJkIGNvbXBhcmlzb24gb2Yg YGBsZWZ0YGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0yMDYsNyArMjA2LDcgQEAgY2RlZiBjbGFz cyBUcm9waWNhbFNlbWlyaW5nRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1cm4g cmljaF90b19ib29sKG9wLCAxKQorICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgMCkK KyAKKy0gICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf YWRkXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBgYGxlZnRgYCB0 byBgYHJpZ2h0YGAuCisgCitAQCAtMjc0LDcgKzI3NCw3IEBAIGNkZWYgY2xhc3MgVHJvcGljYWxT ZW1pcmluZ0VsZW1lbnQoRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAg ICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigiY2Fubm90IG5lZ2F0ZSBhbnkgbm9uLWluZmluaXRl IGVsZW1lbnQiKQorIAorLSAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVs dGlwbHkgYGBsZWZ0YGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0zMDAsNyArMzAwLDcgQEAgY2Rl ZiBjbGFzcyBUcm9waWNhbFNlbWlyaW5nRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgIHguX3Zh bCA9IHNlbGYuX3ZhbCArIHJocy5fdmFsCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRl ZiBfZGl2XyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKGxlZnQsIHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlIGBgbGVmdGBgIGJ5IGBgcmlnaHRg YC4KKyAKK0BAIC0zOTgsNyArMzk4LDcgQEAgY2RlZiBjbGFzcyBUcm9waWNhbFNlbWlyaW5nRWxl bWVudChFbGVtZW50KToKKyAgICAgICAgIGZyb20gc2FnZS5yaW5ncy5pbmZpbml0eSBpbXBvcnQg aW5maW5pdHkKKyAgICAgICAgIHJldHVybiBpbmZpbml0eQorIAorLSAgICBjcGRlZiBNb2R1bGVF bGVtZW50IGxpZnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIE1vZHVsZUVsZW1lbnQgbGlm dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBgYHNl bGZgYCBsaWZ0ZWQgdG8gdGhlIGJhc2UuCisgCitAQCAtNjU2LDcgKzY1Niw3IEBAIGNkZWYgY2xh c3MgVHJvcGljYWxUb1Ryb3BpY2FsKE1hcCk6CisgICAgIE1hcCBmcm9tIHRoZSB0cm9waWNhbCBz ZW1pcmluZyB0byBpdHNlbGYgKHBvc3NpYmx5IHdpdGggZGlmZmVyZW50IGJhc2VzKS4KKyAgICAg VXNlZCBpbiBjb2VyY2lvbi4KKyAgICAgIiIiCistICAgIGNwZGVmIFRyb3BpY2FsU2VtaXJpbmdF bGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgVHJvcGljYWxTZW1p cmluZ0VsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2VsZW1l bnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2VsZW1lbnQucHhkCitpbmRleCA1 YzUyOTgyNWU0Yy4uM2NhZmUzMzBmYjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy90YXRl X2FsZ2VicmFfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxnZWJyYV9l bGVtZW50LnB4ZAorQEAgLTEzLDE4ICsxMywxOCBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVy bShNb25vaWRFbGVtZW50KToKKyAgICAgY2RlZiBwQWRpY0dlbmVyaWNFbGVtZW50IF9jb2VmZgor ICAgICBjZGVmIEVUdXBsZSBfZXhwb25lbnQKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3Ro ZXIpIG5vZXhjZXB0CistICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9mbG9vcmRpdl9jKHNlbGYs IFRhdGVBbGdlYnJhVGVybSBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zsb29yZGl2Xyhz ZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAg IGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9mbG9vcmRpdl9jKHNlbGYsIFRhdGVBbGdlYnJhVGVybSBv dGhlcikKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCBvdGhlcikKKyAKKy0gICAgY2RlZiBU YXRlQWxnZWJyYVRlcm0gX25ld19jKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgVGF0ZUFsZ2Vi cmFUZXJtIF9uZXdfYyhzZWxmKQorICAgICBjZGVmIGxvbmcgX3ZhbHVhdGlvbl9jKHNlbGYpIG5v ZXhjZXB0CisgICAgIGNkZWYgbG9uZyBfY21wX2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIG90aGVy KSBleGNlcHQ/IDMwMAorLSAgICBjZGVmIEVsZW1lbnQgX2NhbGxfYyhzZWxmLCBsaXN0IGFyZykg bm9leGNlcHQKKy0gICAgY3BkZWYgVGF0ZUFsZ2VicmFUZXJtIG1vbm9taWFsKHNlbGYpIG5vZXhj ZXB0CistICAgIGNwZGVmIFRhdGVBbGdlYnJhVGVybSBtb25pYyhzZWxmKSBub2V4Y2VwdAorLSAg ICBjZGVmIFRhdGVBbGdlYnJhVGVybSBfZ2NkX2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIG90aGVy KSBub2V4Y2VwdAorLSAgICBjZGVmIFRhdGVBbGdlYnJhVGVybSBfbGNtX2Moc2VsZiwgVGF0ZUFs Z2VicmFUZXJtIG90aGVyKSBub2V4Y2VwdAorKyAgICBjZGVmIEVsZW1lbnQgX2NhbGxfYyhzZWxm LCBsaXN0IGFyZykKKysgICAgY3BkZWYgVGF0ZUFsZ2VicmFUZXJtIG1vbm9taWFsKHNlbGYpCisr ICAgIGNwZGVmIFRhdGVBbGdlYnJhVGVybSBtb25pYyhzZWxmKQorKyAgICBjZGVmIFRhdGVBbGdl YnJhVGVybSBfZ2NkX2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIG90aGVyKQorKyAgICBjZGVmIFRh dGVBbGdlYnJhVGVybSBfbGNtX2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIG90aGVyKQorICAgICBj ZGVmIGJpbnQgX2RpdmlkZXNfYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gb3RoZXIsIGJpbnQgaW50 ZWdyYWwpIG5vZXhjZXB0CisgCisgCitAQCAtMzUsMTUgKzM1LDE1IEBAIGNkZWYgY2xhc3MgVGF0 ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICBjZGVmIGxp c3QgX3Rlcm1zX25vbnplcm8KKyAgICAgY2RlZiBiaW50IF9pc19ub3JtYWxpemVkCisgCistICAg IGNkZWYgX25vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIFRhdGVBbGdlYnJhRWxl bWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBsaXN0IF90ZXJtc19jKHNlbGYs IGJpbnQgaW5jbHVkZV96ZXJvPSopIG5vZXhjZXB0CistICAgIGNwZGVmIHZhbHVhdGlvbihzZWxm KSBub2V4Y2VwdAorLSAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfdGVybV9tdWxfYyhzZWxm LCBUYXRlQWxnZWJyYVRlcm0gdGVybSkgbm9leGNlcHQKKy0gICAgY2RlZiBUYXRlQWxnZWJyYUVs ZW1lbnQgX3Bvc2l0aXZlX2xzaGlmdF9jKHNlbGYsIG4pIG5vZXhjZXB0CistICAgIGNkZWYgVGF0 ZUFsZ2VicmFFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBuKSBub2V4Y2VwdAorLSAgICBjcGRlZiBU YXRlQWxnZWJyYUVsZW1lbnQgbW9uaWMoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfcXVvX3Jl bV9jKHNlbGYsIGxpc3QgZGl2aXNvcnMsIGJpbnQgcXVvLCBiaW50IHJlbSwgYmludCBpbnRlZ3Jh bCkgbm9leGNlcHQKKy0gICAgY2RlZiBfcXVvX3JlbV9jaGVjayhzZWxmLCBkaXZpc29ycywgYmlu dCBxdW8sIGJpbnQgcmVtKSBub2V4Y2VwdAorLSAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBf U3BvbHlfYyhzZWxmLCBUYXRlQWxnZWJyYUVsZW1lbnQgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNk ZWYgX25vcm1hbGl6ZShzZWxmKQorKyAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfbmV3X2Mo c2VsZikKKysgICAgY2RlZiBsaXN0IF90ZXJtc19jKHNlbGYsIGJpbnQgaW5jbHVkZV96ZXJvPSop CisrICAgIGNwZGVmIHZhbHVhdGlvbihzZWxmKQorKyAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVu dCBfdGVybV9tdWxfYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gdGVybSkKKysgICAgY2RlZiBUYXRl QWxnZWJyYUVsZW1lbnQgX3Bvc2l0aXZlX2xzaGlmdF9jKHNlbGYsIG4pCisrICAgIGNkZWYgVGF0 ZUFsZ2VicmFFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBuKQorKyAgICBjcGRlZiBUYXRlQWxnZWJy YUVsZW1lbnQgbW9uaWMoc2VsZikKKysgICAgY2RlZiBfcXVvX3JlbV9jKHNlbGYsIGxpc3QgZGl2 aXNvcnMsIGJpbnQgcXVvLCBiaW50IHJlbSwgYmludCBpbnRlZ3JhbCkKKysgICAgY2RlZiBfcXVv X3JlbV9jaGVjayhzZWxmLCBkaXZpc29ycywgYmludCBxdW8sIGJpbnQgcmVtKQorKyAgICBjZGVm IFRhdGVBbGdlYnJhRWxlbWVudCBfU3BvbHlfYyhzZWxmLCBUYXRlQWxnZWJyYUVsZW1lbnQgb3Ro ZXIpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2VsZW1lbnQu cHl4IGIvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2VsZW1lbnQucHl4CitpbmRleCBlODEy YTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy90YXRlX2Fs Z2VicmFfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxnZWJyYV9lbGVt ZW50LnB5eAorQEAgLTE2Nyw3ICsxNjcsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShN b25vaWRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGhhc2goKHNlbGYu X2NvZWZmLCBzZWxmLl9leHBvbmVudCkpCisgCistICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9u ZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBUYXRlQWxnZWJyYVRlcm0gX25ld19jKHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgRmFzdCBjcmVhdGlvbiBvZiBhIFRhdGUgYWxn ZWJyYSB0ZXJtLgorIAorQEAgLTMwOSw3ICszMDksNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJh VGVybShNb25vaWRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X2V4cG9uZW50CisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgVGF0ZSBhbGdlYnJhIHRlcm0gd2l0aCBgYG90aGVyYGAu CisgCitAQCAtMzg1LDcgKzM4NSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9p ZEVsZW1lbnQpOgorICAgICAgICAgICAgIGMgPSAoa3MgPiBrbykgLSAoa3MgPCBrbykKKyAgICAg ICAgIHJldHVybiBjCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9w KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgor ICAgICAgICAgciIiIgorICAgICAgICAgQ29tcGFyZSB0aGUgVGF0ZSBhbGdlYnJhIHRlcm0gd2l0 aCBgYG90aGVyYGAgYWNjb3JkaW5nIHRvCisgICAgICAgICB0aGUgcmljaCBjb21wYXJpc29uIG9w ZXJhdG9yIGBgb3BgYC4KK0BAIC00NDYsNyArNDQ2LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJy YVRlcm0oTW9ub2lkRWxlbWVudCk6CisgICAgICAgICBjID0gKDxUYXRlQWxnZWJyYVRlcm0+c2Vs ZikuX2NtcF9jKDxUYXRlQWxnZWJyYVRlcm0+b3RoZXIpCisgICAgICAgICByZXR1cm4gcmljaF90 b19ib29sX3NnbihvcCwgYykKKyAKKy0gICAgY3BkZWYgVGF0ZUFsZ2VicmFUZXJtIG1vbm9taWFs KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBUYXRlQWxnZWJyYVRlcm0gbW9ub21pYWwoc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhpcyB0ZXJtIGRpdmlkZWQgYnkg aXRzIGNvZWZmaWNpZW50LgorIAorQEAgLTQ2Niw3ICs0NjYsNyBAQCBjZGVmIGNsYXNzIFRhdGVB bGdlYnJhVGVybShNb25vaWRFbGVtZW50KToKKyAgICAgICAgIGFucy5fZXhwb25lbnQgPSBzZWxm Ll9leHBvbmVudAorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBUYXRlQWxnZWJy YVRlcm0gbW9uaWMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFRhdGVBbGdlYnJhVGVybSBt b25pYyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGlzIHRlcm0gbm9y bWFsaXplZCBzbyB0aGF0IGl0IGhhcyB2YWx1YXRpb24gMAorICAgICAgICAgYW5kIGl0cyBjb2Vm ZmljaWVudCBpcyBhIHBvd2VyIG9mIHRoZSB1bmlmb3JtaXplci4KK0BAIC01NTcsNyArNTU3LDcg QEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lkRWxlbWVudCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiAoPHBBZGljR2VuZXJpY0VsZW1lbnQ+c2VsZi5fY29lZmYpLnZh bHVhdGlvbl9jKCkgLSA8bG9uZz5zZWxmLl9leHBvbmVudC5kb3Rwcm9kKHNlbGYuX3BhcmVudC5f bG9nX3JhZGlpKQorIAorLSAgICBjZGVmIEVsZW1lbnQgX2NhbGxfYyhzZWxmLCBsaXN0IGFyZykg bm9leGNlcHQ6CisrICAgIGNkZWYgRWxlbWVudCBfY2FsbF9jKHNlbGYsIGxpc3QgYXJnKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoaXMgdGVybSBldmFsdWF0ZWQgYXQgYGBhcmdz YGAuCisgCitAQCAtNzI1LDcgKzcyNSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1v bm9pZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZ2NkX2Mo b3RoZXIpCisgCistICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9nY2RfYyhzZWxmLCBUYXRlQWxn ZWJyYVRlcm0gb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIFRhdGVBbGdlYnJhVGVybSBfZ2Nk X2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdGhpcyB0ZXJtIGFuZCBgYG90 aGVyYGAuCisgCitAQCAtNzk1LDcgKzc5NSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJt KE1vbm9pZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbGNt X2Mob3RoZXIpCisgCistICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9sY21fYyhzZWxmLCBUYXRl QWxnZWJyYVRlcm0gb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIFRhdGVBbGdlYnJhVGVybSBf bGNtX2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgbGVhc3QgY29tbW9uIG11bHRpcGxlIG9mIHR3byBUYXRlIHRlcm1zLgor IAorQEAgLTk4MCw3ICs5ODAsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShNb25vaWRF bGVtZW50KToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4g VHJ1ZQorIAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgZXhhY3QgZGl2aXNpb24gb2YgdGhpcyB0ZXJtIGJ5 IGBgb3RoZXJgYC4KKyAKK0BAIC0xMDEzLDcgKzEwMTMsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdl YnJhVGVybShNb25vaWRFbGVtZW50KToKKyAgICAgICAgIHJldHVybiAoPFRhdGVBbGdlYnJhVGVy bT5zZWxmKS5fZmxvb3JkaXZfYyg8VGF0ZUFsZ2VicmFUZXJtPm90aGVyKQorIAorIAorLSAgICBj ZGVmIFRhdGVBbGdlYnJhVGVybSBfZmxvb3JkaXZfYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gb3Ro ZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIFRhdGVBbGdlYnJhVGVybSBfZmxvb3JkaXZfYyhzZWxm LCBUYXRlQWxnZWJyYVRlcm0gb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSByZXN1bHQgb2YgdGhlIGV4YWN0IGRpdmlzaW9uIG9mIHRoaXMgdGVybSBieSBgYG90aGVy YGAuCisgCitAQCAtMTEyMCw3ICsxMTIwLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1l bnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBpZiBub3QgcGFyZW50LmJh c2VfcmluZygpLmlzX2ZpZWxkKCkgYW5kIHNlbGYudmFsdWF0aW9uKCkgPCAwOgorICAgICAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoInRoaXMgc2VyaWVzIGlzIG5vdCBpbiB0aGUgcmluZyBvZiBp bnRlZ2VycyIpCisgCistICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF9uZXdfYyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgX25ld19jKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBGYXN0IGNyZWF0aW9uIG9mIGEgbmV3IFRhdGUgc2VyaWVzLgor IAorQEAgLTExMzgsNyArMTEzOCw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENv bW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgYW5zLl90ZXJtcyA9IGFucy5fdGVy bXNfbm9uemVybyA9IE5vbmUKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBfbm9y bWFsaXplKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9ub3JtYWxpemUoc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIE5vcm1hbGl6ZSB0aGlzIHNlcmllcy4KKyAKK0BAIC0xMjc5LDcg KzEyNzksNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2Vi cmFFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcyArPSAiT1xcbGVmdCglc157JXN9ICVzXFxy aWdodCkiICUgKHNlbGYuX3BhcmVudC5fdW5pZm9ybWl6ZXJfbGF0ZXgsIHNlbGYuX3ByZWMsIHNl bGYuX3BhcmVudC5pbnRlZ2VyX3JpbmcoKS5fbGF0ZXhfKCkpCisgICAgICAgICByZXR1cm4gcwor IAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9h ZGRfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3Vt IG9mIHRoaXMgc2VyaWVzIGFuZCBgYG90aGVyYGAuCisgCitAQCAtMTMxNCw3ICsxMzE0LDcgQEAg Y2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6 CisgICAgICAgICBhbnMuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAg IGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgb3Bwb3NpdGUgb2YgdGhpcyBzZXJpZXMu CisgCitAQCAtMTMzNCw3ICsxMzM0LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQo Q29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBhbnMuX3ByZWMgPSBzZWxmLl9w cmVjCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVy KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBkaWZmZXJlbmNlIG9mIHRoaXMgc2VyaWVzIGFuZCBgYG90 aGVyYGAuCisgCitAQCAtMTM2Nyw3ICsxMzY3LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVs ZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBhbnMuX25vcm1hbGl6 ZSgpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVy KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgc2VyaWVzIHdpdGggYGBvdGhl cmBgLgorIAorQEAgLTE0MDIsNyArMTQwMiw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVt ZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgYW5zLl9ub3JtYWxpemUo KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVu dCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0aGlzIHNl cmllcyBieSBgYHJpZ2h0YGAuCisgCitAQCAtMTc4Myw3ICsxNzgzLDcgQEAgY2RlZiBjbGFzcyBU YXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBy ZXR1cm4gcm9vdAorIAorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBv cCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmUgdGhpcyBzZXJpZXMgd2l0aCBgYG90aGVy YGAgYWNjb3JkaW5nIHRvCisgICAgICAgICB0aGUgcmljaCBjb21wYXJpc29uIG9wZXJhdG9yIGBg b3BgYC4KK0BAIC0xOTIyLDcgKzE5MjIsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVu dChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcGFzcworICAg ICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfdGVybV9t dWxfYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gdGVybSkgbm9leGNlcHQ6CisrICAgIGNkZWYgVGF0 ZUFsZ2VicmFFbGVtZW50IF90ZXJtX211bF9jKHNlbGYsIFRhdGVBbGdlYnJhVGVybSB0ZXJtKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0aGlzIHNlcmll cyBieSB0aGUgdGVybSBgYHRlcm1gYC4KKyAKK0BAIC0xOTQzLDcgKzE5NDMsNyBAQCBjZGVmIGNs YXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAg ICAgIGFucy5fcHJlYyA9IHNlbGYuX3ByZWMgKyB0ZXJtLl92YWx1YXRpb25fYygpCisgICAgICAg ICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF9wb3NpdGl2ZV9s c2hpZnRfYyhzZWxmLCBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQg X3Bvc2l0aXZlX2xzaGlmdF9jKHNlbGYsIG4pOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgc2VyaWVzIGJ5IHRoZSBgYG5gYC10aCBwb3dlcgorICAg ICAgICAgb2YgdGhlIHVuaWZvcm1pemVyLgorQEAgLTE5NzIsNyArMTk3Miw3IEBAIGNkZWYgY2xh c3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAg ICAgYW5zLl9wcmVjID0gc2VsZi5fcHJlYyArIG4KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0g ICAgY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIG4pIG5vZXhjZXB0Ogor KyAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbik6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBzZXJpZXMgYnkgdGhl IGBgbmBgLXRoIHBvd2VyCisgICAgICAgICBvZiB0aGUgdW5pZm9ybWl6ZXIuCitAQCAtMjE5MCw3 ICsyMTkwLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdl YnJhRWxlbWVudCk6CisgICAgICAgICAgICAgc2VsZi5fdGVybXMgPSBOb25lCisgICAgICAgICBy ZXR1cm4gc2VsZi5fdGVybXNfYygpCisgCistICAgIGNkZWYgbGlzdCBfdGVybXNfYyhzZWxmLCBi aW50IGluY2x1ZGVfemVybz1UcnVlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBsaXN0IF90ZXJtc19j KHNlbGYsIGJpbnQgaW5jbHVkZV96ZXJvPVRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIGEgbGlzdCBvZiB0aGUgdGVybXMgb2YgdGhpcyBzZXJpZXMgc29ydGVkIGluIGRlc2Nl bmRpbmcgb3JkZXIuCisgCitAQCAtMjQ1Myw3ICsyNDUzLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxn ZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLl9wcmVjCisgCistICAgIGNwZGVmIHZhbHVhdGlvbihzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgdmFsdWF0aW9uKHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSB2YWx1YXRpb24gb2YgdGhpcyBzZXJpZXMuCisgCitAQCAtMjk0MSw3 ICsyOTQxLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdl YnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxlYWRpbmdf dGVybShzZWN1cmU9c2VjdXJlKS5tb25vbWlhbCgpCisgCistICAgIGNwZGVmIFRhdGVBbGdlYnJh RWxlbWVudCBtb25pYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgVGF0ZUFsZ2VicmFFbGVt ZW50IG1vbmljKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoaXMgc2Vy aWVzIG5vcm1hbGl6ZWQgc28gdGhhdCBpdCBoYXMgdmFsdWF0aW9uIDAKKyAgICAgICAgIGFuZCBp dHMgbGVhZGluZyBjb2VmZmljaWVudCBpcyBhIHBvd2VyIG9mIHRoZSB1bmlmb3JtaXplci4KK0BA IC0zMTYyLDcgKzMxNjIsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRh dGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIHBvbHkgPSBzZWxmLl9wYXJlbnQuX3BvbHlu b21pYWxfcmluZyhzZWxmLl9wb2x5KQorICAgICAgICAgcmV0dXJuIHBvbHkuY2hhbmdlX3Jpbmco Um4pCisgCistICAgIGNkZWYgX3F1b19yZW1fYyhzZWxmLCBsaXN0IGRpdmlzb3JzLCBiaW50IHF1 bywgYmludCByZW0sIGJpbnQgaW50ZWdyYWwpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9xdW9fcmVt X2Moc2VsZiwgbGlzdCBkaXZpc29ycywgYmludCBxdW8sIGJpbnQgcmVtLCBiaW50IGludGVncmFs KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFBlcmZvcm0gdGhlIGRpdmlzaW9uIG9mIHRoaXMg c2VyaWVzIGJ5IGBgZGl2aXNvcnNgYC4KKyAKK0BAIC0zMjM1LDcgKzMyMzUsNyBAQCBjZGVmIGNs YXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAg ICAgICAgICBmLl90ZXJtcyA9IE5vbmUKKyAgICAgICAgIHJldHVybiBxdW9zLCBmCisgCistICAg IGNkZWYgX3F1b19yZW1fY2hlY2soc2VsZiwgZGl2aXNvcnMsIGJpbnQgcXVvLCBiaW50IHJlbSkg bm9leGNlcHQ6CisrICAgIGNkZWYgX3F1b19yZW1fY2hlY2soc2VsZiwgZGl2aXNvcnMsIGJpbnQg cXVvLCBiaW50IHJlbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBlcmZvcm0gdGhlIGRpdmlz aW9uIG9mIHRoaXMgc2VyaWVzIGJ5IGBgZGl2aXNvcnNgYC4KKyAKK0BAIC0zNDkxLDcgKzM0OTEs NyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVt ZW50KToKKyAgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgorICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoInRoZSBTLXBvbHlub21pYWwgb2YgemVybyBpcyBub3QgZGVmaW5lZCIpCisgCist ICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF9TcG9seV9jKHNlbGYsIFRhdGVBbGdlYnJhRWxl bWVudCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF9TcG9s eV9jKHNlbGYsIFRhdGVBbGdlYnJhRWxlbWVudCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgUy1wb2x5bm9taWFsIG9mIHRoaXMgc2VyaWVzIGFuZCBgYG90aGVyYGAu CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2lkZWFsLnB4ZCBi L3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxnZWJyYV9pZGVhbC5weGQKK2luZGV4IGQ2YzIzOWI5YTBj Li5lNTU4MWUwNmI4YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxnZWJyYV9p ZGVhbC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxnZWJyYV9pZGVhbC5weGQKK0BA IC0xLDYgKzEsNiBAQAorIGZyb20gc2FnZS5yaW5ncy50YXRlX2FsZ2VicmFfZWxlbWVudCBjaW1w b3J0IFRhdGVBbGdlYnJhVGVybQorIGZyb20gc2FnZS5yaW5ncy50YXRlX2FsZ2VicmFfZWxlbWVu dCBjaW1wb3J0IFRhdGVBbGdlYnJhRWxlbWVudAorIAorLWNkZWYgSnBhaXIocDEsIHAyKSBub2V4 Y2VwdAorLWNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IHJlZ3VsYXJfcmVkdWNlKHNnYiwgVGF0ZUFs Z2VicmFUZXJtIHMsIFRhdGVBbGdlYnJhRWxlbWVudCB2LCBzdG9wdmFsKSBub2V4Y2VwdAorLWNk ZWYgVGF0ZUFsZ2VicmFFbGVtZW50IHJlZHVjZShnYiwgVGF0ZUFsZ2VicmFFbGVtZW50IHYsIHN0 b3B2YWwpIG5vZXhjZXB0CisrY2RlZiBKcGFpcihwMSwgcDIpCisrY2RlZiBUYXRlQWxnZWJyYUVs ZW1lbnQgcmVndWxhcl9yZWR1Y2Uoc2diLCBUYXRlQWxnZWJyYVRlcm0gcywgVGF0ZUFsZ2VicmFF bGVtZW50IHYsIHN0b3B2YWwpCisrY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgcmVkdWNlKGdiLCBU YXRlQWxnZWJyYUVsZW1lbnQgdiwgc3RvcHZhbCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy90YXRlX2FsZ2VicmFfaWRlYWwucHl4IGIvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2lk ZWFsLnB5eAoraW5kZXggYjI3Yzk4MTEwYTMuLjgwMjk4NDg3NGI3IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2lkZWFsLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3Mv dGF0ZV9hbGdlYnJhX2lkZWFsLnB5eAorQEAgLTU2Nyw3ICs1NjcsNyBAQCBkZWYgZ3JvZWJuZXJf YmFzaXNfYnVjaGJlcmdlcihJLCBwcmVjLCBweV9pbnRlZ3JhbCk6CisgCisgIyBGNSBhbGdvcml0 aG1zCisgCistY2RlZiBKcGFpcihwMSwgcDIpIG5vZXhjZXB0OgorK2NkZWYgSnBhaXIocDEsIHAy KToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIEotcGFpciBvZiBgYHAxYGAgYW5kIGBgcDJg YAorIAorQEAgLTYwNSw3ICs2MDUsNyBAQCBjZGVmIEpwYWlyKHAxLCBwMikgbm9leGNlcHQ6Cisg ICAgICAgICByZXR1cm4gc3UyLCB0Mip2MgorIAorIAorLWNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50 IHJlZ3VsYXJfcmVkdWNlKHNnYiwgVGF0ZUFsZ2VicmFUZXJtIHMsIFRhdGVBbGdlYnJhRWxlbWVu dCB2LCBzdG9wdmFsKSBub2V4Y2VwdDoKKytjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCByZWd1bGFy X3JlZHVjZShzZ2IsIFRhdGVBbGdlYnJhVGVybSBzLCBUYXRlQWxnZWJyYUVsZW1lbnQgdiwgc3Rv cHZhbCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIHJlZ3VsYXIg cmVkdWN0aW9uIG9mIHRoZSBwYWlyIGBgKHMsdilgYCBieSBgYHNnYmBgCisgCitAQCAtNjg5LDcg KzY4OSw3IEBAIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IHJlZ3VsYXJfcmVkdWNlKHNnYiwgVGF0 ZUFsZ2VicmFUZXJtIHMsIFRhdGVBbGdlYnJhRWxlbWVuCisgICAgIHJldHVybiBmCisgCisgCist Y2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgcmVkdWNlKGdiLCBUYXRlQWxnZWJyYUVsZW1lbnQgdiwg c3RvcHZhbCkgbm9leGNlcHQ6CisrY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgcmVkdWNlKGdiLCBU YXRlQWxnZWJyYUVsZW1lbnQgdiwgc3RvcHZhbCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRo ZSByZXN1bHQgb2YgdGhlIHJlZHVjdGlvbiBvZiBgYHZgYCBieSBgYGdiYGAKKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9tb2Rfc3ltX251bS5weXggYi9z cmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9tb2Rfc3ltX251bS5weXgKK2luZGV4IGRh Y2E5NmI5Zjk3Li5hMTMxZGM4YTQ3YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3NjaGVtZXMvZWxs aXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5eAorKysrIGIvc3JjL3NhZ2Uvc2NoZW1lcy9lbGxp cHRpY19jdXJ2ZXMvbW9kX3N5bV9udW0ucHl4CitAQCAtMjAxNCw3ICsyMDE0LDcgQEAgY2RlZiBj bGFzcyBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbnRlZ2VyIGVwc1EsIEludGVnZXIgZXBzUVEsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGxvbmcqIHdRLCBsbG9uZyogd1FRLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBULCBpbnQgcHJlYywgZG91YmxlIGVwcywKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdXNlX3BhcnRpYWxzPTIpIG5v ZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB1c2VfcGFy dGlhbHM9Mik6CisgICAgICAgICByIiIiCisgICAgICAgICBUaGlzIGlzIGp1c3QgYSBoZWxwZXIg ZnVuY3Rpb24gZm9yIF9mcm9tX3JfdG9fcnJfYXBwcm94LiBJbiBjYXNlCisgICAgICAgICB0aGUg aW50ZWdyYWwgaXMgZXZhbHVhdGVkIGRpcmVjdGx5IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL3BlcmlvZF9sYXR0 aWNlX3JlZ2lvbi5weXggYi9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9wZXJpb2Rf bGF0dGljZV9yZWdpb24ucHl4CitpbmRleCAwNmU2NTI1ZjVjMy4uYjA5MTRkNjM0N2EgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9wZXJpb2RfbGF0dGljZV9y ZWdpb24ucHl4CisrKysgYi9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9wZXJpb2Rf bGF0dGljZV9yZWdpb24ucHl4CitAQCAtNjY1LDcgKzY2NSw3IEBAIGNkZWYgY2xhc3MgUGVyaW9k aWNSZWdpb246CisgICAgICAgICByZXR1cm4gc3VtKEwsIEYpCisgCisgCistY2RlZiBmcmFtZV9k YXRhKGRhdGEsIGJpbnQgZnVsbD1UcnVlKSBub2V4Y2VwdDoKKytjZGVmIGZyYW1lX2RhdGEoZGF0 YSwgYmludCBmdWxsPVRydWUpOgorICAgICAiIiIKKyAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciBQ ZXJpb2RpY1JlZ2lvbi5leHBhbmQoKSBhbmQKKyAgICAgUGVyaW9kaWNSZWdpb24uYm9yZGVyKCku ICBUaGlzIG1ha2VzICJ3cmFwcGluZyBhcm91bmQiIHdvcmsKK0BAIC02OTUsNyArNjk1LDcgQEAg Y2RlZiBmcmFtZV9kYXRhKGRhdGEsIGJpbnQgZnVsbD1UcnVlKSBub2V4Y2VwdDoKKyAgICAgZnJh bWVkWy0xLDpdID0gZnJhbWVkWy0zLDpdCisgICAgIHJldHVybiBmcmFtZWQKKyAKKy1jZGVmIHVu ZnJhbWVfZGF0YShmcmFtZWQsIGJpbnQgZnVsbD1UcnVlKSBub2V4Y2VwdDoKKytjZGVmIHVuZnJh bWVfZGF0YShmcmFtZWQsIGJpbnQgZnVsbD1UcnVlKToKKyAgICAgIiIiCisgICAgIEhlbHBlciBm dW5jdGlvbiBmb3IgUGVyaW9kaWNSZWdpb24uZXhwYW5kKCkuICBUaGlzIGdsdWVzIHRoZQorICAg ICBib3JkZXJzIHRvZ2V0aGVyIHVzaW5nIHRoZSAib3IiIG9wZXJhdG9yLgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3NjaGVtZXMvdG9yaWMvZGl2aXNvcl9jbGFzcy5weXggYi9zcmMvc2FnZS9zY2hl bWVzL3RvcmljL2Rpdmlzb3JfY2xhc3MucHl4CitpbmRleCAzYzlhOTE0M2VhZi4uNWE5MmZlNWIz OGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zY2hlbWVzL3RvcmljL2Rpdmlzb3JfY2xhc3MucHl4 CisrKysgYi9zcmMvc2FnZS9zY2hlbWVzL3RvcmljL2Rpdmlzb3JfY2xhc3MucHl4CitAQCAtMTM3 LDcgKzEzNyw3IEBAIGNkZWYgY2xhc3MgVG9yaWNSYXRpb25hbERpdmlzb3JDbGFzcyhWZWN0b3Jf cmF0aW9uYWxfZGVuc2UpOgorICAgICAgICAgICAgICAgICAoc2VsZi5fcGFyZW50LCBsaXN0KHNl bGYpLCBzZWxmLl9kZWdyZWUsCisgICAgICAgICAgICAgICAgICBub3Qgc2VsZi5faXNfaW1tdXRh YmxlKSkKKyAKKy0gICAgY3BkZWYgX2FjdF9vbl8oc2VsZiwgb3RoZXIsIGJpbnQgc2VsZl9vbl9s ZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF9vbl8oc2VsZiwgb3RoZXIsIGJpbnQgc2Vs Zl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWN0IG9uIGBgb3RoZXJgYC4KKyAK K0BAIC0yMDIsNyArMjAyLDcgQEAgY2RlZiBjbGFzcyBUb3JpY1JhdGlvbmFsRGl2aXNvckNsYXNz KFZlY3Rvcl9yYXRpb25hbF9kZW5zZSk6CisgICAgICAgICAjIE5vdyBsZXQgdGhlIHN0YW5kYXJk IGZyYW1ld29yayB3b3JrLi4uCisgICAgICAgICByZXR1cm4gVmVjdG9yX3JhdGlvbmFsX2RlbnNl Ll9hY3Rfb25fKHNlbGYsIG90aGVyLCBzZWxmX29uX2xlZnQpCisgCistICAgIGNwZGVmIF9kb3Rf cHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2RvdF9w cm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmFp c2UgYSBgYFR5cGVFcnJvcmBgIGV4Y2VwdGlvbi4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9z ZXRzL2Zpbml0ZV9zZXRfbWFwX2N5LnB4ZCBiL3NyYy9zYWdlL3NldHMvZmluaXRlX3NldF9tYXBf Y3kucHhkCitpbmRleCA5OThlNGY1ODcyOS4uZGFhNDZjMDk5ZTAgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9zZXRzL2Zpbml0ZV9zZXRfbWFwX2N5LnB4ZAorKysrIGIvc3JjL3NhZ2Uvc2V0cy9maW5p dGVfc2V0X21hcF9jeS5weGQKK0BAIC01LDI5ICs1LDI5IEBACisgIyAgICAgICAgICAgICAgICAg IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8KKyAjKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAK Ky1jcGRlZiBmaWJlcnMoZiwgZG9tYWluKSBub2V4Y2VwdAorK2NwZGVmIGZpYmVycyhmLCBkb21h aW4pCisgCisgZnJvbSBzYWdlLnN0cnVjdHVyZS5wYXJlbnQgY2ltcG9ydCBQYXJlbnQKKyBmcm9t IHNhZ2Uuc3RydWN0dXJlLmxpc3RfY2xvbmUgY2ltcG9ydCBDbG9uYWJsZUludEFycmF5CisgCisg Y2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfTU4oQ2xvbmFibGVJbnRBcnJheSk6CistICAgIGNwZGVm IF9zZXRpbWFnZShzZWxmLCBpbnQgaSwgaW50IGopIG5vZXhjZXB0CistICAgIGNwZGVmIF9nZXRp bWFnZShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYgc2V0aW1hZ2Uoc2VsZiwgaSwg aikgbm9leGNlcHQKKy0gICAgY3BkZWYgZ2V0aW1hZ2Uoc2VsZiwgaSkgbm9leGNlcHQKKy0gICAg Y3BkZWYgZG9tYWluKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNvZG9tYWluKHNlbGYpIG5v ZXhjZXB0CistICAgIGNwZGVmIGltYWdlX3NldChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBm aWJlcnMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXRlbXMoc2VsZikgbm9leGNlcHQKKysg ICAgY3BkZWYgX3NldGltYWdlKHNlbGYsIGludCBpLCBpbnQgaikKKysgICAgY3BkZWYgX2dldGlt YWdlKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBzZXRpbWFnZShzZWxmLCBpLCBqKQorKyAgICBj cGRlZiBnZXRpbWFnZShzZWxmLCBpKQorKyAgICBjcGRlZiBkb21haW4oc2VsZikKKysgICAgY3Bk ZWYgY29kb21haW4oc2VsZikKKysgICAgY3BkZWYgaW1hZ2Vfc2V0KHNlbGYpCisrICAgIGNwZGVm IGZpYmVycyhzZWxmKQorKyAgICBjcGRlZiBpdGVtcyhzZWxmKQorICAgICBjcGRlZiBGaW5pdGVT ZXRNYXBfTU4gX2NvbXBvc2VfaW50ZXJuYWxfKHNlbGYsIEZpbml0ZVNldE1hcF9NTiBvdGhlciwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJlbnQgcmVz UGFyZW50KSBub2V4Y2VwdAorLSAgICBjcGRlZiBjaGVjayhzZWxmKSBub2V4Y2VwdAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmVudCByZXNQYXJlbnQp CisrICAgIGNwZGVmIGNoZWNrKHNlbGYpCisgCisgY2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfU2V0 KEZpbml0ZVNldE1hcF9NTik6IHBhc3MKKyAKKy1jcGRlZiBGaW5pdGVTZXRNYXBfU2V0IEZpbml0 ZVNldE1hcF9TZXRfZnJvbV9saXN0KGNscywgcGFyZW50LCBsc3QpIG5vZXhjZXB0CistY3BkZWYg RmluaXRlU2V0TWFwX1NldCBGaW5pdGVTZXRNYXBfU2V0X2Zyb21fZGljdChjbHMsIHBhcmVudCwg ZCkgbm9leGNlcHQKKytjcGRlZiBGaW5pdGVTZXRNYXBfU2V0IEZpbml0ZVNldE1hcF9TZXRfZnJv bV9saXN0KGNscywgcGFyZW50LCBsc3QpCisrY3BkZWYgRmluaXRlU2V0TWFwX1NldCBGaW5pdGVT ZXRNYXBfU2V0X2Zyb21fZGljdChjbHMsIHBhcmVudCwgZCkKKyAKKyBjZGVmIGNsYXNzIEZpbml0 ZVNldEVuZG9NYXBfTihGaW5pdGVTZXRNYXBfTU4pOiBwYXNzCisgY2RlZiBjbGFzcyBGaW5pdGVT ZXRFbmRvTWFwX1NldChGaW5pdGVTZXRNYXBfU2V0KTogcGFzcworZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3NldHMvZmluaXRlX3NldF9tYXBfY3kucHl4IGIvc3JjL3NhZ2Uvc2V0cy9maW5pdGVfc2V0 X21hcF9jeS5weXgKK2luZGV4IDFmYWQ0MjNmYjgxLi5hMDZkYzBhMmJkOSAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3NldHMvZmluaXRlX3NldF9tYXBfY3kucHl4CisrKysgYi9zcmMvc2FnZS9zZXRz L2Zpbml0ZV9zZXRfbWFwX2N5LnB5eAorQEAgLTU4LDcgKzU4LDcgQEAgZnJvbSBzYWdlLmFyaXRo LnBvd2VyIGNpbXBvcnQgZ2VuZXJpY19wb3dlcgorIGZyb20gc2FnZS5zZXRzLnNldCBpbXBvcnQg U2V0X29iamVjdF9lbnVtZXJhdGVkCisgCisgCistY3BkZWYgZmliZXJzKGYsIGRvbWFpbikgbm9l eGNlcHQ6CisrY3BkZWYgZmliZXJzKGYsIGRvbWFpbik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJu cyB0aGUgZmliZXJzIG9mIHRoZSBmdW5jdGlvbiBgYGZgYCBvbiB0aGUgZmluaXRlIHNldCBgYGRv bWFpbmBgCisgCitAQCAtMTU3LDcgKzE1Nyw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFwX01O KENsb25hYmxlSW50QXJyYXkpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gVHJ1ZQor IAorLSAgICBjcGRlZiBkb21haW4oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRvbWFpbihz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgZG9tYWluIG9mIGBgc2Vs ZmBgCisgCitAQCAtMTY4LDcgKzE2OCw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFwX01OKENs b25hYmxlSW50QXJyYXkpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcGFy ZW50LmRvbWFpbigpCisgCistICAgIGNwZGVmIGNvZG9tYWluKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBjb2RvbWFpbihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyB0 aGUgY29kb21haW4gb2YgYGBzZWxmYGAKKyAKK0BAIC0xNzksNyArMTc5LDcgQEAgY2RlZiBjbGFz cyBGaW5pdGVTZXRNYXBfTU4oQ2xvbmFibGVJbnRBcnJheSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLl9wYXJlbnQuY29kb21haW4oKQorIAorLSAgICBjcGRlZiBfc2V0aW1h Z2Uoc2VsZiwgaW50IGksIGludCBqKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NldGltYWdlKHNl bGYsIGludCBpLCBpbnQgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgaW1hZ2Ug b2YgYGBpYGAgYXMgYGBqYGAgaW4gYGBzZWxmYGAKKyAKK0BAIC0yMjEsNyArMjIxLDcgQEAgY2Rl ZiBjbGFzcyBGaW5pdGVTZXRNYXBfTU4oQ2xvbmFibGVJbnRBcnJheSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHNlbGYuX3NldGl0ZW0oaSwgaikKKyAKKy0gICAgY3BkZWYgX2dldGltYWdlKHNl bGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2dldGltYWdlKHNlbGYsIGludCBpKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgaW1hZ2Ugb2YgYGBpYGAgYnkgYGBz ZWxmYGAKKyAKK0BAIC0yMzksNyArMjM5LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfTU4o Q2xvbmFibGVJbnRBcnJheSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9n ZXRpdGVtKGkpCisgCistICAgIGNwZGVmIHNldGltYWdlKHNlbGYsIGksIGopIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBzZXRpbWFnZShzZWxmLCBpLCBqKToKKyAgICAgICAgICIiIgorICAgICAgICAg U2V0IHRoZSBpbWFnZSBvZiBgYGlgYCBhcyBgYGpgYCBpbiBgYHNlbGZgYAorIAorQEAgLTI2OCw3 ICsyNjgsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNldE1hcF9NTihDbG9uYWJsZUludEFycmF5KToK KyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fc2V0aXRlbShpbnQoaSksIGludChqKSkKKyAK Ky0gICAgY3BkZWYgZ2V0aW1hZ2Uoc2VsZiwgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldGlt YWdlKHNlbGYsIGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBpbWFnZSBv ZiBgYGlgYCBieSBgYHNlbGZgYAorIAorQEAgLTI4Niw3ICsyODYsNyBAQCBjZGVmIGNsYXNzIEZp bml0ZVNldE1hcF9NTihDbG9uYWJsZUludEFycmF5KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYuX2dldGl0ZW0oaW50KGkpKQorIAorLSAgICBjcGRlZiBpbWFnZV9zZXQoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGltYWdlX3NldChzZWxmKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJucyB0aGUgaW1hZ2Ugc2V0IG9mIGBgc2VsZmBgCisgCitAQCAtMjk5LDcg KzI5OSw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFwX01OKENsb25hYmxlSW50QXJyYXkpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gU2V0X29iamVjdF9lbnVtZXJhdGVkKHNlbGYp CisgCistICAgIGNwZGVmIGZpYmVycyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZmliZXJz KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBmaWJlcnMgb2YgYGBz ZWxmYGAKKyAKK0BAIC0zMTgsNyArMzE4LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfTU4o Q2xvbmFibGVJbnRBcnJheSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBmaWJlcnMo c2VsZiwgc2VsZi5kb21haW4oKSkKKyAKKy0gICAgY3BkZWYgaXRlbXMoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGUgaXRl bXMgb2YgYGBzZWxmYGAKKyAKK0BAIC0zMzEsNyArMzMxLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVT ZXRNYXBfTU4oQ2xvbmFibGVJbnRBcnJheSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBbKGksIHNlbGYuX2dldGltYWdlKGkpKSBmb3IgaSBpbiBzZWxmLmRvbWFpbigpXQorIAorLSAg ICBjcGRlZiBjaGVjayhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hlY2soc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFBlcmZvcm1zIGNoZWNrcyBvbiBgYHNlbGZgYAorIAorQEAg LTM2Miw3ICszNjIsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNldE1hcF9NTihDbG9uYWJsZUludEFy cmF5KToKKyAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuY2hlY2tfZWxlbWVudChzZWxmKQorIAor ICAgICBjcGRlZiBGaW5pdGVTZXRNYXBfTU4gX2NvbXBvc2VfaW50ZXJuYWxfKHNlbGYsIEZpbml0 ZVNldE1hcF9NTiBvdGhlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYXJlbnQgcmVzUGFyZW50KSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJlbnQgcmVzUGFyZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTM4Myw3ICszODMsNyBAQCBjZGVmIGNsYXNzIEZp bml0ZVNldE1hcF9NTihDbG9uYWJsZUludEFycmF5KToKKyAgICAgICAgIHJldHVybiByZXMKKyAK KyAKKy1jcGRlZiBGaW5pdGVTZXRNYXBfU2V0IEZpbml0ZVNldE1hcF9TZXRfZnJvbV9saXN0KHQs IHBhcmVudCwgbHN0KSBub2V4Y2VwdDoKKytjcGRlZiBGaW5pdGVTZXRNYXBfU2V0IEZpbml0ZVNl dE1hcF9TZXRfZnJvbV9saXN0KHQsIHBhcmVudCwgbHN0KToKKyAgICAgIiIiCisgICAgIENyZWF0 ZXMgYSBgYEZpbml0ZVNldE1hcGBgIGZyb20gYSBsaXN0CisgCitAQCAtNDA2LDcgKzQwNiw3IEBA IGNwZGVmIEZpbml0ZVNldE1hcF9TZXQgRmluaXRlU2V0TWFwX1NldF9mcm9tX2xpc3QodCwgcGFy ZW50LCBsc3QpIG5vZXhjZXB0OgorICAgICBzdXBlcihGaW5pdGVTZXRNYXBfTU4sIHJlcykuX19p bml0X18ocGFyZW50LCBsc3QpCisgICAgIHJldHVybiByZXMKKyAKKy1jcGRlZiBGaW5pdGVTZXRN YXBfU2V0IEZpbml0ZVNldE1hcF9TZXRfZnJvbV9kaWN0KHQsIHBhcmVudCwgZCkgbm9leGNlcHQ6 CisrY3BkZWYgRmluaXRlU2V0TWFwX1NldCBGaW5pdGVTZXRNYXBfU2V0X2Zyb21fZGljdCh0LCBw YXJlbnQsIGQpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlcyBhIGBgRmluaXRlU2V0TWFwYGAgZnJv bSBhIGRpY3Rpb25hcnkKKyAKK0BAIC00OTEsNyArNDkxLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVT ZXRNYXBfU2V0KEZpbml0ZVNldE1hcF9NTik6CisgICAgICAgICBwYXJlbnQgPSBzZWxmLl9wYXJl bnQKKyAgICAgICAgIHJldHVybiBwYXJlbnQuX3VucmFua19jb2RvbWFpbihzZWxmLl9nZXRpdGVt KHBhcmVudC5fcmFua19kb21haW4oaSkpKQorIAorLSAgICBjcGRlZiBpbWFnZV9zZXQoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGltYWdlX3NldChzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJucyB0aGUgaW1hZ2Ugc2V0IG9mIGBgc2VsZmBgCisgCitAQCAtNTA3LDcgKzUw Nyw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFwX1NldChGaW5pdGVTZXRNYXBfTU4pOgorICAg ICAgICAgaW1hZ2VfaSA9IHNlbGYuX3BhcmVudC5fdW5yYW5rX2NvZG9tYWluCisgICAgICAgICBy ZXR1cm4gU2V0X29iamVjdF9lbnVtZXJhdGVkKFtpbWFnZV9pKGkpIGZvciBpIGluIHNlbGZdKQor IAorLSAgICBjcGRlZiBzZXRpbWFnZShzZWxmLCBpLCBqKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg c2V0aW1hZ2Uoc2VsZiwgaSwgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgaW1h Z2Ugb2YgYGBpYGAgYXMgYGBqYGAgaW4gYGBzZWxmYGAKKyAKK0BAIC01NTAsNyArNTUwLDcgQEAg Y2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfU2V0KEZpbml0ZVNldE1hcF9NTik6CisgICAgICAgICBw YXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIHJldHVybiBzZWxmLl9zZXRpdGVtKHBhcmVu dC5fcmFua19kb21haW4oaSksIHBhcmVudC5fcmFua19jb2RvbWFpbihqKSkKKyAKKy0gICAgY3Bk ZWYgZ2V0aW1hZ2Uoc2VsZiwgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldGltYWdlKHNlbGYs IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBpbWFnZSBvZiBgYGlgYCBi eSBgYHNlbGZgYAorIAorQEAgLTU2OCw3ICs1NjgsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNldE1h cF9TZXQoRmluaXRlU2V0TWFwX01OKToKKyAgICAgICAgIHBhcmVudCA9IHNlbGYuX3BhcmVudAor ICAgICAgICAgcmV0dXJuIHBhcmVudC5fdW5yYW5rX2NvZG9tYWluKHNlbGYuX2dldGl0ZW0ocGFy ZW50Ll9yYW5rX2RvbWFpbihpKSkpCisgCistICAgIGNwZGVmIGl0ZW1zKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBpdGVtcyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhlIGl0 ZW1zIG9mIGBgc2VsZmBgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc2V0cy9weXRob25jbGFz cy5weGQgYi9zcmMvc2FnZS9zZXRzL3B5dGhvbmNsYXNzLnB4ZAoraW5kZXggNzBjMjRmNjRkOWMu LjQzNDZkOTE4Mzg2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2V0cy9weXRob25jbGFzcy5weGQK KysrKyBiL3NyYy9zYWdlL3NldHMvcHl0aG9uY2xhc3MucHhkCitAQCAtNSw0ICs1LDQgQEAgY2Rl ZiBjbGFzcyBTZXRfUHl0aG9uVHlwZV9jbGFzcyhTZXRfZ2VuZXJpYyk6CisgICAgIGNkZWYgdHlw ZSBfdHlwZQorIAorIAorLWNwZGVmIFNldF9QeXRob25UeXBlKHR5cCkgbm9leGNlcHQKKytjcGRl ZiBTZXRfUHl0aG9uVHlwZSh0eXApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc2V0cy9weXRob25j bGFzcy5weXggYi9zcmMvc2FnZS9zZXRzL3B5dGhvbmNsYXNzLnB5eAoraW5kZXggZWQ4YzZkOTQw YzIuLmJmYTdmM2JjNjE3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2V0cy9weXRob25jbGFzcy5w eXgKKysrKyBiL3NyYy9zYWdlL3NldHMvcHl0aG9uY2xhc3MucHl4CitAQCAtMTksNyArMTksNyBA QCBmcm9tIHNhZ2UuY2F0ZWdvcmllcy5zZXRzX2NhdCBpbXBvcnQgU2V0cworIAorIGNkZWYgZGlj dCBfdHlwZV9zZXRfY2FjaGUgPSB7fQorIAorLWNwZGVmIFNldF9QeXRob25UeXBlKHR5cCkgbm9l eGNlcHQ6CisrY3BkZWYgU2V0X1B5dGhvblR5cGUodHlwKToKKyAgICAgIiIiCisgICAgIFJldHVy biB0aGUgKHVuaXF1ZSkgUGFyZW50IHRoYXQgcmVwcmVzZW50cyB0aGUgc2V0IG9mIFB5dGhvbiBv YmplY3RzCisgICAgIG9mIGEgc3BlY2lmaWVkIHR5cGUuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv c2V0cy9yZWN1cnNpdmVseV9lbnVtZXJhdGVkX3NldC5weGQgYi9zcmMvc2FnZS9zZXRzL3JlY3Vy c2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB4ZAoraW5kZXggN2RmN2UyOGVjMjguLjQ4YzgzMTI0NTZj IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2V0cy9yZWN1cnNpdmVseV9lbnVtZXJhdGVkX3NldC5w eGQKKysrKyBiL3NyYy9zYWdlL3NldHMvcmVjdXJzaXZlbHlfZW51bWVyYXRlZF9zZXQucHhkCitA QCAtMTYsMTUgKzE2LDE1IEBAIGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dl bmVyaWMoc2FnZS5zdHJ1Y3R1cmUucGFyZW50LlBhcmVudCk6CisgICAgIGNkZWYgcmVhZG9ubHkg X21heF9kZXB0aAorICAgICBjZGVmIHJlYWRvbmx5IF9ncmFkZWRfY29tcG9uZW50CisgCistICAg IGNwZGVmIHNlZWRzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGdyYWRlZF9jb21wb25lbnQo c2VsZiwgZGVwdGgpIG5vZXhjZXB0CisrICAgIGNwZGVmIHNlZWRzKHNlbGYpCisrICAgIGNwZGVm IGdyYWRlZF9jb21wb25lbnQoc2VsZiwgZGVwdGgpCisgCisgY2RlZiBjbGFzcyBSZWN1cnNpdmVs eUVudW1lcmF0ZWRTZXRfc3ltbWV0cmljKFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmlj KToKKy0gICAgY2RlZiBzZXQgX2dldF9uZXh0X2dyYWRlZF9jb21wb25lbnQoc2VsZiwgc2V0IEEs IHNldCBCKSBub2V4Y2VwdAorKyAgICBjZGVmIHNldCBfZ2V0X25leHRfZ3JhZGVkX2NvbXBvbmVu dChzZWxmLCBzZXQgQSwgc2V0IEIpCisgCistICAgIGNwZGVmIGdyYWRlZF9jb21wb25lbnQoc2Vs ZiwgZGVwdGgpIG5vZXhjZXB0CisrICAgIGNwZGVmIGdyYWRlZF9jb21wb25lbnQoc2VsZiwgZGVw dGgpCisgCisgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ3JhZGVkKFJlY3Vy c2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKToKKy0gICAgY2RlZiBzZXQgX2dldF9uZXh0X2dy YWRlZF9jb21wb25lbnQoc2VsZiwgc2V0IEIpIG5vZXhjZXB0CisrICAgIGNkZWYgc2V0IF9nZXRf bmV4dF9ncmFkZWRfY29tcG9uZW50KHNlbGYsIHNldCBCKQorIAorLSAgICBjcGRlZiBncmFkZWRf Y29tcG9uZW50KHNlbGYsIGRlcHRoKSBub2V4Y2VwdAorKyAgICBjcGRlZiBncmFkZWRfY29tcG9u ZW50KHNlbGYsIGRlcHRoKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3NldHMvcmVjdXJzaXZlbHlf ZW51bWVyYXRlZF9zZXQucHl4IGIvc3JjL3NhZ2Uvc2V0cy9yZWN1cnNpdmVseV9lbnVtZXJhdGVk X3NldC5weXgKK2luZGV4IGJmMmE5ZTljMzYzLi45NWQ1NWUxYjc1NyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3NldHMvcmVjdXJzaXZlbHlfZW51bWVyYXRlZF9zZXQucHl4CisrKysgYi9zcmMvc2Fn ZS9zZXRzL3JlY3Vyc2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB5eAorQEAgLTY5Niw3ICs2OTYsNyBA QCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKFBhcmVudCk6Cisg ICAgICAgICAgICAgTC5hcHBlbmQoIndpdGggbWF4X2RlcHRoPXt9Ii5mb3JtYXQoc2VsZi5fbWF4 X2RlcHRoKSkKKyAgICAgICAgIHJldHVybiAiICIuam9pbihMKQorIAorLSAgICBjcGRlZiBzZWVk cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2VlZHMoc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gYW4gaXRlcmFibGUgb3ZlciB0aGUgc2VlZHMgb2YgYGBzZWxmYGAu CisgCitAQCAtNzQ2LDcgKzc0Niw3IEBAIGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVk U2V0X2dlbmVyaWMoUGFyZW50KToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io ImdyYWRlZF9jb21wb25lbnRfaXRlcmF0b3IgbWV0aG9kIGN1cnJlbnRseSIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiBpbXBsZW1lbnRlZCBvbmx5IGZvciBncmFkZWQgb3Ig c3ltbWV0cmljIHN0cnVjdHVyZSIpCisgCistICAgIGNwZGVmIGdyYWRlZF9jb21wb25lbnQoc2Vs ZiwgZGVwdGgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBncmFkZWRfY29tcG9uZW50KHNlbGYsIGRl cHRoKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZ3JhZGVkIGNvbXBvbmVu dCBvZiBnaXZlbiBkZXB0aC4KKyAKK0BAIC0xMTc1LDcgKzExNzUsNyBAQCBjZGVmIGNsYXNzIFJl Y3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9zeW1tZXRyaWMoUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0 X2dlbmVyaWMpOgorICAgICAgICAgICAgIHlpZWxkIEIKKyAgICAgICAgICAgICBBLCBCID0gQiwg c2VsZi5fZ2V0X25leHRfZ3JhZGVkX2NvbXBvbmVudChBLCBCKQorIAorLSAgICBjcGRlZiBncmFk ZWRfY29tcG9uZW50KHNlbGYsIGRlcHRoKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ3JhZGVkX2Nv bXBvbmVudChzZWxmLCBkZXB0aCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGdyYWRlZCBjb21wb25lbnQgb2YgZ2l2ZW4gZGVwdGguCisgCitAQCAtMTI0Miw3ICsxMjQyLDcg QEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfc3ltbWV0cmljKFJlY3Vyc2l2 ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKToKKyAgICAgICAgICAgICBzZWxmLl9ncmFkZWRfY29t cG9uZW50LmFwcGVuZChDKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2dyYWRlZF9jb21wb25lbnRb ZGVwdGhdCisgCistICAgIGNkZWYgc2V0IF9nZXRfbmV4dF9ncmFkZWRfY29tcG9uZW50KHNlbGYs IHNldCBBLCBzZXQgQikgbm9leGNlcHQ6CisrICAgIGNkZWYgc2V0IF9nZXRfbmV4dF9ncmFkZWRf Y29tcG9uZW50KHNlbGYsIHNldCBBLCBzZXQgQik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIHNldCBvZiBlbGVtZW50cyBvZiBkZXB0aCBgbisxYC4KKyAKK0BAIC0xMzk3LDcg KzEzOTcsNyBAQCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9ncmFkZWQoUmVj dXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dlbmVyaWMpOgorICAgICAgICAgICAgIHlpZWxkIEIKKyAg ICAgICAgICAgICBCID0gc2VsZi5fZ2V0X25leHRfZ3JhZGVkX2NvbXBvbmVudChCKQorIAorLSAg ICBjcGRlZiBncmFkZWRfY29tcG9uZW50KHNlbGYsIGRlcHRoKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBkZXB0aCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGdyYWRlZCBjb21wb25lbnQgb2YgZ2l2ZW4gZGVwdGguCisgCitAQCAtMTQ2 MCw3ICsxNDYwLDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ3JhZGVk KFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKToKKyAgICAgICAgICAgICBzZWxmLl9n cmFkZWRfY29tcG9uZW50LmFwcGVuZChDKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2dyYWRlZF9j b21wb25lbnRbZGVwdGhdCisgCistICAgIGNkZWYgc2V0IF9nZXRfbmV4dF9ncmFkZWRfY29tcG9u ZW50KHNlbGYsIHNldCBCKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXQgX2dldF9uZXh0X2dyYWRl ZF9jb21wb25lbnQoc2VsZiwgc2V0IEIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSBzZXQgb2YgZWxlbWVudHMgb2YgZGVwdGggYG4rMWAuCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2Uvc3RhdHMvaG1tL2NobW0ucHl4IGIvc3JjL3NhZ2Uvc3RhdHMvaG1tL2NobW0ucHl4Citp bmRleCA5MDVhNzdlZDM4NS4uZjA5NDBjNTg0OWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdGF0 cy9obW0vY2htbS5weXgKKysrKyBiL3NyYy9zYWdlL3N0YXRzL2htbS9jaG1tLnB5eAorQEAgLTQ0 Niw3ICs0NDYsNyBAQCBjZGVmIGNsYXNzIEdhdXNzaWFuSGlkZGVuTWFya292TW9kZWwoSGlkZGVu TWFya292TW9kZWwpOgorIAorICAgICAgICAgcmV0dXJuIG9icywgc3RhdGVzCisgCistICAgIGNk ZWYgcHJvYmFiaWxpdHlfaW5pdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwcm9iYWJpbGl0 eV9pbml0KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgVXNlZCBpbnRlcm5hbGx5IHRv IGNvbXB1dGUgY2FjaGluZyBpbmZvcm1hdGlvbiB0aGF0IG1ha2VzCisgICAgICAgICBjZXJ0YWlu IGNvbXB1dGF0aW9ucyBpbiB0aGUgQmF1bS1XZWxjaCBhbGdvcml0aG0gZmFzdGVyLiAgVGhpcwor QEAgLTcxNiw3ICs3MTYsNyBAQCBjZGVmIGNsYXNzIEdhdXNzaWFuSGlkZGVuTWFya292TW9kZWwo SGlkZGVuTWFya292TW9kZWwpOgorIAorICAgICAgICAgcmV0dXJuIHN0YXRlX3NlcXVlbmNlLCBt eAorIAorLSAgICBjZGVmIFRpbWVTZXJpZXMgX2JhY2t3YXJkX3NjYWxlX2FsbChzZWxmLCBUaW1l U2VyaWVzIG9icywgVGltZVNlcmllcyBzY2FsZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgVGltZVNl cmllcyBfYmFja3dhcmRfc2NhbGVfYWxsKHNlbGYsIFRpbWVTZXJpZXMgb2JzLCBUaW1lU2VyaWVz IHNjYWxlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0 aGUgbWF0cml4IGJldGFfdChpKSwgYW5kIGlzIHVzZWQKKyAgICAgICAgIGludGVybmFsbHkgYXMg cGFydCBvZiB0aGUgQmF1bS1XZWxjaCBhbGdvcml0aG0uCitAQCAtNzU2LDcgKzc1Niw3IEBAIGNk ZWYgY2xhc3MgR2F1c3NpYW5IaWRkZW5NYXJrb3ZNb2RlbChIaWRkZW5NYXJrb3ZNb2RlbCk6Cisg ICAgICAgICAgICAgdCAtPSAxCisgICAgICAgICByZXR1cm4gYmV0YQorIAorLSAgICBjZGVmIF9m b3J3YXJkX3NjYWxlX2FsbChzZWxmLCBUaW1lU2VyaWVzIG9icykgbm9leGNlcHQ6CisrICAgIGNk ZWYgX2ZvcndhcmRfc2NhbGVfYWxsKHNlbGYsIFRpbWVTZXJpZXMgb2JzKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiBzY2FsZWQgdmFsdWVzIGFscGhhX3QoaSksIHRoZSBzZXF1ZW5j ZSBvZiBzY2FsaW5ncywgYW5kCisgICAgICAgICB0aGUgbG9nIHByb2JhYmlsaXR5LgorQEAgLTgy MSw3ICs4MjEsNyBAQCBjZGVmIGNsYXNzIEdhdXNzaWFuSGlkZGVuTWFya292TW9kZWwoSGlkZGVu TWFya292TW9kZWwpOgorICAgICAgICAgIyBUZXJtaW5hdGlvbgorICAgICAgICAgcmV0dXJuIGFs cGhhLCBzY2FsZSwgbG9nX3Byb2JhYmlsaXR5CisgCistICAgIGNkZWYgVGltZVNlcmllcyBfYmF1 bV93ZWxjaF94aShzZWxmLCBUaW1lU2VyaWVzIGFscGhhLCBUaW1lU2VyaWVzIGJldGEsIFRpbWVT ZXJpZXMgb2JzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBUaW1lU2VyaWVzIF9iYXVtX3dlbGNoX3hp KHNlbGYsIFRpbWVTZXJpZXMgYWxwaGEsIFRpbWVTZXJpZXMgYmV0YSwgVGltZVNlcmllcyBvYnMp OgorICAgICAgICAgciIiIgorICAgICAgICAgVXNlZCBpbnRlcm5hbGx5IHRvIGNvbXB1dGUgdGhl IHNjYWxlZCBxdWFudGl0eSB4aV90KGksaikKKyAgICAgICAgIGFwcGVhcmluZyBpbiB0aGUgQmF1 bS1XZWxjaCByZWVzdGltYXRpb24gYWxnb3JpdGhtLgorQEAgLTEyOTIsNyArMTI5Miw3IEBAIGNk ZWYgY2xhc3MgR2F1c3NpYW5NaXh0dXJlSGlkZGVuTWFya292TW9kZWwoR2F1c3NpYW5IaWRkZW5N YXJrb3ZNb2RlbCk6CisgICAgICAgICByZXR1cm4gRy5wcm9iKG9ic2VydmF0aW9uKQorIAorICAg ICBjZGVmIFRpbWVTZXJpZXMgX2JhdW1fd2VsY2hfbWl4ZWRfZ2FtbWEoc2VsZiwgVGltZVNlcmll cyBhbHBoYSwgVGltZVNlcmllcyBiZXRhLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGltZVNlcmllcyBvYnMsIGludCBqKSBub2V4Y2VwdDoKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTZXJpZXMgb2JzLCBpbnQg aik6CisgICAgICAgICByIiIiCisgICAgICAgICBMZXQgZ2FtbWFfdChqLG0pIGJlIHRoZSBtLWNv bXBvbmVudCAoaW4gdGhlIG1peHR1cmUpIG9mIHRoZQorICAgICAgICAgcHJvYmFiaWxpdHkgb2Yg YmVpbmcgaW4gc3RhdGUgaiBhdCB0aW1lIHQsIGdpdmVuIHRoZQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3N0YXRzL2htbS9kaXN0cmlidXRpb25zLnB4ZCBiL3NyYy9zYWdlL3N0YXRzL2htbS9kaXN0 cmlidXRpb25zLnB4ZAoraW5kZXggN2Q2MTNiMjJhNjQuLjczZTRkYmM2YTliIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2Uvc3RhdHMvaG1tL2Rpc3RyaWJ1dGlvbnMucHhkCisrKysgYi9zcmMvc2FnZS9z dGF0cy9obW0vZGlzdHJpYnV0aW9ucy5weGQKK0BAIC0yNSw3ICsyNSw3IEBAIGNkZWYgY2xhc3Mg R2F1c3NpYW5NaXh0dXJlRGlzdHJpYnV0aW9uKERpc3RyaWJ1dGlvbik6CisgICAgIGNkZWYgZG91 YmxlIF9zYW1wbGUoc2VsZiwgcmFuZHN0YXRlIHJzdGF0ZSkgbm9leGNlcHQKKyAgICAgY3BkZWYg ZG91YmxlIHByb2Ioc2VsZiwgZG91YmxlIHgpIG5vZXhjZXB0CisgICAgIGNwZGVmIGRvdWJsZSBw cm9iX20oc2VsZiwgZG91YmxlIHgsIGludCBtKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19maXhl ZChzZWxmLCBpPT8pIG5vZXhjZXB0CisrICAgIGNwZGVmIGlzX2ZpeGVkKHNlbGYsIGk9PykKKyAK KyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdGF0cy9obW0vZGlzdHJpYnV0aW9ucy5weXgg Yi9zcmMvc2FnZS9zdGF0cy9obW0vZGlzdHJpYnV0aW9ucy5weXgKK2luZGV4IDBhMjc1MzNkNzRl Li5kZDQ4NjAzMTdlMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0YXRzL2htbS9kaXN0cmlidXRp b25zLnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RhdHMvaG1tL2Rpc3RyaWJ1dGlvbnMucHl4CitAQCAt MjgzLDcgKzI4Myw3IEBAIGNkZWYgY2xhc3MgR2F1c3NpYW5NaXh0dXJlRGlzdHJpYnV0aW9uKERp c3RyaWJ1dGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmMwLl9sZW5n dGgKKyAKKy0gICAgY3BkZWYgaXNfZml4ZWQoc2VsZiwgaT1Ob25lKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgaXNfZml4ZWQoc2VsZiwgaT1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiB3aGV0aGVyIG9yIG5vdCB0aGlzIDpjbGFzczpgR2F1c3NpYW5NaXh0dXJlRGlzdHJpYnV0 aW9uYCBpcworICAgICAgICAgZml4ZWQgd2hlbiB1c2luZyBCYXVtLVdlbGNoIHRvIHVwZGF0ZSB0 aGUgY29ycmVzcG9uZGluZyBITU0uCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RhdHMvaG1tL2ht bS5weGQgYi9zcmMvc2FnZS9zdGF0cy9obW0vaG1tLnB4ZAoraW5kZXggZjY3ZGUxMDBhOTIuLjFh YmNiOTUzOTJiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RhdHMvaG1tL2htbS5weGQKKysrKyBi L3NyYy9zYWdlL3N0YXRzL2htbS9obW0ucHhkCitAQCAtMTMsNSArMTMsNSBAQCBjZGVmIGNsYXNz IEhpZGRlbk1hcmtvdk1vZGVsOgorICAgICBjZGVmIGludCBOCisgICAgIGNkZWYgVGltZVNlcmll cyBBLCBwaQorIAorLSAgICBjZGVmIFRpbWVTZXJpZXMgX2JhdW1fd2VsY2hfZ2FtbWEoc2VsZiwg VGltZVNlcmllcyBhbHBoYSwgVGltZVNlcmllcyBiZXRhKSBub2V4Y2VwdAorKyAgICBjZGVmIFRp bWVTZXJpZXMgX2JhdW1fd2VsY2hfZ2FtbWEoc2VsZiwgVGltZVNlcmllcyBhbHBoYSwgVGltZVNl cmllcyBiZXRhKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0YXRzL2htbS9obW0ucHl4IGIv c3JjL3NhZ2Uvc3RhdHMvaG1tL2htbS5weXgKK2luZGV4IGY0YTYxMTExNzk0Li4wOTM1YzkzOThl ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0YXRzL2htbS9obW0ucHl4CisrKysgYi9zcmMvc2Fn ZS9zdGF0cy9obW0vaG1tLnB5eAorQEAgLTIyNCw3ICsyMjQsNyBAQCBjZGVmIGNsYXNzIEhpZGRl bk1hcmtvdk1vZGVsOgorICAgICAjIFNvbWUgaW50ZXJuYWwgZnVuY3Rpb25zIHVzZWQgZm9yIHZh cmlvdXMgZ2VuZXJhbAorICAgICAjIEhNTSBhbGdvcml0aG1zLgorICAgICAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0gICAgY2RlZiBU aW1lU2VyaWVzIF9iYXVtX3dlbGNoX2dhbW1hKHNlbGYsIFRpbWVTZXJpZXMgYWxwaGEsIFRpbWVT ZXJpZXMgYmV0YSkgbm9leGNlcHQ6CisrICAgIGNkZWYgVGltZVNlcmllcyBfYmF1bV93ZWxjaF9n YW1tYShzZWxmLCBUaW1lU2VyaWVzIGFscGhhLCBUaW1lU2VyaWVzIGJldGEpOgorICAgICAgICAg ciIiIgorICAgICAgICAgVXNlZCBpbnRlcm5hbGx5IHRvIGNvbXB1dGUgdGhlIHNjYWxlZCBxdWFu dGl0eSBnYW1tYV90KGopCisgICAgICAgICBhcHBlYXJpbmcgaW4gdGhlIEJhdW0tV2VsY2ggcmVl c3RpbWF0aW9uIGFsZ29yaXRobS4KK0BAIC04OTcsNyArODk3LDcgQEAgY2RlZiBjbGFzcyBEaXNj cmV0ZUhpZGRlbk1hcmtvdk1vZGVsKEhpZGRlbk1hcmtvdk1vZGVsKToKKyAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3ZpdGVyYmkob2JzKQorIAorLSAgICBjcGRlZiBf dml0ZXJiaShzZWxmLCBJbnRMaXN0IG9icykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF92aXRlcmJp KHNlbGYsIEludExpc3Qgb2JzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFVzZWQgaW50ZXJu YWxseSB0byBjb21wdXRlIHRoZSB2aXRlcmJpIHBhdGgsIHdpdGhvdXQKKyAgICAgICAgIHJlc2Nh bGluZy4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc2hvcnQgc2VxdWVuY2VzLgorQEAgLTk3Nyw3 ICs5NzcsNyBAQCBjZGVmIGNsYXNzIERpc2NyZXRlSGlkZGVuTWFya292TW9kZWwoSGlkZGVuTWFy a292TW9kZWwpOgorICAgICAgICAgcmV0dXJuIHN0YXRlX3NlcXVlbmNlLCBsb2cobXgpCisgCisg CistICAgIGNwZGVmIF92aXRlcmJpX3NjYWxlKHNlbGYsIEludExpc3Qgb2JzKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3ZpdGVyYmlfc2NhbGUoc2VsZiwgSW50TGlzdCBvYnMpOgorICAgICAgICAg ciIiIgorICAgICAgICAgVXNlZCBpbnRlcm5hbGx5IHRvIGNvbXB1dGUgdGhlIHZpdGVyYmkgcGF0 aCB3aXRoIHJlc2NhbGluZy4KKyAKK0BAIC0xMDYxLDcgKzEwNjEsNyBAQCBjZGVmIGNsYXNzIERp c2NyZXRlSGlkZGVuTWFya292TW9kZWwoSGlkZGVuTWFya292TW9kZWwpOgorIAorICAgICAgICAg cmV0dXJuIHN0YXRlX3NlcXVlbmNlLCBteAorIAorLSAgICBjZGVmIFRpbWVTZXJpZXMgX2JhY2t3 YXJkX3NjYWxlX2FsbChzZWxmLCBJbnRMaXN0IG9icywgVGltZVNlcmllcyBzY2FsZSkgbm9leGNl cHQ6CisrICAgIGNkZWYgVGltZVNlcmllcyBfYmFja3dhcmRfc2NhbGVfYWxsKHNlbGYsIEludExp c3Qgb2JzLCBUaW1lU2VyaWVzIHNjYWxlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgc2NhbGVkIG1hdHJpeCBvZiB2YWx1ZXMgYFxiZXRhX3QoaSlgIHRoYXQgYXBwZWFyIGlu CisgICAgICAgICB0aGUgYmFja3RyYWNraW5nIGFsZ29yaXRobS4gIFRoaXMgZnVuY3Rpb24gaXMg dXNlZCBpbnRlcm5hbGx5CitAQCAtMTEwOCw3ICsxMTA4LDcgQEAgY2RlZiBjbGFzcyBEaXNjcmV0 ZUhpZGRlbk1hcmtvdk1vZGVsKEhpZGRlbk1hcmtvdk1vZGVsKToKKyAgICAgICAgICAgICB0IC09 IDEKKyAgICAgICAgIHJldHVybiBiZXRhCisgCistICAgIGNkZWYgX2ZvcndhcmRfc2NhbGVfYWxs KHNlbGYsIEludExpc3Qgb2JzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZm9yd2FyZF9zY2FsZV9h bGwoc2VsZiwgSW50TGlzdCBvYnMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHNj YWxlZCB2YWx1ZXMgYWxwaGFfdChpKSwgdGhlIHNlcXVlbmNlIG9mIHNjYWxpbmdzLCBhbmQKKyAg ICAgICAgIHRoZSBsb2cgcHJvYmFiaWxpdHkuCitAQCAtMTE2OSw3ICsxMTY5LDcgQEAgY2RlZiBj bGFzcyBEaXNjcmV0ZUhpZGRlbk1hcmtvdk1vZGVsKEhpZGRlbk1hcmtvdk1vZGVsKToKKyAgICAg ICAgICMgVGVybWluYXRpb24KKyAgICAgICAgIHJldHVybiBhbHBoYSwgc2NhbGUsIGxvZ19wcm9i YWJpbGl0eQorIAorLSAgICBjZGVmIFRpbWVTZXJpZXMgX2JhdW1fd2VsY2hfeGkoc2VsZiwgVGlt ZVNlcmllcyBhbHBoYSwgVGltZVNlcmllcyBiZXRhLCBJbnRMaXN0IG9icykgbm9leGNlcHQ6Cisr ICAgIGNkZWYgVGltZVNlcmllcyBfYmF1bV93ZWxjaF94aShzZWxmLCBUaW1lU2VyaWVzIGFscGhh LCBUaW1lU2VyaWVzIGJldGEsIEludExpc3Qgb2JzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFVzZWQgaW50ZXJuYWxseSB0byBjb21wdXRlIHRoZSBzY2FsZWQgcXVhbnRpdHkgeGlfdChpLGop CisgICAgICAgICBhcHBlYXJpbmcgaW4gdGhlIEJhdW0tV2VsY2ggcmVlc3RpbWF0aW9uIGFsZ29y aXRobS4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdGF0cy9obW0vdXRpbC5weGQgYi9zcmMvc2Fn ZS9zdGF0cy9obW0vdXRpbC5weGQKK2luZGV4IDg0YTBlMjAxYTFiLi5iMGQzOTlkOWFhZiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3N0YXRzL2htbS91dGlsLnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3Rh dHMvaG1tL3V0aWwucHhkCitAQCAtMSw3ICsxLDcgQEAKKyBmcm9tIHNhZ2Uuc3RhdHMudGltZV9z ZXJpZXMgY2ltcG9ydCBUaW1lU2VyaWVzCisgCisgY2RlZiBjbGFzcyBITU1fVXRpbDoKKy0gICAg Y3BkZWYgbm9ybWFsaXplX3Byb2JhYmlsaXR5X1RpbWVTZXJpZXMoc2VsZiwgVGltZVNlcmllcyBU LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQKKy0gICAgY3BkZWYgVGltZVNl cmllcyBpbml0aWFsX3Byb2JzX3RvX1RpbWVTZXJpZXMoc2VsZiwgcGksIGJpbnQgbm9ybWFsaXpl KSBub2V4Y2VwdAorLSAgICBjcGRlZiBUaW1lU2VyaWVzIHN0YXRlX21hdHJpeF90b19UaW1lU2Vy aWVzKHNlbGYsIEEsIGludCBOLCBiaW50IG5vcm1hbGl6ZSkgbm9leGNlcHQKKysgICAgY3BkZWYg bm9ybWFsaXplX3Byb2JhYmlsaXR5X1RpbWVTZXJpZXMoc2VsZiwgVGltZVNlcmllcyBULCBQeV9z c2l6ZV90IGksIFB5X3NzaXplX3QgaikKKysgICAgY3BkZWYgVGltZVNlcmllcyBpbml0aWFsX3By b2JzX3RvX1RpbWVTZXJpZXMoc2VsZiwgcGksIGJpbnQgbm9ybWFsaXplKQorKyAgICBjcGRlZiBU aW1lU2VyaWVzIHN0YXRlX21hdHJpeF90b19UaW1lU2VyaWVzKHNlbGYsIEEsIGludCBOLCBiaW50 IG5vcm1hbGl6ZSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdGF0cy9obW0vdXRpbC5weXgg Yi9zcmMvc2FnZS9zdGF0cy9obW0vdXRpbC5weXgKK2luZGV4IGZjODQ5NzQyYjgwLi41NTNlYjk5 NzM2NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0YXRzL2htbS91dGlsLnB5eAorKysrIGIvc3Jj L3NhZ2Uvc3RhdHMvaG1tL3V0aWwucHl4CitAQCAtMjIsNyArMjIsNyBAQCBjZGVmIGNsYXNzIEhN TV9VdGlsOgorICAgICAiIiIKKyAgICAgQSBjbGFzcyB1c2VkIGluIG9yZGVyIHRvIHNoYXJlIGNk ZWYncyBtZXRob2RzIGJldHdlZW4gZGlmZmVyZW50IGZpbGVzLgorICAgICAiIiIKKy0gICAgY3Bk ZWYgbm9ybWFsaXplX3Byb2JhYmlsaXR5X1RpbWVTZXJpZXMoc2VsZiwgVGltZVNlcmllcyBULCBQ eV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG5vcm1hbGl6 ZV9wcm9iYWJpbGl0eV9UaW1lU2VyaWVzKHNlbGYsIFRpbWVTZXJpZXMgVCwgUHlfc3NpemVfdCBp LCBQeV9zc2l6ZV90IGopOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlz IHVzZWQgaW50ZXJuYWxseSBieSB0aGUgSGlkZGVuIE1hcmtvdiBNb2RlbHMgY29kZS4KKyAKK0BA IC04Niw3ICs4Niw3IEBAIGNkZWYgY2xhc3MgSE1NX1V0aWw6CisgCisgCisgCistICAgIGNwZGVm IFRpbWVTZXJpZXMgaW5pdGlhbF9wcm9ic190b19UaW1lU2VyaWVzKHNlbGYsIHBpLCBiaW50IG5v cm1hbGl6ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFRpbWVTZXJpZXMgaW5pdGlhbF9wcm9ic190 b19UaW1lU2VyaWVzKHNlbGYsIHBpLCBiaW50IG5vcm1hbGl6ZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBfX2luaXRfXyBt ZXRob2RzIG9mCisgICAgICAgICB2YXJpb3VzIEhpZGRlbiBNYXJrb3YgTW9kZWxzLgorQEAgLTEy NSw3ICsxMjUsNyBAQCBjZGVmIGNsYXNzIEhNTV9VdGlsOgorICAgICAgICAgcmV0dXJuIFQKKyAK KyAKKy0gICAgY3BkZWYgVGltZVNlcmllcyBzdGF0ZV9tYXRyaXhfdG9fVGltZVNlcmllcyhzZWxm LCBBLCBpbnQgTiwgYmludCBub3JtYWxpemUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBUaW1lU2Vy aWVzIHN0YXRlX21hdHJpeF90b19UaW1lU2VyaWVzKHNlbGYsIEEsIGludCBOLCBiaW50IG5vcm1h bGl6ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbnRl cm5hbGx5IGJ5IHRoZSBgYF9faW5pdF9fYGAgbWV0aG9kcyBvZgorICAgICAgICAgSGlkZGVuIE1h cmtvdiBNb2RlbHMgdG8gbWFrZSBhIHRyYW5zaXRpb24gbWF0cml4IGZyb20gYGBBYGAuCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2Uvc3RhdHMvaW50bGlzdC5weXggYi9zcmMvc2FnZS9zdGF0cy9pbnRs aXN0LnB5eAoraW5kZXggY2U1YWJmYzhiN2IuLmZjY2JiNTZlNjgwIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2Uvc3RhdHMvaW50bGlzdC5weXgKKysrKyBiL3NyYy9zYWdlL3N0YXRzL2ludGxpc3QucHl4 CitAQCAtNTQ0LDcgKzU0NCw3IEBAIGNkZWYgY2xhc3MgSW50TGlzdDoKKyAgICAgICAgIHJldHVy biBzZWxmLnRpbWVfc2VyaWVzKCkucGxvdF9oaXN0b2dyYW0oKmFyZ3MsICoqa3dkcykKKyAKKyAK Ky1jZGVmIEludExpc3QgbmV3X2ludF9saXN0KFB5X3NzaXplX3QgbGVuZ3RoKSBub2V4Y2VwdDoK KytjZGVmIEludExpc3QgbmV3X2ludF9saXN0KFB5X3NzaXplX3QgbGVuZ3RoKToKKyAgICAgIiIi CisgICAgIEZ1bmN0aW9uIHRoYXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIHF1aWNrbHkgY3JlYXRl IGEgbmV3IGludGxpc3QKKyAgICAgd2l0aG91dCBpbml0aWFsaXppbmcgYW55IG9mIHRoZSBhbGxv Y2F0ZWQgbWVtb3J5LgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0YXRzL3RpbWVfc2VyaWVzLnB4 ZCBiL3NyYy9zYWdlL3N0YXRzL3RpbWVfc2VyaWVzLnB4ZAoraW5kZXggN2EwNDRiNTJkYTkuLjg2 YTkwOTViYTc1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RhdHMvdGltZV9zZXJpZXMucHhkCisr KysgYi9zcmMvc2FnZS9zdGF0cy90aW1lX3Nlcmllcy5weGQKK0BAIC0xLDUgKzEsNSBAQAorIGNk ZWYgY2xhc3MgVGltZVNlcmllczoKKyAgICAgY2RlZiBkb3VibGUqIF92YWx1ZXMKKyAgICAgY2Rl ZiBQeV9zc2l6ZV90IF9sZW5ndGgKKy0gICAgY3BkZWYgcmVzY2FsZShzZWxmLCBkb3VibGUgcykg bm9leGNlcHQKKysgICAgY3BkZWYgcmVzY2FsZShzZWxmLCBkb3VibGUgcykKKyAgICAgY3BkZWYg ZG91YmxlIHN1bShzZWxmKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0YXRzL3Rp bWVfc2VyaWVzLnB5eCBiL3NyYy9zYWdlL3N0YXRzL3RpbWVfc2VyaWVzLnB5eAoraW5kZXggY2U1 MWU2NWJhYWIuLmQ2ODIzZjg1YWRkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RhdHMvdGltZV9z ZXJpZXMucHl4CisrKysgYi9zcmMvc2FnZS9zdGF0cy90aW1lX3Nlcmllcy5weXgKK0BAIC04OTIs NyArODkyLDcgQEAgY2RlZiBjbGFzcyBUaW1lU2VyaWVzOgorICAgICAgICAgICAgIHQuX3ZhbHVl c1tpXSA9IHNlbGYuX3ZhbHVlc1tpKmtdCisgICAgICAgICByZXR1cm4gdAorIAorLSAgICBjcGRl ZiByZXNjYWxlKHNlbGYsIGRvdWJsZSBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVzY2FsZShz ZWxmLCBkb3VibGUgcyk6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGFuZ2UgYGBzZWxmYGAg YnkgbXVsdGlwbHlpbmcgZXZlcnkgdmFsdWUgaW4gdGhlIHNlcmllcyBieSBgYHNgYC4KKyAKK0BA IC0yNTE0LDcgKzI1MTQsNyBAQCBjZGVmIGNsYXNzIFRpbWVTZXJpZXM6CisgICAgICAgICByZXR1 cm4geQorIAorIAorLWNkZWYgbmV3X3RpbWVfc2VyaWVzKFB5X3NzaXplX3QgbGVuZ3RoKSBub2V4 Y2VwdDoKKytjZGVmIG5ld190aW1lX3NlcmllcyhQeV9zc2l6ZV90IGxlbmd0aCk6CisgICAgIHIi IiIKKyAgICAgUmV0dXJuIGEgbmV3IHVuaW5pdGlhbGl6ZWQgdGltZSBzZXJpZXMgb2YgdGhlIGdp dmVuIGxlbmd0aC4KKyAgICAgVGhlIGVudHJpZXMgb2YgdGhlIHRpbWUgc2VyaWVzIGFyZSBnYXJi YWdlLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHhk IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weGQKK2luZGV4IDZiZDQ1MGM0 ZjY4Li44M2QzZDQ5NjdkNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29y eV9vYmplY3QucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB4 ZAorQEAgLTEwLDcgKzEwLDcgQEAKKyAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLnNhZ2Vfb2JqZWN0 IGNpbXBvcnQgU2FnZU9iamVjdAorIAorLWNwZGVmIGNoZWNrX2RlZmF1bHRfY2F0ZWdvcnkoZGVm YXVsdF9jYXRlZ29yeSwgY2F0ZWdvcnkpIG5vZXhjZXB0CisrY3BkZWYgY2hlY2tfZGVmYXVsdF9j YXRlZ29yeShkZWZhdWx0X2NhdGVnb3J5LCBjYXRlZ29yeSkKKyAKKyBjZGVmIGNsYXNzIENhdGVn b3J5T2JqZWN0KFNhZ2VPYmplY3QpOgorICAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0 aG9kcworQEAgLTIxLDcgKzIxLDcgQEAgY2RlZiBjbGFzcyBDYXRlZ29yeU9iamVjdChTYWdlT2Jq ZWN0KToKKyAgICAgY2RlZiBvYmplY3QgX193ZWFrcmVmX18KKyAgICAgY2RlZiBsb25nIF9oYXNo X3ZhbHVlCisgCistICAgIGNkZWYgZ2V0YXR0cl9mcm9tX2NhdGVnb3J5KHNlbGYsIG5hbWUpIG5v ZXhjZXB0CisrICAgIGNkZWYgZ2V0YXR0cl9mcm9tX2NhdGVnb3J5KHNlbGYsIG5hbWUpCisgCist Y3BkZWYgbm9ybWFsaXplX25hbWVzKFB5X3NzaXplX3QgbmdlbnMsIG5hbWVzKSBub2V4Y2VwdAor K2NwZGVmIG5vcm1hbGl6ZV9uYW1lcyhQeV9zc2l6ZV90IG5nZW5zLCBuYW1lcykKKyBjcGRlZiBi aW50IGNlcnRpZnlfbmFtZXMobmFtZXMpIGV4Y2VwdCAtMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHl4IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVn b3J5X29iamVjdC5weXgKK2luZGV4IDJjMjVjYTQwNjZkLi40OGNlZTEwYzJiYyAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHl4CisrKysgYi9zcmMvc2Fn ZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB5eAorQEAgLTYzLDcgKzYzLDcgQEAgZnJvbSBz YWdlLm1pc2MuY2FjaGVmdW5jIGltcG9ydCBjYWNoZWRfbWV0aG9kCisgZnJvbSBzYWdlLnN0cnVj dHVyZS5keW5hbWljX2NsYXNzIGltcG9ydCBEeW5hbWljTWV0YWNsYXNzCisgCisgCistY3BkZWYg aW5saW5lIGNoZWNrX2RlZmF1bHRfY2F0ZWdvcnkoZGVmYXVsdF9jYXRlZ29yeSwgY2F0ZWdvcnkp IG5vZXhjZXB0OgorK2NwZGVmIGlubGluZSBjaGVja19kZWZhdWx0X2NhdGVnb3J5KGRlZmF1bHRf Y2F0ZWdvcnksIGNhdGVnb3J5KToKKyAgICAgIyMgVGhlIHJlc3VsdGluZyBjYXRlZ29yeSBpcyBn dWFyYW50ZWVkIHRvIGJlCisgICAgICMjIGEgc3ViLWNhdGVnb3J5IG9mIHRoZSBkZWZhdWx0Lgor ICAgICBpZiBjYXRlZ29yeSBpcyBOb25lOgorQEAgLTg0OCw3ICs4NDgsNyBAQCBjZGVmIGNsYXNz IENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5nZXRhdHRyX2Zyb21fY2F0ZWdvcnkobmFtZSkKKyAKKy0gICAgY2RlZiBnZXRhdHRy X2Zyb21fY2F0ZWdvcnkoc2VsZiwgbmFtZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0YXR0cl9m cm9tX2NhdGVnb3J5KHNlbGYsIG5hbWUpOgorICAgICAgICAgIyBMb29rdXAgYSBtZXRob2Qgb3Ig YXR0cmlidXRlIGZyb20gdGhlIGNhdGVnb3J5IGFic3RyYWN0IGNsYXNzZXMuCisgICAgICAgICAj IFNlZSBfX2dldGF0dHJfXyBhYm92ZSBmb3IgZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgIHRyeToK K0BAIC05MTMsNyArOTEzLDcgQEAgY2RlZiBjbGFzcyBDYXRlZ29yeU9iamVjdChTYWdlT2JqZWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGRpcl93aXRoX290aGVyX2NsYXNzKHNl bGYsIHNlbGYuY2F0ZWdvcnkoKS5wYXJlbnRfY2xhc3MpCisgCistY3BkZWYgbm9ybWFsaXplX25h bWVzKFB5X3NzaXplX3QgbmdlbnMsIG5hbWVzKSBub2V4Y2VwdDoKKytjcGRlZiBub3JtYWxpemVf bmFtZXMoUHlfc3NpemVfdCBuZ2VucywgbmFtZXMpOgorICAgICByIiIiCisgICAgIFJldHVybiBh IHR1cGxlIG9mIHN0cmluZ3Mgb2YgdmFyaWFibGUgbmFtZXMgb2YgbGVuZ3RoIG5nZW5zIGdpdmVu CisgICAgIHRoZSBpbnB1dCBuYW1lcy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUv Y29lcmNlLnB4ZCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2UucHhkCitpbmRleCAwYWI0MmZl OTY2Ni4uNzFkNTE5Y2YxODUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNl LnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZS5weGQKK0BAIC0xLDggKzEsOCBA QAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQgUGFyZW50CisgZnJvbSBzYWdl LnN0cnVjdHVyZS5jb2VyY2VfZGljdCBjaW1wb3J0IFRyaXBsZURpY3QKKyAKKy1jcGRlZiBweV9z Y2FsYXJfcGFyZW50KHB5X3R5cGUpIG5vZXhjZXB0CistY3BkZWYgcHlfc2NhbGFyX3RvX2VsZW1l bnQocHkpIG5vZXhjZXB0CisrY3BkZWYgcHlfc2NhbGFyX3BhcmVudChweV90eXBlKQorK2NwZGVm IHB5X3NjYWxhcl90b19lbGVtZW50KHB5KQorIGNwZGVmIGJpbnQgcGFyZW50X2lzX2ludGVnZXJz KFApIGV4Y2VwdCAtMQorIGNwZGVmIGJpbnQgaXNfbnVtcHlfdHlwZSh0KSBub2V4Y2VwdAorIGNw ZGVmIGJpbnQgaXNfbXBtYXRoX3R5cGUodCkgbm9leGNlcHQKK0BAIC0xNywyNiArMTcsMjYgQEAg Y2RlZiBjbGFzcyBDb2VyY2lvbk1vZGVsOgorICAgICAjIFRoaXMgTVVTVCBiZSBhIG1hcHBpbmcg dG8gYWN0aW9ucy4KKyAgICAgY2RlZiByZWFkb25seSBUcmlwbGVEaWN0IF9hY3Rpb25fbWFwcwor IAorLSAgICBjcGRlZiBjYW5vbmljYWxfY29lcmNpb24oc2VsZiwgeCwgeSkgbm9leGNlcHQKKy0g ICAgY3BkZWYgYmluX29wKHNlbGYsIHgsIHksIG9wKSBub2V4Y2VwdAorLSAgICBjcGRlZiByaWNo Y21wKHNlbGYsIHgsIHksIGludCBvcCkgbm9leGNlcHQKKysgICAgY3BkZWYgY2Fub25pY2FsX2Nv ZXJjaW9uKHNlbGYsIHgsIHkpCisrICAgIGNwZGVmIGJpbl9vcChzZWxmLCB4LCB5LCBvcCkKKysg ICAgY3BkZWYgcmljaGNtcChzZWxmLCB4LCB5LCBpbnQgb3ApCisgCistICAgIGNwZGVmIGNvZXJj aW9uX21hcHMoc2VsZiwgUiwgUykgbm9leGNlcHQKKy0gICAgY3BkZWYgZGlzY292ZXJfY29lcmNp b24oc2VsZiwgUiwgUykgbm9leGNlcHQKKy0gICAgY3BkZWYgdmVyaWZ5X2NvZXJjaW9uX21hcHMo c2VsZiwgUiwgUywgaG9tcywgYmludCBmaXg9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgdmVyaWZ5 X2FjdGlvbihzZWxmLCBhY3Rpb24sIFIsIFMsIG9wLCBiaW50IGZpeD0qKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBjb2VyY2lvbl9tYXBzKHNlbGYsIFIsIFMpCisrICAgIGNwZGVmIGRpc2NvdmVyX2Nv ZXJjaW9uKHNlbGYsIFIsIFMpCisrICAgIGNwZGVmIHZlcmlmeV9jb2VyY2lvbl9tYXBzKHNlbGYs IFIsIFMsIGhvbXMsIGJpbnQgZml4PSopCisrICAgIGNwZGVmIHZlcmlmeV9hY3Rpb24oc2VsZiwg YWN0aW9uLCBSLCBTLCBvcCwgYmludCBmaXg9KikKKyAKKy0gICAgY3BkZWYgZ2V0X2FjdGlvbihz ZWxmLCBSLCBTLCBvcD0qLCByPSosIHM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGlzY292ZXJf YWN0aW9uKHNlbGYsIFIsIFMsIG9wLCByPSosIHM9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgZ2V0 X2FjdGlvbihzZWxmLCBSLCBTLCBvcD0qLCByPSosIHM9KikKKysgICAgY3BkZWYgZGlzY292ZXJf YWN0aW9uKHNlbGYsIFIsIFMsIG9wLCByPSosIHM9KikKKyAKKyAgICAgY2RlZiBiaW50IF9yZWNv cmRfZXhjZXB0aW9ucworLSAgICBjcGRlZiBfcmVjb3JkX2V4Y2VwdGlvbihzZWxmKSBub2V4Y2Vw dAorKyAgICBjcGRlZiBfcmVjb3JkX2V4Y2VwdGlvbihzZWxmKQorICAgICBjZGVmIHJlYWRvbmx5 IGxpc3QgX2V4Y2VwdGlvbl9zdGFjaworICAgICBjZGVmIGJpbnQgX2V4Y2VwdGlvbnNfY2xlYXJl ZAorIAorICAgICBjZGVmIFRyaXBsZURpY3QgX2RpdmlzaW9uX3BhcmVudHMKKy0gICAgY3BkZWYg YW5hbHlzZShzZWxmLCB4cCwgeXAsIG9wPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGRpdmlzaW9u X3BhcmVudChzZWxmLCBQYXJlbnQgUCkgbm9leGNlcHQKKysgICAgY3BkZWYgYW5hbHlzZShzZWxm LCB4cCwgeXAsIG9wPSopCisrICAgIGNwZGVmIGRpdmlzaW9uX3BhcmVudChzZWxmLCBQYXJlbnQg UCkKKyAKKyAKKyAjIFVuaXF1ZSBnbG9iYWwgY29lcmNpb25fbW9kZWwgaW5zdGFuY2UKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlLnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVy ZS9jb2VyY2UucHl4CitpbmRleCA2M2U4NGQ4NGI5NC4uODg4NjQzMzE0ZjUgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlLnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJl L2NvZXJjZS5weXgKK0BAIC0xMDAsNyArMTAwLDcgQEAgaW1wb3J0IHRyYWNlYmFjaworIGZyb20g ZnJhY3Rpb25zIGltcG9ydCBGcmFjdGlvbgorIGNkZWYgdHlwZSBGcmFjdGlvblR5cGUgPSA8dHlw ZT5GcmFjdGlvbgorIAorLWNwZGVmIHB5X3NjYWxhcl9wYXJlbnQocHlfdHlwZSkgbm9leGNlcHQ6 CisrY3BkZWYgcHlfc2NhbGFyX3BhcmVudChweV90eXBlKToKKyAgICAgIiIiCisgICAgIFJldHVy bnMgdGhlIFNhZ2UgZXF1aXZhbGVudCBvZiB0aGUgZ2l2ZW4gcHl0aG9uIHR5cGUsIGlmIG9uZSBl eGlzdHMuCisgICAgIElmIHRoZXJlIGlzIG5vIGVxdWl2YWxlbnQsIHJldHVybiBOb25lLgorQEAg LTE4NCw3ICsxODQsNyBAQCBjcGRlZiBweV9zY2FsYXJfcGFyZW50KHB5X3R5cGUpIG5vZXhjZXB0 OgorICAgICBlbHNlOgorICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy1jcGRlZiBweV9zY2FsYXJf dG9fZWxlbWVudCh4KSBub2V4Y2VwdDoKKytjcGRlZiBweV9zY2FsYXJfdG9fZWxlbWVudCh4KToK KyAgICAgIiIiCisgICAgIENvbnZlcnQgYGB4YGAgdG8gYSBTYWdlIDpjbGFzczpgfnNhZ2Uuc3Ry dWN0dXJlLmVsZW1lbnQuRWxlbWVudGAgaWYgcG9zc2libGUuCisgCitAQCAtNjkwLDcgKzY5MCw3 IEBAIGNkZWYgY2xhc3MgQ29lcmNpb25Nb2RlbDoKKyAgICAgICAgIHNlbGYuX2V4Y2VwdGlvbnNf Y2xlYXJlZCA9IFRydWUKKyAgICAgICAgIHNlbGYuX2V4Y2VwdGlvbl9zdGFjayA9IFtdCisgCist ICAgIGNwZGVmIF9yZWNvcmRfZXhjZXB0aW9uKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmVjb3JkX2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFB1c2hlcyB0 aGUgbGFzdCBleGNlcHRpb24gdGhhdCBvY2N1cnJlZCBvbnRvIHRoZSBzdGFjayBmb3IgbGF0ZXIg cmVmZXJlbmNlLAorICAgICAgICAgZm9yIGludGVybmFsIHVzZS4KK0BAIC05MjUsNyArOTI1LDcg QEAgY2RlZiBjbGFzcyBDb2VyY2lvbk1vZGVsOgorICAgICAgICAgICAgICAgICBwcmludCgiUmVz dWx0IGxpdmVzIGluIHt9Ii5mb3JtYXQocmVzKSkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0g ICAgY3BkZWYgYW5hbHlzZShzZWxmLCB4cCwgeXAsIG9wPW11bCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGFuYWx5c2Uoc2VsZiwgeHAsIHlwLCBvcD1tdWwpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFbXVsYXRlIHRoZSBwcm9jZXNzIG9mIGRvaW5nIGFyaXRobWV0aWMgYmV0d2VlbiB4cCBhbmQg eXAsIHJldHVybmluZworICAgICAgICAgYSBsaXN0IG9mIHN0ZXBzIGFuZCB0aGUgcGFyZW50IHRo YXQgdGhlIHJlc3VsdCB3aWxsIGxpdmUgaW4uCitAQCAtMTA5MCw3ICsxMDkwLDcgQEAgY2RlZiBj bGFzcyBDb2VyY2lvbk1vZGVsOgorICAgICAgICAgICAgICAgICBiYXNlID0gcGFyZW50KHNlbGYu Y2Fub25pY2FsX2NvZXJjaW9uKGEsIGIpWzBdKQorICAgICAgICAgcmV0dXJuIGJhc2UKKyAKKy0g ICAgY3BkZWYgZGl2aXNpb25fcGFyZW50KHNlbGYsIFBhcmVudCBQKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgZGl2aXNpb25fcGFyZW50KHNlbGYsIFBhcmVudCBQKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIERlZHVjZXMgd2hlcmUgdGhlIHJlc3VsdCBvZiBkaXZpc2lvbiBpbiBgYFBgYCBsaWVz IGJ5CisgICAgICAgICBjYWxjdWxhdGluZyB0aGUgaW52ZXJzZSBvZiBgYFAub25lKClgYCBvciBg YFAuYW5fZWxlbWVudCgpYGAuCitAQCAtMTEyOSw3ICsxMTI5LDcgQEAgY2RlZiBjbGFzcyBDb2Vy Y2lvbk1vZGVsOgorICAgICAgICAgc2VsZi5fZGl2aXNpb25fcGFyZW50cy5zZXQoUCwgTm9uZSwg Tm9uZSwgcmV0KQorICAgICAgICAgcmV0dXJuIHJldAorIAorLSAgICBjcGRlZiBiaW5fb3Aoc2Vs ZiwgeCwgeSwgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiaW5fb3Aoc2VsZiwgeCwgeSwgb3Ap OgorICAgICAgICAgIiIiCisgICAgICAgICBFeGVjdXRlIHRoZSBvcGVyYXRpb24gYGBvcGBgIG9u IGB4YCBhbmQgYHlgLgorIAorQEAgLTEyNzcsNyArMTI3Nyw3IEBAIGNkZWYgY2xhc3MgQ29lcmNp b25Nb2RlbDoKKyAgICAgICAgICMgVGhpcyBjYXVzZXMgc28gbXVjaCBoZWFkYWNoZS4KKyAgICAg ICAgIHJhaXNlIGJpbl9vcF9leGNlcHRpb24ob3AsIHgsIHkpCisgCistICAgIGNwZGVmIGNhbm9u aWNhbF9jb2VyY2lvbihzZWxmLCB4LCB5KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2Fub25pY2Fs X2NvZXJjaW9uKHNlbGYsIHgsIHkpOgorICAgICAgICAgciIiIgorICAgICAgICAgR2l2ZW4gdHdv IGVsZW1lbnRzIGB4YCBhbmQgYHlgLCB3aXRoIHBhcmVudHMgYFNgIGFuZCBgUmAgcmVzcGVjdGl2 ZWx5LAorICAgICAgICAgZmluZCBhIGNvbW1vbiBwYXJlbnQgYFpgIHN1Y2ggdGhhdCB0aGVyZSBh cmUgY29lcmNpb25zCitAQCAtMTQyMyw3ICsxNDIzLDcgQEAgY2RlZiBjbGFzcyBDb2VyY2lvbk1v ZGVsOgorIAorICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJubyBjb21tb24gY2Fub25pY2FsIHBh cmVudCBmb3Igb2JqZWN0cyB3aXRoIHBhcmVudHM6ICclcycgYW5kICclcyciJSh4cCwgeXApKQor IAorLSAgICBjcGRlZiBjb2VyY2lvbl9tYXBzKHNlbGYsIFIsIFMpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBjb2VyY2lvbl9tYXBzKHNlbGYsIFIsIFMpOgorICAgICAgICAgciIiIgorICAgICAgICAg R2l2ZSB0d28gcGFyZW50cyBgUmAgYW5kIGBTYCwgcmV0dXJuIGEgcGFpciBvZiBjb2VyY2lvbiBt YXBzCisgICAgICAgICBgZjogUiBccmlnaHRhcnJvdyBaYCBhbmQgYGc6IFMgXHJpZ2h0YXJyb3cg WmAgLCBpZiBzdWNoIGEgYFpgCitAQCAtMTU3Miw3ICsxNTcyLDcgQEAgY2RlZiBjbGFzcyBDb2Vy Y2lvbk1vZGVsOgorICAgICAgICAgc2VsZi5fY29lcmNpb25fbWFwcy5zZXQoUywgUiwgTm9uZSwg c3dhcCkKKyAgICAgICAgIHJldHVybiBob21zCisgCistICAgIGNwZGVmIHZlcmlmeV9jb2VyY2lv bl9tYXBzKHNlbGYsIFIsIFMsIGhvbXMsIGJpbnQgZml4PUZhbHNlKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgdmVyaWZ5X2NvZXJjaW9uX21hcHMoc2VsZiwgUiwgUywgaG9tcywgYmludCBmaXg9RmFs c2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBNYWtlIHN1cmUgdGhpcyBpcyBhIHZhbGlkIHBh aXIgb2YgaG9tb21vcnBoaXNtcyBmcm9tIGBSYCBhbmQgYFNgIHRvIGEgY29tbW9uIHBhcmVudC4K KyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBwcm90ZWN0IHRoZSB1c2VyIGFnYWlu c3QgYnVnZ3kgcGFyZW50cy4KK0BAIC0xNjQxLDcgKzE2NDEsNyBAQCBjZGVmIGNsYXNzIENvZXJj aW9uTW9kZWw6CisgICAgICAgICByZXR1cm4gUl9tYXAsIFNfbWFwCisgCisgCistICAgIGNwZGVm IGRpc2NvdmVyX2NvZXJjaW9uKHNlbGYsIFIsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaXNj b3Zlcl9jb2VyY2lvbihzZWxmLCBSLCBTKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBh Y3R1YWxseSBpbXBsZW1lbnRzIHRoZSBmaW5kaW5nIG9mIGNvZXJjaW9uIG1hcHMgYXMgZGVzY3Jp YmVkIGluCisgICAgICAgICB0aGUgOm1ldGg6YGNvZXJjaW9uX21hcHNgIG1ldGhvZC4KK0BAIC0x NzIwLDcgKzE3MjAsNyBAQCBjZGVmIGNsYXNzIENvZXJjaW9uTW9kZWw6CisgCisgICAgICAgICBy ZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBnZXRfYWN0aW9uKHNlbGYsIFIsIFMsIG9wPW11bCwg cj1Ob25lLCBzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfYWN0aW9uKHNlbGYsIFIs IFMsIG9wPW11bCwgcj1Ob25lLCBzPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBHZXQg dGhlIGFjdGlvbiBvZiBSIG9uIFMgb3IgUyBvbiBSIGFzc29jaWF0ZWQgdG8gdGhlIG9wZXJhdGlv biBvcC4KKyAKK0BAIC0xNzYxLDcgKzE3NjEsNyBAQCBjZGVmIGNsYXNzIENvZXJjaW9uTW9kZWw6 CisgICAgICAgICBzZWxmLl9hY3Rpb25fbWFwcy5zZXQoUiwgUywgb3AsIGFjdGlvbikKKyAgICAg ICAgIHJldHVybiBhY3Rpb24KKyAKKy0gICAgY3BkZWYgdmVyaWZ5X2FjdGlvbihzZWxmLCBhY3Rp b24sIFIsIFMsIG9wLCBiaW50IGZpeD1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmVyaWZ5 X2FjdGlvbihzZWxmLCBhY3Rpb24sIFIsIFMsIG9wLCBiaW50IGZpeD1UcnVlKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFZlcmlmeSB0aGF0IGBgYWN0aW9uYGAgdGFrZXMgYW4gZWxlbWVudCBv ZiBSIG9uIHRoZSBsZWZ0IGFuZCBTCisgICAgICAgICBvbiB0aGUgcmlnaHQsIHJhaXNpbmcgYW4g ZXJyb3IgaWYgbm90LgorQEAgLTE4MjAsNyArMTgyMCw3IEBAIGNkZWYgY2xhc3MgQ29lcmNpb25N b2RlbDoKKyAKKyAgICAgICAgIHJldHVybiBhY3Rpb24KKyAKKy0gICAgY3BkZWYgZGlzY292ZXJf YWN0aW9uKHNlbGYsIFIsIFMsIG9wLCByPU5vbmUsIHM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGRpc2NvdmVyX2FjdGlvbihzZWxmLCBSLCBTLCBvcCwgcj1Ob25lLCBzPU5vbmUpOgorICAg ICAgICAgIiIiCisgICAgICAgICBJTlBVVDoKKyAKK0BAIC0xOTU4LDcgKzE5NTgsNyBAQCBjZGVm IGNsYXNzIENvZXJjaW9uTW9kZWw6CisgCisgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBj cGRlZiByaWNoY21wKHNlbGYsIHgsIHksIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJp Y2hjbXAoc2VsZiwgeCwgeSwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2l2ZW4g dHdvIGFyYml0cmFyeSBvYmplY3RzIGBgeGBgIGFuZCBgYHlgYCwgY29lcmNlIHRoZW0gdG8KKyAg ICAgICAgIGEgY29tbW9uIHBhcmVudCBhbmQgY29tcGFyZSB0aGVtIHVzaW5nIHJpY2ggY29tcGFy aXNvbiBvcGVyYXRvcgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfYWN0 aW9ucy5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX2FjdGlvbnMucHl4CitpbmRleCA3 YjJlMTZkYTQ5ZS4uZTFmZjNiMzc4ZTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUv Y29lcmNlX2FjdGlvbnMucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX2FjdGlv bnMucHl4CitAQCAtMjYsMTAgKzI2LDEwIEBAIGZyb20gc2FnZS5jYXRlZ29yaWVzLmFjdGlvbiBj aW1wb3J0IEludmVyc2VBY3Rpb24sIFByZWNvbXBvc2VkQWN0aW9uCisgZnJvbSBzYWdlLmFyaXRo LmxvbmcgY2ltcG9ydCBpbnRlZ2VyX2NoZWNrX2xvbmcKKyAKKyAKKy1jZGVmIF9yZWNvcmRfZXhj ZXB0aW9uKCkgbm9leGNlcHQ6CisrY2RlZiBfcmVjb3JkX2V4Y2VwdGlvbigpOgorICAgICBjb2Vy Y2lvbl9tb2RlbC5fcmVjb3JkX2V4Y2VwdGlvbigpCisgCistY2RlZiBpbmxpbmUgYW5fZWxlbWVu dChSKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBhbl9lbGVtZW50KFIpOgorICAgICBpZiBpc2lu c3RhbmNlKFIsIFBhcmVudCk6CisgICAgICAgICByZXR1cm4gUi5hbl9lbGVtZW50KCkKKyAgICAg ZWxzZToKK0BAIC0xMTgsNyArMTE4LDcgQEAgY2RlZiBjbGFzcyBBY3RPbkFjdGlvbihHZW5lcmlj QWN0aW9uKToKKyAgICAgIiIiCisgICAgIENsYXNzIGZvciBhY3Rpb25zIGRlZmluZWQgdmlhIHRo ZSBfYWN0X29uXyBtZXRob2QuCisgICAgICIiIgorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCB4 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgeCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xNDAsNyArMTQwLDcgQEAgY2RlZiBjbGFzcyBBY3Rl ZFVwb25BY3Rpb24oR2VuZXJpY0FjdGlvbik6CisgICAgICIiIgorICAgICBDbGFzcyBmb3IgYWN0 aW9ucyBkZWZpbmVkIHZpYSB0aGUgX2FjdGVkX3Vwb25fIG1ldGhvZC4KKyAgICAgIiIiCistICAg IGNwZGVmIF9hY3RfKHNlbGYsIGcsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0XyhzZWxm LCBnLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTU4Niw3ICs1 ODYsNyBAQCBjZGVmIGNsYXNzIE1vZHVsZUFjdGlvbihBY3Rpb24pOgorIAorIAorIGNkZWYgY2xh c3MgTGVmdE1vZHVsZUFjdGlvbihNb2R1bGVBY3Rpb24pOgorLSAgICBjcGRlZiBfYWN0XyhzZWxm LCBnLCBhKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgYSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEEgbGVmdCBtb2R1bGUgYWN0aW9uIGlzIGFuIGFjdGlvbiB0aGF0IHRh a2VzIHRoZSByaW5nIGVsZW1lbnQgYXMgdGhlCisgICAgICAgICBmaXJzdCBhcmd1bWVudCAodGhl IGxlZnQgc2lkZSkgYW5kIHRoZSBtb2R1bGUgZWxlbWVudCBhcyB0aGUgc2Vjb25kCitAQCAtNjIz LDcgKzYyMyw3IEBAIGNkZWYgY2xhc3MgTGVmdE1vZHVsZUFjdGlvbihNb2R1bGVBY3Rpb24pOgor IAorIAorIGNkZWYgY2xhc3MgUmlnaHRNb2R1bGVBY3Rpb24oTW9kdWxlQWN0aW9uKToKKy0gICAg Y3BkZWYgX2FjdF8oc2VsZiwgZywgYSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RfKHNlbGYs IGcsIGEpOgorICAgICAgICAgIiIiCisgICAgICAgICBBIHJpZ2h0IG1vZHVsZSBhY3Rpb24gaXMg YW4gYWN0aW9uIHRoYXQgdGFrZXMgdGhlIG1vZHVsZSBlbGVtZW50IGFzIHRoZQorICAgICAgICAg Zmlyc3QgYXJndW1lbnQgKHRoZSBsZWZ0IHNpZGUpIGFuZCB0aGUgcmluZyBlbGVtZW50IGFzIHRo ZSBzZWNvbmQKK0BAIC03NDMsNyArNzQzLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTXVsQWN0aW9u KEludGVnZXJBY3Rpb24pOgorICAgICAgICAgdGVzdCA9IG0gKyAoLW0pICAjIG1ha2Ugc3VyZSBh ZGRpdGlvbiBhbmQgbmVnYXRpb24gaXMgYWxsb3dlZAorICAgICAgICAgc3VwZXIoKS5fX2luaXRf XyhaLCBNLCBpc19sZWZ0LCBvcGVyYXRvci5tdWwpCisgCistICAgIGNwZGVmIF9hY3RfKHNlbGYs IG5uLCBhKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgbm4sIGEpOgorICAgICAg ICAgIiIiCisgICAgICAgICBFWEFNUExFUzoKKyAKK0BAIC04ODAsNyArODgwLDcgQEAgY2RlZiBj bGFzcyBJbnRlZ2VyUG93QWN0aW9uKEludGVnZXJBY3Rpb24pOgorICAgICAgICAgICAgIHJhaXNl IFR5cGVFcnJvcihmIm5vIGludGVnZXIgcG93ZXJpbmcgYWN0aW9uIGRlZmluZWQgb24ge019IikK KyAgICAgICAgIHN1cGVyKCkuX19pbml0X18oWiwgTSwgRmFsc2UsIG9wZXJhdG9yLnBvdykKKyAK Ky0gICAgY3BkZWYgX2FjdF8oc2VsZiwgbiwgYSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3Rf KHNlbGYsIG4sIGEpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzoKKyAKK0BAIC05 MTcsNyArOTE3LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyUG93QWN0aW9uKEludGVnZXJBY3Rpb24p OgorICAgICAgICAgcmV0dXJuICJJbnRlZ2VyIFBvd2VyaW5nIgorIAorIAorLWNkZWYgaW5saW5l IGZhc3RfbXVsKGEsIG4pIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGZhc3RfbXVsKGEsIG4pOgor ICAgICBpZiBuIDwgMDoKKyAgICAgICAgIG4gPSAtbgorICAgICAgICAgYSA9IC1hCitAQCAtOTM2 LDcgKzkzNiw3IEBAIGNkZWYgaW5saW5lIGZhc3RfbXVsKGEsIG4pIG5vZXhjZXB0OgorICAgICAg ICAgbiA9IG4gPj4gMQorICAgICByZXR1cm4gc3VtCisgCistY2RlZiBpbmxpbmUgZmFzdF9tdWxf bG9uZyhhLCBsb25nIHMpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGZhc3RfbXVsX2xvbmcoYSwg bG9uZyBzKToKKyAgICAgIyBJdCdzIGltcG9ydGFudCB0byBjaGFuZ2UgdGhlIHNpZ25lZCBzIHRv IGFuIHVuc2lnbmVkIG4sCisgICAgICMgc2luY2UgLUxPTkdfTUlOID0gTE9OR19NSU4uICBTZWUg SXNzdWUgIzE3ODQ0LgorICAgICBjZGVmIHVuc2lnbmVkIGxvbmcgbgorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfZGljdC5weGQgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29l cmNlX2RpY3QucHhkCitpbmRleCA4NTQyNTQ1YTJmOC4uMmY3ZjhkM2FlZjQgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX2RpY3QucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1 Y3R1cmUvY29lcmNlX2RpY3QucHhkCitAQCAtMTksNyArMTksNyBAQCBjZGVmIGNsYXNzIE1vbm9E aWN0OgorICAgICBjZGVmIGVyYXNlcgorIAorICAgICBjZGVmIG1vbm9fY2VsbCogbG9va3VwKHNl bGYsIFB5T2JqZWN0KiBrZXkpIG5vZXhjZXB0CistICAgIGNkZWYgZ2V0KHNlbGYsIGspIG5vZXhj ZXB0CisrICAgIGNkZWYgZ2V0KHNlbGYsIGspCisgICAgIGNkZWYgaW50IHNldChzZWxmLCBrLCB2 YWx1ZSkgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50IHJlc2l6ZShzZWxmKSBleGNlcHQgLTEKKyAK K0BAIC00NSw2ICs0NSw2IEBAIGNkZWYgY2xhc3MgVHJpcGxlRGljdDoKKyAgICAgY2RlZiBlcmFz ZXIKKyAKKyAgICAgY2RlZiB0cmlwbGVfY2VsbCogbG9va3VwKHNlbGYsIFB5T2JqZWN0KiBrZXkx LCBQeU9iamVjdCoga2V5MiwgUHlPYmplY3QqIGtleTMpIG5vZXhjZXB0CistICAgIGNkZWYgZ2V0 KHNlbGYsIGsxLCBrMiwgazMpIG5vZXhjZXB0CisrICAgIGNkZWYgZ2V0KHNlbGYsIGsxLCBrMiwg azMpCisgICAgIGNkZWYgaW50IHNldChzZWxmLCBrMSwgazIsIGszLCB2YWx1ZSkgZXhjZXB0IC0x CisgICAgIGNkZWYgaW50IHJlc2l6ZShzZWxmKSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9zdHJ1Y3R1cmUvY29lcmNlX2RpY3QucHl4IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJj ZV9kaWN0LnB5eAoraW5kZXggYzJkMmJlMzQ4NzMuLmJkZWM3ZWM5N2NkIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9kaWN0LnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0 dXJlL2NvZXJjZV9kaWN0LnB5eAorQEAgLTExMCw3ICsxMTAsNyBAQCBjZGVmIGNsYXNzIE9iamVj dFdyYXBwZXI6CisgICAgIGNkZWYgUHlPYmplY3QqIG9iagorIAorIAorLWNkZWYgaW5saW5lIE9i amVjdFdyYXBwZXIgd3JhcChvYmopIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIE9iamVjdFdyYXBw ZXIgd3JhcChvYmopOgorICAgICAiIiIKKyAgICAgV3JhcCBhIGdpdmVuIFB5dGhvbiBvYmplY3Qg aW4gYW4gOmNsYXNzOmBPYmplY3RXcmFwcGVyYC4KKyAgICAgIiIiCitAQCAtMTI2LDcgKzEyNiw3 IEBAIGNkZWYgaW5saW5lIFB5T2JqZWN0KiB1bndyYXAodykgZXhjZXB0PyBOVUxMOgorICAgICBy ZXR1cm4gKDxPYmplY3RXcmFwcGVyPz53KS5vYmoKKyAKKyAKKy1jZGVmIGV4dHJhY3RfbW9ub19j ZWxsKG1vbm9fY2VsbCogY2VsbCkgbm9leGNlcHQ6CisrY2RlZiBleHRyYWN0X21vbm9fY2VsbCht b25vX2NlbGwqIGNlbGwpOgorICAgICAiIiIKKyAgICAgVGFrZSB0aGUgcmVmY291bnRlZCBjb21w b25lbnRzIGZyb20gYSBtb25vX2NlbGwsIHB1dCB0aGVtIGluIGEKKyAgICAgdHVwbGUgYW5kIHJl dHVybiBpdC4gVGhlIG1vbm9fY2VsbCBpdHNlbGYgaXMgbWFya2VkIGFzICJmcmVlZCIuCitAQCAt MTUxLDcgKzE1MSw3IEBAIGNkZWYgZXh0cmFjdF9tb25vX2NlbGwobW9ub19jZWxsKiBjZWxsKSBu b2V4Y2VwdDoKKyAgICAgcmV0dXJuIHQKKyAKKyAKKy1jZGVmIGV4dHJhY3RfdHJpcGxlX2NlbGwo dHJpcGxlX2NlbGwqIGNlbGwpIG5vZXhjZXB0OgorK2NkZWYgZXh0cmFjdF90cmlwbGVfY2VsbCh0 cmlwbGVfY2VsbCogY2VsbCk6CisgICAgICMgU2VlIGV4dHJhY3RfbW9ub19jZWxsIGZvciBkb2N1 bWVudGF0aW9uCisgICAgIGFzc2VydCB2YWxpZChjZWxsLmtleV9pZDEpCisgICAgIHQgPSBQeVR1 cGxlX05ldyg0KQorQEAgLTY0NCw3ICs2NDQsNyBAQCBjZGVmIGNsYXNzIE1vbm9EaWN0OgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5nZXQoaykKKyAKKy0gICAgY2RlZiBnZXQo c2VsZiwgaykgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0KHNlbGYsIGspOgorICAgICAgICAgY2Rl ZiBtb25vX2NlbGwqIGN1cnNvciA9IHNlbGYubG9va3VwKDxQeU9iamVjdCo+aykKKyAgICAgICAg IGlmIG5vdCB2YWxpZChjdXJzb3Iua2V5X2lkKToKKyAgICAgICAgICAgICByYWlzZSBLZXlFcnJv cihrKQorQEAgLTEzMjAsNyArMTMyMCw3IEBAIGNkZWYgY2xhc3MgVHJpcGxlRGljdDoKKyAgICAg ICAgICAgICByYWlzZSBLZXlFcnJvcihrKQorICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0KGsxLCBr MiwgazMpCisgCistICAgIGNkZWYgZ2V0KHNlbGYsIGsxLCBrMiwgazMpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGdldChzZWxmLCBrMSwgazIsIGszKToKKyAgICAgICAgIGNkZWYgdHJpcGxlX2NlbGwq IGN1cnNvciA9IHNlbGYubG9va3VwKDxQeU9iamVjdCo+azEsIDxQeU9iamVjdCo+azIsIDxQeU9i amVjdCo+azMpCisgICAgICAgICBpZiBub3QgdmFsaWQoY3Vyc29yLmtleV9pZDEpOgorICAgICAg ICAgICAgIHJhaXNlIEtleUVycm9yKChrMSwgazIsIGszKSkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9zdHJ1Y3R1cmUvY29lcmNlX21hcHMucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9t YXBzLnB4ZAoraW5kZXggZTNlOTY5ZDAyNjYuLjBhZmMxYTk2YWRiIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9tYXBzLnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJl L2NvZXJjZV9tYXBzLnB4ZAorQEAgLTI0LDQgKzI0LDQgQEAgY2RlZiBjbGFzcyBDYWxsYWJsZUNv bnZlcnRNYXAoTWFwKToKKyAgICAgY2RlZiBfZnVuYworIAorIAorLWNkZWYgTWFwIENDYWxsYWJs ZUNvbnZlcnRNYXAoZG9tYWluLCBjb2RvbWFpbiwgdm9pZCogZnVuYywgbmFtZSkgbm9leGNlcHQK KytjZGVmIE1hcCBDQ2FsbGFibGVDb252ZXJ0TWFwKGRvbWFpbiwgY29kb21haW4sIHZvaWQqIGZ1 bmMsIG5hbWUpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9tYXBzLnB5 eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfbWFwcy5weXgKK2luZGV4IGVkYWQ4MjMxMDkx Li5hYWJlYWZhNmJjOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfbWFw cy5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfbWFwcy5weXgKK0BAIC05MSw3 ICs5MSw3IEBAIGNkZWYgY2xhc3MgRGVmYXVsdENvbnZlcnRNYXAoTWFwKToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHJfdHlwZV9zdHIgb3IgKCJDb2VyY2lvbiIgaWYg c2VsZi5faXNfY29lcmNpb24gZWxzZSAiQ29udmVyc2lvbiIpCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGFuIGVsZW1lbnQgb2YgdGhl IGNvZG9tYWluIGZyb20gYSBzaW5nbGUgZWxlbWVudCBvZiB0aGUgZG9tYWluLgorIAorQEAgLTEx MCw3ICsxMTAsNyBAQCBjZGVmIGNsYXNzIERlZmF1bHRDb252ZXJ0TWFwKE1hcCk6CisgICAgICAg ICAgICAgICAgIHByaW50KHR5cGUoQy5fZWxlbWVudF9jb25zdHJ1Y3RvciksIEMuX2VsZW1lbnRf Y29uc3RydWN0b3IpCisgICAgICAgICAgICAgcmFpc2UKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBf Y2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30p OgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUgYW4gZWxlbWVudCBvZiB0aGUgY29kb21h aW4gZnJvbSBhbiBlbGVtZW50IG9mIHRoZSBkb21haW4sIHdpdGggZXh0cmEgYXJndW1lbnRzLgor IAorQEAgLTE1Miw3ICsxNTIsNyBAQCBjZGVmIGNsYXNzIERlZmF1bHRDb252ZXJ0TWFwX3VuaXF1 ZShEZWZhdWx0Q29udmVydE1hcCk6CisgICAgIHVzZWQgd2hlbiB0aGUgZWxlbWVudF9jb25zdHJ1 Y3RvciBpcyBhIGJvdW5kIG1ldGhvZCAod2hvc2Ugc2VsZgorICAgICBhcmd1bWVudCBpcyBhc3N1 bWVkIHRvIGJlIGJvdW5kIHRvIHRoZSBjb2RvbWFpbikuCisgICAgICIiIgorLSAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeCk6CisgICAgICAgICBjZGVmIFBhcmVudCBDID0gc2VsZi5fY29kb21haW4KKyAg ICAgICAgIHRyeToKKyAgICAgICAgICAgICByZXR1cm4gQy5fZWxlbWVudF9jb25zdHJ1Y3Rvcih4 KQorQEAgLTE2Miw3ICsxNjIsNyBAQCBjZGVmIGNsYXNzIERlZmF1bHRDb252ZXJ0TWFwX3VuaXF1 ZShEZWZhdWx0Q29udmVydE1hcCk6CisgICAgICAgICAgICAgICAgIHByaW50KHR5cGUoQy5fZWxl bWVudF9jb25zdHJ1Y3RvciksIEMuX2VsZW1lbnRfY29uc3RydWN0b3IpCisgICAgICAgICAgICAg cmFpc2UKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJn cz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9h cmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgY2RlZiBQYXJlbnQgQyA9 IHNlbGYuX2NvZG9tYWluCisgICAgICAgICB0cnk6CisgICAgICAgICAgICAgaWYgbGVuKGFyZ3Mp ID09IDA6CitAQCAtMjEyLDcgKzIxMiw3IEBAIGNkZWYgY2xhc3MgTmFtZWRDb252ZXJ0TWFwKE1h cCk6CisgICAgICAgICBzZWxmLm1ldGhvZF9uYW1lID0gbWV0aG9kX25hbWUKKyAgICAgICAgIHNl bGYuX3JlcHJfdHlwZV9zdHIgPSAiQ29udmVyc2lvbiB2aWEgJXMgbWV0aG9kIiAlIHNlbGYubWV0 aG9kX25hbWUKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0yMzksNyArMjM5LDcg QEAgY2RlZiBjbGFzcyBOYW1lZENvbnZlcnRNYXAoTWFwKToKKyAgICAgICAgIHNsb3RzWydtZXRo b2RfbmFtZSddID0gc2VsZi5tZXRob2RfbmFtZQorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCist ICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAg IGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjY1LDcgKzI2 NSw3IEBAIGNkZWYgY2xhc3MgTmFtZWRDb252ZXJ0TWFwKE1hcCk6CisgICAgICAgICBzZWxmLm1l dGhvZF9uYW1lID0gX3Nsb3RzWydtZXRob2RfbmFtZSddCisgICAgICAgICBNYXAuX3VwZGF0ZV9z bG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAg ICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI5OSw3ICsyOTksNyBAQCBjZGVmIGNs YXNzIE5hbWVkQ29udmVydE1hcChNYXApOgorICAgICAgICAgICAgIGUgPSBtLl9jYWxsXyhlKQor ICAgICAgICAgcmV0dXJuIGUKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Mo c2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIi CisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzY2LDcgKzM2Niw3IEBAIGNkZWYgY2xhc3Mg Q2FsbGFibGVDb252ZXJ0TWFwKE1hcCk6CisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6 CisgICAgICAgICAgICAgc2VsZi5fcmVwcl90eXBlX3N0ciA9ICJDb252ZXJzaW9uIHZpYSAlcyIg JSBzZWxmLl9mdW5jCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNl cHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMzg2LDcgKzM4 Niw3IEBAIGNkZWYgY2xhc3MgQ2FsbGFibGVDb252ZXJ0TWFwKE1hcCk6CisgICAgICAgICBzbG90 c1snX3BhcmVudF9hc19maXJzdF9hcmcnXSA9IHNlbGYuX3BhcmVudF9hc19maXJzdF9hcmcKKyAg ICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGlj dCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBf c2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBp Y2tsaW5nLgorIAorQEAgLTQwNSw3ICs0MDUsNyBAQCBjZGVmIGNsYXNzIENhbGxhYmxlQ29udmVy dE1hcChNYXApOgorICAgICAgICAgc2VsZi5fcGFyZW50X2FzX2ZpcnN0X2FyZyA9IF9zbG90c1sn X3BhcmVudF9hc19maXJzdF9hcmcnXQorICAgICAgICAgTWFwLl91cGRhdGVfc2xvdHMoc2VsZiwg X3Nsb3RzKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEJlY2F1c2Ugc2VsZi5fZnVuYyBtYXkgYmUgYW55dGhpbmcgd2UgZG8gYSBsaXR0bGUgYml0 IG9mIHNhbml0eQorICAgICAgICAgY2hlY2tpbmcgKHRoZSByZXR1cm4gdmFsdWUgbXVzdCBiZSBh biBlbGVtZW50IHdpdGggdGhlIGNvcnJlY3QgcGFyZW50KS4KK0BAIC00NDcsNyArNDQ3LDcgQEAg Y2RlZiBjbGFzcyBDYWxsYWJsZUNvbnZlcnRNYXAoTWFwKToKKyAgICAgICAgICAgICByYWlzZSBS dW50aW1lRXJyb3IoIkJVRyBpbiBjb2VyY2lvbiBtb2RlbDoge30gcmV0dXJuZWQgZWxlbWVudCB3 aXRoIHdyb25nIHBhcmVudCAoZXhwZWN0ZWQge30gZ290IHt9KSIuZm9ybWF0KHNlbGYuX2Z1bmMs IEMsIHkuX3BhcmVudCkpCisgICAgICAgICByZXR1cm4geQorIAorLSAgICBjcGRlZiBFbGVtZW50 IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17 fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC00ODUsNyArNDg1LDcg QEAgY2RlZiBjbGFzcyBDYWxsYWJsZUNvbnZlcnRNYXAoTWFwKToKKyAKKyAKKyBjZGVmIGNsYXNz IENDYWxsYWJsZUNvbnZlcnRNYXBfY2xhc3MoTWFwKToKKy0gICAgY2RlZiBFbGVtZW50ICgqX2Z1 bmMpKFBhcmVudCwgb2JqZWN0KSBub2V4Y2VwdAorKyAgICBjZGVmIEVsZW1lbnQgKCpfZnVuYyko UGFyZW50LCBvYmplY3QpCisgICAgIGNkZWYgcHVibGljIF9uYW1lCisgCisgICAgIGRlZiBfX2lu aXRfXyhzZWxmLCBkb21haW4sIGNvZG9tYWluLCBuYW1lKToKK0BAIC00OTUsNyArNDk1LDcgQEAg Y2RlZiBjbGFzcyBDQ2FsbGFibGVDb252ZXJ0TWFwX2NsYXNzKE1hcCk6CisgICAgICAgICBzZWxm Ll9jb2VyY2VfY29zdCA9IDEwCisgICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQorIAorLSAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BA IC01MjYsNyArNTI2LDcgQEAgY2RlZiBjbGFzcyBDQ2FsbGFibGVDb252ZXJ0TWFwX2NsYXNzKE1h cCk6CisgICAgICAgICAgICAgcmV0dXJuICJDb252ZXJzaW9uIHZpYSBjIGNhbGwgJyVzJyIgJSBz ZWxmLl9uYW1lCisgCisgCistY2RlZiBNYXAgQ0NhbGxhYmxlQ29udmVydE1hcChkb21haW4sIGNv ZG9tYWluLCB2b2lkKiBmdW5jLCBuYW1lKSBub2V4Y2VwdDoKKytjZGVmIE1hcCBDQ2FsbGFibGVD b252ZXJ0TWFwKGRvbWFpbiwgY29kb21haW4sIHZvaWQqIGZ1bmMsIG5hbWUpOgorICAgICAiIiIK KyAgICAgVXNlIHRoaXMgdG8gY3JlYXRlIGEgbWFwIGZyb20gZG9tYWluIHRvIGNvZG9tYWluIGJ5 IGNhbGxpbmcgZnVuYworICAgICAod2hpY2ggbXVzdCBiZSBhIGZ1bmN0aW9uIHBvaW50ZXIgdGFr aW5nIGEgUGFyZW50IGFuZCBvYmplY3QsIGFuZAorQEAgLTU0MCw3ICs1NDAsNyBAQCBjZGVmIE1h cCBDQ2FsbGFibGVDb252ZXJ0TWFwKGRvbWFpbiwgY29kb21haW4sIHZvaWQqIGZ1bmMsIG5hbWUp IG5vZXhjZXB0OgorICAgICBtYXAuX2Z1bmMgPSA8RWxlbWVudCAoKikoUGFyZW50LCBvYmplY3Qp PmZ1bmMKKyAgICAgcmV0dXJuIG1hcAorIAorLWNwZGVmIEVsZW1lbnQgX2NjYWxsX3Rlc3RfZnVu Y3Rpb24oY29kb21haW4sIHgpIG5vZXhjZXB0OgorK2NwZGVmIEVsZW1lbnQgX2NjYWxsX3Rlc3Rf ZnVuY3Rpb24oY29kb21haW4sIHgpOgorICAgICAiIiIKKyAgICAgRm9yIHRlc3RpbmcgQ0NhbGxh YmxlQ29udmVydE1hcF9jbGFzcy4gUmV0dXJucyB4KngqeC14IGluIHRoZSBjb2RvbWFpbi4KKyAK K0BAIC01ODcsMjMgKzU4NywyMyBAQCBjZGVmIGNsYXNzIExpc3RNb3JwaGlzbShNYXApOgorICAg ICAgICAgc2VsZi5fcmVhbF9tb3JwaGlzbSA9IHJlYWxfbW9ycGhpc20KKyAgICAgICAgIHNlbGYu X3JlcHJfdHlwZV9zdHIgPSAiTGlzdCIKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAg ICAgIHNsb3RzID0gTWFwLl9leHRyYV9zbG90cyhzZWxmKQorICAgICAgICAgc2xvdHNbJ19yZWFs X21vcnBoaXNtJ10gPSBzZWxmLl9yZWFsX21vcnBoaXNtCisgICAgICAgICByZXR1cm4gc2xvdHMK KyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgIHNl bGYuX3JlYWxfbW9ycGhpc20gPSBfc2xvdHNbJ19yZWFsX21vcnBoaXNtJ10KKyAgICAgICAgIE1h cC5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgp OgorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIHggPSB4Ll9kYXRhCisgICAgICAgICBleGNl cHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgeCA9IGxpc3QoeCkKKyAgICAgICAgIHJl dHVybiBzZWxmLl9yZWFsX21vcnBoaXNtLl9jYWxsXyh4KQorIAorLSAgICBjcGRlZiBFbGVtZW50 IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17 fSk6CisgICAgICAgICB0cnk6CisgICAgICAgICAgICAgeCA9IHguX2RhdGEKKyAgICAgICAgIGV4 Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKK0BAIC02MzIsNyArNjMyLDcgQEAgY2RlZiBjbGFzcyBUcnlN YXAoTWFwKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5fZXJyb3JfdHlwZXMg PSBlcnJvcl90eXBlcworIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTY1NSw3ICs2 NTUsNyBAQCBjZGVmIGNsYXNzIFRyeU1hcChNYXApOgorICAgICAgICAgc2xvdHNbJ19lcnJvcl90 eXBlcyddID0gc2VsZi5fZXJyb3JfdHlwZXMKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAg ICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAg ICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTY3Nyw3ICs2Nzcs NyBAQCBjZGVmIGNsYXNzIFRyeU1hcChNYXApOgorICAgICAgICAgc2VsZi5fZXJyb3JfdHlwZXMg PSBfc2xvdHNbJ19lcnJvcl90eXBlcyddCisgICAgICAgICBNYXAuX3VwZGF0ZV9zbG90cyhzZWxm LCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAg ICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTY5Niw3ICs2OTYsNyBAQCBjZGVmIGNsYXNzIFRyeU1h cChNYXApOgorICAgICAgICAgZXhjZXB0IHNlbGYuX2Vycm9yX3R5cGVzOgorICAgICAgICAgICAg IHJldHVybiBzZWxmLl9tYXBfYi5fY2FsbF8oeCkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgor ICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2Uvc3RydWN0dXJlL2VsZW1lbnQucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHhk CitpbmRleCA0ODdhM2QxMjZhMS4uMmQzNjA5MDU3ODMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9z dHJ1Y3R1cmUvZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB4 ZAorQEAgLTMsNyArMyw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQgUGFy ZW50CisgZnJvbSBzYWdlLm1pc2MuaW5oZXJpdF9jb21wYXJpc29uIGNpbXBvcnQgSW5oZXJpdENv bXBhcmlzb25NZXRhY2xhc3MKKyAKKyAKKy1jcGRlZiBpbmxpbmUgcGFyZW50KHgpIG5vZXhjZXB0 OgorK2NwZGVmIGlubGluZSBwYXJlbnQoeCk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHBh cmVudCBvZiB0aGUgZWxlbWVudCBgYHhgYC4KKyAKK0BAIC0xNDMsMzYgKzE0MywzNiBAQCBjcGRl ZiBpbmxpbmUgYmludCBoYXZlX3NhbWVfcGFyZW50KGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKyAg ICAgcmV0dXJuIEhBVkVfU0FNRV9QQVJFTlQoY2xhc3NpZnlfZWxlbWVudHMobGVmdCwgcmlnaHQp KQorIAorIAorLWNkZWYgdW5hcnlfb3BfZXhjZXB0aW9uKG9wLCB4KSBub2V4Y2VwdAorLWNkZWYg YmluX29wX2V4Y2VwdGlvbihvcCwgeCwgeSkgbm9leGNlcHQKKytjZGVmIHVuYXJ5X29wX2V4Y2Vw dGlvbihvcCwgeCkKKytjZGVmIGJpbl9vcF9leGNlcHRpb24ob3AsIHgsIHkpCisgCisgCisgY2Rl ZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICBjZGVmIFBhcmVudCBfcGFyZW50Cist ICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdAorKyAgICBj cGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkKKyAgICAgY3BkZWYgaW50IF9jbXBf KGxlZnQsIHJpZ2h0KSBleGNlcHQgLTIKKy0gICAgY3BkZWYgYmFzZV9leHRlbmQoc2VsZiwgUikg bm9leGNlcHQKKysgICAgY3BkZWYgYmFzZV9leHRlbmQoc2VsZiwgUikKKyAKKy0gICAgY2RlZiBn ZXRhdHRyX2Zyb21fY2F0ZWdvcnkoc2VsZiwgbmFtZSkgbm9leGNlcHQKKysgICAgY2RlZiBnZXRh dHRyX2Zyb21fY2F0ZWdvcnkoc2VsZiwgbmFtZSkKKyAKKy0gICAgY3BkZWYgX2FjdF9vbl8oc2Vs ZiwgeCwgYmludCBzZWxmX29uX2xlZnQpIG5vZXhjZXB0CistICAgIGNwZGVmIF9hY3RlZF91cG9u XyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQKKysgICAgY3BkZWYgX2FjdF9v bl8oc2VsZiwgeCwgYmludCBzZWxmX29uX2xlZnQpCisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhz ZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkKKyAKKy0gICAgY2RlZiBfYWRkXyhzZWxmLCBvdGhl cikgbm9leGNlcHQKKy0gICAgY2RlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAg Y2RlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9hZGRfbG9uZyhzZWxmLCBsb25n IG4pIG5vZXhjZXB0CisrICAgIGNkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYgX3N1 Yl8oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYgX25lZ18oc2VsZikKKysgICAgY2RlZiBfYWRkX2xv bmcoc2VsZiwgbG9uZyBuKQorIAorLSAgICBjZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2Vw dAorLSAgICBjZGVmIF9tdWxfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0CistICAgIGNkZWYg X21hdG11bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNkZWYgX2Rpdl8oc2VsZiwgb3Ro ZXIpIG5vZXhjZXB0CistICAgIGNkZWYgX2Zsb29yZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQK Ky0gICAgY2RlZiBfbW9kXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY2RlZiBfbXVsXyhz ZWxmLCBvdGhlcikKKysgICAgY2RlZiBfbXVsX2xvbmcoc2VsZiwgbG9uZyBuKQorKyAgICBjZGVm IF9tYXRtdWxfKHNlbGYsIG90aGVyKQorKyAgICBjZGVmIF9kaXZfKHNlbGYsIG90aGVyKQorKyAg ICBjZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYgX21vZF8oc2VsZiwgb3Ro ZXIpCisgCistICAgIGNkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNkZWYg X3Bvd19pbnQoc2VsZiwgbikgbm9leGNlcHQKKy0gICAgY2RlZiBfcG93X2xvbmcoc2VsZiwgbG9u ZyBuKSBub2V4Y2VwdAorKyAgICBjZGVmIF9wb3dfKHNlbGYsIG90aGVyKQorKyAgICBjZGVmIF9w b3dfaW50KHNlbGYsIG4pCisrICAgIGNkZWYgX3Bvd19sb25nKHNlbGYsIGxvbmcgbikKKyAKKyAK KyBjZGVmIGNsYXNzIEVsZW1lbnRXaXRoQ2FjaGVkTWV0aG9kKEVsZW1lbnQpOgorQEAgLTE4Mywx NCArMTgzLDE0IEBAIGNkZWYgY2xhc3MgTW9kdWxlRWxlbWVudChFbGVtZW50KSAgICAgICAjIGZv cndhcmQgZGVjbGFyYXRpb24KKyBjZGVmIGNsYXNzIFJpbmdFbGVtZW50KE1vZHVsZUVsZW1lbnQp ICAgIyBmb3J3YXJkIGRlY2xhcmF0aW9uCisgCisgY2RlZiBjbGFzcyBNb2R1bGVFbGVtZW50KEVs ZW1lbnQpOgorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5v ZXhjZXB0CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfc3ViXyhz ZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX25lZ18oc2VsZikKKyAKKyAgICAgIyBzZWxmLl9ybXVs Xyh4KSBpcyB4ICogc2VsZgorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkg bm9leGNlcHQKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpCisgICAgICMg c2VsZi5fbG11bF8oeCkgaXMgc2VsZiAqIHgKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1l bnQgbGVmdCkgbm9leGNlcHQKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkK KyAKKyBjZGVmIGNsYXNzIE1vZHVsZUVsZW1lbnRXaXRoTXV0YWJpbGl0eShNb2R1bGVFbGVtZW50 KToKKyAgICAgY2RlZiBiaW50IF9pc19pbW11dGFibGUKK0BAIC0xOTgsMTggKzE5OCwxOCBAQCBj ZGVmIGNsYXNzIE1vZHVsZUVsZW1lbnRXaXRoTXV0YWJpbGl0eShNb2R1bGVFbGVtZW50KToKKyAg ICAgY3BkZWYgYmludCBpc19tdXRhYmxlKHNlbGYpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBN b25vaWRFbGVtZW50KEVsZW1lbnQpOgorLSAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKSBub2V4 Y2VwdAorKyAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKQorIAorIGNkZWYgY2xhc3MgTXVsdGlw bGljYXRpdmVHcm91cEVsZW1lbnQoTW9ub2lkRWxlbWVudCk6CistICAgIGNwZGVmIF9kaXZfKHNl bGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBvdGhlcikKKyAKKyBj ZGVmIGNsYXNzIEFkZGl0aXZlR3JvdXBFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorICAgICBwYXNz CisgCisgY2RlZiBjbGFzcyBSaW5nRWxlbWVudChNb2R1bGVFbGVtZW50KToKKy0gICAgY3BkZWYg X211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVy KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKSBub2V4Y2VwdAorKyAgICBj cGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpCisr ICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pCisgCisgY2RlZiBjbGFzcyBDb21tdXRhdGl2ZVJp bmdFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgcGFzcworQEAgLTIyNCwxMSArMjI0LDExIEBA IGNkZWYgY2xhc3MgUHJpbmNpcGFsSWRlYWxEb21haW5FbGVtZW50KERlZGVraW5kRG9tYWluRWxl bWVudCk6CisgICAgIHBhc3MKKyAKKyBjZGVmIGNsYXNzIEV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQo UHJpbmNpcGFsSWRlYWxEb21haW5FbGVtZW50KToKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxm LCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0 CisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tb2RfKHNl bGYsIG90aGVyKQorIAorIGNkZWYgY2xhc3MgRmllbGRFbGVtZW50KENvbW11dGF0aXZlUmluZ0Vs ZW1lbnQpOgorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKQorIAorIGNkZWYgY2xhc3MgQWxnZWJyYUVs ZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICBwYXNzCitAQCAtMjQ4LDEwICsyNDgsMTAgQEAgY2Rl ZiBjbGFzcyBWZWN0b3IoTW9kdWxlRWxlbWVudFdpdGhNdXRhYmlsaXR5KToKKyAgICAgIyBSZXR1 cm4gdGhlIGRvdCBwcm9kdWN0IHVzaW5nIHRoZSBzaW1wbGUgbWV0cmljCisgICAgICMgJGVfaSBc Y2RvdCBlX2ogPSBcZGVsdGFfe2lqfSQuIFRoZSBmaXJzdCBhc3N1bWVzIHRoYXQgdGhlIHBhcmVu dHMKKyAgICAgIyBhcmUgZXF1YWwsIGJvdGggYXNzdW1lIHRoYXQgdGhlIGRlZ3JlZXMgYXJlIGVx dWFsLgorLSAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKFZlY3RvciBsZWZ0LCBWZWN0b3IgcmlnaHQp IG5vZXhjZXB0CistICAgIGNwZGVmIF9kb3RfcHJvZHVjdF9jb2VyY2VfKFZlY3RvciBsZWZ0LCBW ZWN0b3IgcmlnaHQpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9kb3RfcHJvZHVjdF8oVmVjdG9yIGxl ZnQsIFZlY3RvciByaWdodCkKKysgICAgY3BkZWYgX2RvdF9wcm9kdWN0X2NvZXJjZV8oVmVjdG9y IGxlZnQsIFZlY3RvciByaWdodCkKKyAKKy0gICAgY3BkZWYgX3BhaXJ3aXNlX3Byb2R1Y3RfKFZl Y3RvciBsZWZ0LCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0ICMgb3ZlcnJpZGUsIGNhbGwgaWYgcGFy ZW50cyB0aGUgc2FtZQorKyAgICBjcGRlZiBfcGFpcndpc2VfcHJvZHVjdF8oVmVjdG9yIGxlZnQs IFZlY3RvciByaWdodCkgIyBvdmVycmlkZSwgY2FsbCBpZiBwYXJlbnRzIHRoZSBzYW1lCisgCisg ICAgIGNkZWYgYmludCBpc19zcGFyc2VfYyhzZWxmKSBub2V4Y2VwdAorICAgICBjZGVmIGJpbnQg aXNfZGVuc2VfYyhzZWxmKSBub2V4Y2VwdAorQEAgLTI2Miw5ICsyNjIsOSBAQCBjZGVmIGNsYXNz IE1hdHJpeChNb2R1bGVFbGVtZW50KToKKyAgICAgY2RlZiBQeV9zc2l6ZV90IF9ucm93cworICAg ICBjZGVmIFB5X3NzaXplX3QgX25jb2xzCisgCistICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRy aXhfKG1hdHJpeF9yaWdodCwgVmVjdG9yIHZlY3Rvcl9sZWZ0KSBub2V4Y2VwdCAgICAjIE9LIHRv IG92ZXJyaWRlLCBBTkQgY2FsbCBkaXJlY3RseQorLSAgICBjZGVmIF9tYXRyaXhfdGltZXNfdmVj dG9yXyhtYXRyaXhfbGVmdCwgVmVjdG9yIHZlY3Rvcl9yaWdodCkgbm9leGNlcHQgICAgIyBPSyB0 byBvdmVycmlkZSwgQU5EIGNhbGwgZGlyZWN0bHkKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX21h dHJpeF8obGVmdCwgTWF0cml4IHJpZ2h0KSBub2V4Y2VwdCAgICAgICAgICAgICAgICAgICMgT0sg dG8gb3ZlcnJpZGUsIEFORCBjYWxsIGRpcmVjdGx5CisrICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19t YXRyaXhfKG1hdHJpeF9yaWdodCwgVmVjdG9yIHZlY3Rvcl9sZWZ0KSAgICAjIE9LIHRvIG92ZXJy aWRlLCBBTkQgY2FsbCBkaXJlY3RseQorKyAgICBjZGVmIF9tYXRyaXhfdGltZXNfdmVjdG9yXyht YXRyaXhfbGVmdCwgVmVjdG9yIHZlY3Rvcl9yaWdodCkgICAgIyBPSyB0byBvdmVycmlkZSwgQU5E IGNhbGwgZGlyZWN0bHkKKysgICAgY2RlZiBfbWF0cml4X3RpbWVzX21hdHJpeF8obGVmdCwgTWF0 cml4IHJpZ2h0KSAgICAgICAgICAgICAgICAgICMgT0sgdG8gb3ZlcnJpZGUsIEFORCBjYWxsIGRp cmVjdGx5CisgCisgICAgIGNkZWYgYmludCBpc19zcGFyc2VfYyhzZWxmKSBub2V4Y2VwdAorICAg ICBjZGVmIGJpbnQgaXNfZGVuc2VfYyhzZWxmKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5 eAoraW5kZXggMTdlOGZiNTE2OTAuLjQ3NWQxMTQ3MzE1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv c3RydWN0dXJlL2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5w eXgKK0BAIC0zMjQsNyArMzI0LDcgQEAgZGVmIG1ha2VfZWxlbWVudChfY2xhc3MsIF9kaWN0LCBw YXJlbnQpOgorICAgICByZXR1cm4gbWFrZV9lbGVtZW50X29sZChfY2xhc3MsIF9kaWN0LCBwYXJl bnQpCisgCisgCistY2RlZiB1bmFyeV9vcF9leGNlcHRpb24ob3AsIHgpIG5vZXhjZXB0OgorK2Nk ZWYgdW5hcnlfb3BfZXhjZXB0aW9uKG9wLCB4KToKKyAgICAgdHJ5OgorICAgICAgICAgb3AgPSBv cC5fX25hbWVfXworICAgICAgICAgb3AgPSBfY29lcmNlX29wX3N5bWJvbHNbb3BdCitAQCAtMzM0 LDcgKzMzNCw3IEBAIGNkZWYgdW5hcnlfb3BfZXhjZXB0aW9uKG9wLCB4KSBub2V4Y2VwdDoKKyAg ICAgcmV0dXJuIFR5cGVFcnJvcihmInVuc3VwcG9ydGVkIG9wZXJhbmQgcGFyZW50IGZvciB7b3B9 OiAne3B4fSciKQorIAorIAorLWNkZWYgYmluX29wX2V4Y2VwdGlvbihvcCwgeCwgeSkgbm9leGNl cHQ6CisrY2RlZiBiaW5fb3BfZXhjZXB0aW9uKG9wLCB4LCB5KToKKyAgICAgdHJ5OgorICAgICAg ICAgb3AgPSBvcC5fX25hbWVfXworICAgICAgICAgb3AgPSBfY29lcmNlX29wX3N5bWJvbHNbb3Bd CitAQCAtNDg4LDcgKzQ4OCw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0YXR0cl9mcm9tX2NhdGVnb3J5KG5h bWUpCisgCistICAgIGNkZWYgZ2V0YXR0cl9mcm9tX2NhdGVnb3J5KHNlbGYsIG5hbWUpIG5vZXhj ZXB0OgorKyAgICBjZGVmIGdldGF0dHJfZnJvbV9jYXRlZ29yeShzZWxmLCBuYW1lKToKKyAgICAg ICAgICMgTG9va3VwIGEgbWV0aG9kIG9yIGF0dHJpYnV0ZSBmcm9tIHRoZSBjYXRlZ29yeSBhYnN0 cmFjdCBjbGFzc2VzLgorICAgICAgICAgIyBTZWUgX19nZXRhdHRyX18gYWJvdmUgZm9yIGRvY3Vt ZW50YXRpb24uCisgICAgICAgICBjZGVmIFBhcmVudCBQID0gc2VsZi5fcGFyZW50CitAQCAtNjM2 LDcgKzYzNiw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjcGRlZiBiYXNl X2V4dGVuZChzZWxmLCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZV9leHRlbmQoc2VsZiwg Uik6CisgICAgICAgICBjZGVmIFBhcmVudCBWCisgICAgICAgICBWID0gc2VsZi5fcGFyZW50LmJh c2VfZXh0ZW5kKFIpCisgICAgICAgICByZXR1cm4gVi5jb2VyY2Uoc2VsZikKK0BAIC05MjgsNyAr OTI4LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5uKHByZWMpLl9tcG1hdGhfKHByZWM9cHJlYykKKyAKKy0gICAg Y3BkZWYgX2FjdF9vbl8oc2VsZiwgeCwgYmludCBzZWxmX29uX2xlZnQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFVzZSB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgYGBzZWxmYGAgYWN0aW5n IG9uIGBgeGBgLgorIAorQEAgLTkzNyw3ICs5MzcsNyBAQCBjZGVmIGNsYXNzIEVsZW1lbnQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNw ZGVmIF9hY3RlZF91cG9uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFVzZSB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgYGBzZWxmYGAg YWN0ZWQgb24gYnkgeC4KKyAKK0BAIC0xMDk3LDcgKzEwOTcsNyBAQCBjZGVmIGNsYXNzIEVsZW1l bnQoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBjb2Vy Y2lvbl9tb2RlbC5yaWNoY21wKHNlbGYsIG90aGVyLCBvcCkKKyAKKy0gICAgY3BkZWYgX3JpY2hj bXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8o bGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBCYXNpYyBkZWZh dWx0IGltcGxlbWVudGF0aW9uIG9mIHJpY2ggY29tcGFyaXNvbnMgZm9yIGVsZW1lbnRzIHdpdGgK KyAgICAgICAgIGVxdWFsIHBhcmVudHMuCitAQCAtMTIzOSw3ICsxMjM5LDcgQEAgY2RlZiBjbGFz cyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICMgcmV2ZXJzZWQgYWRkaXRpb24g KF9fcmFkZF9fKS4KKyAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAKKy0gICAg Y2RlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2FkZF8oc2VsZiwg b3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBWaXJ0dWFsIGFkZGl0aW9uIG1ldGhvZCBm b3IgZWxlbWVudHMgd2l0aCBpZGVudGljYWwgcGFyZW50cy4KKyAKK0BAIC0xMjY5LDcgKzEyNjks NyBAQCBjZGVmIGNsYXNzIEVsZW1lbnQoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJldHVybiBweXRob25fb3Aob3RoZXIpCisgCistICAgIGNkZWYgX2FkZF9sb25n KHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2FkZF9sb25nKHNlbGYsIGxvbmcg bik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdlbmVyaWMgcGF0aCBmb3IgYWRkaW5nIGEgQyBs b25nLCBhc3N1bWVkIHRvIGNvbW11dGUuCisgCitAQCAtMTM1MSw3ICsxMzUxLDcgQEAgY2RlZiBj bGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAg ICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAKKy0gICAgY2RlZiBfc3ViXyhzZWxm LCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAg ICAgIiIiCisgICAgICAgICBWaXJ0dWFsIHN1YnRyYWN0aW9uIG1ldGhvZCBmb3IgZWxlbWVudHMg d2l0aCBpZGVudGljYWwgcGFyZW50cy4KKyAKK0BAIC0xNDA1LDcgKzE0MDUsNyBAQCBjZGVmIGNs YXNzIEVsZW1lbnQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLl9uZWdfKCkKKyAKKy0gICAgY2RlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfbmVnXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVmlydHVhbCB1bmFyeSBuZWdh dGlvbiBtZXRob2QgZm9yIGVsZW1lbnRzLgorIAorQEAgLTE1MTksNyArMTUxOSw3IEBAIGNkZWYg Y2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Cisg ICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgCistICAgIGNkZWYgX211bF8oc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tdWxfKHNlbGYsIG90aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgVmlydHVhbCBtdWx0aXBsaWNhdGlvbiBtZXRob2QgZm9yIGVsZW1l bnRzIHdpdGggaWRlbnRpY2FsIHBhcmVudHMuCisgCitAQCAtMTU0OSw3ICsxNTQ5LDcgQEAgY2Rl ZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICByZXR1cm4gcHl0aG9uX29wKG90aGVyKQorIAorLSAgICBjZGVmIF9tdWxfbG9uZyhzZWxmLCBs b25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tdWxfbG9uZyhzZWxmLCBsb25nIG4pOgorICAg ICAgICAgIiIiCisgICAgICAgICBHZW5lcmljIHBhdGggZm9yIG11bHRpcGx5aW5nIGJ5IGEgQyBs b25nLCBhc3N1bWVkIHRvIGNvbW11dGUuCisgCitAQCAtMTYzMSw3ICsxNjMxLDcgQEAgY2RlZiBj bGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAg ICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAKKy0gICAgY2RlZiBfbWF0bXVsXyhz ZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX21hdG11bF8oc2VsZiwgb3RoZXIpOgor ICAgICAgICAgIiIiCisgICAgICAgICBWaXJ0dWFsIG1hdHJpeCBtdWx0aXBsaWNhdGlvbiBtZXRo b2QgZm9yIGVsZW1lbnRzIHdpdGgKKyAgICAgICAgIGlkZW50aWNhbCBwYXJlbnRzLgorQEAgLTE3 MzQsNyArMTczNCw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToKKyAgICAgICAg IGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisg CistICAgIGNkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9kaXZf KHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVmlydHVhbCBkaXZpc2lvbiBt ZXRob2QgZm9yIGVsZW1lbnRzIHdpdGggaWRlbnRpY2FsIHBhcmVudHMuCisgICAgICAgICBUaGlz IGlzIGNhbGxlZCBmb3IgUHl0aG9uIDIgZGl2aXNpb24gYXMgd2VsbCBhcyB0cnVlIGRpdmlzaW9u LgorQEAgLTE4MzUsNyArMTgzNSw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToK KyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxl bWVudGVkCisgCistICAgIGNkZWYgX2Zsb29yZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX2Zsb29yZGl2XyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFZpcnR1YWwgZmxvb3IgZGl2aXNpb24gbWV0aG9kIGZvciBlbGVtZW50cyB3aXRoIGlkZW50aWNh bCBwYXJlbnRzLgorIAorQEAgLTE5MzUsNyArMTkzNSw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChT YWdlT2JqZWN0KToKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgcmV0 dXJuIE5vdEltcGxlbWVudGVkCisgCistICAgIGNkZWYgX21vZF8oc2VsZiwgb3RoZXIpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9tb2RfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAg ICAgVmlydHVhbCBtb2R1bG8gbWV0aG9kIGZvciBlbGVtZW50cyB3aXRoIGlkZW50aWNhbCBwYXJl bnRzLgorIAorQEAgLTIwNjIsNyArMjA2Miw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2Jq ZWN0KToKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgcmV0dXJuIE5v dEltcGxlbWVudGVkCisgCistICAgIGNkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjZGVmIF9wb3dfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVmly dHVhbCBwb3dlcmluZyBtZXRob2QgZm9yIGVsZW1lbnRzIHdpdGggaWRlbnRpY2FsIHBhcmVudHMu CisgCitAQCAtMjA5Miw3ICsyMDkyLDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3Qp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gcHl0aG9uX29wKG90aGVyKQor IAorLSAgICBjZGVmIF9wb3dfaW50KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf cG93X2ludChzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFZpcnR1YWwgcG93 ZXJpbmcgbWV0aG9kIGZvciBwb3dlcmluZyB0byBhbiBpbnRlZ2VyIGV4cG9uZW50LgorIAorQEAg LTIxMjIsNyArMjEyMiw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHB5dGhvbl9vcChvdGhlcikKKyAKKy0gICAg Y2RlZiBfcG93X2xvbmcoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcG93X2xv bmcoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2VuZXJpYyBwYXRoIGZv ciBwb3dlcmluZyB3aXRoIGEgQyBsb25nLgorICAgICAgICAgIiIiCitAQCAtMjI5OSw3ICsyMjk5 LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50V2l0aENhY2hlZE1ldGhvZChFbGVtZW50KToKKyAgICAg ICAgIFRydWUKKyAKKyAgICAgIiIiCistICAgIGNkZWYgZ2V0YXR0cl9mcm9tX2NhdGVnb3J5KHNl bGYsIG5hbWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldGF0dHJfZnJvbV9jYXRlZ29yeShzZWxm LCBuYW1lKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBnZXRhdHRyIG1ldGhvZCBlbnN1 cmVzIHRoYXQgY2FjaGVkIG1ldGhvZHMgYW5kIGxhenkgYXR0cmlidXRlcworICAgICAgICAgY2Fu IGJlIGluaGVyaXRlZCBmcm9tIHRoZSBlbGVtZW50IGNsYXNzIG9mIGEgY2F0ZWdvcnkuCitAQCAt MjM2Nyw3ICsyMzY3LDcgQEAgY2RlZiBjbGFzcyBNb2R1bGVFbGVtZW50KEVsZW1lbnQpOgorICAg ICAiIiIKKyAgICAgR2VuZXJpYyBlbGVtZW50IG9mIGEgbW9kdWxlLgorICAgICAiIiIKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFic3RyYWN0IGFkZGl0aW9uIG1ldGhv ZAorIAorQEAgLTIzODIsNyArMjM4Miw3IEBAIGNkZWYgY2xhc3MgTW9kdWxlRWxlbWVudChFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcihm ImFkZGl0aW9uIG5vdCBpbXBsZW1lbnRlZCBmb3Ige3NlbGYuX3BhcmVudH0iKQorIAorLSAgICBj ZGVmIF9hZGRfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9hZGRfbG9u ZyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBHZW5lcmljIHBhdGggZm9y IGFkZGluZyBhIEMgbG9uZywgYXNzdW1lZCB0byBjb21tdXRlLgorICAgICAgICAgIiIiCitAQCAt MjM5MCwyMSArMjM5MCwyMSBAQCBjZGVmIGNsYXNzIE1vZHVsZUVsZW1lbnQoRWxlbWVudCk6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5i aW5fb3Aoc2VsZiwgbiwgYWRkKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAg ICAgICAgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBzdWJ0cmFjdGlvbiB1c2luZyBhZGRpdGlv biBhbmQKKyAgICAgICAgIG5lZ2F0aW9uLgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZiArICgtb3RoZXIpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgRGVmYXVsdCBpbXBs ZW1lbnRhdGlvbiBvZiBuZWdhdGlvbiB1c2luZyBtdWx0aXBsaWNhdGlvbgorICAgICAgICAgd2l0 aCAtMS4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX211bF9sb25nKC0xKQor IAorLSAgICBjZGVmIF9tdWxfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVm IF9tdWxfbG9uZyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBHZW5lcmlj IHBhdGggZm9yIG11bHRpcGx5aW5nIGJ5IGEgQyBsb25nLCBhc3N1bWVkIHRvIGNvbW11dGUuCisg ICAgICAgICAiIiIKK0BAIC0yNDEzLDcgKzI0MTMsNyBAQCBjZGVmIGNsYXNzIE1vZHVsZUVsZW1l bnQoRWxlbWVudCk6CisgICAgICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwuYmluX29wKHNlbGYs IG4sIG11bCkKKyAKKyAgICAgIyBybXVsIC0tIGxlZnQgKiBzZWxmCistICAgIGNwZGVmIF9ybXVs XyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwg RWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV2ZXJzZWQgc2NhbGFyIG11 bHRpcGxpY2F0aW9uIGZvciBtb2R1bGUgZWxlbWVudHMgd2l0aCB0aGUKKyAgICAgICAgIG1vZHVs ZSBlbGVtZW50IG9uIHRoZSByaWdodCBhbmQgdGhlIHNjYWxhciBvbiB0aGUgbGVmdC4KK0BAIC0y NDIzLDcgKzI0MjMsNyBAQCBjZGVmIGNsYXNzIE1vZHVsZUVsZW1lbnQoRWxlbWVudCk6CisgICAg ICAgICByZXR1cm4gc2VsZi5fbG11bF8obGVmdCkKKyAKKyAgICAgIyBsbXVsIC0tIHNlbGYgKiBy aWdodAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAg ICAgICAgU2NhbGFyIG11bHRpcGxpY2F0aW9uIGZvciBtb2R1bGUgZWxlbWVudHMgd2l0aCB0aGUg bW9kdWxlCisgICAgICAgICBlbGVtZW50IG9uIHRoZSBsZWZ0IGFuZCB0aGUgc2NhbGFyIG9uIHRo ZSByaWdodC4KK0BAIC0yNTQyLDcgKzI1NDIsNyBAQCBjZGVmIGNsYXNzIE1vbm9pZEVsZW1lbnQo RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IKKyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9wb3dfaW50KHNlbGYsIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIChp bnRlZ3JhbCkgcG93ZXIgb2Ygc2VsZi4KKyAgICAgICAgICIiIgorQEAgLTI2MTAsNyArMjYxMCw3 IEBAIGNkZWYgY2xhc3MgTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQoTW9ub2lkRWxlbWVudCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm11bHRpcGxpY2F0aXZlX29yZGVy KCkKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERlZmF1bHQgaW1w bGVtZW50YXRpb24gb2YgZGl2aXNpb24gdXNpbmcgbXVsdGlwbGljYXRpb24gYnkKKyAgICAgICAg IHRoZSBpbnZlcnNlLgorQEAgLTI2MzUsNyArMjYzNSw3IEBAIGRlZiBpc19SaW5nRWxlbWVudCh4 KToKKyAKKyAKKyBjZGVmIGNsYXNzIFJpbmdFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorLSAgICBj cGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWJzdHJhY3QgbXVsdGlwbGljYXRpb24g bWV0aG9kCisgCitAQCAtMjY1Myw3ICsyNjUzLDcgQEAgY2RlZiBjbGFzcyBSaW5nRWxlbWVudChN b2R1bGVFbGVtZW50KToKKyAgICAgZGVmIGlzX29uZShzZWxmKToKKyAgICAgICAgIHJldHVybiBz ZWxmID09IHNlbGYuX3BhcmVudC5vbmUoKQorIAorLSAgICBjcGRlZiBfcG93X2ludChzZWxmLCBu KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgKGludGVncmFsKSBwb3dlciBvZiBgYHNlbGZgYC4KKyAKK0BA IC0yNzM2LDcgKzI3MzYsNyBAQCBjZGVmIGNsYXNzIFJpbmdFbGVtZW50KE1vZHVsZUVsZW1lbnQp OgorICAgICAgICAgICAgIGwuYXBwZW5kKHgpCisgICAgICAgICByZXR1cm4gbAorIAorLSAgICBj cGRlZiBfZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYs IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBv ZiBkaXZpc2lvbiB1c2luZyB0aGUgZnJhY3Rpb24gZmllbGQuCisgICAgICAgICAiIiIKK0BAIC0z Njc1LDEzICszNjc1LDEzIEBAIGNkZWYgY2xhc3MgVmVjdG9yKE1vZHVsZUVsZW1lbnRXaXRoTXV0 YWJpbGl0eSk6CisgICAgICAgICAgICAgcmV0dXJuICg8VmVjdG9yPmxlZnQpLl9kb3RfcHJvZHVj dF8oPFZlY3Rvcj5yaWdodCkKKyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3Ao bGVmdCwgcmlnaHQsIG11bCkKKyAKKy0gICAgY3BkZWYgX2RvdF9wcm9kdWN0XyhWZWN0b3IgbGVm dCwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2RvdF9wcm9kdWN0XyhWZWN0 b3IgbGVmdCwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgIHJldHVybiBsZWZ0Ll9kb3RfcHJvZHVj dF9jb2VyY2VfKHJpZ2h0KQorIAorLSAgICBjcGRlZiBfZG90X3Byb2R1Y3RfY29lcmNlXyhWZWN0 b3IgbGVmdCwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2RvdF9wcm9kdWN0 X2NvZXJjZV8oVmVjdG9yIGxlZnQsIFZlY3RvciByaWdodCk6CisgICAgICAgICByYWlzZSBiaW5f b3BfZXhjZXB0aW9uKCcqJywgbGVmdCwgcmlnaHQpCisgCistICAgIGNwZGVmIF9wYWlyd2lzZV9w cm9kdWN0XyhWZWN0b3IgbGVmdCwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3BhaXJ3aXNlX3Byb2R1Y3RfKFZlY3RvciBsZWZ0LCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAg cmFpc2UgVHlwZUVycm9yKCJ1bnN1cHBvcnRlZCBvcGVyYXRpb24gZm9yICclcycgYW5kICclcyci JShwYXJlbnQobGVmdCksIHBhcmVudChyaWdodCkpKQorIAorICAgICBkZWYgX190cnVlZGl2X18o c2VsZiwgcmlnaHQpOgorQEAgLTQxNDQsMTMgKzQxNDQsMTMgQEAgY2RlZiBjbGFzcyBNYXRyaXgo TW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIHJpZ2h0LnNvbHZlX2xlZnQobGVm dCkKKyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3AobGVmdCwgcmlnaHQsIHRy dWVkaXYpCisgCistICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKG1hdHJpeF9yaWdodCwg VmVjdG9yIHZlY3Rvcl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdmVjdG9yX3RpbWVzX21h dHJpeF8obWF0cml4X3JpZ2h0LCBWZWN0b3IgdmVjdG9yX2xlZnQpOgorICAgICAgICAgcmFpc2Ug VHlwZUVycm9yCisgCistICAgIGNkZWYgX21hdHJpeF90aW1lc192ZWN0b3JfKG1hdHJpeF9sZWZ0 LCBWZWN0b3IgdmVjdG9yX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3RpbWVz X3ZlY3Rvcl8obWF0cml4X2xlZnQsIFZlY3RvciB2ZWN0b3JfcmlnaHQpOgorICAgICAgICAgcmFp c2UgVHlwZUVycm9yCisgCistICAgIGNkZWYgX21hdHJpeF90aW1lc19tYXRyaXhfKGxlZnQsIE1h dHJpeCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX21hdHJpeF90aW1lc19tYXRyaXhfKGxl ZnQsIE1hdHJpeCByaWdodCk6CisgICAgICAgICByYWlzZSBUeXBlRXJyb3IKKyAKKyAKK0BAIC00 MjgwLDcgKzQyODAsNyBAQCBjZGVmIGNsYXNzIEV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQoUHJpbmNp cGFsSWRlYWxEb21haW5FbGVtZW50KToKKyAgICAgZGVmIHF1b19yZW0oc2VsZiwgb3RoZXIpOgor ICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjcGRlZiBfZmxvb3Jk aXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCBy aWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFF1b3RpZW50IG9mIGRpdmlzaW9uIG9mIGBg c2VsZmBgIGJ5IG90aGVyLiAgVGhpcyBpcyBkZW5vdGVkIC8vLgorIAorQEAgLTQzMDMsNyArNDMw Myw3IEBAIGNkZWYgY2xhc3MgRXVjbGlkZWFuRG9tYWluRWxlbWVudChQcmluY2lwYWxJZGVhbERv bWFpbkVsZW1lbnQpOgorICAgICAgICAgUSwgXyA9IHNlbGYucXVvX3JlbShyaWdodCkKKyAgICAg ICAgIHJldHVybiBRCisgCistICAgIGNwZGVmIF9tb2RfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZW1haW5kZXIgb2YgZGl2aXNpb24gb2YgYGBzZWxmYGAgYnkgb3RoZXIuCisgCitAQCAtNDM0Miw3 ICs0MzQyLDcgQEAgZGVmIGlzX0ZpZWxkRWxlbWVudCh4KToKKyAgICAgcmV0dXJuIGlzaW5zdGFu Y2UoeCwgRmllbGRFbGVtZW50KQorIAorIGNkZWYgY2xhc3MgRmllbGRFbGVtZW50KENvbW11dGF0 aXZlUmluZ0VsZW1lbnQpOgorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2Ygc2VsZiBhbmQgb3RoZXIuIFNpbmNlIHRo ZXNlIGFyZSBmaWVsZAorICAgICAgICAgZWxlbWVudHMsIHRoZSBmbG9vciBkaXZpc2lvbiBpcyBl eGFjdGx5IHRoZSBzYW1lIGFzIHVzdWFsIGRpdmlzaW9uLgorQEAgLTQ0OTksNyArNDQ5OSw3IEBA IGNkZWYgY2xhc3MgSW5maW5pdHlFbGVtZW50KFJpbmdFbGVtZW50KToKKyAjCisgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisgCistY3BkZWYgY2Fub25pY2FsX2NvZXJjaW9uKHgsIHkpIG5vZXhj ZXB0OgorK2NwZGVmIGNhbm9uaWNhbF9jb2VyY2lvbih4LCB5KToKKyAgICAgIiIiCisgICAgIGBg Y2Fub25pY2FsX2NvZXJjaW9uKHgseSlgYCBpcyB3aGF0IGlzIGNhbGxlZCBiZWZvcmUgZG9pbmcg YW4KKyAgICAgYXJpdGhtZXRpYyBvcGVyYXRpb24gYmV0d2VlbiBgYHhgYCBhbmQgYGB5YGAuICBJ dCByZXR1cm5zIGEgcGFpciBgYCh6LHcpYGAKK0BAIC00NTE4LDcgKzQ1MTgsNyBAQCBjcGRlZiBj YW5vbmljYWxfY29lcmNpb24oeCwgeSkgbm9leGNlcHQ6CisgICAgIHJldHVybiBjb2VyY2lvbl9t b2RlbC5jYW5vbmljYWxfY29lcmNpb24oeCx5KQorIAorIAorLWNwZGVmIGJpbl9vcCh4LCB5LCBv cCkgbm9leGNlcHQ6CisrY3BkZWYgYmluX29wKHgsIHksIG9wKToKKyAgICAgcmV0dXJuIGNvZXJj aW9uX21vZGVsLmJpbl9vcCh4LCB5LCBvcCkKKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9z dHJ1Y3R1cmUvZWxlbWVudF93cmFwcGVyLnB4ZCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50 X3dyYXBwZXIucHhkCitpbmRleCAzMDhmNGE3NDljZS4uZjg2ODljNTc5NDcgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudF93cmFwcGVyLnB4ZAorKysrIGIvc3JjL3NhZ2Uv c3RydWN0dXJlL2VsZW1lbnRfd3JhcHBlci5weGQKK0BAIC00LDcgKzQsNyBAQCBmcm9tIHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBFbGVtZW50CisgY2RlZiBjbGFzcyBFbGVtZW50V3Jh cHBlcihFbGVtZW50KToKKyAgICAgY2RlZiBwdWJsaWMgb2JqZWN0IHZhbHVlCisgCistICAgIGNw ZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdAorKyAgICBjcGRlZiBf cmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkKKyAgICAgY3BkZWYgYmludCBfbHRfYnlfdmFs dWUoc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBFbGVtZW50V3JhcHBlckNo ZWNrV3JhcHBlZENsYXNzKEVsZW1lbnRXcmFwcGVyKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9z dHJ1Y3R1cmUvZWxlbWVudF93cmFwcGVyLnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50 X3dyYXBwZXIucHl4CitpbmRleCAxNTg1NDAxZTQ4Yy4uMGYwYzI1YmRkOGQgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudF93cmFwcGVyLnB5eAorKysrIGIvc3JjL3NhZ2Uv c3RydWN0dXJlL2VsZW1lbnRfd3JhcHBlci5weXgKK0BAIC0yOTMsNyArMjkzLDcgQEAgY2RlZiBj bGFzcyBFbGVtZW50V3JhcHBlcihFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1cm4gbGVmdC5f cmljaGNtcF8ocmlnaHQsIG9wKQorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLnJpY2hj bXAobGVmdCwgcmlnaHQsIG9wKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQs IGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50 IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIGBgbGVmdGBg IGNvbXBhcmVzIHdpdGggYGByaWdodGBgIGJhc2VkIG9uIGBgb3BgYC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9zdHJ1Y3R1cmUvZmFjdG9yeS5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvZmFj dG9yeS5weXgKK2luZGV4IGJhNjkyZTE4NTJiLi4yM2UzYzNlMTZjNyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3N0cnVjdHVyZS9mYWN0b3J5LnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2Zh Y3RvcnkucHl4CitAQCAtMzcyLDcgKzM3Miw3IEBAIGNkZWYgY2xhc3MgVW5pcXVlRmFjdG9yeShT YWdlT2JqZWN0KToKKyAgICAgICAgIHZlcnNpb24gPSBzZWxmLmdldF92ZXJzaW9uKHNhZ2VfdmVy c2lvbikKKyAgICAgICAgIHJldHVybiBzZWxmLmdldF9vYmplY3QodmVyc2lvbiwga2V5LCBrd2Rz KQorIAorLSAgICBjcGRlZiBnZXRfb2JqZWN0KHNlbGYsIHZlcnNpb24sIGtleSwgZXh0cmFfYXJn cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9vYmplY3Qoc2VsZiwgdmVyc2lvbiwga2V5LCBl eHRyYV9hcmdzKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgb2JqZWN0IGNv cnJlc3BvbmRpbmcgdG8gYGBrZXlgYCwgY3JlYXRpbmcgaXQgd2l0aAorICAgICAgICAgYGBleHRy YV9hcmdzYGAgaWYgbmVjZXNzYXJ5IChmb3IgZXhhbXBsZSwgaXQgaXNuJ3QgaW4gdGhlIGNhY2hl CitAQCAtNDM2LDcgKzQzNiw3IEBAIGNkZWYgY2xhc3MgVW5pcXVlRmFjdG9yeShTYWdlT2JqZWN0 KToKKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICByZXR1cm4gb2JqCisgCistICAgIGNwZGVm IGdldF92ZXJzaW9uKHNlbGYsIHNhZ2VfdmVyc2lvbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdl dF92ZXJzaW9uKHNlbGYsIHNhZ2VfdmVyc2lvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRo aXMgaXMgcHJvdmlkZWQgdG8gYWxsb3cgbW9yZSBvciBsZXNzIGdyYW51bGFyIGNvbnRyb2wgb3Zl cgorICAgICAgICAgcGlja2xlIHZlcnNpb25pbmcuIE9iamVjdHMgcGlja2xlZCBpbiB0aGUgc2Ft ZSB2ZXJzaW9uIG9mIFNhZ2UKK0BAIC01MDcsNyArNTA3LDcgQEAgY2RlZiBjbGFzcyBVbmlxdWVG YWN0b3J5KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBs ZW1lbnRlZEVycm9yCisgCistICAgIGNwZGVmIG90aGVyX2tleXMoc2VsZiwga2V5LCBvYmopIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBvdGhlcl9rZXlzKHNlbGYsIGtleSwgb2JqKToKKyAgICAgICAg ICIiIgorICAgICAgICAgU29tZXRpbWVzIGR1cmluZyBvYmplY3QgY3JlYXRpb24sIGNlcnRhaW4g ZGVmYXVsdHMgYXJlIGNob3NlbiB3aGljaAorICAgICAgICAgbWF5IHJlc3VsdCBpbiBhIG5ldyAo bW9yZSBzcGVjaWZpYykga2V5LiBUaGlzIGFsbG93cyB0aGUgbW9yZSBzcGVjaWZpYworQEAgLTUz NCw3ICs1MzQsNyBAQCBjZGVmIGNsYXNzIFVuaXF1ZUZhY3RvcnkoU2FnZU9iamVjdCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBbXQorIAorLSAgICBjcGRlZiByZWR1Y2VfZGF0YShz ZWxmLCBvYmopIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2VfZGF0YShzZWxmLCBvYmopOgor ICAgICAgICAgIiIiCisgICAgICAgICBUaGUgcmVzdWx0cyBvZiB0aGlzIGZ1bmN0aW9uIGNhbiBi ZSByZXR1cm5lZCBmcm9tCisgICAgICAgICA6bWV0aDpgX19yZWR1Y2VfX2AuIFRoaXMgaXMgaGVy ZSBzbyB0aGUgZmFjdG9yeSBpbnRlcm5hbHMgY2FuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3Ry dWN0dXJlL2xpc3RfY2xvbmUucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmUucHhk CitpbmRleCBlMTgyZWJmOGJlMS4uZWYxZDIwZjRiZDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9z dHJ1Y3R1cmUvbGlzdF9jbG9uZS5weGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9saXN0X2Ns b25lLnB4ZAorQEAgLTIxLDQ0ICsyMSw0NCBAQCBjZGVmIGNsYXNzIENsb25hYmxlRWxlbWVudChF bGVtZW50KToKKyAgICAgY3BkZWYgYmludCBfcmVxdWlyZV9tdXRhYmxlKHNlbGYpIGV4Y2VwdCAt MgorICAgICBjcGRlZiBiaW50IGlzX211dGFibGUoc2VsZikgbm9leGNlcHQKKyAgICAgY3BkZWYg YmludCBpc19pbW11dGFibGUoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgc2V0X2ltbXV0YWJs ZShzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBzZXRfaW1tdXRhYmxlKHNlbGYpCisgCistICAg IGNwZGVmIF9zZXRfbXV0YWJsZShzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfc2V0X211dGFi bGUoc2VsZikKKyAKKy0gICAgY3BkZWYgQ2xvbmFibGVFbGVtZW50IGNsb25lKHNlbGYsIGJpbnQg Y2hlY2s9Pykgbm9leGNlcHQKKysgICAgY3BkZWYgQ2xvbmFibGVFbGVtZW50IGNsb25lKHNlbGYs IGJpbnQgY2hlY2s9PykKKyAKKyBjZGVmIGNsYXNzIENsb25hYmxlQXJyYXkoQ2xvbmFibGVFbGVt ZW50KToKKyAgICAgY2RlZiBsaXN0IF9saXN0CisgCistICAgIGNwZGVmIGxpc3QgX2dldF9saXN0 KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9zZXRfbGlzdChzZWxmLCBsaXN0IGxzdCkgbm9l eGNlcHQKKy0gICAgY3BkZWYgQ2xvbmFibGVBcnJheSBfX2NvcHlfXyhzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBjaGVjayhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBvYmplY3QgX2dldGl0 ZW0oc2VsZiwgaW50IGtleSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX3NldGl0ZW0oc2VsZiwgaW50 IGtleSwgdmFsdWUpIG5vZXhjZXB0CisrICAgIGNwZGVmIGxpc3QgX2dldF9saXN0KHNlbGYpCisr ICAgIGNwZGVmIF9zZXRfbGlzdChzZWxmLCBsaXN0IGxzdCkKKysgICAgY3BkZWYgQ2xvbmFibGVB cnJheSBfX2NvcHlfXyhzZWxmKQorKyAgICBjcGRlZiBjaGVjayhzZWxmKQorKyAgICBjcGRlZiBv YmplY3QgX2dldGl0ZW0oc2VsZiwgaW50IGtleSkKKysgICAgY3BkZWYgX3NldGl0ZW0oc2VsZiwg aW50IGtleSwgdmFsdWUpCisgICAgIGNwZGVmIGludCBpbmRleChzZWxmLCBrZXksIHN0YXJ0PSos IHN0b3A9KikgZXhjZXB0IC0xCisgICAgIGNwZGVmIGludCBjb3VudChzZWxmLCBrZXkpIGV4Y2Vw dCAtMQorICAgICBjcGRlZiBsb25nIGludCBfaGFzaF8oc2VsZikgZXhjZXB0PyAtMQorIAorIGNk ZWYgY2xhc3MgQ2xvbmFibGVMaXN0KENsb25hYmxlQXJyYXkpOgorLSAgICBjcGRlZiBhcHBlbmQo c2VsZiwgZWwpIG5vZXhjZXB0CistICAgIGNwZGVmIGV4dGVuZChzZWxmLCBpdCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgaW5zZXJ0KHNlbGYsIGludCBpbmRleCwgZWwpIG5vZXhjZXB0CistICAgIGNw ZGVmIHBvcChzZWxmLCBpbnQgaW5kZXg9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgcmVtb3ZlKHNl bGYsIGVsKSBub2V4Y2VwdAorKyAgICBjcGRlZiBhcHBlbmQoc2VsZiwgZWwpCisrICAgIGNwZGVm IGV4dGVuZChzZWxmLCBpdCkKKysgICAgY3BkZWYgaW5zZXJ0KHNlbGYsIGludCBpbmRleCwgZWwp CisrICAgIGNwZGVmIHBvcChzZWxmLCBpbnQgaW5kZXg9KikKKysgICAgY3BkZWYgcmVtb3ZlKHNl bGYsIGVsKQorIAorIGNkZWYgY2xhc3MgTm9ybWFsaXplZENsb25hYmxlTGlzdChDbG9uYWJsZUxp c3QpOgorLSAgICBjcGRlZiBub3JtYWxpemUoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgbm9y bWFsaXplKHNlbGYpCisgCisgY2RlZiBjbGFzcyBDbG9uYWJsZUludEFycmF5KENsb25hYmxlRWxl bWVudCk6CisgICAgIGNkZWYgaW50IF9sZW4KKyAgICAgY2RlZiBpbnQqIF9saXN0CisgCistICAg IGNwZGVmIF9hbGxvY18oc2VsZiwgaW50IHNpemUpIG5vZXhjZXB0CistICAgIGNwZGVmIENsb25h YmxlSW50QXJyYXkgX19jb3B5X18oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY2hlY2soc2Vs Zikgbm9leGNlcHQKKy0gICAgY3BkZWYgb2JqZWN0IF9nZXRpdGVtKHNlbGYsIGludCBrZXkpIG5v ZXhjZXB0CistICAgIGNwZGVmIF9zZXRpdGVtKHNlbGYsIGludCBpdGVtLCB2YWx1ZSkgbm9leGNl cHQKKysgICAgY3BkZWYgX2FsbG9jXyhzZWxmLCBpbnQgc2l6ZSkKKysgICAgY3BkZWYgQ2xvbmFi bGVJbnRBcnJheSBfX2NvcHlfXyhzZWxmKQorKyAgICBjcGRlZiBjaGVjayhzZWxmKQorKyAgICBj cGRlZiBvYmplY3QgX2dldGl0ZW0oc2VsZiwgaW50IGtleSkKKysgICAgY3BkZWYgX3NldGl0ZW0o c2VsZiwgaW50IGl0ZW0sIHZhbHVlKQorICAgICBjcGRlZiBpbnQgaW5kZXgoc2VsZiwgaW50IGl0 ZW0pIGV4Y2VwdCAtMQorICAgICBjcGRlZiBsb25nIGludCBfaGFzaF8oc2VsZikgZXhjZXB0PyAt MQorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgbGlzdCBs aXN0KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmUucHl4 IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmUucHl4CitpbmRleCA5Y2E3YmU0NjRlNi4u OGFlNzA5YWRjNDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZS5w eXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9saXN0X2Nsb25lLnB5eAorQEAgLTM1MCw3ICsz NTAsNyBAQCBjZGVmIGNsYXNzIENsb25hYmxlRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2ltbXV0YWJsZQorIAorLSAgICBjcGRlZiBzZXRf aW1tdXRhYmxlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfaW1tdXRhYmxlKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBNYWtlcyBgYHNlbGZgYCBpbW11dGFibGUsIHNvIGl0 IGNhbiBuZXZlciBhZ2FpbiBiZSBjaGFuZ2VkLgorIAorQEAgLTM2OSw3ICszNjksNyBAQCBjZGVm IGNsYXNzIENsb25hYmxlRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg c2VsZi5faXNfaW1tdXRhYmxlID0gVHJ1ZQorIAorLSAgICBjcGRlZiBfc2V0X211dGFibGUoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zZXRfbXV0YWJsZShzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgTWFrZXMgYGBzZWxmYGAgbXV0YWJsZSwgc28gaXQgY2FuIGJlIGNoYW5nZWQu CisgCitAQCAtNDE1LDcgKzQxNSw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVFbGVtZW50KEVsZW1l bnQpOgorICAgICAgICAgICAgICAgICBzZWxmLl9oYXNoID0gc2VsZi5faGFzaF8oKQorICAgICAg ICAgcmV0dXJuIHNlbGYuX2hhc2gKKyAKKy0gICAgY3BkZWYgQ2xvbmFibGVFbGVtZW50IGNsb25l KHNlbGYsIGJpbnQgY2hlY2s9VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIENsb25hYmxlRWxl bWVudCBjbG9uZShzZWxmLCBiaW50IGNoZWNrPVRydWUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gYSBjbG9uZSB0aGF0IGlzIG11dGFibGUgY29weSBvZiBgYHNlbGZgYC4KKyAKK0BA IC01NzgsNyArNTc4LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUFycmF5KENsb25hYmxlRWxlbWVu dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBib29sKHNlbGYuX2xpc3QpCisgCist ICAgIGNwZGVmIGxpc3QgX2dldF9saXN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0 IF9nZXRfbGlzdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0 IGVtYmVkZGVkIGluIGBgc2VsZmBgLgorIAorQEAgLTU5NCw3ICs1OTQsNyBAQCBjZGVmIGNsYXNz IENsb25hYmxlQXJyYXkoQ2xvbmFibGVFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYuX2xpc3QKKyAKKy0gICAgY3BkZWYgX3NldF9saXN0KHNlbGYsIGxpc3QgbHN0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NldF9saXN0KHNlbGYsIGxpc3QgbHN0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgU2V0IHRoZSBsaXN0IGVtYmVkZGVkIGluIGBgc2VsZmBgLgorIAor QEAgLTY3Niw3ICs2NzYsNyBAQCBjZGVmIGNsYXNzIENsb25hYmxlQXJyYXkoQ2xvbmFibGVFbGVt ZW50KToKKyAgICAgICAgIHNlbGYuX3JlcXVpcmVfbXV0YWJsZSgpCisgICAgICAgICBzZWxmLl9s aXN0W2tleV0gPSB2YWx1ZQorIAorLSAgICBjcGRlZiBvYmplY3QgX2dldGl0ZW0oc2VsZiwgaW50 IGtleSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG9iamVjdCBfZ2V0aXRlbShzZWxmLCBpbnQga2V5 KToKKyAgICAgICAgICIiIgorICAgICAgICAgU2FtZSBhcyA6bWV0aDpgX19nZXRpdGVtX19gCisg CitAQCAtNjk1LDcgKzY5NSw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVBcnJheShDbG9uYWJsZUVs ZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbGlzdFtrZXldCisg CistICAgIGNwZGVmIF9zZXRpdGVtKHNlbGYsIGludCBrZXksIHZhbHVlKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3NldGl0ZW0oc2VsZiwgaW50IGtleSwgdmFsdWUpOgorICAgICAgICAgIiIiCisg ICAgICAgICBTYW1lIGFzIDptZXRoOmBfX3NldGl0ZW1fX2AKKyAKK0BAIC04MjIsNyArODIyLDcg QEAgY2RlZiBjbGFzcyBDbG9uYWJsZUFycmF5KENsb25hYmxlRWxlbWVudCk6CisgICAgICAgICBy ZXR1cm4gc2VsZi5faGFzaAorIAorICAgICAjIFNlZSBwcm90b2NvbCBpbiBjb21tZW50IGluIHNh Z2Uvc3RydWN0dXJlL2VsZW1lbnQucHl4CistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdo dCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBp bnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtODQ1LDcgKzg0 NSw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVBcnJheShDbG9uYWJsZUVsZW1lbnQpOgorICAgICAg ICAgY2RlZiBDbG9uYWJsZUFycmF5IHJndCA9IDxDbG9uYWJsZUFycmF5PnJpZ2h0CisgICAgICAg ICByZXR1cm4gcmljaGNtcChsZWZ0Ll9saXN0LCByZ3QuX2xpc3QsIG9wKQorIAorLSAgICBjcGRl ZiBDbG9uYWJsZUFycmF5IF9fY29weV9fKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBDbG9u YWJsZUFycmF5IF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g YSBjb3B5IG9mIGBgc2VsZmBgCisgCitAQCAtODg5LDcgKzg4OSw3IEBAIGNkZWYgY2xhc3MgQ2xv bmFibGVBcnJheShDbG9uYWJsZUVsZW1lbnQpOgorICAgICAgICAgICAgIHJlcy5fX2RpY3RfXyA9 IHNlbGYuX19kaWN0X18uY29weSgpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVm IGNoZWNrKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGVjayhzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ2hlY2sgdGhhdCBgYHNlbGZgYCBmdWxmaWxsIHRoZSBpbnZhcmlhbnRz CisgCitAQCAtMTAwNiw3ICsxMDA2LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUxpc3QoQ2xvbmFi bGVBcnJheSk6CisgICAgIC4uIFNFRUFMU086OiA6Y2xhc3M6YH5zYWdlLnN0cnVjdHVyZS5saXN0 X2Nsb25lX2RlbW8uSW5jcmVhc2luZ0xpc3RgIGZvcgorICAgICAgICAgICAgICAgICAgYW4gZXhh bXBsZSBvZiB1c2FnZS4KKyAgICAgIiIiCistICAgIGNwZGVmIGFwcGVuZChzZWxmLCBlbCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGFwcGVuZChzZWxmLCBlbCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEFwcGVuZHMgYGBlbGBgIHRvIGBgc2VsZmBgCisgCitAQCAtMTAzNSw3ICsxMDM1LDcgQEAg Y2RlZiBjbGFzcyBDbG9uYWJsZUxpc3QoQ2xvbmFibGVBcnJheSk6CisgICAgICAgICBzZWxmLl9y ZXF1aXJlX211dGFibGUoKQorICAgICAgICAgc2VsZi5fbGlzdC5hcHBlbmQoZWwpCisgCistICAg IGNwZGVmIGV4dGVuZChzZWxmLCBpdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGV4dGVuZChzZWxm LCBpdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV4dGVuZHMgYGBzZWxmYGAgYnkgdGhlIGNv bnRlbnQgb2YgdGhlIGl0ZXJhYmxlIGBgaXRgYAorIAorQEAgLTEwNzAsNyArMTA3MCw3IEBAIGNk ZWYgY2xhc3MgQ2xvbmFibGVMaXN0KENsb25hYmxlQXJyYXkpOgorICAgICAgICAgc2VsZi5fcmVx dWlyZV9tdXRhYmxlKCkKKyAgICAgICAgIHNlbGYuX2xpc3QuZXh0ZW5kKGl0KQorIAorLSAgICBj cGRlZiBpbnNlcnQoc2VsZiwgaW50IGluZGV4LCBlbCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlu c2VydChzZWxmLCBpbnQgaW5kZXgsIGVsKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW5zZXJ0 cyBgYGVsYGAgaW4gYGBzZWxmYGAgYXQgcG9zaXRpb24gYGBpbmRleGBgCisgCitAQCAtMTEwMCw3 ICsxMTAwLDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUxpc3QoQ2xvbmFibGVBcnJheSk6CisgICAg ICAgICBzZWxmLl9yZXF1aXJlX211dGFibGUoKQorICAgICAgICAgc2VsZi5fbGlzdC5pbnNlcnQo aW5kZXgsIGVsKQorIAorLSAgICBjcGRlZiBwb3Aoc2VsZiwgaW50IGluZGV4PS0xKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgcG9wKHNlbGYsIGludCBpbmRleD0tMSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJlbW92ZSBgYHNlbGZbaW5kZXhdYGAgZnJvbSBgYHNlbGZgYCBhbmQgcmV0dXJucyBp dAorIAorQEAgLTExMjgsNyArMTEyOCw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVMaXN0KENsb25h YmxlQXJyYXkpOgorICAgICAgICAgc2VsZi5fcmVxdWlyZV9tdXRhYmxlKCkKKyAgICAgICAgIHJl dHVybiBzZWxmLl9saXN0LnBvcChpbmRleCkKKyAKKy0gICAgY3BkZWYgcmVtb3ZlKHNlbGYsIGVs KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVtb3ZlKHNlbGYsIGVsKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmVtb3ZlIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGBgZWxgYCBmcm9tIGBgc2Vs ZmBgCisgCitAQCAtMTI4NSw3ICsxMjg1LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUludEFycmF5 KENsb25hYmxlRWxlbWVudCk6CisgICAgICAgICBpZiBjaGVjazoKKyAgICAgICAgICAgICBzZWxm LmNoZWNrKCkKKyAKKy0gICAgY3BkZWYgX2FsbG9jXyhzZWxmLCBpbnQgc2l6ZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9hbGxvY18oc2VsZiwgaW50IHNpemUpOgorICAgICAgICAgIiIiCisgICAg ICAgICBBbGxvY2F0ZSB0aGUgYXJyYXkgcGFydCBvZiBgYHNlbGZgYCBmb3IgYSBnaXZlbiBzaXpl CisgCitAQCAtMTM3MSw3ICsxMzcxLDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUludEFycmF5KENs b25hYmxlRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBpdGVyKHNlbGYu bGlzdCgpKQorIAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGxpc3QgbGlzdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBzZWxm IGludG8gYSBQeXRob24gbGlzdC4KKyAKK0BAIC0xNDY5LDcgKzE0NjksNyBAQCBjZGVmIGNsYXNz IENsb25hYmxlSW50QXJyYXkoQ2xvbmFibGVFbGVtZW50KToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibGlzdCBpbmRleCBvdXQgb2YgcmFuZ2UiKQorIAor LSAgICBjcGRlZiBvYmplY3QgX2dldGl0ZW0oc2VsZiwgaW50IGtleSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIG9iamVjdCBfZ2V0aXRlbShzZWxmLCBpbnQga2V5KToKKyAgICAgICAgICIiIgorICAg ICAgICAgU2FtZSBhcyA6bWV0aDpgX19nZXRpdGVtX19gCisgCitAQCAtMTQ4Nyw3ICsxNDg3LDcg QEAgY2RlZiBjbGFzcyBDbG9uYWJsZUludEFycmF5KENsb25hYmxlRWxlbWVudCk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoImxpc3QgaW5kZXggb3V0IG9m IHJhbmdlIikKKyAKKy0gICAgY3BkZWYgX3NldGl0ZW0oc2VsZiwgaW50IGtleSwgdmFsdWUpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfc2V0aXRlbShzZWxmLCBpbnQga2V5LCB2YWx1ZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFNhbWUgYXMgOm1ldGg6YF9fc2V0aXRlbV9fYAorIAorQEAgLTE1 NzUsNyArMTU3NSw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVJbnRBcnJheShDbG9uYWJsZUVsZW1l bnQpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX2hhc2gKKyAKKyAgICAgIyBTZWUgcHJvdG9jb2wg aW4gY29tbWVudCBpbiBzYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5eAorLSAgICBjcGRlZiBfcmlj aGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21w XyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6Ogor IAorQEAgLTE2MjMsNyArMTYyMyw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVJbnRBcnJheShDbG9u YWJsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChv cCwgMSkKKyAgICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIHJlc2xlbikKKyAKKy0gICAg Y3BkZWYgQ2xvbmFibGVJbnRBcnJheSBfX2NvcHlfXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgQ2xvbmFibGVJbnRBcnJheSBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIGEgY29weSBvZiBgYHNlbGZgYAorIAorQEAgLTE2NzAsNyArMTY3MCw3IEBAIGNk ZWYgY2xhc3MgQ2xvbmFibGVJbnRBcnJheShDbG9uYWJsZUVsZW1lbnQpOgorICAgICAgICAgICAg IHJlcy5fX2RpY3RfXyA9IHNlbGYuX19kaWN0X18uY29weSgpCisgICAgICAgICByZXR1cm4gcmVz CisgCistICAgIGNwZGVmIGNoZWNrKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGVjayhz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hlY2sgdGhhdCBgYHNlbGZgYCBmdWxmaWxs IHRoZSBpbnZhcmlhbnRzCisgCitAQCAtMTgzMiw3ICsxODMyLDcgQEAgY2RlZiBjbGFzcyBOb3Jt YWxpemVkQ2xvbmFibGVMaXN0KENsb25hYmxlTGlzdCk6CisgICAgICAgICBzZWxmLm5vcm1hbGl6 ZSgpCisgICAgICAgICByZXR1cm4gQ2xvbmFibGVMaXN0Ll9fZXhpdF9fKHNlbGYsIHR5cCwgdmFs dWUsIHRyYWNiYWNrKQorIAorLSAgICBjcGRlZiBub3JtYWxpemUoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIG5vcm1hbGl6ZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgTm9ybWFs aXplIGBgc2VsZmBgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xv bmVfZGVtby5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZV9kZW1vLnB5eAoraW5k ZXggZmM2OGVlZTk0N2UuLjBiZDAxOGY1N2MwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0 dXJlL2xpc3RfY2xvbmVfZGVtby5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9saXN0X2Ns b25lX2RlbW8ucHl4CitAQCAtMzAsNyArMzAsNyBAQCBjZGVmIGNsYXNzIEluY3JlYXNpbmdBcnJh eShDbG9uYWJsZUFycmF5KToKKyAgICAgICAgIHNhZ2U6IFRlc3RTdWl0ZShJbmNyZWFzaW5nQXJy YXlzKCkoW10pKS5ydW4oKQorICAgICAiIiIKKyAKKy0gICAgY3BkZWYgY2hlY2soc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNoZWNrKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBD aGVjayB0aGF0IGBgc2VsZmBgIGlzIGluY3JlYXNpbmcuCisgCitAQCAtMTEzLDcgKzExMyw3IEBA IGNkZWYgY2xhc3MgSW5jcmVhc2luZ0xpc3QoQ2xvbmFibGVMaXN0KToKKyAgICAgICAgIHNhZ2U6 IFRlc3RTdWl0ZShJbmNyZWFzaW5nTGlzdHMoKShbXSkpLnJ1bigpCisgICAgICIiIgorIAorLSAg ICBjcGRlZiBjaGVjayhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hlY2soc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIENoZWNrIHRoYXQgYGBzZWxmYGAgaXMgaW5jcmVhc2luZwor IAorQEAgLTE0Niw3ICsxNDYsNyBAQCBjZGVmIGNsYXNzIEluY3JlYXNpbmdJbnRBcnJheShDbG9u YWJsZUludEFycmF5KToKKyAgICAgICAgIHNhZ2U6IFRlc3RTdWl0ZShJbmNyZWFzaW5nSW50QXJy YXlzKCkoW10pKS5ydW4oKQorICAgICAiIiIKKyAKKy0gICAgY3BkZWYgY2hlY2soc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNoZWNrKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBD aGVjayB0aGF0IGBgc2VsZmBgIGlzIGluY3JlYXNpbmcuCisgCitAQCAtMTkzLDcgKzE5Myw3IEBA IGNkZWYgY2xhc3MgU29ydGVkTGlzdChOb3JtYWxpemVkQ2xvbmFibGVMaXN0KToKKyAgICAgICAg IHNhZ2U6IFRlc3RTdWl0ZShJbmNyZWFzaW5nSW50QXJyYXlzKCkoWzEsMiwzXSkpLnJ1bigpCisg ICAgICAgICBzYWdlOiBUZXN0U3VpdGUoSW5jcmVhc2luZ0ludEFycmF5cygpKFtdKSkucnVuKCkK KyAgICAgIiIiCistICAgIGNwZGVmIG5vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgbm9ybWFsaXplKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBOb3JtYWxpemUgYGBz ZWxmYGAKKyAKK0BAIC0yMTMsNyArMjEzLDcgQEAgY2RlZiBjbGFzcyBTb3J0ZWRMaXN0KE5vcm1h bGl6ZWRDbG9uYWJsZUxpc3QpOgorICAgICAgICAgc2VsZi5fcmVxdWlyZV9tdXRhYmxlKCkKKyAg ICAgICAgIHNlbGYuX2dldF9saXN0KCkuc29ydCgpCisgCistICAgIGNwZGVmIGNoZWNrKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGVjayhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ2hlY2sgdGhhdCBgYHNlbGZgYCBpcyBzdHJpY3RseSBpbmNyZWFzaW5nCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmVfdGltaW5nc19jeS5weXggYi9zcmMv c2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZV90aW1pbmdzX2N5LnB5eAoraW5kZXggNjIzN2ZiZTA5 YTcuLjQ2MTUyZjFlNjhiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xv bmVfdGltaW5nc19jeS5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9saXN0X2Nsb25lX3Rp bWluZ3NfY3kucHl4CitAQCAtMTQsNyArMTQsNyBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJlLmxpc3Rf Y2xvbmUgY2ltcG9ydCBDbG9uYWJsZUFycmF5CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjICAgICAg ICAgICAgICAgICAgICBUaW1pbmdzIGZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAgIyMjIyMj CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCistY3BkZWYgQ2xvbmFibGVBcnJheSBjeV9hZGQxX2ludGVybmFsKENs b25hYmxlQXJyYXkgYmxhKSBub2V4Y2VwdDoKKytjcGRlZiBDbG9uYWJsZUFycmF5IGN5X2FkZDFf aW50ZXJuYWwoQ2xvbmFibGVBcnJheSBibGEpOgorICAgICAiIiIKKyAgICAgVEVTVFM6OgorIAor QEAgLTM0LDcgKzM0LDcgQEAgY3BkZWYgQ2xvbmFibGVBcnJheSBjeV9hZGQxX2ludGVybmFsKENs b25hYmxlQXJyYXkgYmxhKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGJsbworIAorIAorLWNwZGVm IENsb25hYmxlQXJyYXkgY3lfYWRkMV9pbW11dGFibGUoQ2xvbmFibGVBcnJheSBibGEpIG5vZXhj ZXB0OgorK2NwZGVmIENsb25hYmxlQXJyYXkgY3lfYWRkMV9pbW11dGFibGUoQ2xvbmFibGVBcnJh eSBibGEpOgorICAgICAiIiIKKyAgICAgVEVTVFM6OgorIAorQEAgLTQ5LDcgKzQ5LDcgQEAgY3Bk ZWYgQ2xvbmFibGVBcnJheSBjeV9hZGQxX2ltbXV0YWJsZShDbG9uYWJsZUFycmF5IGJsYSkgbm9l eGNlcHQ6CisgICAgIGZvciBpIGluIHJhbmdlKGxlbihsYmxhKSk6IGxibGFbaV0gKz0gMQorICAg ICByZXR1cm4gYmxhLl9fY2xhc3NfXyhibGEuX3BhcmVudCwgbGJsYSkKKyAKKy1jcGRlZiBDbG9u YWJsZUFycmF5IGN5X2FkZDFfbXV0YWJsZShDbG9uYWJsZUFycmF5IGJsYSkgbm9leGNlcHQ6Cisr Y3BkZWYgQ2xvbmFibGVBcnJheSBjeV9hZGQxX211dGFibGUoQ2xvbmFibGVBcnJheSBibGEpOgor ICAgICAiIiIKKyAgICAgVEVTVFM6OgorIAorQEAgLTY4LDcgKzY4LDcgQEAgY3BkZWYgQ2xvbmFi bGVBcnJheSBjeV9hZGQxX211dGFibGUoQ2xvbmFibGVBcnJheSBibGEpIG5vZXhjZXB0OgorICAg ICByZXR1cm4gYmxvCisgCisgCistY3BkZWYgQ2xvbmFibGVBcnJheSBjeV9hZGQxX3dpdGgoQ2xv bmFibGVBcnJheSBibGEpIG5vZXhjZXB0OgorK2NwZGVmIENsb25hYmxlQXJyYXkgY3lfYWRkMV93 aXRoKENsb25hYmxlQXJyYXkgYmxhKToKKyAgICAgIiIiCisgICAgIFRFU1RTOjoKKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvbXV0YWJpbGl0eS5weGQgYi9zcmMvc2FnZS9zdHJ1 Y3R1cmUvbXV0YWJpbGl0eS5weGQKK2luZGV4IDE2YTQ3NGU4ZDJlLi5mNWRmOGI4OTg5MiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9tdXRhYmlsaXR5LnB4ZAorKysrIGIvc3JjL3Nh Z2Uvc3RydWN0dXJlL211dGFiaWxpdHkucHhkCitAQCAtMTQsNyArMTQsNyBAQCBNdXRhYmlsaXR5 IC0tIFB5cmV4IEltcGxlbWVudGF0aW9uCisgCisgY2RlZiBjbGFzcyBNdXRhYmlsaXR5OgorICAg ICBjZGVmIHB1YmxpYyBiaW50IF9pc19pbW11dGFibGUKKy0gICAgY3BkZWYgX3JlcXVpcmVfbXV0 YWJsZShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcmVxdWlyZV9pbW11dGFibGUoc2VsZikg bm9leGNlcHQKKysgICAgY3BkZWYgX3JlcXVpcmVfbXV0YWJsZShzZWxmKQorKyAgICBjcGRlZiBf cmVxdWlyZV9pbW11dGFibGUoc2VsZikKKyAgICAgY3BkZWYgYmludCBpc19pbW11dGFibGUoc2Vs Zikgbm9leGNlcHQKKyAgICAgY3BkZWYgYmludCBpc19tdXRhYmxlKHNlbGYpIG5vZXhjZXB0Citc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1 cmUvbXV0YWJpbGl0eS5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvbXV0YWJpbGl0eS5weXgKK2lu ZGV4IDQ2YTA0Nzg0ZTBjLi5jNjFmZDA2YzNkYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVj dHVyZS9tdXRhYmlsaXR5LnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL211dGFiaWxpdHku cHl4CitAQCAtNjYsNyArNjYsNyBAQCBjZGVmIGNsYXNzIE11dGFiaWxpdHk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHNlbGYuX2lzX2ltbXV0YWJsZSA9IGlzX2ltbXV0YWJsZQorIAorLSAgICBj cGRlZiBfcmVxdWlyZV9tdXRhYmxlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmVxdWly ZV9tdXRhYmxlKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgV2hlbmV2ZXIgbXV0YWJp bGl0eSBpcyByZXF1aXJlZCwgdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZC4KKyAKK0BAIC05Miw3 ICs5Miw3IEBAIGNkZWYgY2xhc3MgTXV0YWJpbGl0eToKKyAgICAgICAgIGlmIHNlbGYuX2lzX2lt bXV0YWJsZToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJvYmplY3QgaXMgaW1tdXRh YmxlOyBwbGVhc2UgY2hhbmdlIGEgY29weSBpbnN0ZWFkIikKKyAKKy0gICAgY3BkZWYgX3JlcXVp cmVfaW1tdXRhYmxlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmVxdWlyZV9pbW11dGFi bGUoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBXaGVuZXZlciBpbW11dGFiaWxpdHkg aXMgcmVxdWlyZWQsIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQuCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudC5weGQgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50 LnB4ZAoraW5kZXggMmE5YzYzN2FmNmMuLjE2MzVlZjhiMzZlIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2Uvc3RydWN0dXJlL3BhcmVudC5weGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnQu cHhkCitAQCAtMjMsMTAgKzIzLDEwIEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJl LmNhdGVnb3J5X29iamVjdC5DYXRlZ29yeU9iamVjdCk6CisgICAgIGNkZWYgaW5saW5lIGJpbnQg Z2V0X2ZsYWcoc2VsZiwgaW50IGZsYWcpIG5vZXhjZXB0OgorICAgICAgICAgcmV0dXJuIHNlbGYu ZmxhZ3MgJiBmbGFnCisgCistICAgIGNwZGVmIHJlZ2lzdGVyX2NvZXJjaW9uKHNlbGYsIG1vcikg bm9leGNlcHQKKy0gICAgY3BkZWYgcmVnaXN0ZXJfYWN0aW9uKHNlbGYsIGFjdGlvbikgbm9leGNl cHQKKy0gICAgY3BkZWYgcmVnaXN0ZXJfY29udmVyc2lvbihzZWxmLCBtb3IpIG5vZXhjZXB0Cist ICAgIGNwZGVmIHJlZ2lzdGVyX2VtYmVkZGluZyhzZWxmLCBlbWJlZGRpbmcpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIHJlZ2lzdGVyX2NvZXJjaW9uKHNlbGYsIG1vcikKKysgICAgY3BkZWYgcmVnaXN0 ZXJfYWN0aW9uKHNlbGYsIGFjdGlvbikKKysgICAgY3BkZWYgcmVnaXN0ZXJfY29udmVyc2lvbihz ZWxmLCBtb3IpCisrICAgIGNwZGVmIHJlZ2lzdGVyX2VtYmVkZGluZyhzZWxmLCBlbWJlZGRpbmcp CisgCisgICAgIGNwZGVmIGJpbnQgaXNfZXhhY3Qoc2VsZikgZXhjZXB0IC0yCisgCitAQCAtMzcs MzMgKzM3LDMzIEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29i amVjdC5DYXRlZ29yeU9iamVjdCk6CisgICAgIGNwZGVmIGJpbnQgaGFzX2NvZXJjZV9tYXBfZnJv bShzZWxmLCBTKSBleGNlcHQgLTIKKyAKKyAgICAgIyByZXR1cm5zIGEgTW9ycGhpc20gZnJvbSBT IHRvIHNlbGYsIG9yIE5vbmUKKy0gICAgY3BkZWYgY29lcmNlX21hcF9mcm9tKHNlbGYsIFMpIG5v ZXhjZXB0CistICAgIGNwZGVmIF9pbnRlcm5hbF9jb2VyY2VfbWFwX2Zyb20oc2VsZiwgUykgbm9l eGNlcHQKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQKKysg ICAgY3BkZWYgY29lcmNlX21hcF9mcm9tKHNlbGYsIFMpCisrICAgIGNwZGVmIF9pbnRlcm5hbF9j b2VyY2VfbWFwX2Zyb20oc2VsZiwgUykKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2Vs ZiwgUykKKyAKKyAgICAgIyByZXR1cm5zIGEgTWFwIGZyb20gUyB0byBzZWxmLCBvciBOb25lCist ICAgIGNwZGVmIGNvbnZlcnRfbWFwX2Zyb20oc2VsZiwgUykgbm9leGNlcHQKKy0gICAgY3BkZWYg X2ludGVybmFsX2NvbnZlcnRfbWFwX2Zyb20oc2VsZiwgUykgbm9leGNlcHQKKy0gICAgY3BkZWYg X2NvbnZlcnRfbWFwX2Zyb21fKHNlbGYsIFMpIG5vZXhjZXB0CistICAgIGNkZWYgY29udmVydF9t ZXRob2RfbWFwKHNlbGYsIFMsIG1ldGhvZF9uYW1lKSBub2V4Y2VwdAorKyAgICBjcGRlZiBjb252 ZXJ0X21hcF9mcm9tKHNlbGYsIFMpCisrICAgIGNwZGVmIF9pbnRlcm5hbF9jb252ZXJ0X21hcF9m cm9tKHNlbGYsIFMpCisrICAgIGNwZGVmIF9jb252ZXJ0X21hcF9mcm9tXyhzZWxmLCBTKQorKyAg ICBjZGVmIGNvbnZlcnRfbWV0aG9kX21hcChzZWxmLCBTLCBtZXRob2RfbmFtZSkKKyAKKyAgICAg IyByZXR1cm5zIHRoZSBBY3Rpb24gYnkvb24gc2VsZiBvbi9ieSBTCisgICAgICMgY29ycmVzcG9u ZGluZyB0byBvcCBhbmQgc2VsZl9vbl9sZWZ0CistICAgIGNwZGVmIGdldF9hY3Rpb24oc2VsZiwg Uywgb3A9KiwgYmludCBzZWxmX29uX2xlZnQ9Kiwgc2VsZl9lbD0qLCBTX2VsPSopIG5vZXhjZXB0 CistICAgIGNwZGVmIF9nZXRfYWN0aW9uXyhzZWxmLCBTLCBvcCwgYmludCBzZWxmX29uX2xlZnQp IG5vZXhjZXB0CisrICAgIGNwZGVmIGdldF9hY3Rpb24oc2VsZiwgUywgb3A9KiwgYmludCBzZWxm X29uX2xlZnQ9Kiwgc2VsZl9lbD0qLCBTX2VsPSopCisrICAgIGNwZGVmIF9nZXRfYWN0aW9uXyhz ZWxmLCBTLCBvcCwgYmludCBzZWxmX29uX2xlZnQpCisgCisgICAgICMgY29lcmNlIHggaW50byBz ZWxmCistICAgIGNwZGVmIGNvZXJjZShzZWxmLCB4KSBub2V4Y2VwdAorKyAgICBjcGRlZiBjb2Vy Y2Uoc2VsZiwgeCkKKyAKKy0gICAgY3BkZWYgYW5fZWxlbWVudChzZWxmKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBhbl9lbGVtZW50KHNlbGYpCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfY2FjaGVf YW5fZWxlbWVudAorIAorICAgICAjIEZvciBpbnRlcm5hbCB1c2UKKy0gICAgY3BkZWYgX2dlbmVy aWNfY29udmVydF9tYXAoc2VsZiwgUywgY2F0ZWdvcnk9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2dlbmVyaWNfY29lcmNlX21hcChzZWxmLCBTKSBub2V4Y2VwdAorLSAgICBjZGVmIGRpc2NvdmVy X2NvZXJjZV9tYXBfZnJvbShzZWxmLCBTKSBub2V4Y2VwdAorLSAgICBjZGVmIGRpc2NvdmVyX2Nv bnZlcnRfbWFwX2Zyb20oc2VsZiwgUykgbm9leGNlcHQKKy0gICAgY2RlZiBkaXNjb3Zlcl9hY3Rp b24oc2VsZiwgUywgb3AsIGJpbnQgc2VsZl9vbl9sZWZ0LCBzZWxmX2VsPSosIFNfZWw9Kikgbm9l eGNlcHQKKysgICAgY3BkZWYgX2dlbmVyaWNfY29udmVydF9tYXAoc2VsZiwgUywgY2F0ZWdvcnk9 KikKKysgICAgY3BkZWYgX2dlbmVyaWNfY29lcmNlX21hcChzZWxmLCBTKQorKyAgICBjZGVmIGRp c2NvdmVyX2NvZXJjZV9tYXBfZnJvbShzZWxmLCBTKQorKyAgICBjZGVmIGRpc2NvdmVyX2NvbnZl cnRfbWFwX2Zyb20oc2VsZiwgUykKKysgICAgY2RlZiBkaXNjb3Zlcl9hY3Rpb24oc2VsZiwgUywg b3AsIGJpbnQgc2VsZl9vbl9sZWZ0LCBzZWxmX2VsPSosIFNfZWw9KikKKyAKKyAgICAgIyBMaXN0 IGNvbnNpc3Rpbmcgb2YgTW9ycGhpc21zIChmcm9tIGFueXRoaW5nIHRvIHNlbGYpCisgICAgICMg YW5kIFBhcmVudHMgZm9yIHdoaWNoIHRoZSBfX2NhbGxfXyBtZXRob2Qgb2Ygc2VsZgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnQucHl4IGIvc3JjL3NhZ2Uvc3RydWN0dXJl L3BhcmVudC5weXgKK2luZGV4IGI2M2U4YWE5MzQxLi4zMTFjNjc1ZGUyNyAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnQucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUv cGFyZW50LnB5eAorQEAgLTEyOCw3ICsxMjgsNyBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJlLmNvZXJj ZV9tYXBzIGNpbXBvcnQgKE5hbWVkQ29udmVydE1hcCwgRGVmYXVsdENvbnZlcnRNYXAsCisgZnJv bSBzYWdlLnN0cnVjdHVyZS5lbGVtZW50IGNpbXBvcnQgcGFyZW50CisgCisgCistY2RlZiBfcmVj b3JkX2V4Y2VwdGlvbigpIG5vZXhjZXB0OgorK2NkZWYgX3JlY29yZF9leGNlcHRpb24oKToKKyAg ICAgY29lcmNpb25fbW9kZWwuX3JlY29yZF9leGNlcHRpb24oKQorIAorIGNkZWYgb2JqZWN0IF9J bnRlZ2VyCitAQCAtMTE4OCw3ICsxMTg4LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2FnZS5zdHJ1 Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToKKyAgICAgICAgIGV4Y2VwdCAo VHlwZUVycm9yLCBWYWx1ZUVycm9yLCBBcml0aG1ldGljRXJyb3IpOgorICAgICAgICAgICAgIHJl dHVybiBGYWxzZQorIAorLSAgICBjcGRlZiBjb2VyY2Uoc2VsZiwgeCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIGNvZXJjZShzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHgg YXMgYW4gZWxlbWVudCBvZiBzZWxmLCBpZiBhbmQgb25seSBpZiB0aGVyZSBpcyBhIGNhbm9uaWNh bAorICAgICAgICAgY29lcmNpb24gZnJvbSB0aGUgcGFyZW50IG9mIHggdG8gc2VsZi4KK0BAIC0x NjA0LDcgKzE2MDQsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29y eV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAg ICAgICAgICAgIHBhc3MKKyAKKy0gICAgY3BkZWYgcmVnaXN0ZXJfY29lcmNpb24oc2VsZiwgbW9y KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVnaXN0ZXJfY29lcmNpb24oc2VsZiwgbW9yKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFVwZGF0ZSB0aGUgY29lcmNpb24gbW9kZWwgdG8gdXNlIGBt b3IgOiBQIFx0byBcdGV4dHtzZWxmfWAgdG8gY29lcmNlCisgICAgICAgICBmcm9tIGEgcGFyZW50 IGBgUGBgIGludG8gYGBzZWxmYGAuCitAQCAtMTY2NCw3ICsxNjY0LDcgQEAgY2RlZiBjbGFzcyBQ YXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToKKyAg ICAgICAgIHNlbGYuX3JlZ2lzdGVyZWRfZG9tYWlucy5hcHBlbmQoRCkKKyAgICAgICAgIHNlbGYu X2NvZXJjZV9mcm9tX2hhc2guc2V0KEQsIG1vcikKKyAKKy0gICAgY3BkZWYgcmVnaXN0ZXJfYWN0 aW9uKHNlbGYsIGFjdGlvbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlZ2lzdGVyX2FjdGlvbihz ZWxmLCBhY3Rpb24pOgorICAgICAgICAgciIiIgorICAgICAgICAgVXBkYXRlIHRoZSBjb2VyY2lv biBtb2RlbCB0byB1c2UgYGBhY3Rpb25gYCB0byBhY3Qgb24gc2VsZi4KKyAKK0BAIC0xNzI4LDcg KzE3MjgsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmpl Y3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImFjdGlv biBtdXN0IGludm9sdmUgc2VsZiIpCisgICAgICAgICBzZWxmLl9hY3Rpb25fbGlzdC5hcHBlbmQo YWN0aW9uKQorIAorLSAgICBjcGRlZiByZWdpc3Rlcl9jb252ZXJzaW9uKHNlbGYsIG1vcikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHJlZ2lzdGVyX2NvbnZlcnNpb24oc2VsZiwgbW9yKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFVwZGF0ZSB0aGUgY29lcmNpb24gbW9kZWwgdG8gdXNlIGBcdGV4 dHttb3J9IDogUCBcdG8gXHRleHR7c2VsZn1gIHRvIGNvbnZlcnQKKyAgICAgICAgIGZyb20gYGBQ YGAgaW50byBgYHNlbGZgYC4KK0BAIC0xNzYzLDcgKzE3NjMsNyBAQCBjZGVmIGNsYXNzIFBhcmVu dChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImNvbnZlcnNpb25zIG11c3Qg YmUgcGFyZW50cyBvciBtYXBzIikKKyAKKy0gICAgY3BkZWYgcmVnaXN0ZXJfZW1iZWRkaW5nKHNl bGYsIGVtYmVkZGluZykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlZ2lzdGVyX2VtYmVkZGluZyhz ZWxmLCBlbWJlZGRpbmcpOgorICAgICAgICAgciIiIgorICAgICAgICAgQWRkIGVtYmVkZGluZyB0 byBjb2VyY2lvbiBtb2RlbC4KKyAKK0BAIC0xOTAwLDcgKzE5MDAsNyBAQCBjZGVmIGNsYXNzIFBh cmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gY29weShzZWxmLl9lbWJlZGRpbmcpICAjIEl0IG1p Z2h0IGJlIG92ZXJraWxsIHRvIG1ha2UgYSBjb3B5IGhlcmUKKyAKKy0gICAgY3BkZWYgX2dlbmVy aWNfY29lcmNlX21hcChzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2dlbmVyaWNfY29l cmNlX21hcChzZWxmLCBTKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgYSBkZWZh dWx0IGNvZXJjaW9uIG1hcCBiYXNlZCBvbiB0aGUgZGF0YSBwcm92aWRlZCB0bworICAgICAgICAg Om1ldGg6YF9wb3B1bGF0ZV9jb2VyY2lvbl9saXN0c19gLgorQEAgLTE5MzEsNyArMTkzMSw3IEBA IGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29y eU9iamVjdCk6CisgICAgICAgICAgICAgY2F0ZWdvcnkgPSBzZWxmLmNhdGVnb3J5KCkuX21lZXRf KFMuY2F0ZWdvcnkoKSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9nZW5lcmljX2NvbnZlcnRfbWFw KFMsIGNhdGVnb3J5PWNhdGVnb3J5KQorIAorLSAgICBjcGRlZiBfZ2VuZXJpY19jb252ZXJ0X21h cChzZWxmLCBTLCBjYXRlZ29yeT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2dlbmVyaWNf Y29udmVydF9tYXAoc2VsZiwgUywgY2F0ZWdvcnk9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm5zIHRoZSBkZWZhdWx0IGNvbnZlcnNpb24gbWFwIGJhc2VkIG9uIHRoZSBkYXRh IHByb3ZpZGVkIHRvCisgICAgICAgICA6bWV0aDpgX3BvcHVsYXRlX2NvZXJjaW9uX2xpc3RzX2Au CitAQCAtMTk4OSw3ICsxOTg5LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUu Y2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToKKyAgICAgICAgICAgICBtZXRob2RfbmFt ZSA9IHNlbGYuX2NvbnZlcnRfbWV0aG9kX25hbWUKKyAgICAgICAgIHJldHVybiBzZWxmLmNvbnZl cnRfbWV0aG9kX21hcChTLCBtZXRob2RfbmFtZSkKKyAKKy0gICAgY2RlZiBjb252ZXJ0X21ldGhv ZF9tYXAoc2VsZiwgUywgbWV0aG9kX25hbWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIGNvbnZlcnRf bWV0aG9kX21hcChzZWxmLCBTLCBtZXRob2RfbmFtZSk6CisgICAgICAgICAjIEN5dGhvbiBpbXBs ZW1lbnRhdGlvbiBvZiBfY29udmVydF9tZXRob2RfbWFwKCkKKyAgICAgICAgIGNkZWYgUGFyZW50 IFAKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoUywgUGFyZW50KToKK0BAIC0yMDkwLDcgKzIwOTAs NyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0 ZWdvcnlPYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICByZXR1cm4g c2VsZi5faW50ZXJuYWxfY29lcmNlX21hcF9mcm9tKFMpIGlzIG5vdCBOb25lCisgCistICAgIGNw ZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29l cmNlX21hcF9mcm9tXyhzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAgICAgICAgT3ZlcnJpZGUg dGhpcyBtZXRob2QgdG8gc3BlY2lmeSBjb2VyY2lvbnMgYmV5b25kIHRob3NlIHNwZWNpZmllZAor ICAgICAgICAgaW4gY29lcmNlX2xpc3QuCitAQCAtMjEwNyw3ICsyMTA3LDcgQEAgY2RlZiBjbGFz cyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToK KyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gTm9u ZQorIAorLSAgICBjcGRlZiBjb2VyY2VfbWFwX2Zyb20oc2VsZiwgUykgbm9leGNlcHQ6CisrICAg IGNwZGVmIGNvZXJjZV9tYXBfZnJvbShzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGEgOmNsYXNzOmBNYXBgIG9iamVjdCB0byBjb2VyY2UgZnJvbSBgYFNgYCB0byBgYHNl bGZgYCBpZiBvbmUKKyAgICAgICAgIGV4aXN0cywgb3IgYGBOb25lYGAgaWYgbm8gc3VjaCBjb2Vy Y2lvbiBleGlzdHMuCitAQCAtMjE0NSw3ICsyMTQ1LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2Fn ZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIGNvcHkoc2VsZi5faW50ZXJuYWxfY29lcmNlX21hcF9mcm9tKFMp KQorIAorLSAgICBjcGRlZiBfaW50ZXJuYWxfY29lcmNlX21hcF9mcm9tKHNlbGYsIFMpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfaW50ZXJuYWxfY29lcmNlX21hcF9mcm9tKHNlbGYsIFMpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIDpjbGFzczpgTWFwYCBvYmplY3QgdG8gY29l cmNlIGZyb20gYGBTYGAgdG8gYGBzZWxmYGAgdGhhdAorICAgICAgICAgaXMgdXNlZCBpbnRlcm5h bGx5IGJ5IHRoZSBjb2VyY2lvbiBzeXN0ZW0gaWYgb25lIGV4aXN0cywgb3IgYGBOb25lYGAKK0BA IC0yMjY3LDcgKzIyNjcsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRl Z29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgZmluYWxseToKKyAgICAgICAg ICAgICBfdW5yZWdpc3Rlcl9wYWlyKHNlbGYsIFMsICJjb2VyY2UiKQorIAorLSAgICBjZGVmIGRp c2NvdmVyX2NvZXJjZV9tYXBfZnJvbShzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaXNj b3Zlcl9jb2VyY2VfbWFwX2Zyb20oc2VsZiwgUyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBy ZWNlZGVuY2UgZm9yIGRpc2NvdmVyaW5nIGEgY29lcmNpb24gUyAtPiBzZWxmIGdvZXMgYXMgZm9s bG93czoKKyAKK0BAIC0yNDQ0LDcgKzI0NDQsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0 cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgICAgIGlm IGNvbm5lY3RpbmcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgIHJldHVybiAoPFBhcmVu dD5TKS5fZW1iZWRkaW5nLnBvc3RfY29tcG9zZShjb25uZWN0aW5nKQorIAorLSAgICBjcGRlZiBj b252ZXJ0X21hcF9mcm9tKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb252ZXJ0X21h cF9mcm9tKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJl dHVybnMgYSA6Y2xhc3M6YE1hcGAgZnJvbSBgU2AgdG8gYHNlbGZgLAorICAgICAgICAgd2hpY2gg bWF5IG9yIG1heSBub3Qgc3VjY2VlZCBvbiBhbGwgaW5wdXRzLgorQEAgLTI0NzAsNyArMjQ3MCw3 IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRl Z29yeU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBjb3B5KHNlbGYuX2lu dGVybmFsX2NvbnZlcnRfbWFwX2Zyb20oUykpCisgCistICAgIGNwZGVmIF9pbnRlcm5hbF9jb252 ZXJ0X21hcF9mcm9tKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaW50ZXJuYWxfY29u dmVydF9tYXBfZnJvbShzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5j dGlvbiByZXR1cm5zIGEgOmNsYXNzOmBNYXBgIGZyb20gYFNgIHRvIGBzZWxmYCwKKyAgICAgICAg IHdoaWNoIG1heSBvciBtYXkgbm90IHN1Y2NlZWQgb24gYWxsIGlucHV0cy4KK0BAIC0yNTE2LDcg KzI1MTYsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmpl Y3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgICAgICAgICBtb3IuX21ha2Vfd2Vha19yZWZl cmVuY2VzKCkKKyAgICAgICAgICAgICByZXR1cm4gbW9yCisgCistICAgIGNkZWYgZGlzY292ZXJf Y29udmVydF9tYXBfZnJvbShzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaXNjb3Zlcl9j b252ZXJ0X21hcF9mcm9tKHNlbGYsIFMpOgorIAorICAgICAgICAgY2RlZiBtYXAuTWFwIG1vciA9 IHNlbGYuX2ludGVybmFsX2NvZXJjZV9tYXBfZnJvbShTKQorICAgICAgICAgaWYgbW9yIGlzIG5v dCBOb25lOgorQEAgLTI1NDQsNyArMjU0NCw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3Ry dWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29yeU9iamVjdCk6CisgICAgICAgICBtb3IgPSBz ZWxmLl9nZW5lcmljX2NvbnZlcnRfbWFwKFMpCisgICAgICAgICByZXR1cm4gbW9yCisgCistICAg IGNwZGVmIF9jb252ZXJ0X21hcF9mcm9tXyhzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2NvbnZlcnRfbWFwX2Zyb21fKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBPdmVy cmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGFkZGl0aW9uYWwgY29udmVyc2lvbnMgYmV5b25k IHRob3NlCisgICAgICAgICBnaXZlbiBpbiBjb252ZXJ0X2xpc3QuCitAQCAtMjU1OCw3ICsyNTU4 LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNh dGVnb3J5T2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0g ICAgY3BkZWYgZ2V0X2FjdGlvbihzZWxmLCBTLCBvcD1vcGVyYXRvci5tdWwsIGJpbnQgc2VsZl9v bl9sZWZ0PVRydWUsIHNlbGZfZWw9Tm9uZSwgU19lbD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZ2V0X2FjdGlvbihzZWxmLCBTLCBvcD1vcGVyYXRvci5tdWwsIGJpbnQgc2VsZl9vbl9sZWZ0 PVRydWUsIHNlbGZfZWw9Tm9uZSwgU19lbD1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJucyBhbiBhY3Rpb24gb2Ygc2VsZiBvbiBTIG9yIFMgb24gc2VsZi4KKyAKK0BAIC0yNTk0 LDcgKzI1OTQsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9v YmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgc2VsZi5fYWN0aW9uX2hhc2guc2V0KFMs IG9wLCBzZWxmX29uX2xlZnQsIGFjdGlvbikKKyAgICAgICAgIHJldHVybiBhY3Rpb24KKyAKKy0g ICAgY2RlZiBkaXNjb3Zlcl9hY3Rpb24oc2VsZiwgUywgb3AsIGJpbnQgc2VsZl9vbl9sZWZ0LCBz ZWxmX2VsPU5vbmUsIFNfZWw9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZGlzY292ZXJfYWN0 aW9uKHNlbGYsIFMsIG9wLCBiaW50IHNlbGZfb25fbGVmdCwgc2VsZl9lbD1Ob25lLCBTX2VsPU5v bmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtMjcwNCw3ICsyNzA0 LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNh dGVnb3J5T2JqZWN0KToKKyAgICAgICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAg ICAgICAgICAgICAgICAgIF9yZWNvcmRfZXhjZXB0aW9uKCkKKyAKKy0gICAgY3BkZWYgX2dldF9h Y3Rpb25fKHNlbGYsIFMsIG9wLCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9nZXRfYWN0aW9uXyhzZWxmLCBTLCBvcCwgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBPdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGFuIGFjdGlv biBvZiBzZWxmIG9uIFMgb3IgUyBvbiBzZWxmCisgICAgICAgICBiZXlvbmQgd2hhdCB3YXMgc3Bl Y2lmaWVkIGluIGFjdGlvbl9saXN0LgorQEAgLTI3MTYsNyArMjcxNiw3IEBAIGNkZWYgY2xhc3Mg UGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29yeU9iamVjdCk6Cisg CisgICAgICMgVE9ETzogcmVtb3ZlIG9uY2UgYWxsIHBhcmVudHMgaW4gU2FnZSB3aWxsIGluaGVy aXQgcHJvcGVybHkgZnJvbQorICAgICAjIFNldHMoKS5QYXJlbnRNZXRob2RzLmFuX2VsZW1lbnQK Ky0gICAgY3BkZWYgYW5fZWxlbWVudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYW5fZWxl bWVudChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgYSAocHJlZmVyYWJs eSB0eXBpY2FsKSBlbGVtZW50IG9mIHRoaXMgcGFyZW50LgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3N0cnVjdHVyZS9wYXJlbnRfYmFzZS5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50 X2Jhc2UucHl4CitpbmRleCBmNWVjYzE1YWZmYS4uYjQxMTc1YjViZmYgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2Jhc2UucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1 cmUvcGFyZW50X2Jhc2UucHl4CitAQCAtMTQsNyArMTQsNyBAQCBCYXNlIGNsYXNzIGZvciBvbGQt c3R5bGUgcGFyZW50IG9iamVjdHMgd2l0aCBhIGJhc2UgcmluZworIGNpbXBvcnQgc2FnZS5zdHJ1 Y3R1cmUucGFyZW50IGFzIHBhcmVudAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUuY29lcmNlX2V4Y2Vw dGlvbnMgaW1wb3J0IENvZXJjaW9uRXhjZXB0aW9uCisgCistY2RlZiBpbmxpbmUgY2hlY2tfb2xk X2NvZXJjZShwYXJlbnQuUGFyZW50IHApIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGNoZWNrX29s ZF9jb2VyY2UocGFyZW50LlBhcmVudCBwKToKKyAgICAgaWYgcC5fZWxlbWVudF9jb25zdHJ1Y3Rv ciBpcyBub3QgTm9uZToKKyAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiJXMgc3RpbGwgdXNp bmcgb2xkIGNvZXJjaW9uIGZyYW1ld29yayIgJSBwKQorIAorQEAgLTI3LDcgKzI3LDcgQEAgY2Rl ZiBjbGFzcyBQYXJlbnRXaXRoQmFzZShQYXJlbnRfb2xkKToKKyAgICAgICAgIFBhcmVudF9vbGQu X19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dkcykKKyAgICAgICAgIHNlbGYuX2Jhc2UgPSBiYXNl CisgCistICAgIGNkZWYgX2NvZXJjZV9jX2ltcGwoc2VsZix4KSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfY29lcmNlX2NfaW1wbChzZWxmLHgpOgorICAgICAgICAgY2hlY2tfb2xkX2NvZXJjZShzZWxm KQorICAgICAgICAgZnJvbSBzYWdlLm1pc2Muc3VwZXJzZWRlZCBpbXBvcnQgZGVwcmVjYXRpb24K KyAgICAgICAgIGRlcHJlY2F0aW9uKDMzNDk3LCAiX2NvZXJjZV9jX2ltcGwgaXMgZGVwcmVjYXRl ZCwgdXNlIGNvZXJjZSBpbnN0ZWFkIikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUv cGFyZW50X2dlbnMucHl4IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudF9nZW5zLnB5eAoraW5k ZXggNmQ0OTNlNTY3ODEuLjNmNjliOWRhZWU0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0 dXJlL3BhcmVudF9nZW5zLnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudF9nZW5z LnB5eAorQEAgLTczLDcgKzczLDcgQEAgY2ltcG9ydCBzYWdlLnN0cnVjdHVyZS5wYXJlbnQgYXMg cGFyZW50CisgY2ltcG9ydCBzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QgYXMgY2F0ZWdv cnlfb2JqZWN0CisgCisgCistY2RlZiBpbmxpbmUgY2hlY2tfb2xkX2NvZXJjZShwYXJlbnQuUGFy ZW50IHApIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGNoZWNrX29sZF9jb2VyY2UocGFyZW50LlBh cmVudCBwKToKKyAgICAgaWYgcC5fZWxlbWVudF9jb25zdHJ1Y3RvciBpcyBub3QgTm9uZToKKyAg ICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiJXMgc3RpbGwgdXNpbmcgb2xkIGNvZXJjaW9uIGZy YW1ld29yayIgJSBwKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRf b2xkLnB4ZCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfb2xkLnB4ZAoraW5kZXggNjg4YWU5 NjQ2OWEuLjU0YmI0NzUzOTcwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVu dF9vbGQucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X29sZC5weGQKK0BAIC0x Niw5ICsxNiw5IEBAIGNkZWYgY2xhc3MgUGFyZW50KHBhcmVudC5QYXJlbnQpOgorICAgICAjIENh Y2hlIGZvciBfX2hhc19jb2VyY2VfbWFwX2Zyb21fYygpCisgICAgIGNkZWYgTW9ub0RpY3QgX2hh c19jb2VyY2VfbWFwX2Zyb20KKyAKKy0gICAgY3BkZWYgX2NvZXJjZV9jKHNlbGYsIHgpIG5vZXhj ZXB0CistICAgIGNkZWYgX2NvZXJjZV9jX2ltcGwoc2VsZiwgeCkgbm9leGNlcHQKKysgICAgY3Bk ZWYgX2NvZXJjZV9jKHNlbGYsIHgpCisrICAgIGNkZWYgX2NvZXJjZV9jX2ltcGwoc2VsZiwgeCkK KyAKKy0gICAgY2RlZiBfX2NvZXJjZV9tYXBfZnJvbV9jKHNlbGYsIFMpIG5vZXhjZXB0CistICAg IGNkZWYgX19jb2VyY2VfbWFwX2Zyb21fY19pbXBsKHNlbGYsIFMpIG5vZXhjZXB0CistICAgIGNk ZWYgX19oYXNfY29lcmNlX21hcF9mcm9tX2Moc2VsZiwgUykgbm9leGNlcHQKKysgICAgY2RlZiBf X2NvZXJjZV9tYXBfZnJvbV9jKHNlbGYsIFMpCisrICAgIGNkZWYgX19jb2VyY2VfbWFwX2Zyb21f Y19pbXBsKHNlbGYsIFMpCisrICAgIGNkZWYgX19oYXNfY29lcmNlX21hcF9mcm9tX2Moc2VsZiwg UykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X29sZC5weXggYi9zcmMv c2FnZS9zdHJ1Y3R1cmUvcGFyZW50X29sZC5weXgKK2luZGV4IDA2Yzg0OTYwNjA1Li43YjhjZTcw YjVhNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfb2xkLnB5eAorKysr IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudF9vbGQucHl4CitAQCAtMzQsNyArMzQsNyBAQCBm cm9tIHNhZ2Uuc2V0cy5weXRob25jbGFzcyBjaW1wb3J0IFNldF9QeXRob25UeXBlLCBTZXRfUHl0 aG9uVHlwZV9jbGFzcworIGZyb20gY3B5dGhvbi5vYmplY3QgY2ltcG9ydCAqCisgZnJvbSBjcHl0 aG9uLmJvb2wgY2ltcG9ydCAqCisgCistY2RlZiBpbmxpbmUgY2hlY2tfb2xkX2NvZXJjZShQYXJl bnQgcCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY2hlY2tfb2xkX2NvZXJjZShQYXJlbnQgcCk6 CisgICAgIGlmIHAuX2VsZW1lbnRfY29uc3RydWN0b3IgaXMgbm90IE5vbmU6CisgICAgICAgICBy YWlzZSBSdW50aW1lRXJyb3IoIiVzIHN0aWxsIHVzaW5nIG9sZCBjb2VyY2lvbiBmcmFtZXdvcmsi ICUgcCkKKyAKK0BAIC03OSw3ICs3OSw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHBhcmVudC5QYXJl bnQpOgorICAgICAjIE5ldyBDb2VyY2lvbiBzdXBwb3J0IGZ1bmN0aW9uYWxpdHkKKyAgICAgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IAorLSAgICBjZGVmIF9fY29lcmNlX21hcF9mcm9tX2Moc2VsZiwgUykgbm9leGNlcHQ6CisrICAg IGNkZWYgX19jb2VyY2VfbWFwX2Zyb21fYyhzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAgICAg ICAgRVhBTVBMRVM6CisgCitAQCAtMTQzLDcgKzE0Myw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHBh cmVudC5QYXJlbnQpOgorIAorICAgICAgICAgcmV0dXJuIG1vcgorIAorLSAgICBjZGVmIF9fY29l cmNlX21hcF9mcm9tX2NfaW1wbChzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX2NvZXJj ZV9tYXBfZnJvbV9jX2ltcGwoc2VsZiwgUyk6CisgICAgICAgICBjaGVja19vbGRfY29lcmNlKHNl bGYpCisgICAgICAgICBpbXBvcnQgc2FnZS5jYXRlZ29yaWVzLm1vcnBoaXNtCisgICAgICAgICBm cm9tIHNhZ2UuY2F0ZWdvcmllcy5tYXAgaW1wb3J0IE1hcAorQEAgLTE4Myw3ICsxODMsNyBAQCBj ZGVmIGNsYXNzIFBhcmVudChwYXJlbnQuUGFyZW50KToKKyAgICAgICAgIGNoZWNrX29sZF9jb2Vy Y2Uoc2VsZikKKyAgICAgICAgIHJldHVybiBzZWxmLl9jb2VyY2VfYyh4KQorIAorLSAgICBjcGRl ZiBfY29lcmNlX2Moc2VsZiwgeCkgbm9leGNlcHQ6ICAgICAgICAgICMgRE8gTk9UIE9WRVJSSURF IFRISVMgKGNhbGwgaXQpCisrICAgIGNwZGVmIF9jb2VyY2VfYyhzZWxmLCB4KTogICAgICAgICAg IyBETyBOT1QgT1ZFUlJJREUgVEhJUyAoY2FsbCBpdCkKKyAgICAgICAgIGlmIHNlbGYuX2VsZW1l bnRfY29uc3RydWN0b3IgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgZnJvbSBzYWdlLm1pc2Mu c3VwZXJzZWRlZCBpbXBvcnQgZGVwcmVjYXRpb24KKyAgICAgICAgICAgICBkZXByZWNhdGlvbigz MzQ5NywgIl9jb2VyY2VfYyBpcyBkZXByZWNhdGVkLCB1c2UgY29lcmNlIGluc3RlYWQiKQorQEAg LTIwMCw3ICsyMDAsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChwYXJlbnQuUGFyZW50KToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZXJjZV9jX2ltcGwoeCkKKyAK Ky0gICAgY2RlZiBfY29lcmNlX2NfaW1wbChzZWxmLCB4KSBub2V4Y2VwdDogICAgICMgT1ZFUlJJ REUgVEhJUyBGT1IgQ1lUSE9OIENMQVNTRVMKKysgICAgY2RlZiBfY29lcmNlX2NfaW1wbChzZWxm LCB4KTogICAgICMgT1ZFUlJJREUgVEhJUyBGT1IgQ1lUSE9OIENMQVNTRVMKKyAgICAgICAgICIi IgorICAgICAgICAgQ2Fub25pY2FsbHkgY29lcmNlIHggaW4gYXNzdW1pbmcgdGhhdCB0aGUgcGFy ZW50IG9mIHggaXMgbm90CisgICAgICAgICBlcXVhbCB0byBzZWxmLgorQEAgLTIxNiw3ICsyMTYs NyBAQCBjZGVmIGNsYXNzIFBhcmVudChwYXJlbnQuUGFyZW50KToKKyAgICAgICAgIGNoZWNrX29s ZF9jb2VyY2Uoc2VsZikKKyAgICAgICAgIHJldHVybiBzZWxmLl9jb2VyY2VfY19pbXBsKHgpCisg CistICAgIGNkZWYgX19oYXNfY29lcmNlX21hcF9mcm9tX2Moc2VsZiwgUykgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX19oYXNfY29lcmNlX21hcF9mcm9tX2Moc2VsZiwgUyk6CisgICAgICAgICBjaGVj a19vbGRfY29lcmNlKHNlbGYpCisgICAgICAgICBpZiBzZWxmID09IFM6CisgICAgICAgICAgICAg cmV0dXJuIFRydWUKK0BAIC0yNjQsNyArMjY0LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQocGFyZW50 LlBhcmVudCk6CisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAjIENvZXJjaW9uIENvbXBhdGliaWxpdHkgTGF5 ZXIKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKToKKyAgICAgICAg IGlmIHNlbGYuX2VsZW1lbnRfY29uc3RydWN0b3IgaXMgTm9uZToKKyAgICAgICAgICAgICByZXR1 cm4gc2VsZi5fX2NvZXJjZV9tYXBfZnJvbV9jKFMpCisgICAgICAgICBlbHNlOgorQEAgLTI3OCw3 ICsyNzgsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChwYXJlbnQuUGFyZW50KToKKyAgICAgICAgIHNl bGYuX2NhY2hlX2FuX2VsZW1lbnQgPSBzZWxmLl9hbl9lbGVtZW50X2ltcGwoKQorICAgICAgICAg cmV0dXJuIHNlbGYuX2NhY2hlX2FuX2VsZW1lbnQKKyAKKy0gICAgY3BkZWYgX2dlbmVyaWNfY29u dmVydF9tYXAoc2VsZiwgUywgY2F0ZWdvcnk9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9n ZW5lcmljX2NvbnZlcnRfbWFwKHNlbGYsIFMsIGNhdGVnb3J5PU5vbmUpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIGEgZGVmYXVsdCBjb252ZXJzaW9uIGZyb20gYGBTYGAuCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL3JpY2hjbXAucHhkIGIvc3JjL3NhZ2Uvc3Ry dWN0dXJlL3JpY2hjbXAucHhkCitpbmRleCA3ZGI2MzQwZWM0OC4uOThiZGE2OTZlYzcgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcmljaGNtcC5weGQKKysrKyBiL3NyYy9zYWdlL3N0 cnVjdHVyZS9yaWNoY21wLnB4ZAorQEAgLTMsNyArMyw3IEBAIGZyb20gY3B5dGhvbi5vYmplY3Qg Y2ltcG9ydCAoUHlfTFQsIFB5X0xFLCBQeV9FUSwgUHlfTkUsIFB5X0dULCBQeV9HRSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0X1JpY2hDb21wYXJlKQorIAorIAorLWNw ZGVmIGlubGluZSByaWNoY21wKHgsIHksIGludCBvcCkgbm9leGNlcHQ6CisrY3BkZWYgaW5saW5l IHJpY2hjbXAoeCwgeSwgaW50IG9wKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgcmVzdWx0 IG9mIHRoZSByaWNoIGNvbXBhcmlzb24gb2YgYGB4YGAgYW5kIGBgeWBgIHdpdGgKKyAgICAgb3Bl cmF0b3IgYGBvcGBgLgorQEAgLTUwLDEwICs1MCwxMCBAQCBjcGRlZiBpbmxpbmUgcmljaGNtcCh4 LCB5LCBpbnQgb3ApIG5vZXhjZXB0OgorICAgICByZXR1cm4gUHlPYmplY3RfUmljaENvbXBhcmUo eCwgeSwgb3ApCisgCisgCistY3BkZWYgcmljaGNtcF9pdGVtKHgsIHksIGludCBvcCkgbm9leGNl cHQKKytjcGRlZiByaWNoY21wX2l0ZW0oeCwgeSwgaW50IG9wKQorIAorIAorLWNwZGVmIGlubGlu ZSByaWNoY21wX25vdF9lcXVhbCh4LCB5LCBpbnQgb3ApIG5vZXhjZXB0OgorK2NwZGVmIGlubGlu ZSByaWNoY21wX25vdF9lcXVhbCh4LCB5LCBpbnQgb3ApOgorICAgICAiIiIKKyAgICAgTGlrZSBg YHJpY2hjbXAoeCwgeSwgb3ApYGAgYnV0IGFzc3VtaW5nIHRoYXQgYHhgIGlzIG5vdCBlcXVhbCB0 byBgeWAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL3JpY2hjbXAucHl4IGIv c3JjL3NhZ2Uvc3RydWN0dXJlL3JpY2hjbXAucHl4CitpbmRleCA3ZTE3MjBjMGUwNy4uNDY1ZjE2 ZTgyNzQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcmljaGNtcC5weXgKKysrKyBi L3NyYy9zYWdlL3N0cnVjdHVyZS9yaWNoY21wLnB5eAorQEAgLTY4LDcgKzY4LDcgQEAgcmljaGNt cF9zbG90ZGVmW1B5X0xFXSA9IGdldF9zbG90ZGVmKGJ5dGVzLl9fbGVfXykKKyByaWNoY21wX3Ns b3RkZWZbUHlfR0VdID0gZ2V0X3Nsb3RkZWYoYnl0ZXMuX19nZV9fKQorIAorIAorLWNwZGVmIHJp Y2hjbXBfaXRlbSh4LCB5LCBpbnQgb3ApIG5vZXhjZXB0OgorK2NwZGVmIHJpY2hjbXBfaXRlbSh4 LCB5LCBpbnQgb3ApOgorICAgICAiIiIKKyAgICAgVGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBp bXBsZW1lbnQgbGV4aWNvZ3JhcGhpYyByaWNoIGNvbXBhcmlzb24KKyAgICAgb2Ygc2VxdWVuY2Vz IChsaXN0cywgdmVjdG9ycywgcG9seW5vbWlhbHMsIC4uLikuCitAQCAtMjY2LDcgKzI2Niw3IEBA IGNwZGVmIHJpY2hjbXBfaXRlbSh4LCB5LCBpbnQgb3ApIG5vZXhjZXB0OgorICAgICByZXR1cm4g Tm90SW1wbGVtZW50ZWQKKyAKKyAKKy1jZGVmIHNsb3RfdHBfcmljaGNvbXBhcmUoc2VsZiwgb3Ro ZXIsIGludCBvcCkgbm9leGNlcHQ6CisrY2RlZiBzbG90X3RwX3JpY2hjb21wYXJlKHNlbGYsIG90 aGVyLCBpbnQgb3ApOgorICAgICAiIiIKKyAgICAgRnVuY3Rpb24gdG8gcHV0IGluIHRoZSBgYHRw X3JpY2hjb21wYXJlYGAgc2xvdC4KKyAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3lt Ym9saWMvY29tcGFyaXNvbl9pbXBsLnB4aSBiL3NyYy9zYWdlL3N5bWJvbGljL2NvbXBhcmlzb25f aW1wbC5weGkKK2luZGV4IGI3MjliYWJjZDU4Li5hMWVmNzZiZDc3OCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3N5bWJvbGljL2NvbXBhcmlzb25faW1wbC5weGkKKysrKyBiL3NyYy9zYWdlL3N5bWJv bGljL2NvbXBhcmlzb25faW1wbC5weGkKK0BAIC0xMzUsNyArMTM1LDcgQEAgY2xhc3MgX3ByaW50 X2tleSgpOgorICAgICAgICAgcmV0dXJuIHByaW50X29yZGVyX2Moc2VsZi5leCwgb3RoZXIuZXgp IDwgMAorIAorIAorLWNwZGVmIHByaW50X3NvcnRlZChleHByZXNzaW9ucykgbm9leGNlcHQ6Cisr Y3BkZWYgcHJpbnRfc29ydGVkKGV4cHJlc3Npb25zKToKKyAgICAgIiIiCisgICAgIFNvcnQgYSBs aXN0IGluIHByaW50IG9yZGVyCisgCitAQCAtMjE5LDcgKzIxOSw3IEBAIGNsYXNzIF9tYXRoX2tl eSgpOgorICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdjYW5ub3QgY29tcGFyZSB7 MH0gYW5kIHsxfScuZm9ybWF0KHNlbGYuZXgsIG90aGVyLmV4KSkKKyAKKyAKKy1jcGRlZiBtYXRo X3NvcnRlZChleHByZXNzaW9ucykgbm9leGNlcHQ6CisrY3BkZWYgbWF0aF9zb3J0ZWQoZXhwcmVz c2lvbnMpOgorICAgICAiIiIKKyAgICAgU29ydCBhIGxpc3Qgb2Ygc3ltYm9saWMgbnVtYmVycyBp biB0aGUgIk1hdGhlbWF0aWNzIiBvcmRlcgorIAorQEAgLTQwOSw3ICs0MDksNyBAQCBjbGFzcyBf bWl4ZWRfa2V5KCk6CisgICAgICAgICAgICAgcmV0dXJuIG51bSA8IDAKKyAKKyAKKy1jcGRlZiBt aXhlZF9zb3J0ZWQoZXhwcmVzc2lvbnMpIG5vZXhjZXB0OgorK2NwZGVmIG1peGVkX3NvcnRlZChl eHByZXNzaW9ucyk6CisgICAgICIiIgorICAgICBTb3J0IGEgbGlzdCBvZiBzeW1ib2xpYyBudW1i ZXJzIGluIHRoZSAiTWl4ZWQiIG9yZGVyCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3ltYm9s aWMvZXhwcmVzc2lvbi5weGQgYi9zcmMvc2FnZS9zeW1ib2xpYy9leHByZXNzaW9uLnB4ZAoraW5k ZXggYTIxMmViNDE0YzAuLjMzZTM1MmI3ZjNkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3ltYm9s aWMvZXhwcmVzc2lvbi5weGQKKysrKyBiL3NyYy9zYWdlL3N5bWJvbGljL2V4cHJlc3Npb24ucHhk CitAQCAtMSw2ICsxLDYgQEAKKy1jcGRlZiBfcmVwcl9FeHByZXNzaW9uKHgpIG5vZXhjZXB0Cist Y3BkZWYgX2xhdGV4X0V4cHJlc3Npb24oeCkgbm9leGNlcHQKKy1jcGRlZiBuZXdfRXhwcmVzc2lv bihwYXJlbnQsIHgpIG5vZXhjZXB0CistY3BkZWYgbmV3X0V4cHJlc3Npb25fZnJvbV9weW9iamVj dChwYXJlbnQsIHgsIGJpbnQgZm9yY2U9PywgYmludCByZWN1cnNpdmU9Pykgbm9leGNlcHQKKy1j cGRlZiBuZXdfRXhwcmVzc2lvbl93aWxkKHBhcmVudCwgdW5zaWduZWQgaW50IG49Pykgbm9leGNl cHQKKy1jcGRlZiBuZXdfRXhwcmVzc2lvbl9zeW1ib2wocGFyZW50LCBuYW1lPT8sIGxhdGV4X25h bWU9PywgZG9tYWluPT8pIG5vZXhjZXB0CisrY3BkZWYgX3JlcHJfRXhwcmVzc2lvbih4KQorK2Nw ZGVmIF9sYXRleF9FeHByZXNzaW9uKHgpCisrY3BkZWYgbmV3X0V4cHJlc3Npb24ocGFyZW50LCB4 KQorK2NwZGVmIG5ld19FeHByZXNzaW9uX2Zyb21fcHlvYmplY3QocGFyZW50LCB4LCBiaW50IGZv cmNlPT8sIGJpbnQgcmVjdXJzaXZlPT8pCisrY3BkZWYgbmV3X0V4cHJlc3Npb25fd2lsZChwYXJl bnQsIHVuc2lnbmVkIGludCBuPT8pCisrY3BkZWYgbmV3X0V4cHJlc3Npb25fc3ltYm9sKHBhcmVu dCwgbmFtZT0/LCBsYXRleF9uYW1lPT8sIGRvbWFpbj0/KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3N5bWJvbGljL2V4cHJlc3Npb24ucHl4IGIvc3JjL3NhZ2Uvc3ltYm9saWMvZXhwcmVzc2lvbi5w eXgKK2luZGV4IDZhNzI1YTM1MTAyLi5lNWRjZjEyZDY0OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3N5bWJvbGljL2V4cHJlc3Npb24ucHl4CisrKysgYi9zcmMvc2FnZS9zeW1ib2xpYy9leHByZXNz aW9uLnB5eAorQEAgLTcwNCw3ICs3MDQsNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb24oRXhwcmVz c2lvbl9hYmMpOgorIAorICAgICBjZGVmIEdFeCBfZ29iagorIAorLSAgICBjcGRlZiBvYmplY3Qg cHlvYmplY3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG9iamVjdCBweW9iamVjdChzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgR2V0IHRoZSB1bmRlcmx5aW5nIFB5dGhvbiBvYmpl Y3QuCisgCitAQCAtMTU3Nyw3ICsxNTc3LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9uKEV4cHJl c3Npb25fYWJjKToKKyAgICAgICAgICAgICByZXR1cm4gbgorICAgICAgICAgcmV0dXJuIHNhZ2Uu cmluZ3MucmF0aW9uYWwuUmF0aW9uYWwobikKKyAKKy0gICAgY3BkZWYgX2V2YWxfc2VsZihzZWxm LCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2V2YWxfc2VsZihzZWxmLCBSKToKKyAgICAgICAg ICIiIgorICAgICAgICAgRXZhbHVhdGUgdGhpcyBleHByZXNzaW9uIG51bWVyaWNhbGx5LgorIAor QEAgLTE2MzgsNyArMTYzOCw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbihFeHByZXNzaW9uX2Fi Yyk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY2Fubm90 IGV2YWx1YXRlIHN5bWJvbGljIGV4cHJlc3Npb24gdG8gYSBudW1lcmljIHZhbHVlIikKKyAKKy0g ICAgY3BkZWYgX2NvbnZlcnQoc2VsZiwga3dkcykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb252 ZXJ0KHNlbGYsIGt3ZHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IGFsbCB0aGUg bnVtZXJpYyBjb2VmZmljaWVudHMgYW5kIGNvbnN0YW50cyBpbiB0aGlzIGV4cHJlc3Npb24KKyAg ICAgICAgIHRvIHRoZSBnaXZlbiByaW5nIGBgUmBgLiBUaGlzIHJlc3VsdHMgaW4gYW4gZXhwcmVz c2lvbiB3aGljaCBjb250YWlucworQEAgLTIxNzgsNyArMjE3OCw3IEBAIGNkZWYgY2xhc3MgRXhw cmVzc2lvbihFeHByZXNzaW9uX2FiYyk6CisgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg IHNpZ19vZmYoKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGEgZm9ybWFsIHN5bWJvbGljIGluZXF1YWxpdHkg b3IgZXF1YWxpdHkuCisgCitAQCAtMzc5OCw3ICszNzk4LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNz aW9uKEV4cHJlc3Npb25fYWJjKToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBFeHByZXNzaW9uIGNvZXJj ZV9pbihzZWxmLCB6KSBub2V4Y2VwdDoKKysgICAgY2RlZiBFeHByZXNzaW9uIGNvZXJjZV9pbihz ZWxmLCB6KToKKyAgICAgICAgICIiIgorICAgICAgICAgUXVpY2tseSBjb2VyY2UgeiB0byBiZSBh biBFeHByZXNzaW9uLgorICAgICAgICAgIiIiCitAQCAtMzgwNyw3ICszODA3LDcgQEAgY2RlZiBj bGFzcyBFeHByZXNzaW9uKEV4cHJlc3Npb25fYWJjKToKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJy b3I6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5jb2VyY2UoeikKKyAKKy0gICAg Y3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhsZWZ0 LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBsZWZ0IGFuZCByaWdodC4KKyAK K0BAIC0zOTAyLDcgKzM5MDIsNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb24oRXhwcmVzc2lvbl9h YmMpOgorICAgICAgICAgICAgIHggPSBsZWZ0Ll9nb2JqICsgX3JpZ2h0Ll9nb2JqCisgICAgICAg ICByZXR1cm4gbmV3X0V4cHJlc3Npb25fZnJvbV9HRXgobGVmdC5fcGFyZW50LCB4KQorIAorLSAg ICBjcGRlZiBfc3ViXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKGxl ZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTM5 NTQsNyArMzk1NCw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbihFeHByZXNzaW9uX2FiYyk6Cisg ICAgICAgICAgICAgeCA9IGxlZnQuX2dvYmogLSBfcmlnaHQuX2dvYmoKKyAgICAgICAgIHJldHVy biBuZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChsZWZ0Ll9wYXJlbnQsIHgpCisgCistICAgIGNwZGVm IF9tdWxfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8obGVmdCwgcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBsZWZ0IGFuZCByaWdodC4KKyAK K0BAIC00MTIwLDcgKzQxMjAsNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb24oRXhwcmVzc2lvbl9h YmMpOgorICAgICAgICAgICAgIHggPSBsZWZ0Ll9nb2JqICogX3JpZ2h0Ll9nb2JqCisgICAgICAg ICByZXR1cm4gbmV3X0V4cHJlc3Npb25fZnJvbV9HRXgobGVmdC5fcGFyZW50LCB4KQorIAorLSAg ICBjcGRlZiBfZGl2XyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKGxl ZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlIGxlZnQgYW5kIHJpZ2h0 LgorIAorQEAgLTQzMDEsNyArNDMwMSw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbihFeHByZXNz aW9uX2FiYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBwcmludF9vcmRlcl9jb21w YXJlX211bChsZWZ0Ll9nb2JqLCByaWdodC5fZ29iaikKKyAKKy0gICAgY3BkZWYgX3Bvd18oc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgcmFpc2VkIHRvIHRoZSBwb3dlciBg YG90aGVyYGAuCisgCitAQCAtNDUxNSw3ICs0NTE1LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9u KEV4cHJlc3Npb25fYWJjKToKKyAgICAgICAgICAgICB4ID0gZ19wb3coc2VsZi5fZ29iaiwgbmV4 cC5fZ29iaikKKyAgICAgICAgIHJldHVybiBuZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChzZWxmLl9w YXJlbnQsIHgpCisgCistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAg ICBURVNUUzo6CisgCitAQCAtNTg5OSw3ICs1ODk5LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9u KEV4cHJlc3Npb25fYWJjKToKKyAgICAgICAgIHJlcyA9IHNlbGYuX2dvYmouc3Vic19tYXAoc21h cCwgMCkKKyAgICAgICAgIHJldHVybiBuZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChzZWxmLl9wYXJl bnQsIHJlcykKKyAKKy0gICAgY3BkZWYgRXhwcmVzc2lvbiBfc3Vic19leHByKHNlbGYsIGV4cHIp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFeHByZXNzaW9uIF9zdWJzX2V4cHIoc2VsZiwgZXhwcik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMzUzMCw3ICsxMzUz MCw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbihFeHByZXNzaW9uX2FiYyk6CisgICAgICAgICAg ICAgICAgIHJldHVybiBTCisgCisgCistY3BkZWYgX3JlcHJfRXhwcmVzc2lvbih4KSBub2V4Y2Vw dDoKKytjcGRlZiBfcmVwcl9FeHByZXNzaW9uKHgpOgorICAgICByIiIiCisgICAgIFJldHVybiB0 aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBleHByZXNzaW9uIGBgeGBgLgorIAorQEAg LTEzNTQyLDcgKzEzNTQyLDcgQEAgY3BkZWYgX3JlcHJfRXhwcmVzc2lvbih4KSBub2V4Y2VwdDoK KyAgICAgcmV0dXJuIGNjcmVwcigoPEV4cHJlc3Npb24+eCkuX2dvYmopCisgCisgCistY3BkZWYg X2xhdGV4X0V4cHJlc3Npb24oeCkgbm9leGNlcHQ6CisrY3BkZWYgX2xhdGV4X0V4cHJlc3Npb24o eCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBzdGFuZGFyZCBMYVRlWCB2ZXJzaW9uIG9m IHRoZSBleHByZXNzaW9uIGB4YC4KKyAKK0BAIC0xMzYxOCw3ICsxMzYxOCw3IEBAIGRlZiBfZXZh bF9vbl9vcGVyYW5kcyhmKToKKyAKKyAKKyBjZGVmIGRpY3QgZHluYW1pY19jbGFzc19jYWNoZSA9 IHt9CistY2RlZiBnZXRfZHluYW1pY19jbGFzc19mb3JfZnVuY3Rpb24odW5zaWduZWQgc2VyaWFs KSBub2V4Y2VwdDoKKytjZGVmIGdldF9keW5hbWljX2NsYXNzX2Zvcl9mdW5jdGlvbih1bnNpZ25l ZCBzZXJpYWwpOgorICAgICByIiIiCisgICAgIENyZWF0ZSBhIGR5bmFtaWMgY2xhc3MgY29ycmVz cG9uZGluZyB0byB0aGUgZnVuY3Rpb24gd2l0aCBnaXZlbgorICAgICBgYHNlcmlhbGBgIHRoYXQg aW5jbHVkZXMgZHluYW1pYyBtZXRob2RzIGRlZmluZWQgYnkgdGhlIGZ1bmN0aW9uLgorQEAgLTEz NzEzLDcgKzEzNzEzLDcgQEAgY2RlZiBnZXRfZHluYW1pY19jbGFzc19mb3JfZnVuY3Rpb24odW5z aWduZWQgc2VyaWFsKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGNscworIAorIAorLWNkZWYgRXhw cmVzc2lvbiBuZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChwYXJlbnQsIEdFeCBqdWljZSkgbm9leGNl cHQ6CisrY2RlZiBFeHByZXNzaW9uIG5ld19FeHByZXNzaW9uX2Zyb21fR0V4KHBhcmVudCwgR0V4 IGp1aWNlKToKKyAgICAgY2RlZiB0eXBlIGNscworICAgICBjZGVmIEV4cHJlc3Npb24gbmV4Cisg ICAgIGlmIGlzX2V4YWN0bHlfYV9mdW5jdGlvbihqdWljZSk6CitAQCAtMTM3MjksNyArMTM3Mjks NyBAQCBjZGVmIEV4cHJlc3Npb24gbmV3X0V4cHJlc3Npb25fZnJvbV9HRXgocGFyZW50LCBHRXgg anVpY2UpIG5vZXhjZXB0OgorICAgICByZXR1cm4gbmV4CisgCisgCistY3BkZWYgbmV3X0V4cHJl c3Npb24ocGFyZW50LCB4KSBub2V4Y2VwdDoKKytjcGRlZiBuZXdfRXhwcmVzc2lvbihwYXJlbnQs IHgpOgorICAgICByIiIiCisgICAgIENvbnZlcnQgYGB4YGAgaW50byB0aGUgc3ltYm9saWMgZXhw cmVzc2lvbiByaW5nIGBgcGFyZW50YGAuCisgCitAQCAtMTM4MTksNyArMTM4MTksNyBAQCBjcGRl ZiBuZXdfRXhwcmVzc2lvbihwYXJlbnQsIHgpIG5vZXhjZXB0OgorICAgICByZXR1cm4gbmV3X0V4 cHJlc3Npb25fZnJvbV9HRXgocGFyZW50LCBleHApCisgCisgCistY3BkZWYgbmV3X0V4cHJlc3Np b25fZnJvbV9weW9iamVjdChwYXJlbnQsIHgsIGJpbnQgZm9yY2U9VHJ1ZSwgYmludCByZWN1cnNp dmU9VHJ1ZSkgbm9leGNlcHQ6CisrY3BkZWYgbmV3X0V4cHJlc3Npb25fZnJvbV9weW9iamVjdChw YXJlbnQsIHgsIGJpbnQgZm9yY2U9VHJ1ZSwgYmludCByZWN1cnNpdmU9VHJ1ZSk6CisgICAgIHIi IiIKKyAgICAgV3JhcCB0aGUgZ2l2ZW4gUHl0aG9uIG9iamVjdCBpbiBhIHN5bWJvbGljIGV4cHJl c3Npb24gZXZlbiBpZiBpdAorICAgICBjYW5ub3QgYmUgY29lcmNlZCB0byB0aGUgU3ltYm9saWMg UmluZy4KK0BAIC0xMzg5MCw3ICsxMzg5MCw3IEBAIGNwZGVmIG5ld19FeHByZXNzaW9uX2Zyb21f cHlvYmplY3QocGFyZW50LCB4LCBiaW50IGZvcmNlPVRydWUsIGJpbnQgcmVjdXJzaXZlPVRyCisg ICAgIHJldHVybiBuZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChwYXJlbnQsIGV4cCkKKyAKKyAKKy1j cGRlZiBuZXdfRXhwcmVzc2lvbl93aWxkKHBhcmVudCwgdW5zaWduZWQgaW50IG49MCkgbm9leGNl cHQ6CisrY3BkZWYgbmV3X0V4cHJlc3Npb25fd2lsZChwYXJlbnQsIHVuc2lnbmVkIGludCBuPTAp OgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgbi10aCB3aWxkLWNhcmQgZm9yIHBhdHRlcm4g bWF0Y2hpbmcgYW5kIHN1YnN0aXR1dGlvbi4KKyAKK0BAIC0xMzkyMCw3ICsxMzkyMCw3IEBAIGNw ZGVmIG5ld19FeHByZXNzaW9uX3dpbGQocGFyZW50LCB1bnNpZ25lZCBpbnQgbj0wKSBub2V4Y2Vw dDoKKyAgICAgcmV0dXJuIG5ld19FeHByZXNzaW9uX2Zyb21fR0V4KHBhcmVudCwgZ193aWxkKG4p KQorIAorIAorLWNwZGVmIG5ld19FeHByZXNzaW9uX3N5bWJvbChwYXJlbnQsIG5hbWU9Tm9uZSwg bGF0ZXhfbmFtZT1Ob25lLCBkb21haW49Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgbmV3X0V4cHJl c3Npb25fc3ltYm9sKHBhcmVudCwgbmFtZT1Ob25lLCBsYXRleF9uYW1lPU5vbmUsIGRvbWFpbj1O b25lKToKKyAgICAgciIiIgorICAgICBMb29rIHVwIG9yIGNyZWF0ZSBhIHN5bWJvbC4KKyAKK0BA IC0xNDA3Miw3ICsxNDA3Miw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbkl0ZXJhdG9yOgorICAg ICAgICAgc2VsZi5faW5kKz0xCisgICAgICAgICByZXR1cm4gbmV3X0V4cHJlc3Npb25fZnJvbV9H RXgoc2VsZi5fZXguX3BhcmVudCwgZXgpCisgCistY2RlZiBpbmxpbmUgRXhwcmVzc2lvbkl0ZXJh dG9yIG5ld19FeHBJdGVyX2Zyb21fRXhwcmVzc2lvbihFeHByZXNzaW9uIGV4KSBub2V4Y2VwdDoK KytjZGVmIGlubGluZSBFeHByZXNzaW9uSXRlcmF0b3IgbmV3X0V4cEl0ZXJfZnJvbV9FeHByZXNz aW9uKEV4cHJlc3Npb24gZXgpOgorICAgICAiIiIKKyAgICAgQ29uc3RydWN0IGEgbmV3IGl0ZXJh dG9yIG92ZXIgYSBzeW1ib2xpYyBleHByZXNzaW9uLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3N5bWJvbGljL2Z1bmN0aW9uLnB4ZCBiL3NyYy9zYWdlL3N5bWJvbGljL2Z1bmN0aW9uLnB4ZAor aW5kZXggMTk4N2EzOTNmODYuLmRiMWJhNmM1ZDU0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3lt Ym9saWMvZnVuY3Rpb24ucHhkCisrKysgYi9zcmMvc2FnZS9zeW1ib2xpYy9mdW5jdGlvbi5weGQK K0BAIC04LDIxICs4LDIxIEBAIGNkZWYgY2xhc3MgRnVuY3Rpb24oU2FnZU9iamVjdCk6CisgICAg IGNkZWYgb2JqZWN0IF9sYXRleF9uYW1lCisgICAgIGNkZWYgb2JqZWN0IF9jb252ZXJzaW9ucwor ICAgICBjZGVmIG9iamVjdCBfZXZhbGZfcGFyYW1zX2ZpcnN0CistICAgIGNkZWYgX2lzX3JlZ2lz dGVyZWQoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfcmVnaXN0ZXJfZnVuY3Rpb24oc2VsZikg bm9leGNlcHQKKysgICAgY2RlZiBfaXNfcmVnaXN0ZXJlZChzZWxmKQorKyAgICBjZGVmIF9yZWdp c3Rlcl9mdW5jdGlvbihzZWxmKQorIAorIGNkZWYgY2xhc3MgQnVpbHRpbkZ1bmN0aW9uKEZ1bmN0 aW9uKToKKyAgICAgY2RlZiBvYmplY3QgX3ByZXNlcnZlZF9hcmcKKy0gICAgY2RlZiBfaXNfcmVn aXN0ZXJlZChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNlbGYpCisg CisgY2RlZiBjbGFzcyBHaW5hY0Z1bmN0aW9uKEJ1aWx0aW5GdW5jdGlvbik6CisgICAgIGNkZWYg b2JqZWN0IF9naW5hY19uYW1lCistICAgIGNkZWYgX2lzX3JlZ2lzdGVyZWQoc2VsZikgbm9leGNl cHQKKy0gICAgY2RlZiBfcmVnaXN0ZXJfZnVuY3Rpb24oc2VsZikgbm9leGNlcHQKKysgICAgY2Rl ZiBfaXNfcmVnaXN0ZXJlZChzZWxmKQorKyAgICBjZGVmIF9yZWdpc3Rlcl9mdW5jdGlvbihzZWxm KQorIAorIGNkZWYgY2xhc3MgU3ltYm9saWNGdW5jdGlvbihGdW5jdGlvbik6CisgICAgICMgY2Fj aGUgaGFzaCB2YWx1ZQorICAgICBjZGVmIGxvbmcgX2hhc2hfKHNlbGYpIGV4Y2VwdCAtMQorICAg ICBjZGVmIGJpbnQgX19oaW5pdAorICAgICBjZGVmIGxvbmcgX19oY2FjaGUKKy0gICAgY2RlZiBf aXNfcmVnaXN0ZXJlZChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNl bGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3ltYm9saWMvZnVuY3Rpb24ucHl4IGIvc3JjL3Nh Z2Uvc3ltYm9saWMvZnVuY3Rpb24ucHl4CitpbmRleCA3OGUyY2Q3YjUxYi4uYTdjYTQwNTE4NGMg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zeW1ib2xpYy9mdW5jdGlvbi5weXgKKysrKyBiL3NyYy9z YWdlL3N5bWJvbGljL2Z1bmN0aW9uLnB5eAorQEAgLTI0NSwxNCArMjQ1LDE0IEBAIGNkZWYgY2xh c3MgRnVuY3Rpb24oU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHNlbGYuX3JlZ2lzdGVy X2Z1bmN0aW9uKCkKKyAgICAgICAgICAgICByZWdpc3Rlcl9zeW1ib2woc2VsZiwgc2VsZi5fY29u dmVyc2lvbnMpCisgCistICAgIGNkZWYgX2lzX3JlZ2lzdGVyZWQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX2lzX3JlZ2lzdGVyZWQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENo ZWNrIGlmIHRoaXMgZnVuY3Rpb24gaXMgYWxyZWFkeSByZWdpc3RlcmVkLiBJZiBpdCBpcywgc2V0 CisgICAgICAgICBgc2VsZi5fc2VyaWFsYCB0byB0aGUgcmlnaHQgdmFsdWUuCisgICAgICAgICAi IiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInRoaXMgaXMgYW4gYWJzdHJh Y3QgYmFzZSBjbGFzcywgaXQgc2hvdWxkbid0IGJlIGluaXRpYWxpemVkIGRpcmVjdGx5IikKKyAK Ky0gICAgY2RlZiBfcmVnaXN0ZXJfZnVuY3Rpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg X3JlZ2lzdGVyX2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICAgIiIiCisgCisgICAgICAgICBURVNU UzoKK0BAIC04NTAsMTQgKzg1MCwxNCBAQCBjZGVmIGNsYXNzIEdpbmFjRnVuY3Rpb24oQnVpbHRp bkZ1bmN0aW9uKToKKyAgICAgICAgICAgICAgICAgZXZhbGZfcGFyYW1zX2ZpcnN0PWV2YWxmX3Bh cmFtc19maXJzdCwKKyAgICAgICAgICAgICAgICAgcHJlc2VydmVkX2FyZz1wcmVzZXJ2ZWRfYXJn LCBhbHRfbmFtZT1hbHRfbmFtZSkKKyAKKy0gICAgY2RlZiBfaXNfcmVnaXN0ZXJlZChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfaXNfcmVnaXN0ZXJlZChzZWxmKToKKyAgICAgICAgICMgU2lu Y2UgdGhpcyBpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIGluIEMrKywgaXQgaXMgYWxyZWFkeSBpbgor ICAgICAgICAgIyBnaW5hYydzIGZ1bmN0aW9uIHJlZ2lzdHJ5CisgICAgICAgICBmbmFtZSA9IHNl bGYuX2dpbmFjX25hbWUgaWYgc2VsZi5fZ2luYWNfbmFtZSBpcyBub3QgTm9uZSBlbHNlIHNlbGYu X25hbWUKKyAgICAgICAgIHNlbGYuX3NlcmlhbCA9IGZpbmRfcmVnaXN0ZXJlZF9mdW5jdGlvbihm bmFtZSwgc2VsZi5fbmFyZ3MpCisgICAgICAgICByZXR1cm4gYm9vbChnZXRfc2Z1bmN0aW9uX2Zy b21fc2VyaWFsKHNlbGYuX3NlcmlhbCkpCisgCistICAgIGNkZWYgX3JlZ2lzdGVyX2Z1bmN0aW9u KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9yZWdpc3Rlcl9mdW5jdGlvbihzZWxmKToKKyAg ICAgICAgICMgV2UgZG9uJ3QgbmVlZCB0byBhZGQgYW55dGhpbmcgdG8gR2lOYUMncyBmdW5jdGlv biByZWdpc3RyeQorICAgICAgICAgIyBIb3dldmVyLCBpZiBhbnkgY3VzdG9tIG1ldGhvZHMgd2Vy ZSBwcm92aWRlZCBpbiB0aGUgcHl0aG9uIGNsYXNzLAorICAgICAgICAgIyB3ZSBzaG91bGQgc2V0 IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBmdW5jdGlvbl9vcHRpb25zIG9iamVjdAorQEAgLTEwODYs NyArMTA4Niw3IEBAIGNkZWYgY2xhc3MgQnVpbHRpbkZ1bmN0aW9uKEZ1bmN0aW9uKToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVmIF9pc19yZWdp c3RlcmVkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzoKKyAKK0BAIC0xMjA0LDcgKzEyMDQsNyBAQCBj ZGVmIGNsYXNzIFN5bWJvbGljRnVuY3Rpb24oRnVuY3Rpb24pOgorICAgICAgICAgRnVuY3Rpb24u X19pbml0X18oc2VsZiwgbmFtZSwgbmFyZ3MsIGxhdGV4X25hbWUsIGNvbnZlcnNpb25zLAorICAg ICAgICAgICAgICAgICBldmFsZl9wYXJhbXNfZmlyc3QpCisgCistICAgIGNkZWYgX2lzX3JlZ2lz dGVyZWQoU3ltYm9saWNGdW5jdGlvbiBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaXNfcmVn aXN0ZXJlZChTeW1ib2xpY0Z1bmN0aW9uIHNlbGYpOgorICAgICAgICAgIyBzZWUgaWYgdGhlcmUg aXMgYWxyZWFkeSBhIFN5bWJvbGljRnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBzdGF0ZQorICAgICAg ICAgY2RlZiBsb25nIG15aGFzaCA9IHNlbGYuX2hhc2hfKCkKKyAgICAgICAgIGNkZWYgU3ltYm9s aWNGdW5jdGlvbiBzZnVuYyA9IGdldF9zZnVuY3Rpb25fZnJvbV9oYXNoKG15aGFzaCkKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9zeW1ib2xpYy9weW5hY19mdW5jdGlvbl9pbXBsLnB4aSBiL3NyYy9z YWdlL3N5bWJvbGljL3B5bmFjX2Z1bmN0aW9uX2ltcGwucHhpCitpbmRleCBjY2ExYmI1ZDE5Ni4u ZjIwYzhmYWY5MWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zeW1ib2xpYy9weW5hY19mdW5jdGlv bl9pbXBsLnB4aQorKysrIGIvc3JjL3NhZ2Uvc3ltYm9saWMvcHluYWNfZnVuY3Rpb25faW1wbC5w eGkKK0BAIC0zLDcgKzMsNyBAQCBjcGRlZiBjYWxsX3JlZ2lzdGVyZWRfZnVuY3Rpb24odW5zaWdu ZWQgc2VyaWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFyZ3MsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQgaG9sZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYmludCBhbGxvd19udW1lcmljX3Jlc3VsdCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3BhcmVudCkgbm9leGNlcHQ6CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9wYXJlbnQpOgorICAgICByIiIiCisgICAgIENh bGwgYSBmdW5jdGlvbiByZWdpc3RlcmVkIHdpdGggUHluYWMgKEdpTmFDKS4KKyAKK0BAIC0xNzMs NyArMTczLDcgQEAgY3BkZWYgdW5zaWduZWQgcmVnaXN0ZXJfb3JfdXBkYXRlX2Z1bmN0aW9uKHNl bGYsIG5hbWUsIGxhdGV4X25hbWUsIGludCBuYXJncywKKyBjZGVmIGRpY3Qgc2Z1bmN0aW9uX3Nl cmlhbF9kaWN0ID0ge30KKyAKKyAKKy1jcGRlZiBnZXRfc2Z1bmN0aW9uX2Zyb21fc2VyaWFsKHVu c2lnbmVkIGludCBzZXJpYWwpIG5vZXhjZXB0OgorK2NwZGVmIGdldF9zZnVuY3Rpb25fZnJvbV9z ZXJpYWwodW5zaWduZWQgaW50IHNlcmlhbCk6CisgICAgICIiIgorICAgICBSZXR1cm4gYW4gYWxy ZWFkeSBjcmVhdGVkIDpjbGFzczpgU3ltYm9saWNGdW5jdGlvbmAgZ2l2ZW4gdGhlIHNlcmlhbC4K KyAKK0BAIC0xODksNyArMTg5LDcgQEAgY3BkZWYgZ2V0X3NmdW5jdGlvbl9mcm9tX3NlcmlhbCh1 bnNpZ25lZCBpbnQgc2VyaWFsKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHNmdW5jdGlvbl9zZXJp YWxfZGljdC5nZXQoc2VyaWFsKQorIAorIAorLWNwZGVmIGdldF9zZnVuY3Rpb25fZnJvbV9oYXNo KGxvbmcgbXloYXNoKSBub2V4Y2VwdDoKKytjcGRlZiBnZXRfc2Z1bmN0aW9uX2Zyb21faGFzaChs b25nIG15aGFzaCk6CisgICAgICIiIgorICAgICBSZXR1cm4gYW4gYWxyZWFkeSBjcmVhdGVkIDpj bGFzczpgU3ltYm9saWNGdW5jdGlvbmAgZ2l2ZW4gdGhlIGhhc2guCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2Uvc3ltYm9saWMvcHluYWNfaW1wbC5weGkgYi9zcmMvc2FnZS9zeW1ib2xpYy9weW5h Y19pbXBsLnB4aQoraW5kZXggNDY1NmRlMDlkMjguLmE0M2U1M2Y0ZjNkIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2Uvc3ltYm9saWMvcHluYWNfaW1wbC5weGkKKysrKyBiL3NyYy9zYWdlL3N5bWJvbGlj L3B5bmFjX2ltcGwucHhpCitAQCAtNjEsNyArNjEsNyBAQCBmcm9tIHNhZ2Uuc3ltYm9saWMuZnVu Y3Rpb24gY2ltcG9ydCBGdW5jdGlvbgorICMgU3ltYm9saWMgZnVuY3Rpb24gaGVscGVycworICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgCistY2RlZiBleF90b19weUV4cHJlc3Npb24oR0V4IGp1aWNlKSBub2V4Y2VwdDoK KytjZGVmIGV4X3RvX3B5RXhwcmVzc2lvbihHRXgganVpY2UpOgorICAgICAiIiIKKyAgICAgQ29u dmVydCBnaXZlbiBHaU5hQzo6ZXggb2JqZWN0IHRvIGEgcHl0aG9uIEV4cHJlc3Npb24gaW5zdGFu Y2UuCisgCitAQCAtNzQsNyArNzQsNyBAQCBjZGVmIGV4X3RvX3B5RXhwcmVzc2lvbihHRXgganVp Y2UpIG5vZXhjZXB0OgorICAgICBuZXguX3BhcmVudCA9IFNSCisgICAgIHJldHVybiBuZXgKKyAK Ky1jZGVmIGV4cHJzZXFfdG9fUHlUdXBsZShHRXggc2VxKSBub2V4Y2VwdDoKKytjZGVmIGV4cHJz ZXFfdG9fUHlUdXBsZShHRXggc2VxKToKKyAgICAgIiIiCisgICAgIENvbnZlcnQgYW4gZXhwcnNl cSB0byBhIFB5dGhvbiB0dXBsZS4KKyAKK0BAIC0xMzQsNyArMTM0LDcgQEAgZGVmIHVucGFja19v cGVyYW5kcyhFeHByZXNzaW9uIGV4KToKKyAgICAgcmV0dXJuIGV4cHJzZXFfdG9fUHlUdXBsZShl eC5fZ29iaikKKyAKKyAKKy1jZGVmIGV4dmVjdG9yX3RvX1B5VHVwbGUoR0V4VmVjdG9yIHNlcSkg bm9leGNlcHQ6CisrY2RlZiBleHZlY3Rvcl90b19QeVR1cGxlKEdFeFZlY3RvciBzZXEpOgorICAg ICAiIiIKKyAgICAgQ29udmVydHMgYXJndW1lbnRzIGxpc3QgZ2l2ZW4gdG8gYSBmdW5jdGlvbiB0 byBhIFB5VHVwbGUuCisgCitAQCAtMTk2LDcgKzE5Niw3IEBAIGNkZWYgR0V4IHB5RXhwcmVzc2lv bl90b19leChyZXMpIGV4Y2VwdCAqOgorICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJmdW5jdGlv biBkaWQgbm90IHJldHVybiBhIHN5bWJvbGljIGV4cHJlc3Npb24gb3IgYW4gZWxlbWVudCB0aGF0 IGNhbiBiZSBjb2VyY2VkIGludG8gYSBzeW1ib2xpYyBleHByZXNzaW9uIikKKyAgICAgcmV0dXJu ICg8RXhwcmVzc2lvbj50KS5fZ29iagorIAorLWNkZWYgcGFyYW1zZXRfdG9fUHlUdXBsZShjb25z dF9wYXJhbXNldF9yZWYgcykgbm9leGNlcHQ6CisrY2RlZiBwYXJhbXNldF90b19QeVR1cGxlKGNv bnN0X3BhcmFtc2V0X3JlZiBzKToKKyAgICAgIiIiCisgICAgIENvbnZlcnRzIGEgc3RkOjptdWx0 aXNldDx1bnNpZ25lZD4gdG8gYSBQeVR1cGxlLgorIAorQEAgLTIyNiw3ICsyMjYsNyBAQCBkZWYg cGFyYW1zZXRfZnJvbV9FeHByZXNzaW9uKEV4cHJlc3Npb24gZSk6CisgCisgY2RlZiBpbnQgR0lO QUNfRk5fU0VSSUFMID0gMAorIAorLWNkZWYgc2V0X2dpbmFjX2ZuX3NlcmlhbCgpIG5vZXhjZXB0 OgorK2NkZWYgc2V0X2dpbmFjX2ZuX3NlcmlhbCgpOgorICAgICAiIiIKKyAgICAgSW5pdGlhbGl6 ZSB0aGUgR0lOQUNfRk5fU0VSSUFMIHZhcmlhYmxlIHRvIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25z CisgICAgIGRlZmluZWQgYnkgR2lOYUMuIFRoaXMgYWxsb3dzIHVzIHRvIHByZXZlbnQgY29sbGlz aW9ucyB3aXRoIEMrKyBsZXZlbAorQEAgLTI2Miw3ICsyNjIsNyBAQCBkZWYgZ2V0X2dpbmFjX3Nl cmlhbCgpOgorICAgICByZXR1cm4gcHlfZ2V0X2dpbmFjX3NlcmlhbCgpCisgCisgCistY2RlZiBn ZXRfZm5fc2VyaWFsX2MoKSBub2V4Y2VwdDoKKytjZGVmIGdldF9mbl9zZXJpYWxfYygpOgorICAg ICAiIiIKKyAgICAgUmV0dXJuIG92ZXJhbGwgc2l6ZSBvZiBQeW5hYyBmdW5jdGlvbiByZWdpc3Ry eS4KKyAgICAgIiIiCitAQCAtMjg4LDcgKzI4OCw3IEBAIGRlZiBnZXRfZm5fc2VyaWFsKCk6Cisg ICAgIHJldHVybiBnZXRfZm5fc2VyaWFsX2MoKQorIAorIAorLWNkZWYgc3Vic19hcmdzX3RvX1B5 VHVwbGUoY29uc3QgR0V4TWFwJiBtYXAsIHVuc2lnbmVkIG9wdGlvbnMsIGNvbnN0IEdFeFZlY3Rv ciYgc2VxKSBub2V4Y2VwdDoKKytjZGVmIHN1YnNfYXJnc190b19QeVR1cGxlKGNvbnN0IEdFeE1h cCYgbWFwLCB1bnNpZ25lZCBvcHRpb25zLCBjb25zdCBHRXhWZWN0b3ImIHNlcSk6CisgICAgICIi IgorICAgICBDb252ZXJ0IGFyZ3VtZW50cyBmcm9tIGBgR2lOYUM6OnN1YnMoKWBgIHRvIGEgUHlU dXBsZS4KKyAKK0BAIC03ODksMTIgKzc4OSwxMiBAQCBjZGVmIHN0ZHN0cmluZyogcHlfZHVtcHMo bykgbm9leGNlcHQ6CisgICAgIHMgPSBiYXNlNjQuYjY0ZW5jb2RlKHMpCisgICAgIHJldHVybiBz dHJpbmdfZnJvbV9weXN0cihzKQorIAorLWNkZWYgcHlfbG9hZHMocykgbm9leGNlcHQ6CisrY2Rl ZiBweV9sb2FkcyhzKToKKyAgICAgaW1wb3J0IGJhc2U2NAorICAgICBzID0gYmFzZTY0LmI2NGRl Y29kZShzKQorICAgICByZXR1cm4gbG9hZHMocykKKyAKKy1jZGVmIHB5X2dldF9zZnVuY3Rpb25f ZnJvbV9zZXJpYWwodW5zaWduZWQgcykgbm9leGNlcHQ6CisrY2RlZiBweV9nZXRfc2Z1bmN0aW9u X2Zyb21fc2VyaWFsKHVuc2lnbmVkIHMpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBQeXRo b24gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNlcmlhbC4KKyAgICAgIiIiCitAQCAtODY5LDcg Kzg2OSw3IEBAIGNkZWYgaW50IHB5X2dldF9wYXJlbnRfY2hhcihvKSBleGNlcHQgLTE6CisgIyBw b3dlciBoZWxwZXJzCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIHB5X3JhdGlvbmFsX3Bvd2VyX3BhcnRz KGJhc2UsIGV4cCkgbm9leGNlcHQ6CisrY2RlZiBweV9yYXRpb25hbF9wb3dlcl9wYXJ0cyhiYXNl LCBleHApOgorICAgICBpZiB0eXBlKGJhc2UpIGlzIG5vdCBSYXRpb25hbDoKKyAgICAgICAgIGJh c2UgPSBSYXRpb25hbChiYXNlKQorICAgICBpZiB0eXBlKGV4cCkgaXMgbm90IFJhdGlvbmFsOgor QEAgLTg4Miw3ICs4ODIsNyBAQCBjZGVmIHB5X3JhdGlvbmFsX3Bvd2VyX3BhcnRzKGJhc2UsIGV4 cCkgbm9leGNlcHQ6CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKyAKKy1jZGVmIHB5X2Jpbm9taWFsX2ludChpbnQg biwgdW5zaWduZWQgaW50IGspIG5vZXhjZXB0OgorK2NkZWYgcHlfYmlub21pYWxfaW50KGludCBu LCB1bnNpZ25lZCBpbnQgayk6CisgICAgIGNkZWYgYmludCBzaWduCisgICAgIGlmIG4gPCAwOgor ICAgICAgICAgbiA9IC1uICsgKGstMSkKK0BAIC04OTgsNyArODk4LDcgQEAgY2RlZiBweV9iaW5v bWlhbF9pbnQoaW50IG4sIHVuc2lnbmVkIGludCBrKSBub2V4Y2VwdDoKKyAgICAgZWxzZToKKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKy1jZGVmIHB5X2Jpbm9taWFsKG4sIGspIG5vZXhjZXB0Ogor K2NkZWYgcHlfYmlub21pYWwobiwgayk6CisgICAgICMgS2VlcCB0cmFjayBvZiB0aGUgc2lnbiB3 ZSBzaG91bGQgdXNlLgorICAgICBjZGVmIGJpbnQgc2lnbgorICAgICBpZiBuIDwgMDoKK0BAIC05 NDksNyArOTQ5LDcgQEAgZGVmIHRlc3RfYmlub21pYWwobiwgayk6CisgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIEdD RAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCistY2RlZiBweV9nY2Qobiwgaykgbm9leGNlcHQ6CisrY2RlZiBweV9nY2Qo biwgayk6CisgICAgIGlmIGlzaW5zdGFuY2UobiwgSW50ZWdlcikgYW5kIGlzaW5zdGFuY2Uoaywg SW50ZWdlcik6CisgICAgICAgICBpZiBtcHpfY21wX3NpKCg8SW50ZWdlcj5uKS52YWx1ZSwgMSkg PT0gMDoKKyAgICAgICAgICAgICByZXR1cm4gbgorQEAgLTk2OSw3ICs5NjksNyBAQCBjZGVmIHB5 X2djZChuLCBrKSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMgTENNCisgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy1jZGVm IHB5X2xjbShuLCBrKSBub2V4Y2VwdDoKKytjZGVmIHB5X2xjbShuLCBrKToKKyAgICAgaWYgaXNp bnN0YW5jZShuLCBJbnRlZ2VyKSBhbmQgaXNpbnN0YW5jZShrLCBJbnRlZ2VyKToKKyAgICAgICAg IGlmIG1wel9jbXBfc2koKDxJbnRlZ2VyPm4pLnZhbHVlLCAxKSA9PSAwOgorICAgICAgICAgICAg IHJldHVybiBrCitAQCAtOTg3LDcgKzk4Nyw3IEBAIGNkZWYgcHlfbGNtKG4sIGspIG5vZXhjZXB0 OgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisgIyBSZWFsIFBhcnQKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLWNkZWYgcHlfcmVhbCh4KSBu b2V4Y2VwdDoKKytjZGVmIHB5X3JlYWwoeCk6CisgICAgICIiIgorICAgICBSZXR1cm5zIHRoZSBy ZWFsIHBhcnQgb2YgeC4KKyAKK0BAIC0xMDQ2LDcgKzEwNDYsNyBAQCBkZWYgcHlfcmVhbF9mb3Jf ZG9jdGVzdHMoeCk6CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIEltYWdpbmFyeSBQYXJ0CisgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy1j ZGVmIHB5X2ltYWcoeCkgbm9leGNlcHQ6CisrY2RlZiBweV9pbWFnKHgpOgorICAgICAiIiIKKyAg ICAgUmV0dXJuIHRoZSBpbWFnaW5hcnkgcGFydCBvZiB4LgorIAorQEAgLTExMDMsNyArMTEwMyw3 IEBAIGRlZiBweV9pbWFnX2Zvcl9kb2N0ZXN0cyh4KToKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMgQ29uanVnYXRl CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKy1jZGVmIHB5X2Nvbmp1Z2F0ZSh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2Nv bmp1Z2F0ZSh4KToKKyAgICAgdHJ5OgorICAgICAgICAgcmV0dXJuIHguY29uanVnYXRlKCkKKyAg ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorQEAgLTEyNTAsNyArMTI1MCw3IEBAIGNkZWYgYmlu dCBweV9pc19leGFjdCh4KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGlzaW5zdGFuY2UoUCwgU3lt Ym9saWNSaW5nKSBvciBQLmlzX2V4YWN0KCkKKyAKKyAKKy1jZGVmIHB5X251bWVyKG4pIG5vZXhj ZXB0OgorK2NkZWYgcHlfbnVtZXIobik6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIG51bWVy YXRvciBvZiB0aGUgZ2l2ZW4gb2JqZWN0LiBUaGlzIGlzIGNhbGxlZCBmb3IKKyAgICAgdHlwZXNl dHRpbmcgY29lZmZpY2llbnRzLgorQEAgLTEyOTgsNyArMTI5OCw3IEBAIGRlZiBweV9udW1lcl9m b3JfZG9jdGVzdHMobik6CisgICAgICIiIgorICAgICByZXR1cm4gcHlfbnVtZXIobikKKyAKKy1j ZGVmIHB5X2Rlbm9tKG4pIG5vZXhjZXB0OgorK2NkZWYgcHlfZGVub20obik6CisgICAgICIiIgor ICAgICBSZXR1cm4gdGhlIGRlbm9taW5hdG9yIG9mIHRoZSBnaXZlbiBvYmplY3QuIFRoaXMgaXMg Y2FsbGVkIGZvcgorICAgICB0eXBlc2V0dGluZyBjb2VmZmljaWVudHMuCitAQCAtMTM1Nyw3ICsx MzU3LDcgQEAgZGVmIHB5X2lzX2NpbnRlZ2VyX2Zvcl9kb2N0ZXN0KHgpOgorICAgICAiIiIKKyAg ICAgcmV0dXJuIHB5X2lzX2NpbnRlZ2VyKHgpCisgCistY2RlZiBweV9mbG9hdChuLCBQeU9iamVj dCoga3dkcykgbm9leGNlcHQ6CisrY2RlZiBweV9mbG9hdChuLCBQeU9iamVjdCoga3dkcyk6Cisg ICAgICIiIgorICAgICBFdmFsdWF0ZSBweW5hYyBudW1lcmljIG9iamVjdHMgbnVtZXJpY2FsbHku CisgCitAQCAtMTQxNiw3ICsxNDE2LDcgQEAgZGVmIHB5X2Zsb2F0X2Zvcl9kb2N0ZXN0cyhuLCBr d2RzKToKKyAgICAgcmV0dXJuIHB5X2Zsb2F0KG4sIDxQeU9iamVjdCo+a3dkcykKKyAKKyAKKy1j ZGVmIHB5X1JERl9mcm9tX2RvdWJsZShkb3VibGUgeCkgbm9leGNlcHQ6CisrY2RlZiBweV9SREZf ZnJvbV9kb3VibGUoZG91YmxlIHgpOgorICAgICBjZGVmIFJlYWxEb3VibGVFbGVtZW50IHIgPSBS ZWFsRG91YmxlRWxlbWVudC5fX25ld19fKFJlYWxEb3VibGVFbGVtZW50KQorICAgICByLl92YWx1 ZSA9IHgKKyAgICAgcmV0dXJuIHIKK0BAIC0xNDI0LDcgKzE0MjQsNyBAQCBjZGVmIHB5X1JERl9m cm9tX2RvdWJsZShkb3VibGUgeCkgbm9leGNlcHQ6CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIFNQRUNJQUwgRlVO Q1RJT05TCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKy1jZGVmIHB5X3RnYW1tYSh4KSBub2V4Y2VwdDoKKytjZGVmIHB5 X3RnYW1tYSh4KToKKyAgICAgIiIiCisgICAgIFRoZSBnYW1tYSBmdW5jdGlvbiBleHBvcnRlZCB0 byBweW5hYy4KKyAKK0BAIC0xNDY5LDcgKzE0NjksNyBAQCBkZWYgcHlfdGdhbW1hX2Zvcl9kb2N0 ZXN0cyh4KToKKyAgICAgIiIiCisgICAgIHJldHVybiBweV90Z2FtbWEoeCkKKyAKKy1jZGVmIHB5 X2ZhY3RvcmlhbCh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2ZhY3RvcmlhbCh4KToKKyAgICAgIiIi CisgICAgIFRoZSBmYWN0b3JpYWwgZnVuY3Rpb24gZXhwb3J0ZWQgdG8gcHluYWMuCisgCitAQCAt MTUxMCw3ICsxNTEwLDcgQEAgZGVmIHB5X2ZhY3RvcmlhbF9weSh4KToKKyAgICAgIiIiCisgICAg IHJldHVybiBweV9mYWN0b3JpYWwoeCkKKyAKKy1jZGVmIHB5X2RvdWJsZWZhY3RvcmlhbCh4KSBu b2V4Y2VwdDoKKytjZGVmIHB5X2RvdWJsZWZhY3RvcmlhbCh4KToKKyAgICAgbiA9IEludGVnZXIo eCkKKyAgICAgaWYgbiA8IC0xOgorICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYXJndW1lbnQg bXVzdCBiZSA+PSAtMSIpCitAQCAtMTU0NiwxMCArMTU0NiwxMCBAQCBkZWYgZG91YmxlZmFjdG9y aWFsKG4pOgorICAgICByZXR1cm4gcHlfZG91YmxlZmFjdG9yaWFsKG4pCisgCisgCistY2RlZiBw eV9maWJvbmFjY2kobikgbm9leGNlcHQ6CisrY2RlZiBweV9maWJvbmFjY2kobik6CisgICAgIHJl dHVybiBJbnRlZ2VyKHBhcmkobikuZmlib25hY2NpKCkpCisgCistY2RlZiBweV9zdGVwKG4pIG5v ZXhjZXB0OgorK2NkZWYgcHlfc3RlcChuKToKKyAgICAgIiIiCisgICAgIFJldHVybiBzdGVwIGZ1 bmN0aW9uIG9mIG4uCisgICAgICIiIgorQEAgLTE1NjAsMTAgKzE1NjAsMTAgQEAgY2RlZiBweV9z dGVwKG4pIG5vZXhjZXB0OgorICAgICAgICAgcmV0dXJuIFNSKDEpCisgICAgIHJldHVybiBTUihS YXRpb25hbCgoMSwyKSkpCisgCistY2RlZiBweV9iZXJub3VsbGkoeCkgbm9leGNlcHQ6CisrY2Rl ZiBweV9iZXJub3VsbGkoeCk6CisgICAgIHJldHVybiBiZXJub3VsbGkoeCkKKyAKKy1jZGVmIHB5 X3Npbih4KSBub2V4Y2VwdDoKKytjZGVmIHB5X3Npbih4KToKKyAgICAgIiIiCisgICAgIFRFU1RT OjoKKyAKK0BAIC0xNTg1LDcgKzE1ODUsNyBAQCBjZGVmIHB5X3Npbih4KSBub2V4Y2VwdDoKKyAg ICAgZXhjZXB0IChUeXBlRXJyb3IsIFZhbHVlRXJyb3IpOgorICAgICAgICAgcmV0dXJuIENDKHgp LnNpbigpCisgCistY2RlZiBweV9jb3MoeCkgbm9leGNlcHQ6CisrY2RlZiBweV9jb3MoeCk6Cisg ICAgICIiIgorICAgICBURVNUUzo6CisgCitAQCAtMTYwNyw3ICsxNjA3LDcgQEAgY2RlZiBweV9j b3MoeCkgbm9leGNlcHQ6CisgICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBWYWx1ZUVycm9yKToKKyAg ICAgICAgIHJldHVybiBDQyh4KS5jb3MoKQorIAorLWNkZWYgcHlfc3RpZWx0amVzKHgpIG5vZXhj ZXB0OgorK2NkZWYgcHlfc3RpZWx0amVzKHgpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBT dGllbHRqZXMgY29uc3RhbnQgb2YgdGhlIGdpdmVuIGluZGV4LgorIAorQEAgLTE2NDksNyArMTY0 OSw3IEBAIGRlZiBweV9zdGllbHRqZXNfZm9yX2RvY3Rlc3RzKHgpOgorICAgICAiIiIKKyAgICAg cmV0dXJuIHB5X3N0aWVsdGplcyh4KQorIAorLWNkZWYgcHlfemV0YSh4KSBub2V4Y2VwdDoKKytj ZGVmIHB5X3pldGEoeCk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSB6 ZXRhIGZ1bmN0aW9uIGF0IHRoZSBnaXZlbiB2YWx1ZS4KKyAKK0BAIC0xNjgzLDcgKzE2ODMsNyBA QCBkZWYgcHlfemV0YV9mb3JfZG9jdGVzdHMoeCk6CisgICAgICIiIgorICAgICByZXR1cm4gcHlf emV0YSh4KQorIAorLWNkZWYgcHlfZXhwKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfZXhwKHgpOgor ICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZXhwIGZ1bmN0aW9uIGF0IHRo ZSBnaXZlbiB2YWx1ZS4KKyAKK0BAIC0xNzI0LDcgKzE3MjQsNyBAQCBkZWYgcHlfZXhwX2Zvcl9k b2N0ZXN0cyh4KToKKyAgICAgIiIiCisgICAgIHJldHVybiBweV9leHAoeCkKKyAKKy1jZGVmIHB5 X2xvZyh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2xvZyh4KToKKyAgICAgIiIiCisgICAgIFJldHVy biB0aGUgdmFsdWUgb2YgdGhlIGxvZyBmdW5jdGlvbiBhdCB0aGUgZ2l2ZW4gdmFsdWUuCisgCitA QCAtMTc5Myw3ICsxNzkzLDcgQEAgZGVmIHB5X2xvZ19mb3JfZG9jdGVzdHMoeCk6CisgICAgICIi IgorICAgICByZXR1cm4gcHlfbG9nKHgpCisgCistY2RlZiBweV90YW4oeCkgbm9leGNlcHQ6Cisr Y2RlZiBweV90YW4oeCk6CisgICAgIHRyeToKKyAgICAgICAgIHJldHVybiB4LnRhbigpCisgICAg IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKK0BAIC0xODAzLDI4ICsxODAzLDI4IEBAIGNkZWYgcHlf dGFuKHgpIG5vZXhjZXB0OgorICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgcmV0dXJu IENDKHgpLnRhbigpCisgCistY2RlZiBweV9hc2luKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfYXNp bih4KToKKyAgICAgdHJ5OgorICAgICAgICAgcmV0dXJuIHguYXJjc2luKCkKKyAgICAgZXhjZXB0 IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgcmV0dXJuIFJSKHgpLmFyY3NpbigpCisgCisgCist Y2RlZiBweV9hY29zKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfYWNvcyh4KToKKyAgICAgdHJ5Ogor ICAgICAgICAgcmV0dXJuIHguYXJjY29zKCkKKyAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor ICAgICAgICAgcmV0dXJuIFJSKHgpLmFyY2NvcygpCisgCisgCistY2RlZiBweV9hdGFuKHgpIG5v ZXhjZXB0OgorK2NkZWYgcHlfYXRhbih4KToKKyAgICAgdHJ5OgorICAgICAgICAgcmV0dXJuIHgu YXJjdGFuKCkKKyAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgcmV0dXJuIFJS KHgpLmFyY3RhbigpCisgCisgCistY2RlZiBweV9hdGFuMih4LCB5KSBub2V4Y2VwdDoKKytjZGVm IHB5X2F0YW4yKHgsIHkpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUg dHdvIGFyZ3VtZW50IGFyY3RhbiBmdW5jdGlvbiBhdCB0aGUgZ2l2ZW4gdmFsdWVzLgorIAorQEAg LTE5MDksMTQgKzE5MDksMTQgQEAgZGVmIHB5X2F0YW4yX2Zvcl9kb2N0ZXN0cyh4LCB5KToKKyAg ICAgcmV0dXJuIHB5X2F0YW4yKHgsIHkpCisgCisgCistY2RlZiBweV9zaW5oKHgpIG5vZXhjZXB0 OgorK2NkZWYgcHlfc2luaCh4KToKKyAgICAgdHJ5OgorICAgICAgICAgcmV0dXJuIHguc2luaCgp CisgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgIHJldHVybiBSUih4KS5zaW5o KCkKKyAKKyAKKy1jZGVmIHB5X2Nvc2goeCkgbm9leGNlcHQ6CisrY2RlZiBweV9jb3NoKHgpOgor ICAgICBpZiB0eXBlKHgpIGlzIGZsb2F0OgorICAgICAgICAgcmV0dXJuIG1hdGguY29zaChQeUZs b2F0X0FTX0RPVUJMRSh4KSkKKyAgICAgdHJ5OgorQEAgLTE5MjUsMTQgKzE5MjUsMTQgQEAgY2Rl ZiBweV9jb3NoKHgpIG5vZXhjZXB0OgorICAgICAgICAgcmV0dXJuIFJSKHgpLmNvc2goKQorIAor IAorLWNkZWYgcHlfdGFuaCh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X3RhbmgoeCk6CisgICAgIHRy eToKKyAgICAgICAgIHJldHVybiB4LnRhbmgoKQorICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6 CisgICAgICAgICByZXR1cm4gUlIoeCkudGFuaCgpCisgCisgCistY2RlZiBweV9hc2luaCh4KSBu b2V4Y2VwdDoKKytjZGVmIHB5X2FzaW5oKHgpOgorICAgICB0cnk6CisgICAgICAgICByZXR1cm4g eC5hcmNzaW5oKCkKKyAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorQEAgLTE5NDMsNyArMTk0 Myw3IEBAIGNkZWYgcHlfYXNpbmgoeCkgbm9leGNlcHQ6CisgICAgICAgICByZXR1cm4gQ0MoeCku YXJjc2luaCgpCisgCisgCistY2RlZiBweV9hY29zaCh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2Fj b3NoKHgpOgorICAgICB0cnk6CisgICAgICAgICByZXR1cm4geC5hcmNjb3NoKCkKKyAgICAgZXhj ZXB0IEF0dHJpYnV0ZUVycm9yOgorQEAgLTE5NTQsNyArMTk1NCw3IEBAIGNkZWYgcHlfYWNvc2go eCkgbm9leGNlcHQ6CisgICAgICAgICByZXR1cm4gQ0MoeCkuYXJjY29zaCgpCisgCisgCistY2Rl ZiBweV9hdGFuaCh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2F0YW5oKHgpOgorICAgICB0cnk6Cisg ICAgICAgICByZXR1cm4geC5hcmN0YW5oKCkKKyAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor QEAgLTE5NjUsNyArMTk2NSw3IEBAIGNkZWYgcHlfYXRhbmgoeCkgbm9leGNlcHQ6CisgICAgICAg ICByZXR1cm4gQ0MoeCkuYXJjdGFuaCgpCisgCisgCistY2RlZiBweV9sZ2FtbWEoeCkgbm9leGNl cHQ6CisrY2RlZiBweV9sZ2FtbWEoeCk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHZhbHVl IG9mIHRoZSBwcmluY2lwYWwgYnJhbmNoIG9mIHRoZSBsb2cgZ2FtbWEgZnVuY3Rpb24gYXQgdGhl CisgICAgIGdpdmVuIHZhbHVlLgorQEAgLTIwMTIsMTEgKzIwMTIsMTEgQEAgZGVmIHB5X2xnYW1t YV9mb3JfZG9jdGVzdHMoeCk6CisgICAgIHJldHVybiBweV9sZ2FtbWEoeCkKKyAKKyAKKy1jZGVm IHB5X2lzcXJ0KHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfaXNxcnQoeCk6CisgICAgIHJldHVybiBJ bnRlZ2VyKHgpLmlzcXJ0KCkKKyAKKyAKKy1jZGVmIHB5X3NxcnQoeCkgbm9leGNlcHQ6CisrY2Rl ZiBweV9zcXJ0KHgpOgorICAgICB0cnk6CisgICAgICAgICAjIFdPUlJZOiBXaGF0IGlmIEludGVn ZXIncyBzcXJ0IGNhbGxzIHN5bWJvbGljIG9uZSBhbmQgd2UgZ28gaW4gY2lyY2xlPworICAgICAg ICAgcmV0dXJuIHguc3FydCgpCitAQCAtMjAyNCwxMSArMjAyNCwxMSBAQCBjZGVmIHB5X3NxcnQo eCkgbm9leGNlcHQ6CisgICAgICAgICByZXR1cm4gbWF0aC5zcXJ0KGZsb2F0KHgpKQorIAorIAor LWNkZWYgcHlfYWJzKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfYWJzKHgpOgorICAgICByZXR1cm4g YWJzKHgpCisgCisgCistY2RlZiBweV9tb2QoeCwgbikgbm9leGNlcHQ6CisrY2RlZiBweV9tb2Qo eCwgbik6CisgICAgICIiIgorICAgICBSZXR1cm4geCBtb2Qgbi4gQm90aCB4IGFuZCBuIGFyZSBh c3N1bWVkIHRvIGJlIGludGVnZXJzLgorIAorQEAgLTIwNzYsNyArMjA3Niw3IEBAIGRlZiBweV9t b2RfZm9yX2RvY3Rlc3RzKHgsIG4pOgorICAgICByZXR1cm4gcHlfbW9kKHgsIG4pCisgCisgCist Y2RlZiBweV9zbW9kKGEsIGIpIG5vZXhjZXB0OgorK2NkZWYgcHlfc21vZChhLCBiKToKKyAgICAg IyBNb2R1bHVzIChpbiBzeW1tZXRyaWMgcmVwcmVzZW50YXRpb24pLgorICAgICAjIEVxdWl2YWxl bnQgdG8gTWFwbGUncyBtb2RzLgorICAgICAjIHJldHVybnMgYSBtb2QgYiBpbiB0aGUgcmFuZ2Ug Wy1pcXVvKGFicyhiKS0xLDIpLCBpcXVvKGFicyhiKSwyKV0KK0BAIC0yMDg5LDE1ICsyMDg5LDE1 IEBAIGNkZWYgcHlfc21vZChhLCBiKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGMKKyAKKyAKKy1j ZGVmIHB5X2lyZW0oeCwgbikgbm9leGNlcHQ6CisrY2RlZiBweV9pcmVtKHgsIG4pOgorICAgICBy ZXR1cm4gSW50ZWdlcih4KSAlIEludGVnZXIobikKKyAKKyAKKy1jZGVmIHB5X2lxdW8oeCwgbikg bm9leGNlcHQ6CisrY2RlZiBweV9pcXVvKHgsIG4pOgorICAgICByZXR1cm4gSW50ZWdlcih4KS8v SW50ZWdlcihuKQorIAorIAorLWNkZWYgcHlfaXF1bzIoeCwgbikgbm9leGNlcHQ6CisrY2RlZiBw eV9pcXVvMih4LCBuKToKKyAgICAgeCA9IEludGVnZXIoeCkKKyAgICAgbiA9IEludGVnZXIobikK KyAgICAgdHJ5OgorQEAgLTIxMTUsNyArMjExNSw3IEBAIGNkZWYgaW50IHB5X2ludF9sZW5ndGgo eCkgZXhjZXB0IC0xOgorICAgICByZXR1cm4gSW50ZWdlcih4KS5uYml0cygpCisgCisgCistY2Rl ZiBweV9saSh4LCBuLCBwYXJlbnQpIG5vZXhjZXB0OgorK2NkZWYgcHlfbGkoeCwgbiwgcGFyZW50 KToKKyAgICAgIiIiCisgICAgIFJldHVybnMgYSBudW1lcmljYWwgYXBwcm94aW1hdGlvbiBvZiBw b2x5bG9nKG4sIHgpIHdpdGggcHJlY2lzaW9uIGdpdmVuCisgICAgIGJ5IHRoZSBgYHBhcmVudGBg IGFyZ3VtZW50LgorQEAgLTIxNTIsNyArMjE1Miw3IEBAIGRlZiBweV9saV9mb3JfZG9jdGVzdHMo eCwgbiwgcGFyZW50KToKKyAgICAgcmV0dXJuIHB5X2xpKHgsIG4sIHBhcmVudCkKKyAKKyAKKy1j ZGVmIHB5X3BzaSh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X3BzaSh4KToKKyAgICAgIiIiCisgICAg IEVYQU1QTEVTOjoKKyAKK0BAIC0yMTg3LDcgKzIxODcsNyBAQCBkZWYgcHlfcHNpX2Zvcl9kb2N0 ZXN0cyh4KToKKyAgICAgIiIiCisgICAgIHJldHVybiBweV9wc2koeCkKKyAKKy1jZGVmIHB5X3Bz aTIobiwgeCkgbm9leGNlcHQ6CisrY2RlZiBweV9wc2kyKG4sIHgpOgorICAgICAiIiIKKyAgICAg RVhBTVBMRVM6OgorIAorQEAgLTIyMTUsNyArMjIxNSw3IEBAIGRlZiBweV9wc2kyX2Zvcl9kb2N0 ZXN0cyhuLCB4KToKKyAgICAgIiIiCisgICAgIHJldHVybiBweV9wc2kyKG4sIHgpCisgCistY2Rl ZiBweV9saTIoeCkgbm9leGNlcHQ6CisrY2RlZiBweV9saTIoeCk6CisgICAgICIiIgorICAgICBF WEFNUExFUzo6CisgCitAQCAtMjI2NCwxMiArMjI2NCwxMiBAQCBjZGVmIEdDb25zdGFudCBweV9n ZXRfY29uc3RhbnQoY29uc3QgY2hhciogbmFtZSkgbm9leGNlcHQ6CisgICAgICAgICBwYyA9IGMu X3B5bmFjCisgICAgICAgICByZXR1cm4gcGMucG9pbnRlclswXQorIAorLWNkZWYgcHlfZXZhbF9j b25zdGFudCh1bnNpZ25lZCBzZXJpYWwsIGt3ZHMpIG5vZXhjZXB0OgorK2NkZWYgcHlfZXZhbF9j b25zdGFudCh1bnNpZ25lZCBzZXJpYWwsIGt3ZHMpOgorICAgICBmcm9tIHNhZ2Uuc3ltYm9saWMu Y29uc3RhbnRzIGltcG9ydCBjb25zdGFudHNfdGFibGUKKyAgICAgY29uc3RhbnQgPSBjb25zdGFu dHNfdGFibGVbc2VyaWFsXQorICAgICByZXR1cm4ga3dkc1sncGFyZW50J10oY29uc3RhbnQpCisg CistY2RlZiBweV9ldmFsX3Vuc2lnbmVkX2luZmluaXR5KCkgbm9leGNlcHQ6CisrY2RlZiBweV9l dmFsX3Vuc2lnbmVkX2luZmluaXR5KCk6CisgICAgICIiIgorICAgICBSZXR1cm5zIHVuc2lnbmVk X2luZmluaXR5LgorICAgICAiIiIKK0BAIC0yMjg4LDcgKzIyODgsNyBAQCBkZWYgcHlfZXZhbF91 bnNpZ25lZF9pbmZpbml0eV9mb3JfZG9jdGVzdHMoKToKKyAgICAgIiIiCisgICAgIHJldHVybiBw eV9ldmFsX3Vuc2lnbmVkX2luZmluaXR5KCkKKyAKKy1jZGVmIHB5X2V2YWxfaW5maW5pdHkoKSBu b2V4Y2VwdDoKKytjZGVmIHB5X2V2YWxfaW5maW5pdHkoKToKKyAgICAgIiIiCisgICAgIFJldHVy bnMgcG9zaXRpdmUgaW5maW5pdHksIGkuZS4sIG9vLgorICAgICAiIiIKK0BAIC0yMzA3LDcgKzIz MDcsNyBAQCBkZWYgcHlfZXZhbF9pbmZpbml0eV9mb3JfZG9jdGVzdHMoKToKKyAgICAgIiIiCisg ICAgIHJldHVybiBweV9ldmFsX2luZmluaXR5KCkKKyAKKy1jZGVmIHB5X2V2YWxfbmVnX2luZmlu aXR5KCkgbm9leGNlcHQ6CisrY2RlZiBweV9ldmFsX25lZ19pbmZpbml0eSgpOgorICAgICAiIiIK KyAgICAgUmV0dXJucyBtaW51c19pbmZpbml0eS4KKyAgICAgIiIiCitAQCAtMjMzMCwxOCArMjMz MCwxOCBAQCBkZWYgcHlfZXZhbF9uZWdfaW5maW5pdHlfZm9yX2RvY3Rlc3RzKCk6CisgIyBDb25z dHJ1Y3RvcnMKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIHB5X2ludGVnZXJfZnJvbV9sb25nKGxvbmcg eCkgbm9leGNlcHQ6CisrY2RlZiBweV9pbnRlZ2VyX2Zyb21fbG9uZyhsb25nIHgpOgorICAgICBy ZXR1cm4gc21hbGxJbnRlZ2VyKHgpCisgCistY2RlZiBweV9pbnRlZ2VyX2Zyb21fcHl0aG9uX29i aih4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2ludGVnZXJfZnJvbV9weXRob25fb2JqKHgpOgorICAg ICByZXR1cm4gSW50ZWdlcih4KQorIAorLWNkZWYgcHlfaW50ZWdlcl9mcm9tX21weihtcHpfdCBi aWdpbnQpIG5vZXhjZXB0OgorK2NkZWYgcHlfaW50ZWdlcl9mcm9tX21weihtcHpfdCBiaWdpbnQp OgorICAgICBjZGVmIEludGVnZXIgeiA9IFBZX05FVyhJbnRlZ2VyKQorICAgICBtcHpfc2V0KHou dmFsdWUsIGJpZ2ludCkKKyAgICAgcmV0dXJuIHoKKyAKKy1jZGVmIHB5X3JhdGlvbmFsX2Zyb21f bXBxKG1wcV90IGJpZ3JhdCkgbm9leGNlcHQ6CisrY2RlZiBweV9yYXRpb25hbF9mcm9tX21wcSht cHFfdCBiaWdyYXQpOgorICAgICBjZGVmIFJhdGlvbmFsIHJhdCA9IFJhdGlvbmFsLl9fbmV3X18o UmF0aW9uYWwpCisgICAgIG1wcV9zZXQocmF0LnZhbHVlLCBiaWdyYXQpCisgICAgIG1wcV9jYW5v bmljYWxpemUocmF0LnZhbHVlKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N5bWJvbGljL3Jpbmcu cHl4IGIvc3JjL3NhZ2Uvc3ltYm9saWMvcmluZy5weXgKK2luZGV4IGVmOGE2OTA3MTRkLi42ZTE1 NGE2MGZkOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N5bWJvbGljL3JpbmcucHl4CisrKysgYi9z cmMvc2FnZS9zeW1ib2xpYy9yaW5nLnB5eAorQEAgLTEyMiw3ICsxMjIsNyBAQCBjZGVmIGNsYXNz IFN5bWJvbGljUmluZyhzYWdlLnJpbmdzLmFiYy5TeW1ib2xpY1JpbmcpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gcidcdGV4dHtTUn0nCisgCistICAgIGNwZGVmIF9jb2VyY2VfbWFw X2Zyb21fKHNlbGYsIFIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhz ZWxmLCBSKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEyMjEs NyArMTIyMSw3IEBAIGNkZWYgY2xhc3MgTnVtcHlUb1NSTW9ycGhpc20oTW9ycGhpc20pOgorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInt9IGlzIG5vdCBhIG51 bXB5IG51bWJlciB0eXBlIi5mb3JtYXQobnVtcHlfdHlwZSkpCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIGEpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCBhKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6CisgCitAQCAtMTI2OCw3 ICsxMjY4LDcgQEAgY2RlZiBjbGFzcyBVbmRlcnNjb3JlU2FnZU1vcnBoaXNtKE1vcnBoaXNtKToK KyAgICAgICAgIGZyb20gc2FnZS5pbnRlcmZhY2VzLnN5bXB5IGltcG9ydCBzeW1weV9pbml0Cisg ICAgICAgICBzeW1weV9pbml0KCkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg YSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIGEpOgorICAgICAg ICAgIiIiCisgICAgICAgICBFWEFNUExFUzoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zeW1i b2xpYy9zdWJzdGl0dXRpb25fbWFwX2ltcGwucHhpIGIvc3JjL3NhZ2Uvc3ltYm9saWMvc3Vic3Rp dHV0aW9uX21hcF9pbXBsLnB4aQoraW5kZXggYzFkYzNiZTc0OGIuLmVhNjBlODk5ZDFhIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2Uvc3ltYm9saWMvc3Vic3RpdHV0aW9uX21hcF9pbXBsLnB4aQorKysr IGIvc3JjL3NhZ2Uvc3ltYm9saWMvc3Vic3RpdHV0aW9uX21hcF9pbXBsLnB4aQorQEAgLTI0LDcg KzI0LDcgQEAgY2RlZiBjbGFzcyBTdWJzdGl0dXRpb25NYXAoU2FnZU9iamVjdCk6CisgCisgICAg IGNkZWYgR0V4TWFwIF9nbWFwb2JqCisgCistICAgIGNwZGVmIEV4cHJlc3Npb24gYXBwbHlfdG8o c2VsZiwgRXhwcmVzc2lvbiBleHByLCB1bnNpZ25lZCBvcHRpb25zKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgRXhwcmVzc2lvbiBhcHBseV90byhzZWxmLCBFeHByZXNzaW9uIGV4cHIsIHVuc2lnbmVk IG9wdGlvbnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBBcHBseSB0aGUgc3Vic3RpdHV0aW9u IHRvIGEgc3ltYm9saWMgZXhwcmVzc2lvbgorIAorQEAgLTUxLDcgKzUxLDcgQEAgY2RlZiBjbGFz cyBTdWJzdGl0dXRpb25NYXAoU2FnZU9iamVjdCk6CisgICAgICAgICByZXR1cm4gJ1N1YnNNYXAn ICAjIEdFeF90b19zdHIoJnguX2dvYmopCisgCisgCistY2RlZiBTdWJzdGl0dXRpb25NYXAgbmV3 X1N1YnN0aXR1dGlvbk1hcF9mcm9tX0dFeE1hcChjb25zdCBHRXhNYXAmIHNtYXApIG5vZXhjZXB0 OgorK2NkZWYgU3Vic3RpdHV0aW9uTWFwIG5ld19TdWJzdGl0dXRpb25NYXBfZnJvbV9HRXhNYXAo Y29uc3QgR0V4TWFwJiBzbWFwKToKKyAgICAgIiIiCisgICAgIFdyYXAgYSBQeW5hYyBvYmplY3Qg aW50byBhIFB5dGhvbiBvYmplY3QKKyAKK0BAIC03NSw3ICs3NSw3IEBAIGNkZWYgU3Vic3RpdHV0 aW9uTWFwIG5ld19TdWJzdGl0dXRpb25NYXBfZnJvbV9HRXhNYXAoY29uc3QgR0V4TWFwJiBzbWFw KSBub2V4Y2VwCisgICAgIHJldHVybiByZXN1bHQKKyAKKyAKKy1jcGRlZiBTdWJzdGl0dXRpb25N YXAgbWFrZV9tYXAoc3Vic19kaWN0KSBub2V4Y2VwdDoKKytjcGRlZiBTdWJzdGl0dXRpb25NYXAg bWFrZV9tYXAoc3Vic19kaWN0KToKKyAgICAgIiIiCisgICAgIENvbnN0cnVjdCBhIG5ldyBzdWJz dGl0dXRpb24gbWFwCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvdGVzdHMvc3RsX3ZlY3Rvci5w eXggYi9zcmMvc2FnZS90ZXN0cy9zdGxfdmVjdG9yLnB5eAoraW5kZXggMmE3YzFiZjVkMDUuLmYz YjI5YjMwZGZlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvdGVzdHMvc3RsX3ZlY3Rvci5weXgKKysr KyBiL3NyYy9zYWdlL3Rlc3RzL3N0bF92ZWN0b3IucHl4CitAQCAtMTE1LDcgKzExNSw3IEBAIGNk ZWYgY2xhc3Mgc3RsX2ludF92ZWN0b3IoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcyArPSAn IGRhdGFbJyArIHN0cihpKSArICddID0gJyArIHN0cihzZWxmLmRhdGEuYXQoaSkpICsgJ1xuJwor ICAgICAgICAgcmV0dXJuIHMuc3RyaXAoKQorIAorLSAgICBjcGRlZiBzdW0oc2VsZikgbm9leGNl cHQ6CisrICAgIGNwZGVmIHN1bShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIHRo ZSBlbGVtZW50cy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZV9zZXR1cC9hdXRvZ2VuL2ludGVy cHJldGVycy9zcGVjcy9jZGYucHkgYi9zcmMvc2FnZV9zZXR1cC9hdXRvZ2VuL2ludGVycHJldGVy cy9zcGVjcy9jZGYucHkKK2luZGV4IGU4NWE5ZmJlODAyLi5jOWVhMjU4ZTIyMSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlX3NldHVwL2F1dG9nZW4vaW50ZXJwcmV0ZXJzL3NwZWNzL2NkZi5weQorKysr IGIvc3JjL3NhZ2Vfc2V0dXAvYXV0b2dlbi9pbnRlcnByZXRlcnMvc3BlY3MvY2RmLnB5CitAQCAt MTY4LDcgKzE2OCw3IEBAIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICAgY2Rl ZiBkb3VibGUgY2ltYWcoZG91YmxlX2NvbXBsZXgpCisgICAgICAgICAgICAgICAgIGNkZWYgZG91 YmxlX2NvbXBsZXggX0NvbXBsZXhfSQorIAorLSAgICAgICAgICAgIGNkZWYgaW5saW5lIGRvdWJs ZV9jb21wbGV4IENERV90b19keih6eik6CisrICAgICAgICAgICAgY2RlZiBpbmxpbmUgZG91Ymxl X2NvbXBsZXggQ0RFX3RvX2R6KHp6KSBub2V4Y2VwdDoKKyAgICAgICAgICAgICAgICAgY2RlZiBD b21wbGV4RG91YmxlRWxlbWVudCB6ID0gPENvbXBsZXhEb3VibGVFbGVtZW50Pih6eiBpZiBpc2lu c3RhbmNlKHp6LCBDb21wbGV4RG91YmxlRWxlbWVudCkgZWxzZSBDREYoenopKQorICAgICAgICAg ICAgICAgICByZXR1cm4gR1NMX1JFQUwoei5fY29tcGxleCkgKyBfQ29tcGxleF9JICogR1NMX0lN QUcoei5fY29tcGxleCkKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8z NzQ5Mi1zaW5ndWxhcl80LjMuMnAxNi5wYXRjaCBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8z NzQ5Mi1zaW5ndWxhcl80LjMuMnAxNi5wYXRjaAppbmRleCA2OTEzZjM5Yjg2NWVhMS4uZTJhNmNi NDBlMGI5ZGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8zNzQ5Mi1zaW5n dWxhcl80LjMuMnAxNi5wYXRjaAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzc0OTIt c2luZ3VsYXJfNC4zLjJwMTYucGF0Y2gKQEAgLTE0NSwyMyArMTQ1LDIzIEBAIGluZGV4IGQ5NDNh MTAxOGEyLi5mMzk4ZDI3YTFmYSAxMDA2NDQKICBmcm9tIHNhZ2UubGlicy5zaW5ndWxhci5mdW5j dGlvbiBjaW1wb3J0IFJlc29sdXRpb24KICAKICBmcm9tIHNhZ2UucmluZ3MucmF0aW9uYWwgY2lt cG9ydCBSYXRpb25hbAotQEAgLTI5LDYgKzI5LDcgQEAgY2RlZiBvYmplY3QgICBzaTJzYV9aWm1v ZChudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQKLSBjZGVmIG9i amVjdCAgIHNpMnNhX05GKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4 Y2VwdAorQEAgLTI5LDYgKzI5LDcgQEAgY2RlZiBvYmplY3QgICBzaTJzYV9aWm1vZChudW1iZXIg Km4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkKKyBjZGVmIG9iamVjdCAgIHNpMnNhX05GKG51 bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKQogIAotIGNkZWYgb2JqZWN0IHNpMnNh X2ludHZlYyhpbnR2ZWMgKnYpIG5vZXhjZXB0Ci0rY2RlZiBvYmplY3Qgc2kyc2FfYmlnaW50dmVj KGJpZ2ludG1hdCAqdikgbm9leGNlcHQKKyBjZGVmIG9iamVjdCBzaTJzYV9pbnR2ZWMoaW50dmVj ICp2KQorK2NkZWYgb2JqZWN0IHNpMnNhX2JpZ2ludHZlYyhiaWdpbnRtYXQgKnYpCiAgCiAgIyBk aXNwYXRjaGVzIHRvIGFsbCB0aGUgYWJvdmUuCi0gY2RlZiBvYmplY3Qgc2kyc2EobnVtYmVyICpu LCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0CisgY2RlZiBvYmplY3Qgc2kyc2Eo bnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpCiBkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbGlicy9zaW5ndWxhci9zaW5ndWxhci5weXggYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3Np bmd1bGFyLnB5eAogaW5kZXggY2YwMTI0ZTBhMzUuLjBlNWM3Nzc0ZTgwIDEwMDY0NAogLS0tIGEv c3JjL3NhZ2UvbGlicy9zaW5ndWxhci9zaW5ndWxhci5weXgKICsrKyBiL3NyYy9zYWdlL2xpYnMv c2luZ3VsYXIvc2luZ3VsYXIucHl4Ci1AQCAtMTY5OSw2ICsxNjk5LDI1IEBAIGNkZWYgb2JqZWN0 IHNpMnNhX2ludHZlYyhpbnR2ZWMgKnYpIG5vZXhjZXB0OgorQEAgLTE2OTksNiArMTY5OSwyNSBA QCBjZGVmIG9iamVjdCBzaTJzYV9pbnR2ZWMoaW50dmVjICp2KToKICAgICAgICAgIGwuYXBwZW5k KHYuZ2V0KHIpKQogICAgICByZXR1cm4gdHVwbGUobCkKICAKLStjZGVmIG9iamVjdCBzaTJzYV9i aWdpbnR2ZWMoYmlnaW50bWF0ICp2KSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzaTJzYV9iaWdp bnR2ZWMoYmlnaW50bWF0ICp2KToKICsgICAgciIiIgogKyAgICBjcmVhdGUgYSBzYWdlIHR1cGxl IGZyb20gYSBzaW5ndWxhciB2ZWN0b3Igb2YgYmlnIGludGVnZXJzCiArCmRpZmYgLS1naXQgYS9z cmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMgYi9zcmNwa2dzL3NhZ2VtYXRoL3Bh dGNoZXMvZ2V0X3BhdGNoZXMKaW5kZXggNzdhZmVhZDNmYzkxM2QuLjFjN2Y3ZmUzMTY5N2Q4IDEw MDc1NQotLS0gYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMKKysrIGIvc3Jj cGtncy9zYWdlbWF0aC9wYXRjaGVzL2dldF9wYXRjaGVzCkBAIC0yMSw0ICsyMSw1IEBAIGdldF9w cigpIHsKIGNkICQoZGlybmFtZSAiJDAiKQogCiAjIG5lZWRzIHJldmlldworZ2V0X3ByIDAzNzY2 NyAiZml4IG5vZXhjZXB0IgogZ2V0X3ByIDM3NDkyICJzaW5ndWxhciA0LjMuMnAxNiIKCkZyb20g ZThhNTY4NjM3OWEwN2U5NDQzOGFiY2U2ODQ3YmY4MTc2YjQ3ZTFjZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0dvbnphbG89MjBUb3JuYXI9QzM9QURhPz0gPHRvcm5h cmlhQGNtYXQuZWR1LnV5PgpEYXRlOiBXZWQsIDI3IE1hciAyMDI0IDEyOjU2OjAxIC0wMzAwClN1 YmplY3Q6IFtQQVRDSCA0LzRdIHNhZ2VtYXRoOiB1cGRhdGUgdG8gMTAuNC5iZXRhMC4KCi0tLQog Li4uL3BhdGNoZXMvMDM3NjY3LWZpeF9ub2V4Y2VwdC5wYXRjaCAgICAgICAgIHwgMjMzICsrKysr KysrKystLS0tLS0tLQogc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1lY20ucGF0Y2ggICAg ICAgIHwgIDExICsKIHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtbG9jay5wYXRjaCAgICAg ICB8ICAxNSArKwogc3JjcGtncy9zYWdlbWF0aC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiA0IGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1l Y20ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4 LWxvY2sucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMDM3NjY3 LWZpeF9ub2V4Y2VwdC5wYXRjaCBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8wMzc2NjctZml4 X25vZXhjZXB0LnBhdGNoCmluZGV4IGZhNTA4NmVkNmJlMmE0Li44MGIzY2YxOTEyY2U2YyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQucGF0 Y2gKKysrIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQucGF0 Y2gKQEAgLTEwNzMsNyArMTA3Myw3IEBAIGluZGV4IDIyN2NlMjU1OWY5Li4zNjc3ZWIyOTU4NyAx MDA2NDQKICBjZGVmIGNsYXNzIEdyYWRlZExpZUJyYWNrZXQoTGllQnJhY2tldCk6CiAgICAgIGNk ZWYgcHVibGljIF9ncmFkZQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9hbGdl YnJhcy9saWVfYWxnZWJyYV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9hbGdl YnJhcy9saWVfYWxnZWJyYV9lbGVtZW50LnB5eAotaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQz ZWY2IDEwMDY0NAoraW5kZXggOWU0NmRhMjk1YzQuLjYzNWIzMGM0OWRhIDEwMDY0NAogLS0tIGEv c3JjL3NhZ2UvYWxnZWJyYXMvbGllX2FsZ2VicmFzL2xpZV9hbGdlYnJhX2VsZW1lbnQucHl4CiAr KysgYi9zcmMvc2FnZS9hbGdlYnJhcy9saWVfYWxnZWJyYXMvbGllX2FsZ2VicmFfZWxlbWVudC5w eXgKIEBAIC0xMjQsNyArMTI0LDcgQEAgY2RlZiBjbGFzcyBMaWVBbGdlYnJhRWxlbWVudChJbmRl eGVkRnJlZU1vZHVsZUVsZW1lbnQpOgpAQCAtMTA4NSw3ICsxMDg1LDcgQEAgaW5kZXggY2E1Mzc1 MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBMaWZ0IGBg c2VsZmBgIHRvIHRoZSB1bml2ZXJzYWwgZW52ZWxvcGluZyBhbGdlYnJhLgogIAotQEAgLTI3NSw3 ICsyNzUsNyBAQCBjZGVmIGNsYXNzIExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcihFbGVtZW50V3Jh cHBlcik6CitAQCAtMjc2LDcgKzI3Niw3IEBAIGNkZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRX cmFwcGVyKEVsZW1lbnRXcmFwcGVyKToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIGJv b2woc2VsZi52YWx1ZSkKICAKQEAgLTEwOTQsNyArMTA5NCw3IEBAIGluZGV4IGNhNTM3NTMxNTNi Li44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQWRkIGBgc2VsZmBg IGFuZCBgYHJoc2BgLgogIAotQEAgLTI4OCw3ICsyODgsNyBAQCBjZGVmIGNsYXNzIExpZUFsZ2Vi cmFFbGVtZW50V3JhcHBlcihFbGVtZW50V3JhcHBlcik6CitAQCAtMjg5LDcgKzI4OSw3IEBAIGNk ZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKEVsZW1lbnRXcmFwcGVyKToKICAgICAg ICAgICIiIgogICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBzZWxmLnZh bHVlICsgcmlnaHQudmFsdWUpCiAgCkBAIC0xMTAzLDcgKzExMDMsNyBAQCBpbmRleCBjYTUzNzUz MTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFN1YnRyYWN0 IGBgc2VsZmBgIGFuZCBgYHJoc2BgLgogIAotQEAgLTM3Niw3ICszNzYsNyBAQCBjZGVmIGNsYXNz IExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcihFbGVtZW50V3JhcHBlcik6CitAQCAtMzc3LDcgKzM3 Nyw3IEBAIGNkZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKEVsZW1lbnRXcmFwcGVy KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIHNlbGYgKiAofngpCiAgCkBAIC0xMTEy LDcgKzExMTIsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAg ICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGEgc2NhbGFyIG9uIGBgc2Vs ZmBgLgogIAotQEAgLTU3Miw3ICs1NzIsNyBAQCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFFbGVt ZW50V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIpOgorQEAgLTU3Myw3ICs1NzMsNyBA QCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFFbGVtZW50V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVu dFdyYXBwZXIpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lm1v ZHVsZSgpKHNlbGYudmFsdWUudG9fdmVjdG9yKHNwYXJzZT1zcGFyc2UpKQogIApAQCAtMTEyMSw3 ICsxMTIxLDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAgICAg ICAgciIiIgogICAgICAgICAgUmV0dXJuIGEgZGljdGlvbmFyeSB3aG9zZSBrZXlzIGFyZSBpbmRp Y2VzIG9mIGJhc2lzIGVsZW1lbnRzCiAgICAgICAgICBpbiB0aGUgc3VwcG9ydCBvZiBgYHNlbGZg YCBhbmQgd2hvc2UgdmFsdWVzIGFyZSB0aGUKLUBAIC02MDUsNyArNjA1LDcgQEAgY2RlZiBjbGFz cyBMaWVTdWJhbGdlYnJhRWxlbWVudFdyYXBwZXIoTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKToK K0BAIC02MDYsNyArNjA2LDcgQEAgY2RlZiBjbGFzcyBMaWVTdWJhbGdlYnJhRWxlbWVudFdyYXBw ZXIoTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKToKICAgICAgICAgICAgICByZXR1cm4gZGljdChz ZWxmLl9tb25vbWlhbF9jb2VmZmljaWVudHMpCiAgICAgICAgICByZXR1cm4gc2VsZi5fbW9ub21p YWxfY29lZmZpY2llbnRzCiAgCkBAIC0xMTMwLDcgKzExMzAsNyBAQCBpbmRleCBjYTUzNzUzMTUz Yi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEFkZCBgYHNlbGZg YCBhbmQgYGByaHNgYC4KICAKLUBAIC02MzEsNyArNjMxLDcgQEAgY2RlZiBjbGFzcyBMaWVTdWJh bGdlYnJhRWxlbWVudFdyYXBwZXIoTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKToKK0BAIC02MzIs NyArNjMyLDcgQEAgY2RlZiBjbGFzcyBMaWVTdWJhbGdlYnJhRWxlbWVudFdyYXBwZXIoTGllQWxn ZWJyYUVsZW1lbnRXcmFwcGVyKToKICAgICAgICAgICAgICByZXQuX21vbm9taWFsX2NvZWZmaWNp ZW50cyA9IG1jCiAgICAgICAgICByZXR1cm4gcmV0CiAgCkBAIC0xMTM5LDcgKzExMzksNyBAQCBp bmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAg ICAgIFN1YnRyYWN0IGBgc2VsZmBgIGFuZCBgYHJoc2BgLgogIAotQEAgLTY1Nyw3ICs2NTcsNyBA QCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFFbGVtZW50V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVu dFdyYXBwZXIpOgorQEAgLTY1OCw3ICs2NTgsNyBAQCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFF bGVtZW50V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIpOgogICAgICAgICAgICAgIHJl dC5fbW9ub21pYWxfY29lZmZpY2llbnRzID0gbWMKICAgICAgICAgIHJldHVybiByZXQKICAKQEAg LTExNDgsNyArMTE0OCw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQK ICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYSBzY2FsYXIgb24g YGBzZWxmYGAuCiAgCi1AQCAtNzU3LDcgKzc1Nyw3IEBAIGNkZWYgY2xhc3MgU3RydWN0dXJlQ29l ZmZpY2llbnRzRWxlbWVudChMaWVBbGdlYnJhTWF0cml4V3JhcHBlcik6CitAQCAtNzU4LDcgKzc1 OCw3IEBAIGNkZWYgY2xhc3MgU3RydWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdlYnJh TWF0cml4V3JhcHBlcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjYWxhcl9tdWx0PSfCtycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cmlwX29uZT1UcnVlKSkKICAKQEAgLTExNTcsNyArMTE1Nyw3IEBAIGluZGV4IGNhNTM3 NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJu IHRoZSBMaWUgYnJhY2tldCBgYFtzZWxmLCByaWdodF1gYC4KICAKLUBAIC03NzcsNyArNzc3LDcg QEAgY2RlZiBjbGFzcyBTdHJ1Y3R1cmVDb2VmZmljaWVudHNFbGVtZW50KExpZUFsZ2VicmFNYXRy aXhXcmFwcGVyKToKK0BAIC03NzgsNyArNzc4LDcgQEAgY2RlZiBjbGFzcyBTdHJ1Y3R1cmVDb2Vm ZmljaWVudHNFbGVtZW50KExpZUFsZ2VicmFNYXRyaXhXcmFwcGVyKToKICAKICAgICAgIyBXZSBu ZWVkIHRoaXMgbWV0aG9kIGJlY2F1c2UgdGhlIExpZUFsZ2VicmEuYnJhY2tldCBtZXRob2QgKGZy b20gdGhlCiAgICAgICMgICBjYXRlZ29yeSkgY2FsbHMgdGhpcywgd2hlcmUgd2UgYXJlIGd1YXJh bnRlZWQgdG8gaGF2ZSB0aGUgc2FtZSBwYXJlbnQuCkBAIC0xMTY2LDcgKzExNjYsNyBAQCBpbmRl eCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAg IFJldHVybiB0aGUgTGllIGJyYWNrZXQgYGBbc2VsZiwgcmlnaHRdYGAuCiAgCi1AQCAtODMyLDcg KzgzMiw3IEBAIGNkZWYgY2xhc3MgU3RydWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdl YnJhTWF0cml4V3JhcHBlcik6CitAQCAtODMzLDcgKzgzMyw3IEBAIGNkZWYgY2xhc3MgU3RydWN0 dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdlYnJhTWF0cml4V3JhcHBlcik6CiAgICAgICAg ICAgICAgaWYgdiAhPSB6ZXJvOgogICAgICAgICAgICAgICAgICB5aWVsZCAoSVtpXSwgdikKICAK QEAgLTExNzUsNyArMTE3NSw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2 NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIGBgc2VsZmBgIGFzIGEgdmVjdG9yLgog IAotQEAgLTg2NSw3ICs4NjUsNyBAQCBjZGVmIGNsYXNzIFN0cnVjdHVyZUNvZWZmaWNpZW50c0Vs ZW1lbnQoTGllQWxnZWJyYU1hdHJpeFdyYXBwZXIpOgorQEAgLTg2Niw3ICs4NjYsNyBAQCBjZGVm IGNsYXNzIFN0cnVjdHVyZUNvZWZmaWNpZW50c0VsZW1lbnQoTGllQWxnZWJyYU1hdHJpeFdyYXBw ZXIpOgogICAgICAgICAgZ2VucyA9IFVFQS5nZW5zKCkKICAgICAgICAgIHJldHVybiBVRUEuc3Vt KGMgKiBnZW5zW2ldIGZvciBpLCBjIGluIHNlbGYudmFsdWUuaXRlbXMoKSkKICAKQEAgLTExODQs NyArMTE4NCw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAg ICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBtb25vbWlhbCBjb2VmZmljaWVudHMgb2YgYGBz ZWxmYGAgYXMgYSBkaWN0aW9uYXJ5LgogIAotQEAgLTEwNzIsNyArMTA3Miw3IEBAIGNkZWYgY2xh c3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMTA3Myw3 ICsxMDczLDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChF bGVtZW50KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHQ6ICJ0 IiArIHVuaWNvZGVfc3VwZXJzY3JpcHQodCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuaWNvZGVfYXJ0KCfii4UnKSwgdW5pY29kZV9hcnQoJ+KKlycpKQogIApAQCAtMTE5 Myw3ICsxMTkzLDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAg ICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBgYGRpY3RgYCwgd2hvc2Uga2V5cyBhcmUg cG93ZXJzIG9mIGB0YCBhbmQgdmFsdWVzIGFyZQogICAgICAgICAgZWxlbWVudHMgb2YgdGhlIGNs YXNzaWNhbCBMaWUgYWxnZWJyYSwgb2YgYGBzZWxmYGAuCi1AQCAtMTA4OCw3ICsxMDg4LDcgQEAg Y2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKK0BA IC0xMDg5LDcgKzEwODksNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFF bGVtZW50KEVsZW1lbnQpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZi5fdF9k aWN0LmNvcHkoKQogIApAQCAtMTIwMiw3ICsxMjAyLDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhj OTQ3OGQzZWY2IDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBjb2Vm ZmljaWVudCBvZiBgY2Agb2YgYGBzZWxmYGAuCiAgCi1AQCAtMTEwMSw3ICsxMTAxLDcgQEAgY2Rl ZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKK0BAIC0x MTAyLDcgKzExMDIsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVt ZW50KEVsZW1lbnQpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZi5fY19jb2Vm ZgogIApAQCAtMTIxMSw3ICsxMjExLDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2 IDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBjb2VmZmljaWVudCBv ZiBgZGAgb2YgYGBzZWxmYGAuCiAgCi1AQCAtMTExNCw3ICsxMTE0LDcgQEAgY2RlZiBjbGFzcyBV bnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKK0BAIC0xMTE1LDcgKzEx MTUsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1l bnQpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZi5fZF9jb2VmZgogIApAQCAt MTIyMCw3ICsxMjIwLDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAog ICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHJpY2ggY29tcGFyaXNvbiBvZiBgYHNl bGZgYCB3aXRoIGBgb3RoZXJgYC4KICAKLUBAIC0xMTc3LDcgKzExNzcsNyBAQCBjZGVmIGNsYXNz IFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTExNzgsNyAr MTE3OCw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxl bWVudCk6CiAgICAgICAgICAiIiIKICAgICAgICAgIHJldHVybiBib29sKHNlbGYuX3RfZGljdCkg b3IgYm9vbChzZWxmLl9jX2NvZWZmKSBvciBib29sKHNlbGYuX2RfY29lZmYpCiAgCkBAIC0xMjI5 LDcgKzEyMjksNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAg ICAgICAiIiIKICAgICAgICAgIEFkZCBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgogIAotQEAgLTEx OTMsNyArMTE5Myw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1l bnQoRWxlbWVudCk6CitAQCAtMTE5NCw3ICsxMTk0LDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRB ZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX2NfY29lZmYgKyBydC5fY19jb2VmZiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX2RfY29lZmYgKyBydC5fZF9jb2VmZikKICAKQEAgLTEyMzgsNyArMTIzOCw3IEBA IGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAg ICAgICAgU3VidHJhY3QgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYC4KICAKLUBAIC0xMjE3LDcgKzEy MTcsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1l bnQpOgorQEAgLTEyMTgsNyArMTIxOCw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGll QWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9jX2NvZWZmIC0gcnQuX2NfY29lZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9kX2NvZWZmIC0gcnQuX2RfY29lZmYpCiAgCkBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBpbmRleCBj YTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIE5l Z2F0ZSBgYHNlbGZgYC4KICAKLUBAIC0xMjMyLDcgKzEyMzIsNyBAQCBjZGVmIGNsYXNzIFVudHdp c3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTEyMzMsNyArMTIzMyw3 IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6 CiAgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIG5lZ2F0ZShzZWxmLl90 X2RpY3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLXNlbGYuX2NfY29lZmYsIC1zZWxm Ll9kX2NvZWZmKQogIApAQCAtMTI1Niw3ICsxMjU2LDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhj OTQ3OGQzZWY2IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gYGBzZWxmYGAg YWN0ZWQgdXBvbiBieSBgYHNjYWxhcmBgLgogIAotQEAgLTEyNjIsNyArMTI2Miw3IEBAIGNkZWYg Y2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMTI2 Myw3ICsxMjYzLDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVu dChFbGVtZW50KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhciAqIHNlbGYuX2Nf Y29lZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXIgKiBzZWxmLl9kX2NvZWZm KQogIApAQCAtMTI2NSw3ICsxMjY1LDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2 IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIG1vbm9taWFsIGNvZWZm aWNpZW50cyBvZiBgYHNlbGZgYC4KICAKLUBAIC0xMjkyLDcgKzEyOTIsNyBAQCBjZGVmIGNsYXNz IFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTEyOTMsNyAr MTI5Myw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxl bWVudCk6CiAgICAgICAgICAgICAgZFsnZCddID0gc2VsZi5fZF9jb2VmZgogICAgICAgICAgcmV0 dXJuIGQKICAKQEAgLTEyNzQsNyArMTI3NCw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0Nzhk M2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBMaWUgYnJhY2tl dCBgYFtzZWxmLCByaWdodF1gYC4KICAKLUBAIC0xMzE1LDcgKzEzMTUsNyBAQCBjZGVmIGNsYXNz IFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTEzMTYsNyAr MTMxNiw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxl bWVudCk6CiAgICAgICAgICAgICAgc2VsZiwgcmlnaHQgPSBjb2VyY2lvbl9tb2RlbC5jYW5vbmlj YWxfY29lcmNpb24oc2VsZiwgcmlnaHQpCiAgICAgICAgICByZXR1cm4gc2VsZi5fYnJhY2tldF8o cmlnaHQpCiAgCkBAIC0xMjgzLDcgKzEyODMsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4 ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgTGllIGJyYWNr ZXQgYGBbc2VsZiwgeV1gYC4KICAKLUBAIC0xMzgzLDcgKzEzODMsNyBAQCBjZGVmIGNsYXNzIFVu dHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTEzODQsNyArMTM4 NCw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVu dCk6CiAgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIGQsIGMsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuYmFzZV9yaW5nKCkuemVybygpKQog IApAQCAtMTI5Miw3ICsxMjkyLDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEw MDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBjYW5vbmljYWwgZGVyaXZh dGlvbiBgZGAgYXBwbGllZCB0byBgYHNlbGZgYC4KICAKLUBAIC0xNTIzLDcgKzE1MjMsNyBAQCBj ZGVmIGNsYXNzIExpZU9iamVjdChTYWdlT2JqZWN0KToKK0BAIC0xNTI0LDcgKzE1MjQsNyBAQCBj ZGVmIGNsYXNzIExpZU9iamVjdChTYWdlT2JqZWN0KToKICAgICAgIiIiCiAgICAgIEFic3RyYWN0 IGJhc2UgY2xhc3MgZm9yIDpjbGFzczpgTGllR2VuZXJhdG9yYCBhbmQgOmNsYXNzOmBMaWVCcmFj a2V0YC4KICAgICAgIiIiCkBAIC0xMzAxLDcgKzEzMDEsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4u OGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgd29y ZCAoImZsYXR0ZW5pbmciKSBvZiBgYHNlbGZgYC4KICAKLUBAIC0xNjU3LDcgKzE2NTcsNyBAQCBj ZGVmIGNsYXNzIExpZUdlbmVyYXRvcihMaWVPYmplY3QpOgorQEAgLTE2NTgsNyArMTY1OCw3IEBA IGNkZWYgY2xhc3MgTGllR2VuZXJhdG9yKExpZU9iamVjdCk6CiAgICAgICAgICAiIiIKICAgICAg ICAgIHJldHVybiBpbV9nZW5zW25hbWVzLmluZGV4KHNlbGYuX25hbWUpXQogIApAQCAtMTMxMCw3 ICsxMzEwLDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAgICAg ICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHdvcmQgKCJmbGF0dGVuaW5nIikgb2YgYGBzZWxm YGAuCiAgCi1AQCAtMTg2Miw3ICsxODYyLDcgQEAgY2RlZiBjbGFzcyBMaWVCcmFja2V0KExpZU9i amVjdCk6CitAQCAtMTg2Myw3ICsxODYzLDcgQEAgY2RlZiBjbGFzcyBMaWVCcmFja2V0KExpZU9i amVjdCk6CiAgICAgICAgICByZXR1cm4gY29kb21haW4uYnJhY2tldChzZWxmLl9sZWZ0Ll9pbV9n ZW5zXyhjb2RvbWFpbiwgaW1fZ2VucywgbmFtZXMpLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5fcmlnaHQuX2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBuYW1lcykp CiAgCkBAIC0xMzE5LDcgKzEzMTksNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYg MTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIExpZnQgYGBzZWxmYGAgdG8gdGhlIHVuaXZl cnNhbCBlbnZlbG9waW5nIGFsZ2VicmEuCiAgCi1AQCAtMTg5MSw3ICsxODkxLDcgQEAgY2RlZiBj bGFzcyBMaWVCcmFja2V0KExpZU9iamVjdCk6CitAQCAtMTg5Miw3ICsxODkyLDcgQEAgY2RlZiBj bGFzcyBMaWVCcmFja2V0KExpZU9iamVjdCk6CiAgCiAgICAgICAgICByZXR1cm4gbCpyIC0gcips CiAgCkBAIC0xOTI0Nyw3ICsxOTI0Nyw3IEBAIGluZGV4IGM4Mzg3M2E3Yzk5Li5mYzVlOTU1ZWI3 OSAxMDA2NDQKICtjcGRlZiByYW5kc3RhdGUgY3VycmVudF9yYW5kc3RhdGUoKQogIGNwZGVmIGlu dCByYW5kb20oKSBub2V4Y2VwdAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvcmFuZHN0YXRl LnB5eCBiL3NyYy9zYWdlL21pc2MvcmFuZHN0YXRlLnB5eAotaW5kZXggYjkxOGIxNTM4ODMuLmZk M2VjMmNhZDYwIDEwMDY0NAoraW5kZXggNzU2NzIyZDBiNmEuLjU4MDllNGQ3Y2I0IDEwMDY0NAog LS0tIGEvc3JjL3NhZ2UvbWlzYy9yYW5kc3RhdGUucHl4CiArKysgYi9zcmMvc2FnZS9taXNjL3Jh bmRzdGF0ZS5weXgKIEBAIC00NDMsNyArNDQzLDcgQEAgY2RlZiByYW5kc3RhdGUgX3Bhcmlfc2Vl ZF9yYW5kc3RhdGUKQEAgLTE5NDMxLDcgKzE5NDMxLDcgQEAgaW5kZXggYmFjNTdmYTAxZDIuLmI4 YzM5YWVlZmE3IDEwMDY0NAogICAgICBDb21wdXRlIGNvZWZmaWNpZW50cyBmb3IgdGhlIGh5cGVy Z2VvbWV0cmljIHRyYWNlIGZvcm11bGEuCiAgCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxh ci9tb2Rmb3JtL2Vpc19zZXJpZXNfY3l0aG9uLnB5eCBiL3NyYy9zYWdlL21vZHVsYXIvbW9kZm9y bS9laXNfc2VyaWVzX2N5dGhvbi5weXgKLWluZGV4IGZiODUwMTYyMmY2Li4xOGQxOGY3ODUyYSAx MDA2NDQKK2luZGV4IGZiODUwMTYyMmY2Li43MDI3MWQzZjgwYiAxMDA2NDQKIC0tLSBhL3NyYy9z YWdlL21vZHVsYXIvbW9kZm9ybS9laXNfc2VyaWVzX2N5dGhvbi5weXgKICsrKyBiL3NyYy9zYWdl L21vZHVsYXIvbW9kZm9ybS9laXNfc2VyaWVzX2N5dGhvbi5weXgKIEBAIC0xNCw3ICsxNCw3IEBA IGZyb20gc2FnZS5saWJzLmZsaW50LmZtcHpfcG9seSBjaW1wb3J0ICoKQEAgLTE5NDQ4LDcgKzE5 NDQ4LDcgQEAgaW5kZXggZmI4NTAxNjIyZjYuLjE4ZDE4Zjc4NTJhIDEwMDY0NAogIAogIAogLWNw ZGVmIGVpc2Vuc3RlaW5fc2VyaWVzX3BvbHkoaW50IGssIGludCBwcmVjID0gMTApICBub2V4Y2Vw dDoKLStjcGRlZiBlaXNlbnN0ZWluX3Nlcmllc19wb2x5KGludCBrLCBpbnQgcHJlYyA9IDEwKSA6 CisrY3BkZWYgZWlzZW5zdGVpbl9zZXJpZXNfcG9seShpbnQgaywgaW50IHByZWM9MTApOgogICAg ICByIiIiCiAgICAgIFJldHVybiB0aGUgcS1leHBhbnNpb24gdXAgdG8gcHJlY2lzaW9uIGBgcHJl Y2BgIG9mIHRoZSB3ZWlnaHQgYGtgCiAgICAgIEVpc2Vuc3RlaW4gc2VyaWVzLCBhcyBhIEZMSU5U IDpjbGFzczpgfnNhZ2UubGlicy5mbGludC5mbXB6X3BvbHkuRm1wel9wb2x5YApAQCAtMTk3NTgs NyArMTk3NTgsNyBAQCBpbmRleCBlNTI0YTQ1ODQ3NC4uMDg0NDIzYTI3MTQgMTAwNjQ0CiArICAg IGNkZWYgX25ld19jKHNlbGYsIG9iamVjdCB2KQogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21v ZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVudC5weXggYi9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9k dWxlX2VsZW1lbnQucHl4Ci1pbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2OGYgMTAwNjQ0Citp bmRleCAyZjQ3YzkyNGQzOC4uYzA3OWQ0Y2E2YWUgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9tb2R1 bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4CiArKysgYi9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVf bW9kdWxlX2VsZW1lbnQucHl4CiBAQCAtMTc2Miw3ICsxNzYyLDcgQEAgY2RlZiBjbGFzcyBGcmVl TW9kdWxlRWxlbWVudChWZWN0b3IpOiAgICMgYWJzdHJhY3QgYmFzZSBjbGFzcwpAQCAtMTk3ODgs NyArMTk3ODgsNyBAQCBpbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAg ICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgZG90IHByb2R1Y3Qgb2YgbGVmdCBhbmQgcmln aHQuCiAgCi1AQCAtNDIyOSw3ICs0MjI5LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVu dF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00MzEwLDcgKzQzMTAsNyBA QCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVs ZW1lbnQpOgogICAgICAgICAgc2FnZTogaXNpbnN0YW5jZShoYXNoKHYpLCBpbnQpCiAgICAgICAg ICBUcnVlCiAgICAgICIiIgpAQCAtMTk3OTcsNyArMTk3OTcsNyBAQCBpbmRleCBmZjQzZDIzOTQ5 My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIENyZWF0ZSBhIG5l dyBkZW5zZSBmcmVlIG1vZHVsZSBlbGVtZW50IHdpdGggbWluaW1hbCBvdmVyaGVhZCBhbmQKICAg ICAgICAgIG5vIHR5cGUgY2hlY2tpbmcuCi1AQCAtNDM3Myw3ICs0MzczLDcgQEAgY2RlZiBjbGFz cyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BA IC00NDU0LDcgKzQ0NTQsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNf ZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgogIAogICAgICBAY3l0aG9uLmJvdW5kc2NoZWNrKEZh bHNlKQogICAgICBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCkBAIC0xOTgwNiw3ICsxOTgwNiw3 IEBAIGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgQWRkIGxlZnQgYW5kIHJpZ2h0LgogIAotQEAgLTQzOTAsNyArNDM5MCw3IEBAIGNk ZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVu dCk6CitAQCAtNDQ3MSw3ICs0NDcxLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9n ZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKICAKICAgICAgQGN5dGhvbi5ib3VuZHNj aGVjayhGYWxzZSkKICAgICAgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQpAQCAtMTk4MTUsNyAr MTk4MTUsNyBAQCBpbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAg ICAiIiIKICAgICAgICAgIFN1YnRyYWN0IHJpZ2h0IGZyb20gbGVmdC4KICAKLUBAIC00NDA4LDcg KzQ0MDgsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJl ZU1vZHVsZUVsZW1lbnQpOgorQEAgLTQ0ODksNyArNDQ4OSw3IEBAIGNkZWYgY2xhc3MgRnJlZU1v ZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CiAgICAgICAgICB2 ID0gWyg8UmluZ0VsZW1lbnQ+IGFbaV0pLl9zdWJfKDxSaW5nRWxlbWVudD4gYltpXSkgZm9yIGkg aW4gcmFuZ2UobGVmdC5fZGVncmVlKV0KICAgICAgICAgIHJldHVybiBsZWZ0Ll9uZXdfYyh2KQog IApAQCAtMTk4MjQsNyArMTk4MjQsNyBAQCBpbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2OGYg MTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC00NDIyLDcg KzQ0MjIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJl ZU1vZHVsZUVsZW1lbnQpOgorQEAgLTQ1MDMsNyArNDUwMyw3IEBAIGNkZWYgY2xhc3MgRnJlZU1v ZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CiAgICAgICAgICAg ICAgdiA9IFtsZWZ0ICogeCBmb3IgeCBpbiBzZWxmLl9lbnRyaWVzXQogICAgICAgICAgcmV0dXJu IHNlbGYuX25ld19jKHYpCiAgCkBAIC0xOTgzMyw3ICsxOTgzMyw3IEBAIGluZGV4IGZmNDNkMjM5 NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6 OgogIAotQEAgLTQ0NDAsNyArNDQ0MCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRf Z2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAtNDUyMSw3ICs0NTIxLDcgQEAg Y2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVt ZW50KToKICAKICAgICAgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKICAgICAgQGN5dGhvbi53 cmFwYXJvdW5kKEZhbHNlKQpAQCAtMTk4NDIsNyArMTk4NDIsNyBAQCBpbmRleCBmZjQzZDIzOTQ5 My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoK ICAKLUBAIC00NDcyLDcgKzQ0NzIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dl bmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorQEAgLTQ1NTMsNyArNDU1Myw3IEBAIGNk ZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVu dCk6CiAgCiAgICAgIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCiAgICAgIEBjeXRob24ud3Jh cGFyb3VuZChGYWxzZSkKQEAgLTE5ODUxLDcgKzE5ODUxLDcgQEAgaW5kZXggZmY0M2QyMzk0OTMu LmJhYjkzZWUzNjhmIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBFWEFNUExFUzo6CiAg Ci1AQCAtNDY4MCw3ICs0NjgwLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5l cmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAtNDc2MSw3ICs0NzYxLDcgQEAgY2Rl ZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVu dCk6CiAgICAgICAgICBzYWdlOiAoYi1hKS5kaWN0KCkKICAgICAgICAgIHsyOiAtMX0KICAgICAg IiIiCkBAIC0xOTg2MCw3ICsxOTg2MCw3IEBAIGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4 ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ3JlYXRlIGEgbmV3IHNwYXJzZSBmcmVl IG1vZHVsZSBlbGVtZW50IHdpdGggbWluaW1hbCBvdmVyaGVhZCBhbmQKICAgICAgICAgIG5vIHR5 cGUgY2hlY2tpbmcuCi1AQCAtNDgzMCw3ICs0ODMwLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxl RWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAtNDkxMSw3ICs0 OTExLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVl TW9kdWxlRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgIGVudHJpZXNfZGljdCA9IGRpY3QoZW50 cmllc19kaWN0KSAgIyBtYWtlIGEgY29weS9jb252ZXJ0IHRvIGRpY3QKICAgICAgICAgIHNlbGYu X2VudHJpZXMgPSBlbnRyaWVzX2RpY3QKICAKQEAgLTE5ODY5LDcgKzE5ODY5LDcgQEAgaW5kZXgg ZmY0M2QyMzk0OTMuLmJhYjkzZWUzNjhmIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBB ZGQgbGVmdCBhbmQgcmlnaHQuCiAgCi1AQCAtNDg1Miw3ICs0ODUyLDcgQEAgY2RlZiBjbGFzcyBG cmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAt NDkzMyw3ICs0OTMzLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3Nw YXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgIHZbaV0gPSBhCiAgICAg ICAgICByZXR1cm4gbGVmdC5fbmV3X2ModikKICAKQEAgLTE5ODc4LDcgKzE5ODc4LDcgQEAgaW5k ZXggZmY0M2QyMzk0OTMuLmJhYjkzZWUzNjhmIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAg ICBFWEFNUExFUzo6CiAgCi1AQCAtNDg3Miw3ICs0ODcyLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9k dWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAtNDk1Myw3 ICs0OTUzLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShG cmVlTW9kdWxlRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgIHZbaV0gPSAtYQogICAgICAgICAg cmV0dXJuIGxlZnQuX25ld19jKHYpCiAgCkBAIC0xOTg4Nyw3ICsxOTg4Nyw3IEBAIGluZGV4IGZm NDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRVhB TVBMRVM6OgogIAotQEAgLTQ4ODgsNyArNDg4OCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVs ZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorQEAgLTQ5NjksNyArNDk2 OSw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJlZU1v ZHVsZUVsZW1lbnQpOgogICAgICAgICAgICAgICAgICAgICAgdltpXSA9IHByb2QKICAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyh2KQogIApAQCAtMTk4OTYsNyArMTk4OTYsNyBAQCBpbmRleCBm ZjQzZDIzOTQ5My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEVY QU1QTEVTOjoKICAKLUBAIC00OTA0LDcgKzQ5MDQsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVF bGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00OTg1LDcgKzQ5 ODUsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVN b2R1bGVFbGVtZW50KToKICAgICAgICAgICAgICAgICAgICAgIHZbaV0gPSBwcm9kCiAgICAgICAg ICByZXR1cm4gc2VsZi5fbmV3X2ModikKICAKQEAgLTE5OTA1LDcgKzE5OTA1LDcgQEAgaW5kZXgg ZmY0M2QyMzk0OTMuLmJhYjkzZWUzNjhmIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBS ZXR1cm4gdGhlIGRvdCBwcm9kdWN0IG9mIGxlZnQgYW5kIHJpZ2h0LgogIAotQEAgLTQ5NTYsNyAr NDk1Niw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJl ZU1vZHVsZUVsZW1lbnQpOgorQEAgLTUwMzcsNyArNTAzNyw3IEBAIGNkZWYgY2xhc3MgRnJlZU1v ZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgogICAgICAgICAg ICAgICAgICB6ICs9IGEgKiBlW2ldCiAgICAgICAgICByZXR1cm4gegogIApAQCAtMTk5MTQsNyAr MTk5MTQsNyBAQCBpbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAg ICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC00OTc0LDcgKzQ5NzQsNyBAQCBjZGVm IGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50 KToKK0BAIC01MDU1LDcgKzUwNTUsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dl bmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKICAgICAgICAgICAgICAgICAgICAgIHZb aV0gPSBwcm9kCiAgICAgICAgICByZXR1cm4gbGVmdC5fbmV3X2ModikKICAKQEAgLTE5OTIzLDcg KzE5OTIzLDcgQEAgaW5kZXggZmY0M2QyMzk0OTMuLmJhYjkzZWUzNjhmIDEwMDY0NAogICAgICAg ICAgIiIiCiAgICAgICAgICBDb21wYXJlIHR3byBzcGFyc2UgZnJlZSBtb2R1bGUgZWxlbWVudHMu CiAgCi1AQCAtNTEwNSw3ICs1MTA1LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9n ZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAtNTE4Niw3ICs1MTg2LDcgQEAg Y2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxl bWVudCk6CiAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigidmVjdG9yIGluZGV4IG91dCBv ZiByYW5nZSIpCiAgICAgICAgICByZXR1cm4gc2VsZi5nZXRfdW5zYWZlKG4pCiAgCkBAIC0yMDkw Miw3ICsyMDkwMiw3IEBAIGluZGV4IDk2ZGQ5YzMzMzkwLi5lZDRkNjNjY2M2MyAxMDA2NDQKIC0g ICAgY3BkZWYgY3Z4cHlfcHJvYmxlbShzZWxmKSBub2V4Y2VwdAogKyAgICBjcGRlZiBjdnhweV9w cm9ibGVtKHNlbGYpCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2 eHB5X2JhY2tlbmQucHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eHB5X2JhY2tl bmQucHl4Ci1pbmRleCBjMDdkMzNlNWFlNy4uY2UzYjdhZjg3ODggMTAwNjQ0CitpbmRleCBjMDdk MzNlNWFlNy4uMTQ1Zjg0YjM2M2EgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFj a2VuZHMvY3Z4cHlfYmFja2VuZC5weXgKICsrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5k cy9jdnhweV9iYWNrZW5kLnB5eAogQEAgLTE0Miw3ICsxNDIsNyBAQCBjZGVmIGNsYXNzIENWWFBZ QmFja2VuZDoKQEAgLTIxMDU0LDcgKzIxMDU0LDcgQEAgaW5kZXggYzA3ZDMzZTVhZTcuLmNlM2I3 YWY4Nzg4IDEwMDY0NAogICAgICAgICAgcmV0dXJuIHNlbGYudmFyaWFibGVzW2luZGV4XS5uYW1l KCkKICAKIC0gICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2 YWx1ZSA9IEZhbHNlKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQo c2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKysgICAgY3BkZWYgdmFyaWFibGVfdXBw ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT1GYWxzZSk6CiAgICAgICAgICAiIiIKICAg ICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHVwcGVyIGJvdW5kIG9uIGEgdmFyaWFibGUKICAK QEAgLTIxMDYzLDEyICsyMTA2MywxMiBAQCBpbmRleCBjMDdkMzNlNWFlNy4uY2UzYjdhZjg3ODgg MTAwNjQ0CiAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29sX3VwcGVyX2JvdW5kW2luZGV4XQog IAogLSAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpIG5vZXhjZXB0OgotKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxm LCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9i b3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgogICAgICAg ICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2YXJpYWJsZQogIAogZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHhk IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5weGQKLWluZGV4 IDYwOTgzYWZjNmYyLi42NzMxMDlhYWU0MCAxMDA2NDQKK2luZGV4IDYwOTgzYWZjNmYyLi5mMmQz MTVkMjQ5YyAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmlj X2JhY2tlbmQucHhkCiArKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19i YWNrZW5kLnB4ZAogQEAgLTEyLDQ0ICsxMiw0NCBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJlLnNhZ2Vf b2JqZWN0IGNpbXBvcnQgU2FnZU9iamVjdApAQCAtMjExMzIsMTMgKzIxMTMyLDEzIEBAIGluZGV4 IDYwOTgzYWZjNmYyLi42NzMxMDlhYWU0MCAxMDA2NDQKIC0gICAgY3BkZWYgYmFzZV9yaW5nKHNl bGYpIG5vZXhjZXB0CiAtICAgIGNwZGVmIF9fY29weV9fKHNlbGYpIG5vZXhjZXB0CiAtICAgIGNw ZGVmIGNvcHkoc2VsZikgbm9leGNlcHQKLSsgICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5h bWUgPSAqKQorKyAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT0qKQogKyAgICBjcGRl ZiByb3dfYm91bmRzKHNlbGYsIGludCBpbmRleCkKICsgICAgY3BkZWYgY29sX2JvdW5kcyhzZWxm LCBpbnQgaW5kZXgpCiArICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkKICsgICAg Y3BkZWYgY29sX25hbWUoc2VsZiwgaW50IGluZGV4KQotKyAgICBjcGRlZiB2YXJpYWJsZV91cHBl cl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gKikKLSsgICAgY3BkZWYgdmFyaWFibGVf bG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9ICopCisrICAgIGNwZGVmIHZhcmlh YmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWU9KikKKysgICAgY3BkZWYgdmFy aWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT0qKQogKyAgICBjcGRlZiBz b2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlPSopCiArICAgIGNwZGVmIHplcm8oc2Vs ZikKICsgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpCkBAIC0yMTE1Miw5ICsyMTE1Miw5IEBAIGlu ZGV4IDYwOTgzYWZjNmYyLi42NzMxMDlhYWU0MCAxMDA2NDQKICAgICAgY2RlZiBvYmplY3Qgb2Jq X2NvbnN0YW50X3Rlcm0KICAKIC1jcGRlZiBHZW5lcmljQmFja2VuZCBnZXRfc29sdmVyKGNvbnN0 cmFpbnRfZ2VuZXJhdGlvbiA9ID8sIHNvbHZlciA9ID8sIGJhc2VfcmluZyA9ID8pIG5vZXhjZXB0 Ci0rY3BkZWYgR2VuZXJpY0JhY2tlbmQgZ2V0X3NvbHZlcihjb25zdHJhaW50X2dlbmVyYXRpb24g PSA/LCBzb2x2ZXIgPSA/LCBiYXNlX3JpbmcgPSA/KQorK2NwZGVmIEdlbmVyaWNCYWNrZW5kIGdl dF9zb2x2ZXIoY29uc3RyYWludF9nZW5lcmF0aW9uPT8sIHNvbHZlcj0/LCBiYXNlX3Jpbmc9PykK IGRpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19iYWNrZW5k LnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHl4Ci1p bmRleCBiNWRiNGI0YWE5ZC4uY2E0Y2Y5ZDhjOTQgMTAwNjQ0CitpbmRleCBiNWRiNGI0YWE5ZC4u MDA5MDllYjI1YTggMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2Vu ZXJpY19iYWNrZW5kLnB5eAogKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVy aWNfYmFja2VuZC5weXgKIEBAIC0zMywxMSArMzMsMTEgQEAgZnJvbSBjb3B5IGltcG9ydCBjb3B5 CkBAIC0yMTIxMiw3ICsyMTIxMiw3IEBAIGluZGV4IGI1ZGI0YjRhYTlkLi5jYTRjZjlkOGM5NCAx MDA2NDQKICAgICAgICAgICAgICBzZWxmLm9ial9jb25zdGFudF90ZXJtID0gZAogIAogLSAgICBj cGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwLjApIG5vZXhjZXB0Ogot KyAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwLjApOgorKyAg ICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQ9MC4wKToKICAgICAgICAg ICIiIgogICAgICAgICAgU2V0IHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCiAgCkBAIC0yMTQxMCw3 ICsyMTQxMCw3IEBAIGluZGV4IGI1ZGI0YjRhYTlkLi5jYTRjZjlkOGM5NCAxMDA2NDQKICAgICAg ICAgIHAuX3Rlc3RfY29weV9kb2VzX25vdF9zaGFyZV9kYXRhKCoqb3B0aW9ucykKICAKIC0gICAg Y3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNl KSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGlu ZGV4LCB2YWx1ZSA9IEZhbHNlKToKKysgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2Vs ZiwgaW50IGluZGV4LCB2YWx1ZT1GYWxzZSk6CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVy biBvciBkZWZpbmUgdGhlIHVwcGVyIGJvdW5kIG9uIGEgdmFyaWFibGUKICAKQEAgLTIxNDE5LDcg KzIxNDE5LDcgQEAgaW5kZXggYjVkYjRiNGFhOWQuLmNhNGNmOWQ4Yzk0IDEwMDY0NAogICAgICAg ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCiAgCiAtICAgIGNwZGVmIHZhcmlhYmxlX2xv d2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSkgbm9leGNlcHQ6Ci0rICAg IGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxz ZSk6CisrICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFs dWU9RmFsc2UpOgogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBs b3dlciBib3VuZCBvbiBhIHZhcmlhYmxlCiAgCkBAIC0yMTQyOCw3ICsyMTQyOCw3IEBAIGluZGV4 IGI1ZGI0YjRhYTlkLi5jYTRjZjlkOGM5NCAxMDA2NDQKICAgICAgICAgIHJhaXNlIE5vdEltcGxl bWVudGVkRXJyb3IoKQogIAogLSAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUs IHZhbHVlID0gTm9uZSkgbm9leGNlcHQ6Ci0rICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2Vs ZiwgbmFtZSwgdmFsdWUgPSBOb25lKToKKysgICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxm LCBuYW1lLCB2YWx1ZT1Ob25lKToKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIG9yIGRl ZmluZSBhIHNvbHZlciBwYXJhbWV0ZXIKICAKQEAgLTIxNDkyLDcgKzIxNDkyLDcgQEAgaW5kZXgg NDQ2YjljZThjMjUuLjAyM2Y5NTY1M2Q2IDEwMDY0NAogLWNwZGVmIEdlbmVyaWNTRFBCYWNrZW5k IGdldF9zb2x2ZXIoc29sdmVyPT8sIGJhc2VfcmluZz0/KSBub2V4Y2VwdAogK2NwZGVmIEdlbmVy aWNTRFBCYWNrZW5kIGdldF9zb2x2ZXIoc29sdmVyPT8sIGJhc2VfcmluZz0/KQogZGlmZiAtLWdp dCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX3NkcF9iYWNrZW5kLnB5eCBi L3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX3NkcF9iYWNrZW5kLnB5eAotaW5k ZXggNDViZmRlNWY4OWIuLjdlMGVkNGFmNGNlIDEwMDY0NAoraW5kZXggNDViZmRlNWY4OWIuLjY2 ODc2YzY4MTE5IDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVy aWNfc2RwX2JhY2tlbmQucHl4CiArKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2Vu ZXJpY19zZHBfYmFja2VuZC5weXgKIEBAIC0yOSw3ICsyOSw3IEBAIEFVVEhPUlM6CkBAIC0yMTYz NSw3ICsyMTYzNSw3IEBAIGluZGV4IDQ1YmZkZTVmODliLi43ZTBlZDRhZjRjZSAxMDA2NDQKICAg ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogIAogLSAgICBjcGRlZiBzb2x2ZXJf cGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlID0gTm9uZSkgbm9leGNlcHQ6Ci0rICAgIGNwZGVm IHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUgPSBOb25lKToKKysgICAgY3BkZWYg c29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZT1Ob25lKToKICAgICAgICAgICIiIgog ICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSBhIHNvbHZlciBwYXJhbWV0ZXIKICAKQEAgLTIxNjQ5 LDcgKzIxNjQ5LDcgQEAgaW5kZXggNDViZmRlNWY4OWIuLjdlMGVkNGFmNGNlIDEwMDY0NAogICAg ICBSZXR1cm4gYSBzb2x2ZXIgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwcmVmZXJlbmNlcy4KICAK IGRpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB4 ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHhkCi1pbmRleCA0 ZmYxZDRhOGQ3Ni4uZGYyYzAyN2U0MDggMTAwNjQ0CitpbmRleCA0ZmYxZDRhOGQ3Ni4uNWZmNGE5 MGEyMTEgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNr ZW5kLnB4ZAogKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfYmFja2VuZC5w eGQKIEBAIC0yNiwxNSArMjYsMTUgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CkBAIC0yMTY1Nyw4ICsyMTY1Nyw5IEBAIGluZGV4IDRmZjFkNGE4ZDc2Li5kZjJjMDI3 ZTQwOCAxMDA2NDQKICAgICAgY2RlZiBpbnQgc2ltcGxleF9vcl9pbnRvcHQKICAgICAgY2RlZiBz ZWFyY2hfdHJlZV9kYXRhX3Qgc2VhcmNoX3RyZWVfZGF0YQogLSAgICBjcGRlZiBfX2NvcHlfXyhz ZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpbnQgcHJpbnRfcmFuZ2VzKHNlbGYsIGZpbGVuYW1l ID0gKikgZXhjZXB0IC0xCiArICAgIGNwZGVmIF9fY29weV9fKHNlbGYpCi0gICAgIGNwZGVmIGlu dCBwcmludF9yYW5nZXMoc2VsZiwgZmlsZW5hbWUgPSAqKSBleGNlcHQgLTEKKysgICAgY3BkZWYg aW50IHByaW50X3JhbmdlcyhzZWxmLCBmaWxlbmFtZT0qKSBleGNlcHQgLTEKICAgICAgY3BkZWYg ZG91YmxlIGdldF9yb3dfZHVhbChzZWxmLCBpbnQgdmFyaWFibGUpIG5vZXhjZXB0CiAgICAgIGNw ZGVmIGRvdWJsZSBnZXRfY29sX2R1YWwoc2VsZiwgaW50IHZhcmlhYmxlKSBleGNlcHQ/IC0xCiAg ICAgIGNwZGVmIGludCBnZXRfcm93X3N0YXQoc2VsZiwgaW50IHZhcmlhYmxlKSBleGNlcHQ/IC0x CkBAIC0yMTY3NSw3ICsyMTY3Niw3IEBAIGluZGV4IDRmZjFkNGE4ZDc2Li5kZjJjMDI3ZTQwOCAx MDA2NDQKICsgICAgY3BkZWYgc2V0X2NvbF9zdGF0KHNlbGYsIGludCBqLCBpbnQgc3RhdCkKICAg ICAgY3BkZWYgaW50IHdhcm1fdXAoc2VsZikgbm9leGNlcHQKIGRpZmYgLS1naXQgYS9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB5eCBiL3NyYy9zYWdlL251bWVyaWNh bC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHl4Ci1pbmRleCBiMjRlZmI1MjFlYS4uYjY5NjY4MTU5 NjkgMTAwNjQ0CitpbmRleCBiMjRlZmI1MjFlYS4uMTBhYjQ1MmUxZmEgMTAwNjQ0CiAtLS0gYS9z cmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB5eAogKysrIGIvc3JjL3Nh Z2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfYmFja2VuZC5weXgKIEBAIC0yMjgsNyArMjI4LDcg QEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CkBAIC0yMTcxOSw3ICsy MTcyMCw3IEBAIGluZGV4IGIyNGVmYjUyMWVhLi5iNjk2NjgxNTk2OSAxMDA2NDQKICAgICAgICAg ICAgICBnbHBfc2V0X3Byb2JfbmFtZShzZWxmLmxwLCBuYW1lKQogIAogLSAgICBjcGRlZiBzZXRf b2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwLjApIG5vZXhjZXB0OgotKyAgICBjcGRl ZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwLjApOgorKyAgICBjcGRlZiBz ZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQ9MC4wKToKICAgICAgICAgICIiIgogICAg ICAgICAgU2V0IHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCiAgCkBAIC0yMTg3Miw3ICsyMTg3Myw3 IEBAIGluZGV4IGIyNGVmYjUyMWVhLi5iNjk2NjgxNTk2OSAxMDA2NDQKICAgICAgICAgIHJldHVy biBnbHBfZ2V0X29ial9kaXIoc2VsZi5scCkgPT0gR0xQX01BWAogIAogLSAgICBjcGRlZiB2YXJp YWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0 OgotKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5k ZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIG9yIGRlZmlu ZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQogIApAQCAtMjE4ODEsNyArMjE4ODIsNyBA QCBpbmRleCBiMjRlZmI1MjFlYS4uYjY5NjY4MTU5NjkgMTAwNjQ0CiAgICAgICAgICAgICAgICAg IHNpZ19vZmYoKQogIAogLSAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQg aW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0OgotKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dl cl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJp YWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAg ICIiIgogICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2YXJp YWJsZQogIApAQCAtMjE5MTcsNyArMjE5MTgsNyBAQCBpbmRleCBiMjRlZmI1MjFlYS4uYjY5NjY4 MTU5NjkgMTAwNjQ0CiAgCiAgCiAtICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFt ZSwgdmFsdWUgPSBOb25lKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihz ZWxmLCBuYW1lLCB2YWx1ZSA9IE5vbmUpOgorKyAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNl bGYsIG5hbWUsIHZhbHVlPU5vbmUpOgogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gb3Ig ZGVmaW5lIGEgc29sdmVyIHBhcmFtZXRlcgogIApAQCAtMjE5ODEsNyArMjE5ODIsNyBAQCBpbmRl eCAzNTA4OTQyZjVlNC4uMzAzMTc0OGViNDIgMTAwNjQ0CiAgICAgICAgICBTZXQgdGhlIHR5cGUg b2YgYSB2YXJpYWJsZS4KICAKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2Vu ZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9n bHBrX2dyYXBoX2JhY2tlbmQucHhkCi1pbmRleCA5MjZjNjAxMzRkYy4uMjhkMmU2NWQ3ZWYgMTAw NjQ0CitpbmRleCA5MjZjNjAxMzRkYy4uMmU0YjI5YTI1YTkgMTAwNjQ0CiAtLS0gYS9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB4ZAogKysrIGIvc3JjL3Nh Z2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZ3JhcGhfYmFja2VuZC5weGQKIEBAIC0yNywyMiAr MjcsMjIgQEAgY3R5cGVkZWYgc3RydWN0IGNfYV9kYXRhOgpAQCAtMjIwMDQsNyArMjIwMDUsNyBA QCBpbmRleCA5MjZjNjAxMzRkYy4uMjhkMmU2NWQ3ZWYgMTAwNjQ0CiAtICAgIGNwZGVmIGxpc3Qg ZWRnZXMoc2VsZikgbm9leGNlcHQKIC0gICAgY3BkZWYgZGVsZXRlX3ZlcnRleChzZWxmLCB2ZXJ0 KSBub2V4Y2VwdAogLSAgICBjcGRlZiBkZWxldGVfdmVydGljZXMoc2VsZiwgbGlzdCB2ZXJ0cykg bm9leGNlcHQKLSsgICAgY3BkZWYgYWRkX3ZlcnRleChzZWxmLCBuYW1lID0gPykKKysgICAgY3Bk ZWYgYWRkX3ZlcnRleChzZWxmLCBuYW1lPT8pCiArICAgIGNwZGVmIGxpc3QgYWRkX3ZlcnRpY2Vz KHNlbGYsIHZlcnRpY2VzKQogKyAgICBjcGRlZiBfX2FkZF92ZXJ0aWNlc19zYWdlKHNlbGYsIGcp CiArICAgIGNwZGVmIGRpY3QgZ2V0X3ZlcnRleChzZWxmLCB2ZXJ0ZXgpCkBAIC0yMjAxMiwxMCAr MjIwMTMsMTAgQEAgaW5kZXggOTI2YzYwMTM0ZGMuLjI4ZDJlNjVkN2VmIDEwMDY0NAogKyAgICBj cGRlZiBzZXRfdmVydGV4X2RlbWFuZChzZWxmLCB2ZXJ0ZXgsIHBhcmFtKQogKyAgICBjcGRlZiBz ZXRfdmVydGljZXNfZGVtYW5kKHNlbGYsIGxpc3QgcGFpcnMpCiArICAgIGNwZGVmIGxpc3QgdmVy dGljZXMoc2VsZikKLSsgICAgY3BkZWYgYWRkX2VkZ2Uoc2VsZiwgdSwgdiwgZGljdCBwYXJhbXMg PSA/KQorKyAgICBjcGRlZiBhZGRfZWRnZShzZWxmLCB1LCB2LCBkaWN0IHBhcmFtcz0/KQogKyAg ICBjcGRlZiBfX2FkZF9lZGdlc19zYWdlKHNlbGYsIGcpCiArICAgIGNwZGVmIGxpc3QgYWRkX2Vk Z2VzKHNlbGYsIGVkZ2VzKQotKyAgICBjcGRlZiBkZWxldGVfZWRnZShzZWxmLCB1LCB2LCBkaWN0 IHBhcmFtcyA9ID8pCisrICAgIGNwZGVmIGRlbGV0ZV9lZGdlKHNlbGYsIHUsIHYsIGRpY3QgcGFy YW1zPT8pCiArICAgIGNwZGVmIHR1cGxlIGdldF9lZGdlKHNlbGYsIHUsIHYpCiArICAgIGNwZGVm IGxpc3QgZWRnZXMoc2VsZikKICsgICAgY3BkZWYgZGVsZXRlX3ZlcnRleChzZWxmLCB2ZXJ0KQpA QCAtMjIxODUsNyArMjIxODYsNyBAQCBpbmRleCBmMjkxODc2MzJmYy4uMDdlNjNhN2JiNDQgMTAw NjQ0CiAtICAgIGNwZGVmIGludGVyYWN0aXZlX2xwX3Byb2JsZW0oc2VsZikgbm9leGNlcHQKICsg ICAgY3BkZWYgaW50ZXJhY3RpdmVfbHBfcHJvYmxlbShzZWxmKQogZGlmZiAtLWdpdCBhL3NyYy9z YWdlL251bWVyaWNhbC9iYWNrZW5kcy9pbnRlcmFjdGl2ZWxwX2JhY2tlbmQucHl4IGIvc3JjL3Nh Z2UvbnVtZXJpY2FsL2JhY2tlbmRzL2ludGVyYWN0aXZlbHBfYmFja2VuZC5weXgKLWluZGV4IDMw NjJhMjllYjFmLi4zNDg0ZDczOTY2NyAxMDA2NDQKK2luZGV4IDMwNjJhMjllYjFmLi42NGVmNTYx Mzc1YSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9pbnRlcmFjdGl2 ZWxwX2JhY2tlbmQucHl4CiArKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvaW50ZXJh Y3RpdmVscF9iYWNrZW5kLnB5eAogQEAgLTgyLDcgKzgyLDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFj dGl2ZUxQQmFja2VuZDoKQEAgLTIyMjQ3LDcgKzIyMjQ4LDcgQEAgaW5kZXggMzA2MmEyOWViMWYu LjM0ODRkNzM5NjY3IDEwMDY0NAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9ibGVtX3R5cGUsIHJpbmcsIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtPWQpCiAg CiAtICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZCA9IDApIG5vZXhj ZXB0OgotKyAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwKToK KysgICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkPTApOgogICAgICAg ICAgIiIiCiAgICAgICAgICBTZXQgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KICAKQEAgLTIyMzY0 LDcgKzIyMzY1LDcgQEAgaW5kZXggMzA2MmEyOWViMWYuLjM0ODRkNzM5NjY3IDEwMDY0NAogICAg ICAgICAgcmV0dXJuIHN0cihzZWxmLmxwLmRlY2lzaW9uX3ZhcmlhYmxlcygpW2luZGV4XSkKICAK IC0gICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9 IEZhbHNlKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwg aW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKysgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91 bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT1GYWxzZSk6CiAgICAgICAgICAiIiIKICAgICAgICAg IFJldHVybiBvciBkZWZpbmUgdGhlIHVwcGVyIGJvdW5kIG9uIGEgdmFyaWFibGUKICAKQEAgLTIy MzczLDcgKzIyMzc0LDcgQEAgaW5kZXggMzA2MmEyOWViMWYuLjM0ODRkNzM5NjY3IDEwMDY0NAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbV90 eXBlLCByaW5nLCBvYmplY3RpdmVfY29uc3RhbnRfdGVybT1kKQogIAogLSAgICBjcGRlZiB2YXJp YWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0 OgotKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5k ZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIG9yIGRlZmlu ZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2YXJpYWJsZQogIApAQCAtMjI0OTAsNyArMjI0OTEsNyBA QCBpbmRleCA2MzFhN2JkNmRkZS4uZjRlN2VjYjEzZjAgMTAwNjQ0CiAgICAgICAgICBSZXR1cm4g dGhlIGBgaW5kZXhgYCB0aCBjb2wgbmFtZQogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVy aWNhbC9iYWNrZW5kcy9wcGxfYmFja2VuZC5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2Vu ZHMvcHBsX2JhY2tlbmQucHl4Ci1pbmRleCA4YmYxOGQ3MDA0Yi4uNzI1Y2ViZDRjM2EgMTAwNjQ0 CitpbmRleCA4YmYxOGQ3MDA0Yi4uOTg3ODQyZjcyOGMgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9u dW1lcmljYWwvYmFja2VuZHMvcHBsX2JhY2tlbmQucHl4CiArKysgYi9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvcHBsX2JhY2tlbmQucHl4CiBAQCAtOTEsMTQgKzkxLDE0IEBAIGNkZWYgY2xh c3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CkBAIC0yMjY2MCw3ICsyMjY2MSw3IEBAIGlu ZGV4IDhiZjE4ZDcwMDRiLi43MjVjZWJkNGMzYSAxMDA2NDQKICAgICAgICAgIHJldHVybiAieF8i ICsgcmVwcihpbmRleCkKICAKIC0gICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwg aW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgdmFyaWFibGVf dXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKysgICAgY3BkZWYg dmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT1GYWxzZSk6CiAgICAg ICAgICAiIiIKICAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHVwcGVyIGJvdW5kIG9uIGEg dmFyaWFibGUKICAKQEAgLTIyNjY5LDcgKzIyNjcwLDcgQEAgaW5kZXggOGJmMThkNzAwNGIuLjcy NWNlYmQ0YzNhIDEwMDY0NAogICAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbF91cHBlcl9ib3Vu ZFtpbmRleF0KICAKIC0gICAgY3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGlu ZGV4LCB2YWx1ZSA9IEZhbHNlKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgdmFyaWFibGVfbG93ZXJf Ym91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKysgICAgY3BkZWYgdmFyaWFi bGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT1GYWxzZSk6CiAgICAgICAgICAi IiIKICAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIGxvd2VyIGJvdW5kIG9uIGEgdmFyaWFi bGUKICAKQEAgLTI0NTc5LDcgKzI0NTgwLDcgQEAgaW5kZXggZWMwOWY5Y2M3NjkuLmMyMTRlNDc0 NWE5IDEwMDY0NAogKyAgICBjcGRlZiBGaW5pdGVQb2x5RXh0RWxlbWVudCBmZXRjaF9pbnQoc2Vs ZiwgbnVtYmVyKQogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9l bGVtZW50X2Jhc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfYmFz ZS5weXgKLWluZGV4IDFkMGRkMmI1NjNhLi5mNmUwODMyMGU1ZSAxMDA3NTUKK2luZGV4IDQyY2Ey NWI5MzBlLi5mNmE0NTBlZGZhMiAxMDA3NTUKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9y aW5ncy9lbGVtZW50X2Jhc2UucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3Mv ZWxlbWVudF9iYXNlLnB5eAogQEAgLTExMzYsNyArMTEzNiw3IEBAIGNkZWYgY2xhc3MgRmluaXRl UG9seUV4dEVsZW1lbnQoRmluaXRlUmluZ0VsZW1lbnQpOgpAQCAtMjQ5MjEsNyArMjQ5MjIsNyBA QCBpbmRleCBiNzg2YWRhMDBkZS4uOTg5YjBlMjBiOWUgMTAwNjQ0CiAgICAgICAgICBEaXZpc2lv bi4KICAKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2Zp ZWxkX2Jhc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9maWVsZF9i YXNlLnB5eAotaW5kZXggMDBiMzBiYjVhNDQuLjI0M2JmODVlMWNmIDEwMDY0NAoraW5kZXggNzQx OWMxNThkOGMuLjQ4NTIzOGQzYjQxIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRl X3JpbmdzL2Zpbml0ZV9maWVsZF9iYXNlLnB5eAogKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRl X3JpbmdzL2Zpbml0ZV9maWVsZF9iYXNlLnB5eAogQEAgLTEzMTgsNyArMTMxOCw3IEBAIGNkZWYg Y2xhc3MgRmluaXRlRmllbGQoRmllbGQpOgpAQCAtMjY0NDksNyArMjY0NTAsNyBAQCBpbmRleCBk MGExOTAyYzQ0OS4uODZhMjkzNDAxMWMgMTAwNjQ0CiAgICAgIFRoaXMgaXMgdGhlIGZhc3Rlc3Qg d2F5IHRvIGNyZWF0ZSBhIChsaWtlbHkpIHNtYWxsIEludGVnZXIuCiAgICAgICIiIgogZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL2ludGVnZXJfcmluZy5weXggYi9zcmMvc2FnZS9yaW5ncy9p bnRlZ2VyX3JpbmcucHl4Ci1pbmRleCBiYmJkOTg5YTY1ZC4uZjliZWY0MTRjNjAgMTAwNjQ0Citp bmRleCA5MTk5ZGViYmZiNi4uZDQ5MWI3ODA2OGUgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5n cy9pbnRlZ2VyX3JpbmcucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9pbnRlZ2VyX3JpbmcucHl4 CiBAQCAtNTI4LDcgKzUyOCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlclJpbmdfY2xhc3MoUHJpbmNp cGFsSWRlYWxEb21haW4pOgpAQCAtMzEyMzEsMTAgKzMxMjMyLDEwIEBAIGluZGV4IGZjYmE4MDg1 MWU4Li42ZmFlM2I5NjMyMyAxMDA2NDQKICAgICAgICAgIGlmIG9yZGVyID09IHBiYmxvY2tfZGxl eDoKICAgICAgICAgICAgICBvcmRlcl9zdHIgPSBwYl9ibG9ja19vcmRlcihuLCAiZGVnbGV4Iiwg YmxvY2tzKQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4 ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZAotaW5kZXggMDZiNDhjNzM3 ZjMuLmEyMWQ4NmVlYzFmIDEwMDY0NAoraW5kZXggNWUzNjE4YmQ5MGUuLjkwYjc5OTQ3NTkyIDEw MDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkCiArKysgYi9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weGQKLUBAIC0zMiwxNCArMzIsMTQgQEAg Y2RlZiBjbGFzcyBFeHRlcmlvckFsZ2VicmFfcGx1cmFsKE5DUG9seW5vbWlhbFJpbmdfcGx1cmFs KToKK0BAIC0zMiwxNiArMzIsMTYgQEAgY2RlZiBjbGFzcyBFeHRlcmlvckFsZ2VicmFfcGx1cmFs KE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKToKICAKICBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9w bHVyYWwoUmluZ0VsZW1lbnQpOgogICAgICBjZGVmIHBvbHkgKl9wb2x5CkBAIC0zMTI0Niw3ICsz MTI0NywxMSBAQCBpbmRleCAwNmI0OGM3MzdmMy4uYTIxZDg2ZWVjMWYgMTAwNjQ0CiArICAgIGNw ZGVmIF9yZXByX3Nob3J0XyhzZWxmKQogICAgICBjZGVmIGxvbmcgX2hhc2hfYyhzZWxmKSBub2V4 Y2VwdAogLSAgICBjcGRlZiBpc19jb25zdGFudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBk aWN0IGRpY3Qoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmlj aWVudHMoc2VsZiwgYmludCBjb3B5PSopIG5vZXhjZXB0CiArICAgIGNwZGVmIGlzX2NvbnN0YW50 KHNlbGYpCisrICAgIGNwZGVmIGRpY3QgZGljdChzZWxmKQorKyAgICBjcGRlZiBkaWN0IG1vbm9t aWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9KikKICAjICAgIGNwZGVmIF9ob21vZ2Vu aXplKHNlbGYsIGludCB2YXIpCiAgCiAtY2RlZiBOQ1BvbHlub21pYWxfcGx1cmFsIG5ld19OQ1Ao TkNQb2x5bm9taWFsUmluZ19wbHVyYWwgcGFyZW50LCBwb2x5ICpqdWljZSkgbm9leGNlcHQKQEAg LTMxMjU3LDcgKzMxMjYyLDcgQEAgaW5kZXggMDZiNDhjNzM3ZjMuLmEyMWQ4NmVlYzFmIDEwMDY0 NAogK2NwZGVmIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBuZXdfQ1JpbmcoUmluZ1dyYXAg cncsIGJhc2VfcmluZykKICtjcGRlZiBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBuZXdfTlJpbmco UmluZ1dyYXAgcncsIGJhc2VfcmluZykKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL3BsdXJhbC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weXgK LWluZGV4IDRmYjcxMDRjY2U2Li5mMzNkNGU2MjYzNCAxMDA2NDQKK2luZGV4IDMwZTZhYTg5ZGMz Li4yM2RkMmExMTE3OSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1 cmFsLnB5eAogKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHl4CiBAQCAt NTY0LDcgKzU2NCw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwoUmluZyk6 CkBAIC0zMTI2OSw3ICszMTI3NCw3IEBAIGluZGV4IDRmYjcxMDRjY2U2Li5mMzNkNGU2MjYzNCAx MDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgVGhlIG9ubHkgdGhpbmdzIHRoYXQgY29lcmNl IGludG8gdGhpcyByaW5nIGFyZToKICAKLUBAIC0xNDY0LDcgKzE0NjQsNyBAQCBjZGVmIGNsYXNz IE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorQEAgLTE0NzgsNyArMTQ3OCw3IEBA IGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CiAgICAgICAgICAi IiIKICAgICAgICAgIHJldHVybiBzZWxmLl9oYXNoX2MoKQogIApAQCAtMzEyNzgsNyArMzEyODMs NyBAQCBpbmRleCA0ZmI3MTA0Y2NlNi4uZjMzZDRlNjI2MzQgMTAwNjQ0CiAgICAgICAgICAiIiIK ICAgICAgICAgIENvbXBhcmUgbGVmdCBhbmQgcmlnaHQuCiAgCi1AQCAtMTUxNSw3ICsxNTE1LDcg QEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKK0BAIC0xNTI5 LDcgKzE1MjksNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQp OgogICAgICAgICAgY2RlZiByaW5nICpyID0gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5sZWZ0 Ll9wYXJlbnQpLl9yaW5nCiAgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCBzaW5ndWxh cl9wb2x5bm9taWFsX2NtcChwLCBxLCByKSkKICAKQEAgLTMxMjg3LDcgKzMxMjkyLDcgQEAgaW5k ZXggNGZiNzEwNGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAg ICBBZGRzIGxlZnQgYW5kIHJpZ2h0LgogIAotQEAgLTE1MzQsNyArMTUzNCw3IEBAIGNkZWYgY2xh c3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CitAQCAtMTU0OCw3ICsxNTQ4LDcg QEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+bGVmdC5f cGFyZW50KS5fcmluZykKICAgICAgICAgIHJldHVybiBuZXdfTkNQKCg8TkNQb2x5bm9taWFsUmlu Z19wbHVyYWw+bGVmdC5fcGFyZW50KSwgX3ApCiAgCkBAIC0zMTI5Niw3ICszMTMwMSw3IEBAIGlu ZGV4IDRmYjcxMDRjY2U2Li5mMzNkNGU2MjYzNCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAg ICAgU3VidHJhY3QgbGVmdCBhbmQgcmlnaHQuCiAgCi1AQCAtMTU1Niw3ICsxNTU2LDcgQEAgY2Rl ZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKK0BAIC0xNTcwLDcgKzE1 NzAsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3JpbmcpCiAgICAgICAgICByZXR1cm4gbmV3 X05DUCgoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPmxlZnQuX3BhcmVudCksIF9wKQogIApAQCAt MzEzMDUsNyArMzEzMTAsNyBAQCBpbmRleCA0ZmI3MTA0Y2NlNi4uZjMzZDRlNjI2MzQgMTAwNjQ0 CiAgICAgICAgICAiIiIKICAgICAgICAgIE11bHRpcGx5IGBgc2VsZmBgIHdpdGggYSBiYXNlIHJp bmcgZWxlbWVudC4KICAKLUBAIC0xNTg2LDcgKzE1ODYsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5v bWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorQEAgLTE2MDAsNyArMTYwMCw3IEBAIGNkZWYgY2xh c3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CiAgICAgICAgICBzaW5ndWxhcl9w b2x5bm9taWFsX3JtdWwoJl9wLCBzZWxmLl9wb2x5LCBsZWZ0LCBfcmluZykKICAgICAgICAgIHJl dHVybiBuZXdfTkNQKCg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+c2VsZi5fcGFyZW50KSxfcCkK ICAKQEAgLTMxMzE0LDcgKzMxMzE5LDcgQEAgaW5kZXggNGZiNzEwNGNjZTYuLmYzM2Q0ZTYyNjM0 IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBNdWx0aXBseSBsZWZ0IGFuZCByaWdodC4K ICAKLUBAIC0xNjE3LDcgKzE2MTcsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwo UmluZ0VsZW1lbnQpOgorQEAgLTE2MzEsNyArMTYzMSw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9t aWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPmxlZnQuX3BhcmVudCkuX3JpbmcpCiAgICAgICAg ICByZXR1cm4gbmV3X05DUCgoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPmxlZnQuX3BhcmVudCks X3ApCiAgCkBAIC0zMTMyMyw3ICszMTMyOCw3IEBAIGluZGV4IDRmYjcxMDRjY2U2Li5mMzNkNGU2 MjYzNCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRGl2aWRlIGxlZnQgYnkgcmlnaHQK ICAKLUBAIC0xNzk5LDcgKzE3OTksNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwo UmluZ0VsZW1lbnQpOgorQEAgLTE4MTMsNyArMTgxMyw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9t aWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CiAgICAgICAgICBzID0gc2luZ3VsYXJfcG9seW5vbWlh bF9zdHIoc2VsZi5fcG9seSwgX3JpbmcpCiAgICAgICAgICByZXR1cm4gcwogIApAQCAtMzEzMzIs NyArMzEzMzcsMjUgQEAgaW5kZXggNGZiNzEwNGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0NAogICAg ICAgICAgIiIiCiAgICAgICAgICBUaGlzIGlzIGEgZmFzdGVyIGJ1dCBsZXNzIHByZXR0eSB3YXkg dG8gcHJpbnQgcG9seW5vbWlhbHMuIElmCiAgICAgICAgICBhdmFpbGFibGUgaXQgdXNlcyB0aGUg c2hvcnQgU0lOR1VMQVIgbm90YXRpb24uCi1AQCAtMjU4MSw3ICsyNTgxLDcgQEAgY2RlZiBjbGFz cyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKK0BAIC0yMTkyLDcgKzIxOTIsNyBA QCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorIAorICAgICAg ICAgcmV0dXJuICg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+c2VsZi5fcGFyZW50KS5fYmFzZS5f emVyb19lbGVtZW50CisgCistICAgIGNwZGVmIGRpY3QgZGljdChzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgZGljdCBkaWN0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g YSBkaWN0aW9uYXJ5IHJlcHJlc2VudGluZyBgYHNlbGZgYC4gVGhpcyBkaWN0aW9uYXJ5IGlzIGlu CisgICAgICAgICB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIGdlbmVyaWMgTVBvbHlub21pYWw6IFRo ZSBkaWN0aW9uYXJ5CitAQCAtMjIzMiw3ICsyMjMyLDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21p YWxfcGx1cmFsKFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBwID0gcE5leHQocCkKKyAgICAg ICAgIHJldHVybiBwZAorIAorLSAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhz ZWxmLCBiaW50IGNvcHk9VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgbW9ub21pYWxf Y29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIGEgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiBgYHNlbGZgYCB3aXRoIHRo ZSBrZXlzCisgICAgICAgICB0aGUgZXhwb25lbnQgdmVjdG9ycyBhbmQgdGhlIHZhbHVlcyB0aGUg Y29ycmVzcG9uZGluZyBjb2VmZmljaWVudHMuCitAQCAtMjYyMCw3ICsyNjIwLDcgQEAgY2RlZiBj bGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLl9iYXNlKQog ICAgICAgICAgcmV0dXJuICg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+c2VsZi5fcGFyZW50KS5f YmFzZS5femVyb19lbGVtZW50CiAgCkBAIC0zMTM0MSw3ICszMTM2NCw3IEBAIGluZGV4IDRmYjcx MDRjY2U2Li5mMzNkNGU2MjYzNCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJu IGBgVHJ1ZWBgIGlmIHRoaXMgcG9seW5vbWlhbCBpcyBjb25zdGFudC4KICAKLUBAIC0yNzk4LDcg KzI3OTgsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgor QEAgLTI4MzcsNyArMjgzNyw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5n RWxlbWVudCk6CiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgCiAgY2RlZiBpbmxpbmUgTkNQb2x5bm9taWFsX3Bs dXJhbCBuZXdfTkNQKE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIHBhcmVudCwKQEAgLTMxMzUwLDcg KzMxMzczLDcgQEAgaW5kZXggNGZiNzEwNGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0NAogICAgICAi IiIKICAgICAgQ29uc3RydWN0IE5DUG9seW5vbWlhbF9wbHVyYWwgZnJvbSBwYXJlbnQgYW5kIFNJ TkdVTEFSIHBvbHkuCiAgCi1AQCAtMjgxNiw3ICsyODE2LDcgQEAgY2RlZiBpbmxpbmUgTkNQb2x5 bm9taWFsX3BsdXJhbCBuZXdfTkNQKE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIHBhcmVudCwKK0BA IC0yODU1LDcgKzI4NTUsNyBAQCBjZGVmIGlubGluZSBOQ1BvbHlub21pYWxfcGx1cmFsIG5ld19O Q1AoTkNQb2x5bm9taWFsUmluZ19wbHVyYWwgcGFyZW50LAogICAgICByZXR1cm4gcAogIAogIApA QCAtMzEzNTksNyArMzEzODIsNyBAQCBpbmRleCA0ZmI3MTA0Y2NlNi4uZjMzZDRlNjI2MzQgMTAw NjQ0CiAgICAgICIiIgogICAgICBDb25zdHJ1Y3QgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFy IGZyb20gcmluZ1dyYXAsIGFzc3VtaW5nIHRoZSBncm91bmQgZmllbGQgdG8gYmUgYmFzZV9yaW5n CiAgCi1AQCAtMjg4Niw3ICsyODg2LDcgQEAgY3BkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1 bGFyIG5ld19DUmluZyhSaW5nV3JhcCBydywgYmFzZV9yaW5nKSBub2V4Y2VwdDoKK0BAIC0yOTI1 LDcgKzI5MjUsNyBAQCBjcGRlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgbmV3X0NSaW5n KFJpbmdXcmFwIHJ3LCBiYXNlX3JpbmcpIG5vZXhjZXB0OgogICAgICByZXR1cm4gc2VsZgogIAog IApAQCAtMzYzMTIsMTAgKzM2MzM1LDEwIEBAIGluZGV4IDdkZjdlMjhlYzI4Li40OGM4MzEyNDU2 YyAxMDA2NDQKIC0gICAgY3BkZWYgZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBkZXB0aCkgbm9leGNl cHQKICsgICAgY3BkZWYgZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBkZXB0aCkKIGRpZmYgLS1naXQg YS9zcmMvc2FnZS9zZXRzL3JlY3Vyc2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB5eCBiL3NyYy9zYWdl L3NldHMvcmVjdXJzaXZlbHlfZW51bWVyYXRlZF9zZXQucHl4Ci1pbmRleCBiZjJhOWU5YzM2My4u OTVkNTVlMWI3NTcgMTAwNjQ0CitpbmRleCBlMjVkZGUwNDg1Yy4uNTZiZDhkMTY4NTAgMTAwNjQ0 CiAtLS0gYS9zcmMvc2FnZS9zZXRzL3JlY3Vyc2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB5eAogKysr IGIvc3JjL3NhZ2Uvc2V0cy9yZWN1cnNpdmVseV9lbnVtZXJhdGVkX3NldC5weXgKLUBAIC02OTYs NyArNjk2LDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyhQ YXJlbnQpOgorQEAgLTY3MCw3ICs2NzAsNyBAQCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVy YXRlZFNldF9nZW5lcmljKFBhcmVudCk6CiAgICAgICAgICAgICAgTC5hcHBlbmQoIndpdGggbWF4 X2RlcHRoPXt9Ii5mb3JtYXQoc2VsZi5fbWF4X2RlcHRoKSkKICAgICAgICAgIHJldHVybiAiICIu am9pbihMKQogIApAQCAtMzYzMjQsNyArMzYzNDcsNyBAQCBpbmRleCBiZjJhOWU5YzM2My4uOTVk NTVlMWI3NTcgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gYW4gaXRlcmFi bGUgb3ZlciB0aGUgc2VlZHMgb2YgYGBzZWxmYGAuCiAgCi1AQCAtNzQ2LDcgKzc0Niw3IEBAIGNk ZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dlbmVyaWMoUGFyZW50KToKK0BAIC03 MjAsNyArNzIwLDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJp YyhQYXJlbnQpOgogICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiZ3JhZGVkX2Nv bXBvbmVudF9pdGVyYXRvciBtZXRob2QgY3VycmVudGx5IgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiIGltcGxlbWVudGVkIG9ubHkgZm9yIGdyYWRlZCBvciBzeW1tZXRyaWMg c3RydWN0dXJlIikKICAKQEAgLTM2MzMzLDcgKzM2MzU2LDcgQEAgaW5kZXggYmYyYTllOWMzNjMu Ljk1ZDU1ZTFiNzU3IDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBn cmFkZWQgY29tcG9uZW50IG9mIGdpdmVuIGRlcHRoLgogIAotQEAgLTExNzUsNyArMTE3NSw3IEBA IGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X3N5bW1ldHJpYyhSZWN1cnNpdmVs eUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyk6CitAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgY2RlZiBjbGFz cyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfc3ltbWV0cmljKFJlY3Vyc2l2ZWx5RW51bWVyYXRl ZFNldF9nZW5lcmljKToKICAgICAgICAgICAgICB5aWVsZCBCCiAgICAgICAgICAgICAgQSwgQiA9 IEIsIHNlbGYuX2dldF9uZXh0X2dyYWRlZF9jb21wb25lbnQoQSwgQikKICAKQEAgLTM2MzQyLDcg KzM2MzY1LDcgQEAgaW5kZXggYmYyYTllOWMzNjMuLjk1ZDU1ZTFiNzU3IDEwMDY0NAogICAgICAg ICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBncmFkZWQgY29tcG9uZW50IG9mIGdpdmVuIGRl cHRoLgogIAotQEAgLTEyNDIsNyArMTI0Miw3IEBAIGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVt ZXJhdGVkU2V0X3N5bW1ldHJpYyhSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyk6CitA QCAtMTIxNiw3ICsxMjE2LDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRf c3ltbWV0cmljKFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKToKICAgICAgICAgICAg ICBzZWxmLl9ncmFkZWRfY29tcG9uZW50LmFwcGVuZChDKQogICAgICAgICAgcmV0dXJuIHNlbGYu X2dyYWRlZF9jb21wb25lbnRbZGVwdGhdCiAgCkBAIC0zNjM1MSw3ICszNjM3NCw3IEBAIGluZGV4 IGJmMmE5ZTljMzYzLi45NWQ1NWUxYjc1NyAxMDA2NDQKICAgICAgICAgIHIiIiIKICAgICAgICAg IFJldHVybiB0aGUgc2V0IG9mIGVsZW1lbnRzIG9mIGRlcHRoIGBuKzFgLgogIAotQEAgLTEzOTcs NyArMTM5Nyw3IEBAIGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dyYWRlZChS ZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyk6CitAQCAtMTM3MSw3ICsxMzcxLDcgQEAg Y2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ3JhZGVkKFJlY3Vyc2l2ZWx5RW51 bWVyYXRlZFNldF9nZW5lcmljKToKICAgICAgICAgICAgICB5aWVsZCBCCiAgICAgICAgICAgICAg QiA9IHNlbGYuX2dldF9uZXh0X2dyYWRlZF9jb21wb25lbnQoQikKICAKQEAgLTM2MzYwLDcgKzM2 MzgzLDcgQEAgaW5kZXggYmYyYTllOWMzNjMuLjk1ZDU1ZTFiNzU3IDEwMDY0NAogICAgICAgICAg ciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBncmFkZWQgY29tcG9uZW50IG9mIGdpdmVuIGRlcHRo LgogIAotQEAgLTE0NjAsNyArMTQ2MCw3IEBAIGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJh dGVkU2V0X2dyYWRlZChSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyk6CitAQCAtMTQz NCw3ICsxNDM0LDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ3JhZGVk KFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKToKICAgICAgICAgICAgICBzZWxmLl9n cmFkZWRfY29tcG9uZW50LmFwcGVuZChDKQogICAgICAgICAgcmV0dXJuIHNlbGYuX2dyYWRlZF9j b21wb25lbnRbZGVwdGhdCiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMv Zml4LWVjbS5wYXRjaCBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZWNtLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi40NWVhOTEzYmJmY2FjMgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZWNtLnBhdGNo CkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL3NyYy9zYWdlL2Vudi5weQorKysrIGIvc3JjL3NhZ2Uv ZW52LnB5CitAQCAtMjEyLDcgKzIxMiw3IEBAIE1BWElNQSA9IHZhcigiTUFYSU1BIiwgIm1heGlt YSIpCisgTUFYSU1BX0ZBUyA9IHZhcigiTUFYSU1BX0ZBUyIpCisgS0VOWk9fRkFTID0gdmFyKCJL RU5aT19GQVMiKQorIFNBR0VfTkFVVFlfQklOU19QUkVGSVggPSB2YXIoIlNBR0VfTkFVVFlfQklO U19QUkVGSVgiLCAiIikKKy1TQUdFX0VDTUJJTiA9IHZhcigiU0FHRV9FQ01CSU4iKQorK1NBR0Vf RUNNQklOID0gdmFyKCJTQUdFX0VDTUJJTiIsICJlY20iKQorIFJVQklLU19CSU5TX1BSRUZJWCA9 IHZhcigiUlVCSUtTX0JJTlNfUFJFRklYIiwgIiIpCisgRk9VUlRJVFdPX0hJTEJFUlQgPSB2YXIo IkZPVVJUSVRXT19ISUxCRVJUIikKKyBGT1VSVElUV09fTUFSS09WID0gdmFyKCJGT1VSVElUV09f TUFSS09WIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtbG9jay5w YXRjaCBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtbG9jay5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uMjRkYjQxMjQ0MTliNDcKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWxvY2sucGF0Y2gKQEAgLTAs MCArMSwxNSBAQAorU2VlOiBodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9wdWxsLzM2 NzQxI2lzc3VlY29tbWVudC0yMDI3MzU3NDE0CisKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9mZWF0 dXJlcy9fX2luaXRfXy5weSBiL3NyYy9zYWdlL2ZlYXR1cmVzL19faW5pdF9fLnB5CitpbmRleCA2 YWY5NDEzZTU1Li5hOGIxMWVmN2RiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZmVhdHVyZXMvX19p bml0X18ucHkKKysrKyBiL3NyYy9zYWdlL2ZlYXR1cmVzL19faW5pdF9fLnB5CitAQCAtMTYyLDcg KzE2Miw3IEBAIGNsYXNzIEZlYXR1cmUoVHJpdmlhbFVuaXF1ZVJlcHJlc2VudGF0aW9uKToKKyAg ICAgICAgICMgc2hhcmVkIGFtb25nIHN1YnByb2Nlc3Nlcy4gVGh1cyB3ZSB1c2UgdGhlIFZhbHVl IGNsYXNzIGZyb20gdGhlCisgICAgICAgICAjIG11bHRpcHJvY2Vzc2luZyBtb2R1bGUgKGNmLiBz ZWxmLl9zZWVuIG9mIGNsYXNzIEF2YWlsYWJsZVNvZnR3YXJlKQorICAgICAgICAgZnJvbSBtdWx0 aXByb2Nlc3NpbmcgaW1wb3J0IFZhbHVlCistICAgICAgICBzZWxmLl9udW1faGlkaW5ncyA9IFZh bHVlKCdpJywgMCkKKysgICAgICAgIHNlbGYuX251bV9oaWRpbmdzID0gVmFsdWUoJ2knLCAwLCBs b2NrPUZhbHNlKQorIAorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIGZyb20gc2FnZS5taXNj LnBhY2thZ2UgaW1wb3J0IHNwa2dfdHlwZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC90 ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKaW5kZXggMjJmYWY3ODkyMWM1ZjQu LmZjMDI0NGNhZjU1MjI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdzYWdlbWF0aCcKIHBrZ25hbWU9c2FnZW1hdGgKLXZlcnNpb249MTAuMwordmVy c2lvbj0xMC40LmJldGEwCiByZXZpc2lvbj0xCiBidWlsZF93cmtzcmM9cGtncy9zYWdlbWF0aC1z dGFuZGFyZAogYnVpbGRfc3R5bGU9cHl0aG9uMy1wZXA1MTcKQEAgLTMyLDcgKzMyLDcgQEAgbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5zYWdlbWF0aC5v cmcvIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9yZWxlYXNl cyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3NhZ2VtYXRoL3NhZ2UvYXJjaGl2ZS9y ZWZzL3RhZ3MvJHZlcnNpb24udGFyLmd6IgotY2hlY2tzdW09NTlmZWI5MmMwNWU3NGQ2ZGI3YTc1 ZjM5OGM0NWMyNGI1MTU3YjFlY2QzZDhhYzE5ODgwNmUyZTZhZGQ3N2Q5NgorY2hlY2tzdW09YjEy Mzg0MjM0YTY3NGFiZmIwYjIzMDIzMTJmMTBmMjRhOTVmYzNmYjRhZTg0OTU2ZGQyYmUwNmRhMTE3 MjM0OQogbm9jcm9zcz0iZHVlIHRvIG50bCAoZWNsaWIsIHNpbmd1bGFyKSwgZmZsYXMtZmZwYWNr LCBnaXZhcm8sIGxpbmJveCwgc3ltcG93LCBtYXhpbWEiCiAKICMgcGFyYWxsZWwgYnVpbGQK --===============2658821618447892986==--