gASVDwABAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIwbbW9kdWxlLWV0aGVyZXVtLmJlcmxpbi5zcGVjlGGMB2NsYXNzZXOUXZSMBW5hbWVzlF2UjAhkdXBuYW1lc5RdlIwIYmFja3JlZnOUXZSMBWlzbW9klIh1jAd0YWduYW1llGgJjAZzb3VyY2WUjFwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2Jlcmxpbi9zcGVjL2luZGV4LnJzdJSMBGxpbmWUSwGMBnBhcmVudJRoA4wJX2RvY3VtZW50lGgDdWKMD3NwaGlueC5hZGRub2Rlc5SMBWluZGV4lJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UKIwEcGFpcpSMHG1vZHVsZTsgZXRoZXJldW0uYmVybGluLnNwZWOUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMFkV0aGVyZXVtIFNwZWNpZmljYXRpb26UaAddlGgAjARUZXh0lJOUjBZFdGhlcmV1bSBTcGVjaWZpY2F0aW9ulIWUgZR9lChoBWgGaCBoOmghaANoHYxcL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpLyA9PiBkb2MvZGlmZnOUaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sEaCBoNWghaAN1YmgAjAV0b3BpY5STlCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMEVRhYmxlIG9mIENvbnRlbnRzlGgHXZRoP4wRVGFibGUgb2YgQ29udGVudHOUhZSBlH2UKGgFaAZoIGhQ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aBNdlGgVXZSMB2NsYXNzZXOUYWgXXZRoGV2UdWgcaDNoHWgeaB9LFmggaqwFAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMCUZ1bmN0aW9uc5RoB12UaD+MCUZ1bmN0aW9uc5SFlIGUfZQoaAVoBmggaokGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9LH2ggaoYGAABoIWgDdWJqzwUAACmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwEc3BlY5Rq2gUAAHVoHGrOBQAAaB2MbS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYmVybGluL3NwZWMvaW5kZXgucnN0OjU3OjxhdXRvc3VtbWFyeT6UaB9LAGggaoYGAABoIWgDdWJq3gUAACmBlH2UKGgFWGkFAAAKCgoKYXBwbHlfZm9yawoKVHJhbnNmb3JtcyB0aGUgc3RhdGUgZnJvbSB0aGUgcHJldmlvdXMgaGFyZCBmb3JrIChvbGQpIGludG8gdGhlIGJsb2NrCgpnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzCgpPYnRhaW4gdGhlIGxpc3Qgb2YgaGFzaGVzIG9mIHRoZSBwcmV2aW91cyAyNTYgYmxvY2tzIGluIG9yZGVyIG9mCgpzdGF0ZV90cmFuc2l0aW9uCgpBdHRlbXB0cyB0byBhcHBseSBhIGJsb2NrIHRvIGFuIGV4aXN0aW5nIGJsb2NrIGNoYWluLgoKdmFsaWRhdGVfaGVhZGVyCgpWZXJpZmllcyBhIGJsb2NrIGhlYWRlci4KCmdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3cKCkdlbmVyYXRlIHJscCBoYXNoIG9mIHRoZSBoZWFkZXIgd2hpY2ggaXMgdG8gYmUgdXNlZCBmb3IgUHJvb2Ytb2YtV29yawoKdmFsaWRhdGVfcHJvb2Zfb2Zfd29yawoKVmFsaWRhdGVzIHRoZSBQcm9vZiBvZiBXb3JrIGNvbnN0cmFpbnRzLgoKYXBwbHlfYm9keQoKRXhlY3V0ZXMgYSBibG9jay4KCnZhbGlkYXRlX29tbWVycwoKVmFsaWRhdGVzIHRoZSBvbW1lcnMgbWVudGlvbmVkIGluIHRoZSBibG9jay4KCnBheV9yZXdhcmRzCgpQYXkgcmV3YXJkcyB0byB0aGUgYmxvY2sgbWluZXIgYXMgd2VsbCBhcyB0aGUgb21tZXJzIG1pbmVycy4KCnByb2Nlc3NfdHJhbnNhY3Rpb24KCkV4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudC4KCnZhbGlkYXRlX3RyYW5zYWN0aW9uCgpWZXJpZmllcyBhIHRyYW5zYWN0aW9uLgoKY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0CgpDYWxjdWxhdGVzIHRoZSBnYXMgdGhhdCBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaXMgc3RhcnRlZC4KCnJlY292ZXJfc2VuZGVyCgpFeHRyYWN0cyB0aGUgc2VuZGVyIGFkZHJlc3MgZnJvbSBhIHRyYW5zYWN0aW9uLgoKc2lnbmluZ19oYXNoX3ByZTE1NQoKQ29tcHV0ZSB0aGUgaGFzaCBvZiBhIHRyYW5zYWN0aW9uIHVzZWQgaW4gYSBsZWdhY3kgKHByZSBFSVAgMTU1KSBzaWduYXR1cmUuCgpzaWduaW5nX2hhc2hfMTU1CgpDb21wdXRlIHRoZSBoYXNoIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCBpbiBhIEVJUCAxNTUgc2lnbmF0dXJlLgoKc2lnbmluZ19oYXNoXzI5MzAKCkNvbXB1dGUgdGhlIGhhc2ggb2YgYSB0cmFuc2FjdGlvbiB1c2VkIGluIGEgRUlQIDI5MzAgc2lnbmF0dXJlLgoKY29tcHV0ZV9oZWFkZXJfaGFzaAoKQ29tcHV0ZXMgdGhlIGhhc2ggb2YgYSBibG9jayBoZWFkZXIuCgpjaGVja19nYXNfbGltaXQKClZhbGlkYXRlcyB0aGUgZ2FzIGxpbWl0IGZvciBhIGJsb2NrLgoKY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkKCkNvbXB1dGVzIGRpZmZpY3VsdHkgb2YgYSBibG9jayB1c2luZyBpdHMgaGVhZGVyIGFuZCBwYXJlbnQgaGVhZGVyLpRoB12UauQF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YW5zaXRpb24gPGV0aGVyZXVtLmJlcmxpbi5zcGVjLnN0YXRlX3RyYW5zaXRpb24+YJRoB12UaG4pgZR9lChoBWgGaAddlGoaBgAAKYGUfZQoaAVqgwcAAGgHXZRoP4wQc3RhdGVfdHJhbnNpdGlvbpSFlIGUfZQoaAVoBmggaogHAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGomBgAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcahkGAABoHU5oH05oIGqFBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjCVldGhlcmV1bS5iZXJsaW4uc3BlYy5zdGF0ZV90cmFuc2l0aW9ulIwIcmVmdGl0bGWUjCVldGhlcmV1bS5iZXJsaW4uc3BlYy5zdGF0ZV90cmFuc2l0aW9ulHVoHGhtaB1OaB9OaCBqgQcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjG0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2Jlcmxpbi9zcGVjL2luZGV4LnJzdDo1Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGp+BwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoNBgAAaB1OaB9OaCBqewcAAHViag4GAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMNUF0dGVtcHRzIHRvIGFwcGx5IGEgYmxvY2sgdG8gYW4gZXhpc3RpbmcgYmxvY2sgY2hhaW4ulGgHXZRoP4w1QXR0ZW1wdHMgdG8gYXBwbHkgYSBibG9jayB0byBhbiBleGlzdGluZyBibG9jayBjaGFpbi6UhZSBlH2UKGgFaAZoIGqyBwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2MbS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYmVybGluL3NwZWMvaW5kZXgucnN0OjU3OjxhdXRvc3VtbWFyeT6UaB9LAWggaq8HAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcag0GAABoHU5oH05oIGp7BwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoIBgAAaB1oRGgfSwBoIGrABgAAaCFoA3ViagkGAAApgZR9lChoBWgGaAddlChqDgYAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw9Om9iajpgdmFsaWRhdGVfaGVhZGVyIDxldGhlcmV1bS5iZXJsaW4uc3BlYy52YWxpZGF0ZV9oZWFkZXI+YJRoB12UaG4pgZR9lChoBWgGaAddlGoaBgAAKYGUfZQoaAVq1QcAAGgHXZRoP4wPdmFsaWRhdGVfaGVhZGVylIWUgZR9lChoBWgGaCBq2gcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoaiYGAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxqGQYAAGgdTmgfTmggatcHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMJGV0aGVyZXVtLmJlcmxpbi5zcGVjLnZhbGlkYXRlX2hlYWRlcpSMCHJlZnRpdGxllIwkZXRoZXJldW0uYmVybGluLnNwZWMudmFsaWRhdGVfaGVhZGVylHVoHGhtaB1OaB9OaCBq0wcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjG0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2Jlcmxpbi9zcGVjL2luZGV4LnJzdDo1Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGrQBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoNBgAAaB1OaB9OaCBqzQcAAHViag4GAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMGFZlcmlmaWVzIGEgYmxvY2sgaGVhZGVyLpRoB12UaD+MGFZlcmlmaWVzIGEgYmxvY2sgaGVhZGVyLpSFlIGUfZQoaAVoBmggagQIAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxtL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vc3BlYy9pbmRleC5yc3Q6NTc6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqAQgAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqDQYAAGgdTmgfTmggas0HAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaggGAABoHWhEaB9LAGggasAGAABoIWgDdWJqCQYAACmBlH2UKGgFaAZoB12UKGoOBgAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjFc6b2JqOmBnZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93IDxldGhlcmV1bS5iZXJsaW4uc3BlYy5nZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93PmCUaAddlGhuKYGUfZQoaAVoBmgHXZRqGgYAACmBlH2UKGgFaicIAABoB12UaD+MHGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3eUhZSBlH2UKGgFaAZoIGosCAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqJgYAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGoZBgAAaB1OaB9OaCBqKQgAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIwxZXRoZXJldW0uYmVybGluLnNwZWMuZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3Bvd5SMCHJlZnRpdGxllIwxZXRoZXJldW0uYmVybGluLnNwZWMuZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3Bvd5R1aBxobWgdTmgfTmggaiUIAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxtL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vc3BlYy9pbmRleC5yc3Q6NTc6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqIggAAHViYWgO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iXVoHGoaEQAAaB1OaB9OaCBq+hAAAHViaACMDWxpdGVyYWxfYmxvY2uUk5QpgZR9lChoBYwgQkxPQ0tfUkVXQVJEID0gVTI1NigyICogMTAqKjE4KQqUaAddlGg/jCBCTE9DS19SRVdBUkQgPSBVMjU2KDIgKiAxMCoqMTgpCpSFlIGUfZQoaAVoBmggamARAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vc3BlYy5weZSMCXhtbDpzcGFjZZRqpAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lIwLbGluZW5vc3RhcnSUSwFzjAdsaW5lbm9zlIl1aBxqXhEAAGgdaB5oH0tUaCBq+hAAAHViZWgOfZQoaBBdlGpQAQAAYWgTXZRoFV2UjAxibG9ja19yZXdhcmSUYWgXXZRoGV2UdWgcaDNoHWgeaB9LTGggaukQAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMH0JBU0VfRkVFX01BWF9DSEFOR0VfREVOT01JTkFUT1KUaAddlGg/jB9CQVNFX0ZFRV9NQVhfQ0hBTkdFX0RFTk9NSU5BVE9SlIWUgZR9lChoBWgGaCBqghEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdjFwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2xvbmRvbi9zcGVjL2luZGV4LnJzdJRoH0teaCBqfxEAAHViaCQpgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMB2VudHJpZXOUXZQojAZzaW5nbGWUjEBCQVNFX0ZFRV9NQVhfQ0hBTkdFX0RFTk9NSU5BVE9SIChpbiBtb2R1bGUgZXRoZXJldW0ubG9uZG9uLnNwZWMplIw0ZXRoZXJldW0ubG9uZG9uLnNwZWMuQkFTRV9G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ZXN0ZWQgcmlnb3JvdXNseQogICAgaWYgbGVuKHJlY2VudF9ibG9ja3MpID09IDA6CiAgICAgICAgcmV0dXJuIFtdCgogICAgcmVjZW50X2Jsb2NrX2hhc2hlcyA9IFtdCgogICAgZm9yIGJsb2NrIGluIHJlY2VudF9ibG9ja3M6CiAgICAgICAgcHJldl9ibG9ja19oYXNoID0gYmxvY2suaGVhZGVyLnBhcmVudF9oYXNoCiAgICAgICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQocHJldl9ibG9ja19oYXNoKQoKICAgICMgV2UgYXJlIGNvbXB1dGluZyB0aGUgaGFzaCBvbmx5IGZvciB0aGUgbW9zdCByZWNlbnQgYmxvY2sgYW5kIG5vdCBmb3IKICAgICMgdGhlIHJlc3Qgb2YgdGhlIGJsb2NrcyBhcyB0aGV5IGhhdmUgc3VjY2Vzc29ycyB3aGljaCBoYXZlIHRoZSBoYXNoIG9mCiAgICAjIHRoZSBjdXJyZW50IGJsb2NrIGFzIHBhcmVudCBoYXNoLgogICAgbW9zdF9yZWNlbnRfYmxvY2tfaGFzaCA9IGtlY2NhazI1NihybHAuZW5jb2RlKHJlY2VudF9ibG9ja3NbLTFdLmhlYWRlcikpCiAgICByZWNlbnRfYmxvY2tfaGFzaGVzLmFwcGVuZChtb3N0X3JlY2VudF9ibG9ja19oYXNoKQoKICAgIHJldHVybiByZWNlbnRfYmxvY2tfaGFzaGVzCpRoB12UaD9Y3wIAAGRlZiBnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzKGNoYWluOiBCbG9ja0NoYWluKSAtPiBMaXN0W0hhc2gzMl06CiAgICByZWNlbnRfYmxvY2tzID0gY2hhaW4uYmxvY2tzWy0yNTU6XQogICAgIyBUT0RPOiBUaGlzIGZ1bmN0aW9uIGhhcyBub3QgYmVlbiB0ZXN0ZWQgcmlnb3JvdXNseQogICAgaWYgbGVuKHJlY2VudF9ibG9ja3MpID09IDA6CiAgICAgICAgcmV0dXJuIFtdCgogICAgcmVjZW50X2Jsb2NrX2hhc2hlcyA9IFtdCgogICAgZm9yIGJsb2NrIGluIHJlY2VudF9ibG9ja3M6CiAgICAgICAgcHJldl9ibG9ja19oYXNoID0gYmxvY2suaGVhZGVyLnBhcmVudF9oYXNoCiAgICAgICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQocHJldl9ibG9ja19oYXNoKQoKICAgICMgV2UgYXJlIGNvbXB1dGluZyB0aGUgaGFzaCBvbmx5IGZvciB0aGUgbW9zdCByZWNlbnQgYmxvY2sgYW5kIG5vdCBmb3IKICAgICMgdGhlIHJlc3Qgb2YgdGhlIGJsb2NrcyBhcyB0aGV5IGhhdmUgc3VjY2Vzc29ycyB3aGljaCBoYXZlIHRoZSBoYXNoIG9mCiAgICAjIHRoZSBjdXJyZW50IGJsb2NrIGFzIHBhcmVudCBoYXNoLgogICAgbW9zdF9yZWNlbnRfYmxvY2tfaGFzaCA9IGtlY2NhazI1NihybHAuZW5jb2RlKHJlY2VudF9ibG9ja3NbLTFdLmhlYWRlcikpCiAgICByZWNlbnRfYmxvY2tfaGFzaGVzLmFwcGVuZChtb3N0X3JlY2VudF9ibG9ja19oYXNoKQoKICAgIHJldHVybiByZWNlbnRfYmxvY2tfaGFzaGVzCpSFlIGUfZQoaAVoBmggalgaAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vc3BlYy5weZSMCXhtbDpzcGFjZZRqpAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGp2EQAASwFzjAdsaW5lbm9zlIl1aBxqXhEAAGgdaB5oH0v+aCBq7BgAAHViZWgOfZQoaBBdlGrrAgAAYWgTXZRoFV2UjBlnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzlGFoF12UaBldlHVoHGgzaB1oHmgfS+hoIGrpEAAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBBzdGF0ZV90cmFuc2l0aW9ulGgHXZRoP4wQc3RhdGVfdHJhbnNpdGlvbpSFlIGUfZQoaAVoBmggankaAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9NAwFoIGp2GgAAaCFoA3ViaCQpgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMB2VudHJpZXOUXZR1aBxoI2gdaERoH0sAaCBqdhoAAGghaAN1YmobEQAAKYGUfZQoaAVoBmgHXZQoaiARAAApgZR9lChoBYwec3RhdGVfdHJhbnNpdGlvbihjaGFpbiwgYmxvY2splGgHXZQoaiYRAAApgZR9lChoBYwQc3RhdGVfdHJhbnNpdGlvbpRoB12UaD+MEHN0YXRlX3RyYW5zaXRpb26UhZSBlH2UKGgFaAZoIGqZGgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqMREAAGoyEQAAajMRAABqNBEAAGVoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqpAUAAHVoHGolEQAAaB1oHmgfTmggapUaAAB1YmpyFwAAKYGUfZQoaAWMDGNoYWluLCBibG9ja5RoB12UKGp4FwAAKYGUfZQoaAWMBWNoYWlulGgHXZRq9RQAACmBlH2UKGgFaAZoB12UaD+MBWNoYWlulIWUgZR9lChoBWgGaCBqsBoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqhxcAAGFoFV2UaBddlGgZXZR1aBxq9BQAAGgdTmgfTmggaqwaAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqQFAAB1aBxqdxcAAGgdTmgfTmggaqgaAAB1Ymp4FwAAKYGUfZQoaAWMBWJsb2NrlGgHXZRq9RQAACmBlH2UKGgFaAZoB12UaD+MBWJsb2NrlIWUgZR9lChoBWgGaCBqyBoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqhxcAAGFoFV2UaBddlGgZXZR1aBxq9BQAAGgdTmgfTmggasQaAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqQFAAB1aBxqdxcAAGgdTmgfTmggaqgaAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUaqQFAAB1aBxqcRcAAGgdaB5oH05oIGqVGgAAdWJlaA59lChoEF2UjCVldGhlcmV1bS5iZXJsaW4uc3BlYy5zdGF0ZV90cmFuc2l0aW9ulGFoE12UKGo8EQAAaj0RAACMAnB5lGo/EQAAakARAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUakURAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqmxoAAHVoHGofEQAAaB1oHmgfTQYBaCBqkhoAAHViakkRAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjDVBdHRlbXB0cyB0byBhcHBseSBhIGJsb2NrIHRvIGFuIGV4aXN0aW5nIGJsb2NrIGNoYWluLpRoB12UaD+MNUF0dGVtcHRzIHRvIGFwcGx5IGEgYmxvY2sgdG8gYW4gZXhpc3RpbmcgYmxvY2sgY2hhaW4ulIWUgZR9lChoBWgGaCBq8RoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH00JAWggau4aAAB1YmhpKYGUfZQoaAVYMQEAAEFsbCBwYXJ0cyBvZiB0aGUgYmxvY2sncyBjb250ZW50cyBuZWVkIHRvIGJlIHZlcmlmaWVkIGJlZm9yZSBiZWluZyBhZGRlZAp0byB0aGUgY2hhaW4uIEJsb2NrcyBhcmUgdmVyaWZpZWQgYnkgZW5zdXJpbmcgdGhhdCB0aGUgY29udGVudHMgb2YgdGhlCmJsb2NrIG1ha2UgbG9naWNhbCBzZW5zZSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgcGFyZW50IGJsb2NrLiBUaGUKaW5mb3JtYXRpb24gaW4gdGhlIGJsb2NrJ3MgaGVhZGVyIG11c3QgYWxzbyBtYXRjaCB0aGUgY29ycmVzcG9uZGluZwppbmZvcm1hdGlvbiBpbiB0aGUgYmxvY2sulGgHXZRoP1g1AQAAQWxsIHBhcnRzIG9mIHRoZSBibG9ja+KAmXMgY29udGVudHMgbmVlZCB0byBiZSB2ZXJpZmllZCBiZWZvcmUgYmVpbmcgYWRkZWQKdG8gdGhlIGNoYWluLiBCbG9ja3MgYXJlIHZlcmlmaWVkIGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZQpibG9jayBtYWtlIGxvZ2ljYWwgc2Vuc2Ugd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIHBhcmVudCBibG9jay4gVGhlCmluZm9ybWF0aW9uIGluIHRoZSBibG9ja+KAmXMgaGVhZGVyIG11c3QgYWxzbyBtYXRjaCB0aGUgY29ycmVzcG9uZGluZwppbmZvcm1hdGlvbiBpbiB0aGUgYmxvY2sulIWUgZR9lChoBWgGaCBq/xoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH00LAWggau4aAAB1YmhpKYGUfZQoaAWM/FRvIGltcGxlbWVudCBFdGhlcmV1bSwgaW4gdGhlb3J5IGNsaWVudHMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gc3RvcmUgdGhlCm1vc3QgcmVjZW50IDI1NSBibG9ja3Mgb2YgdGhlIGNoYWluIHNpbmNlIGFzIGZhciBhcyBleGVjdXRpb24gaXMKY29uY2VybmVkLCBvbmx5IHRob3NlIGJsb2NrcyBhcmUgYWNjZXNzZWQuIFByYWN0aWNhbGx5LCBob3dldmVyLCBjbGllbnRzCnNob3VsZCBzdG9yZSBtb3JlIGJsb2NrcyB0byBoYW5kbGUgcmVvcmdzLpRoB12UaD+M/FRvIGltcGxlbWVudCBFdGhlcmV1bSwgaW4gdGhlb3J5IGNsaWVudHMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gc3RvcmUgdGhlCm1vc3QgcmVjZW50IDI1NSBibG9ja3Mgb2YgdGhlIGNoYWluIHNpbmNlIGFzIGZhciBhcyBleGVjdXRpb24gaXMKY29uY2VybmVkLCBvbmx5IHRob3NlIGJsb2NrcyBhcmUgYWNjZXNzZWQuIFByYWN0aWNhbGx5LCBob3dldmVyLCBjbGllbnRzCnNob3VsZCBzdG9yZSBtb3JlIGJsb2NrcyB0byBoYW5kbGUgcmVvcmdzLpSFlIGUfZQoaAVoBmggag0bAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NEQFoIGruGgAAdWJq9hcAACmBlH2UKGgFaAZoB12UavsXAAApgZR9lChoBWgGaAddlChqABgAACmBlH2UKGgFjApQYXJhbWV0ZXJzlGgHXZRoP4wKUGFyYW1ldGVyc5SFlIGUfZQoaAVoBmggaiEbAABo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X2Jsb2NrX2hhc2hlcyhjaGFpbiksCiAgICAgICAgYmxvY2suaGVhZGVyLmNvaW5iYXNlLAogICAgICAgIGJsb2NrLmhlYWRlci5udW1iZXIsCiAgICAgICAgYmxvY2suaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBibG9jay5oZWFkZXIudGltZXN0YW1wLAogICAgICAgIGJsb2NrLmhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGJsb2NrLnRyYW5zYWN0aW9ucywKICAgICAgICBibG9jay5vbW1lcnMsCiAgICAgICAgY2hhaW4uY2hhaW5faWQsCiAgICApCiAgICBlbnN1cmUoZ2FzX3VzZWQgPT0gYmxvY2suaGVhZGVyLmdhc191c2VkLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUodHJhbnNhY3Rpb25zX3Jvb3QgPT0gYmxvY2suaGVhZGVyLnRyYW5zYWN0aW9uc19yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc3RhdGVfcm9vdChzdGF0ZSkgPT0gYmxvY2suaGVhZGVyLnN0YXRlX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShyZWNlaXB0X3Jvb3QgPT0gYmxvY2suaGVhZGVyLnJlY2VpcHRfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGJsb2NrX2xvZ3NfYmxvb20gPT0gYmxvY2suaGVhZGVyLmJsb29tLCBJbnZhbGlkQmxvY2spCgogICAgY2hhaW4uYmxvY2tzLmFwcGVuZChibG9jaykKICAgIGlmIGxlbihjaGFpbi5ibG9ja3MpID4gMjU1OgogICAgICAgICMgUmVhbCBjbGllbnRzIGhhdmUgdG8gc3RvcmUgbW9yZSBibG9ja3MgdG8gZGVhbCB3aXRoIHJlb3JncywgYnV0IHRoZQogICAgICAgICMgcHJvdG9jb2wgb25seSByZXF1aXJlcyB0aGUgbGFzdCAyNTUKICAgICAgICBjaGFpbi5ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLTI1NTpdCpRoB12UKGg/WNwBAABkZWYgc3RhdGVfdHJhbnNpdGlvbihjaGFpbjogQmxvY2tDaGFpbiwgYmxvY2s6IEJsb2NrKSAtPiBOb25lOgogICAgcGFyZW50X2hlYWRlciA9IGNoYWluLmJsb2Nrc1stMV0uaGVhZGVyCiAgICB2YWxpZGF0ZV9oZWFkZXIoYmxvY2suaGVhZGVyLCBwYXJlbnRfaGVhZGVyKQogICAgdmFsaWRhdGVfb21tZXJzKGJsb2NrLm9tbWVycywgYmxvY2suaGVhZGVyLCBjaGFpbikKICAgICgKICAgICAgICBnYXNfdXNlZCwKICAgICAgICB0cmFuc2FjdGlvbnNfcm9vdCwKICAgICAgICByZWNlaXB0X3Jvb3QsCiAgICAgICAgYmxvY2tfbG9nc19ibG9vbSwKICAgICAgICBzdGF0ZSwKICAgICkgPSBhcHBseV9ib2R5KAogICAgICAgIGNoYWluLnN0YXRlLAogICAgICAgIGdldF9sYXN0XzI1Nl9ibG9ja19oYXNoZXMoY2hhaW4pLAogICAgICAgIGJsb2NrLmhlYWRlci5jb2luYmFzZSwKICAgICAgICBibG9jay5oZWFkZXIubnVtYmVyLAogICAgICAgIJSFlIGUfZQoaAVoBmggasAbAABoIWgDaB1oRGgfSwB1Ymr1FAAAKYGUfZQoaAVoBmgHXZRoP4wnYmxvY2suaGVhZGVyLmJhc2VfZmVlX3Blcl9nYXMsCiAgICAgICAglIWUgZR9lChoBWgGaCBqyBsAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcavQUAABoIGrAGwAAaCFoA2gdaERoH0sAdWJoP1jmAgAAYmxvY2suaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBibG9jay5oZWFkZXIudGltZXN0YW1wLAogICAgICAgIGJsb2NrLmhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGJsb2NrLnRyYW5zYWN0aW9ucywKICAgICAgICBibG9jay5vbW1lcnMsCiAgICAgICAgY2hhaW4uY2hhaW5faWQsCiAgICApCiAgICBlbnN1cmUoZ2FzX3VzZWQgPT0gYmxvY2suaGVhZGVyLmdhc191c2VkLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUodHJhbnNhY3Rpb25zX3Jvb3QgPT0gYmxvY2suaGVhZGVyLnRyYW5zYWN0aW9uc19yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc3RhdGVfcm9vdChzdGF0ZSkgPT0gYmxvY2suaGVhZGVyLnN0YXRlX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShyZWNlaXB0X3Jvb3QgPT0gYmxvY2suaGVhZGVyLnJlY2VpcHRfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGJsb2NrX2xvZ3NfYmxvb20gPT0gYmxvY2suaGVhZGVyLmJsb29tLCBJbnZhbGlkQmxvY2spCgogICAgY2hhaW4uYmxvY2tzLmFwcGVuZChibG9jaykKICAgIGlmIGxlbihjaGFpbi5ibG9ja3MpID4gMjU1OgogICAgICAgICMgUmVhbCBjbGllbnRzIGhhdmUgdG8gc3RvcmUgbW9yZSBibG9ja3MgdG8gZGVhbCB3aXRoIHJlb3JncywgYnV0IHRoZQogICAgICAgICMgcHJvdG9jb2wgb25seSByZXF1aXJlcyB0aGUgbGFzdCAyNTUKICAgICAgICBjaGFpbi5ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLTI1NTpdCpSFlIGUfZQoaAVoBmggasAbAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vc3BlYy5weZSMCXhtbDpzcGFjZZRqpAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGp2EQAASwFzjAdsaW5lbm9zlIl1aBxqXhEAAGgdaB5oH00cAWgganYaAABoIWgDdWJlaA59lChoEF2Uag0DAABhaBNdlGgVXZSMEHN0YXRlX3RyYW5zaXRpb26UYWgXXZRoGV2UdWgcaDNoHWgeaB9NAwFoIGrpEAAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjA92YWxpZGF0ZV9oZWFkZXKUaAddlGg/jA92YWxpZGF0ZV9oZWFkZXKUhZSBlH2UKGgFaAZoIGrzGwAAaCFo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aB1OaB9OaCBqaBwAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqSBEAAGgdaB5oH05oIGoMHAAAdWJlaA59lChoEF2UaBNdlChqYRwAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGphHAAAjAdvYmp0eXBllGomHQAAjAhkZXNjdHlwZZRqJh0AAIwHbm9pbmRleJSJdWgcahoRAABoHWhEaB9LAGggavAbAABoIWgDdWJqXxEAACmBlH2UKGgFWGMDAABkZWYgdmFsaWRhdGVfaGVhZGVyKGhlYWRlcjogSGVhZGVyLCBwYXJlbnRfaGVhZGVyOiBIZWFkZXIpIC0+IE5vbmU6CiAgICBwYXJlbnRfaGFzX29tbWVycyA9IHBhcmVudF9oZWFkZXIub21tZXJzX2hhc2ggIT0gRU1QVFlfT01NRVJfSEFTSAogICAgZW5zdXJlKGhlYWRlci50aW1lc3RhbXAgPiBwYXJlbnRfaGVhZGVyLnRpbWVzdGFtcCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGhlYWRlci5udW1iZXIgPT0gcGFyZW50X2hlYWRlci5udW1iZXIgKyAxLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoCiAgICAgICAgY2hlY2tfZ2FzX2xpbWl0KGhlYWRlci5nYXNfbGltaXQsIHBhcmVudF9oZWFkZXIuZ2FzX2xpbWl0KSwKICAgICAgICBJbnZhbGlkQmxvY2ssCiAgICApCiAgICBlbnN1cmUobGVuKGhlYWRlci5leHRyYV9kYXRhKSA8PSAzMiwgSW52YWxpZEJsb2NrKQoKICAgIGJsb2NrX2RpZmZpY3VsdHkgPSBjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eSgKICAgICAgICBoZWFkZXIubnVtYmVyLAogICAgICAgIGhlYWRlci50aW1lc3RhbXAsCiAgICAgICAgcGFyZW50X2hlYWRlci50aW1lc3RhbXAsCiAgICAgICAgcGFyZW50X2hlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIHBhcmVudF9oYXNfb21tZXJzLAogICAgKQogICAgZW5zdXJlKGhlYWRlci5kaWZmaWN1bHR5ID09IGJsb2NrX2RpZmZpY3VsdHksIEludmFsaWRCbG9jaykKCiAgICBibG9ja19wYXJlbnRfaGFzaCA9IGtlY2NhazI1NihybHAuZW5jb2RlKHBhcmVudF9oZWFkZXIpKQogICAgZW5zdXJlKGhlYWRlci5wYXJlbnRfaGFzaCA9PSBibG9ja19wYXJlbnRfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgIHZhbGlkYXRlX3Byb29mX29mX3dvcmsoaGVhZGVyKQqUaAddlChoP4xIZGVmIHZhbGlkYXRlX2hlYWRlcihoZWFkZXI6IEhlYWRlciwgcGFyZW50X2hlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAglIWUgZR9lChoBWgGaCBqLh0AAGghaANoHWhEaB9LAHViavUUAAApgZR9lChoBWgGaAddlGg/WDYHAABpZiBoZWFkZXIubnVtYmVyID09IE1BSU5ORVRfRk9SS19CTE9DSzoKICAgICAgICBwYXJlbnRfZ2FzX2xpbWl0ID0gcGFyZW50X2hlYWRlci5nYXNfbGltaXQgKiBFTEFTVElDSVRZX01VTFRJUExJRVIKICAgICAgICBwYXJlbnRfZ2FzX3RhcmdldCA9IHBhcmVudF9oZWFkZXIuZ2FzX2xpbWl0CiAgICBlbHNlOgogICAgICAgIHBhcmVudF9nYXNfbGltaXQgPSBwYXJlbnRfaGVhZGVyLmdhc19saW1pdAogICAgICAgIHBhcmVudF9nYXNfdGFyZ2V0ID0gcGFyZW50X2hlYWRlci5nYXNfbGltaXQgLy8gRUxBU1RJQ0lUWV9NVUxUSVBMSUVSCiAgICAgICAgcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgPSBwYXJlbnRfaGVhZGVyLmJhc2VfZmVlX3Blcl9nYXMKCiAgICBwYXJlbnRfZ2FzX3VzZWQgPSBwYXJlbnRfaGVhZGVyLmdhc191c2VkCgogICAgZW5zdXJlKGhlYWRlci5nYXNfdXNlZCA8PSBoZWFkZXIuZ2FzX2xpbWl0LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoCiAgICAgICAgY2hlY2tfZ2FzX2xpbWl0KGhlYWRlci5nYXNfbGltaXQsIHBhcmVudF9nYXNfbGltaXQpLAogICAgICAgIEludmFsaWRCbG9jaywKICAgICkKCiAgICAjIGNoZWNrIGlmIHRoZSBiYXNlIGZlZSBpcyBjb3JyZWN0CiAgICBpZiBoZWFkZXIubnVtYmVyID09IE1BSU5ORVRfRk9SS19CTE9DSzoKICAgICAgICBleHBlY3RlZF9iYXNlX2ZlZV9wZXJfZ2FzID0gSU5JVElBTF9CQVNFX0ZFRQogICAgZWxpZiBwYXJlbnRfZ2FzX3VzZWQgPT0gcGFyZW50X2dhc190YXJnZXQ6CiAgICAgICAgZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9IHBhcmVudF9iYXNlX2ZlZV9wZXJfZ2FzCiAgICBlbGlmIHBhcmVudF9nYXNfdXNlZCA+IHBhcmVudF9nYXNfdGFyZ2V0OgogICAgICAgIGdhc191c2VkX2RlbHRhID0gcGFyZW50X2dhc191c2VkIC0gcGFyZW50X2dhc190YXJnZXQKCiAgICAgICAgcGFyZW50X2ZlZV9nYXNfZGVsdGEgPSBwYXJlbnRfYmFzZV9mZWVfcGVyX2dhcyAqIGdhc191c2VkX2RlbHRhCiAgICAgICAgdGFyZ2V0X2ZlZV9nYXNfZGVsdGEgPSBwYXJlbnRfZmVlX2dhc19kZWx0YSAvLyBwYXJlbnRfZ2FzX3RhcmdldAoKICAgICAgICBiYXNlX2ZlZV9wZXJfZ2FzX2RlbHRhID0gbWF4KAogICAgICAgICAgICB0YXJnZXRfZmVlX2dhc19kZWx0YSAvLyBCQVNFX0ZFRV9NQVhfQ0hBTkdFX0RFTk9NSU5BVE9SLAogICAgICAgICAgICAxLAogICAgICAgICkKCiAgICAgICAgZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9ICgKICAgICAgICAgICAgcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgKyBiYXNlX2ZlZV9wZXJfZ2FzX2RlbHRhCiAgICAgICAgKQogICAgZWxzZToKICAgICAgICBnYXNfdXNlZF9kZWx0YSA9IHBhcmVudF9nYXNfdGFyZ2V0IC0gcGFyZW50X2dhc191c2VkCgogICAgICAgIHBhcmVudF9mZWVfZ2FzX2RlbHRhID0gcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgKiBnYXNfdXNlZF9kZWx0YQogICAgICAgIHRhcmdldF9mZWVfZ2FzX2RlbHRhID0gcGFyZW50X2ZlZV9nYXNfZGVsdGEgLy8gcGFyZW50X2dhc190YXJnZXQKCiAgICAgICAgYmFzZV9mZWVfcGVyX2dhc19kZWx0YSA9ICgKICAgICAgICAgICAgdGFyZ2V0X2ZlZV9nYXNfZGVsdGEgLy8gQkFTRV9GRUVfTUFYX0NIQU5HRV9ERU5PTUlOQVRPUgogICAgICAgICkKCiAgICAgICAgZXhwZWN0ZWRfYmFzZV9mZWVfcGVyX2dhcyA9ICgKICAgICAgICAgICAgcGFyZW50X2Jhc2VfZmVlX3Blcl9nYXMgLSBiYXNlX2ZlZV9wZXJfZ2FzX2RlbHRhCiAgICAgICAgKQoKICAgIGVuc3VyZShleHBlY3RlZF9iYXNlX2ZlZV9wZXJfZ2FzID09IGhlYWRlci5iYXNlX2ZlZV9wZXJfZ2FzLCBJbnZhbGlkQmxvY2spCgogICAglIWUgZR9lChoBWgGaCBqNh0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcavQUAABoIGouHQAAaCFoA2gdaERoH0sAdWJoP4zKcGFyZW50X2hhc19vbW1lcnMgPSBwYXJlbnRfaGVhZGVyLm9tbWVyc19oYXNoICE9IEVNUFRZX09NTUVSX0hBU0gKICAgIGVuc3VyZShoZWFkZXIudGltZXN0YW1wID4gcGFyZW50X2hlYWRlci50aW1lc3RhbXAsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShoZWFkZXIubnVtYmVyID09IHBhcmVudF9oZWFkZXIubnVtYmVyICsgMSwgSW52YWxpZEJsb2NrKZSFlIGUfZQoaAVoBmggai4dAABoIWgDaB1oRGgfSwB1Ymr1FAAAKYGUfZQoaAVoBmgHXZRoP4xsCiAgICBlbnN1cmUoCiAgICAgICAgY2hlY2tfZ2FzX2xpbWl0KGhlYWRlci5nYXNfbGltaXQsIHBhcmVudF9oZWFkZXIuZ2FzX2xpbWl0KSwKICAgICAgICBJbnZhbGlkQmxvY2ssCiAgICAplIWUgZR9lChoBWgGaCBqSB0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDmNoYW5nZS1yZW1vdmVklGFoFV2UaBddlGgZXZR1aBxq9BQAAGggai4dAABoIWgDaB1oRGgfSwB1Ymg/WOUBAAAKICAgIGVuc3VyZShsZW4oaGVhZGVyLmV4dHJhX2RhdGEpIDw9IDMyLCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfZGlmZmljdWx0eSA9IGNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5KAogICAgICAgIGhlYWRlci5udW1iZXIsCiAgICAgICAgaGVhZGVyLnRpbWVzdGFtcCwKICAgICAgICBwYXJlbnRfaGVhZGVyLnRpbWVzdGFtcCwKICAgICAgICBwYXJlbnRfaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgcGFyZW50X2hhc19vbW1lcnMsCiAgICApCiAgICBlbnN1cmUoaGVhZGVyLmRpZmZpY3VsdHkgPT0gYmxvY2tfZGlmZmljdWx0eSwgSW52YWxpZEJsb2NrKQoKICAgIGJsb2NrX3BhcmVudF9oYXNoID0ga2VjY2FrMjU2KHJscC5lbmNvZGUocGFyZW50X2hlYWRlcikpCiAgICBlbnN1cmUoaGVhZGVyLnBhcmVudF9oYXNoID09IGJsb2NrX3BhcmVudF9oYXNoLCBJbnZhbGlkQmxvY2spCgogICAgdmFsaWRhdGVfcHJvb2Zfb2Zfd29yayhoZWFkZXIpCpSFlIGUfZQoaAVoBmggai4dAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vc3BlYy5weZSMCXhtbDpzcGFjZZRqpAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGp2EQAASwFzjAdsaW5lbm9zlIl1aBxqXhEAAGgdaB5oH002AWggavAbAABoIWgDdWJlaA59lChoEF2Uai8DAABhaBNdlGgVXZSMD3ZhbGlkYXRlX2hlYWRlcpRhaBddlGgZXZR1aBxoM2gdaB5oH00hAWggaukQAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGU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TmggatAdAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcakgRAABoHWgeaB9OaCBqjB0AAHViZWgOfZQoaBBdlGgTXZQoaskdAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqyR0AAIwHb2JqdHlwZZRqCh8AAIwIZGVzY3R5cGWUagofAACMB25vaW5kZXiUiXVoHGoaEQAAaB1oRGgfSwBoIGpwHQAAaCFoA3Vial8RAAApgZR9lChoBVgDAgAAZGVmIGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3coaGVhZGVyOiBIZWFkZXIpIC0+IEhhc2gzMjoKICAgIGhlYWRlcl9kYXRhX3dpdGhvdXRfcG93X2FydGVmYWN0cyA9IFsKICAgICAgICBoZWFkZXIucGFyZW50X2hhc2gsCiAgICAgICAgaGVhZGVyLm9tbWVyc19oYXNoLAogICAgICAgIGhlYWRlci5jb2luYmFzZSwKICAgICAgICBoZWFkZXIuc3RhdGVfcm9vdCwKICAgICAgICBoZWFkZXIudHJhbnNhY3Rpb25zX3Jvb3QsCiAgICAgICAgaGVhZGVyLnJlY2VpcHRfcm9vdCwKICAgICAgICBoZWFkZXIuYmxvb20sCiAgICAgICAgaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIuZ2FzX2xpbWl0LAogICAgICAgIGhlYWRlci5nYXNfdXNlZCwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIGhlYWRlci5leHRyYV9kYXRhLAogICAgXQoKICAgIHJldHVybiBybHAucmxwX2hhc2goaGVhZGVyX2RhdGFfd2l0aG91dF9wb3dfYXJ0ZWZhY3RzKQqUaAddlChoP1jFAQAAZGVmIGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3coaGVhZGVyOiBIZWFkZXIpIC0+IEhhc2gzMjoKICAgIGhlYWRlcl9kYXRhX3dpdGhvdXRfcG93X2FydGVmYWN0cyA9IFsKICAgICAgICBoZWFkZXIucGFyZW50X2hhc2gsCiAgICAgICAgaGVhZGVyLm9tbWVyc19oYXNoLAogICAgICAg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aW1vdG9fbGlnaHQoCiAgICAgICAgaGVhZGVyX2hhc2gsIGhlYWRlci5ub25jZSwgY2FjaGUsIGRhdGFzZXRfc2l6ZShoZWFkZXIubnVtYmVyKQogICAgKQoKICAgIGVuc3VyZShtaXhfZGlnZXN0ID09IGhlYWRlci5taXhfZGlnZXN0LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoCiAgICAgICAgVWludC5mcm9tX2JlX2J5dGVzKHJlc3VsdCkgPD0gKFUyNTZfQ0VJTF9WQUxVRSAvLyBoZWFkZXIuZGlmZmljdWx0eSksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQqUaAddlGg/WDYCAABkZWYgdmFsaWRhdGVfcHJvb2Zfb2Zfd29yayhoZWFkZXI6IEhlYWRlcikgLT4gTm9uZToKICAgIGhlYWRlcl9oYXNoID0gZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3BvdyhoZWFkZXIpCiAgICAjIFRPRE86IE1lbW9pemUgdGhpcyBzb21ld2hlcmUgYW5kIHJlYWQgZnJvbSB0aGF0IGRhdGEgaW5zdGVhZCBvZgogICAgIyBjYWxjdWxhdGluZyBjYWNoZSBmb3IgZXZlcnkgYmxvY2sgdmFsaWRhdGlvbi4KICAgIGNhY2hlID0gZ2VuZXJhdGVfY2FjaGUoaGVhZGVyLm51bWJlcikKICAgIG1peF9kaWdlc3QsIHJlc3VsdCA9IGhhc2hpbW90b19saWdodCgKICAgICAgICBoZWFkZXJfaGFzaCwgaGVhZGVyLm5vbmNlLCBjYWNoZSwgZGF0YXNldF9zaXplKGhlYWRlci5udW1iZXIpCiAgICApCgogICAgZW5zdXJlKG1peF9kaWdlc3QgPT0gaGVhZGVyLm1peF9kaWdlc3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZSgKICAgICAgICBVaW50LmZyb21fYmVfYnl0ZXMocmVzdWx0KSA8PSAoVTI1Nl9DRUlMX1ZBTFVFIC8vIGhlYWRlci5kaWZmaWN1bHR5KSwKICAgICAgICBJbnZhbGlkQmxvY2ssCiAgICApCpSFlIGUfZQoaAVoBmggalAgAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRo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Dn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavUXAABoHWhEaB9LAGggar8hAABoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpIEQAAaB1oHmgfSwBoIGqKIAAAaCFoA3ViZWgOfZQoaBBdlGgTXZQoarghAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRquCEAAIwHb2JqdHlwZZRqGyUAAIwIZGVzY3R5cGWUahslAACMB25vaW5kZXiUiXVoHGoaEQAAaB1oRGgfSwBoIGpuIAAAaCFoA3Vial8RAAApgZR9lChoBVi0CAAAZGVmIGFwcGx5X2JvZHkoCiAgICBzdGF0ZTogU3RhdGUsCiAgICBibG9ja19oYXNoZXM6IExpc3RbSGFzaDMyXSwKICAgIGNvaW5iYXNlOiBBZGRyZXNzLAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAgYmxvY2tfZ2FzX2xpbWl0OiBVaW50LAogICAgYmxvY2tfdGltZTogVTI1NiwKICAgIGJsb2NrX2RpZmZpY3VsdHk6IFVpbnQsCiAgICB0cmFuc2FjdGlvbnM6IFR1cGxlW1VuaW9uW0xlZ2FjeVRyYW5zYWN0aW9uLCBCeXRlc10sIC4uLl0sCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwKICAgIGNoYWluX2lkOiBVaW50NjQsCikgLT4gVHVwbGVbVWludCwgUm9vdCwgUm9vdCwgQmxvb20sIFN0YXRlXToKICAgIGdhc19hdmFpbGFibGUgPSBibG9ja19nYXNfbGltaXQKICAgIHRyYW5zYWN0aW9uc190cmllOiBUcmllWwogICAgICAgIEJ5dGVzLCBPcHRpb25hbFtVbmlvbltCeXRlcywgTGVnYWN5VHJhbnNhY3Rpb25dXQogICAgXSA9IFRyaWUoc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lKQogICAgcmVjZWlwdHNfdHJpZTogVHJpZVtCeXRlcywgT3B0aW9uYWxbVW5pb25bQnl0ZXMsIFJlY2VpcHRdXV0gPSBUcmllKAogICAgICAgIHNlY3VyZWQ9RmFsc2UsIGRlZmF1bHQ9Tm9uZQogICAgKQogICAgYmxvY2tfbG9nczogVHVwbGVbTG9nLCAuLi5dID0gKCkKCiAgICBmb3IgaSwgdHggaW4gZW51bWVyYXRlKG1hcChkZWNvZGVfdHJhbnNhY3Rpb24sIHRyYW5zYWN0aW9ucykpOgogICAgICAgIHRyaWVfc2V0KAogICAgICAgICAgICB0cmFuc2FjdGlvbnNfdHJpZSwgcmxwLmVuY29kZShVaW50KGkpKSwgZW5jb2RlX3RyYW5zYWN0aW9uKHR4KQogICAgICAgICkKCiAgICAgICAgZW5zdXJlKHR4LmdhcyA8PSBnYXNfYXZhaWxhYmxlLCBJbnZhbGlkQmxvY2spCiAgICAgICAgc2VuZGVyX2FkZHJlc3MgPSByZWNvdmVyX3NlbmRlcihjaGFpbl9pZCwgdHgpCgogICAgICAgIGVudiA9IHZtLkVudmlyb25tZW50KAogICAgICAgICAgICBjYWxsZXI9c2VuZGVyX2FkZHJlc3MsCiAgICAgICAgICAgIG9yaWdpbj1zZW5kZXJfYWRkcmVzcywKICAgICAgICAgICAgYmxvY2tfaGFzaGVzPWJsb2NrX2hhc2hlcywKICAgICAgICAgICAgY29pbmJhc2U9Y29pbmJhc2UsCiAgICAgICAgICAgIG51bWJlcj1ibG9ja19udW1iZXIsCiAgICAgICAgICAgIGdhc19saW1pdD1ibG9ja19nYXNfbGltaXQsCiAgICAgICAgICAgIGdhc19wcmljZT10eC5nYXNfcHJpY2UsCiAgICAgICAgICAgIHRpbWU9YmxvY2tfdGltZSwKICAgICAgICAgICAgZGlmZmljdWx0eT1ibG9ja19kaWZmaWN1bHR5LAogICAgICAgICAgICBzdGF0ZT1zdGF0ZSwKICAgICAgICAgICAgY2hhaW5faWQ9Y2hhaW5faWQsCiAgICAgICAgKQoKICAgICAgICBnYXNfdXNlZCwgbG9ncywgaGFzX2VycmVkID0gcHJvY2Vzc190cmFuc2FjdGlvbihlbnYsIHR4KQogICAgICAgIGdhc19hdmFpbGFibGUgLT0gZ2FzX3VzZWQKCiAgICAgICAgcmVjZWlwdDogVW5pb25bQnl0ZXMsIFJlY2VpcHRdID0gUmVjZWlwdCgKICAgICAgICAgICAgc3VjY2VlZGVkPW5vdCBoYXNfZXJyZWQsCiAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQ9KGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUpLAogICAgICAgICAgICBibG9vbT1sb2dzX2Jsb29tKGxvZ3MpLAogICAgICAgICAgICBsb2dzPWxvZ3MsCiAgICAgICAgKQoKICAgICAgICBpZiBpc2luc3RhbmNlKHR4LCBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOgogICAgICAgICAgICByZWNlaXB0ID0gYiJceDAxIiArIHJscC5lbmNvZGUocmVjZWlwdCkKCiAgICAgICAgdHJpZV9zZXQoCiAgICAgICAgICAgIHJlY2VpcHRzX3RyaWUsCiAgICAgICAgICAgIHJscC5lbmNvZGUoVWludChpKSksCiAgICAgICAgICAgIHJlY2VpcHQsCiAgICAgICAgKQoKICAgICAgICBibG9ja19sb2dzICs9IGxvZ3MKCiAgICBwYXlfcmV3YXJkcyhzdGF0ZSwgYmxvY2tfbnVtYmVyLCBjb2luYmFzZSwgb21tZXJzKQoKICAgIGdhc19yZW1haW5pbmcgPSBibG9ja19nYXNfbGltaXQgLSBnYXNfYXZhaWxhYmxlCgogICAgYmxvY2tfbG9nc19ibG9vbSA9IGxvZ3NfYmxvb20oYmxvY2tfbG9ncykKCiAgICByZXR1cm4gKAogICAgICAgIGdhc19yZW1haW5pbmcsCiAgICAgICAgcm9vdCh0cmFuc2FjdGlvbnNfdHJpZSksCiAgICAgICAgcm9vdChyZWNlaXB0c190cmllKSwKICAgICAgICBibG9ja19sb2dzX2Jsb29tLAogICAgICAgIHN0YXRlLAogICAgKQqUaAddlChoP4x1ZGVmIGFwcGx5X2JvZHkoCiAgICBzdGF0ZTogU3RhdGUsCiAgICBibG9ja19oYXNoZXM6IExpc3RbSGFzaDMyXSwKICAgIGNvaW5iYXNlOiBBZGRyZXNzLAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAglIWUgZR9lChoBWgGaCBqIyUAAGghaANoHWhEaB9LAHViavUUAAApgZR9lChoBWgGaAddlGg/jBxiYXNlX2ZlZV9wZXJfZ2FzOiBVaW50LAogICAglIWUgZR9lChoBWgGaCBqKyUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcavQUAABoIGojJQAAaCFoA2gdaERoH0sAdWJoP1hGAwAAYmxvY2tfZ2FzX2xpbWl0OiBVaW50LAogICAgYmxvY2tfdGltZTogVTI1NiwKICAgIGJsb2NrX2RpZmZpY3VsdHk6IFVpbnQsCiAgICB0cmFuc2FjdGlvbnM6IFR1cGxlW1VuaW9uW0xlZ2FjeVRyYW5zYWN0aW9uLCBCeXRlc10sIC4uLl0sCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwKICAgIGNoYWluX2lkOiBVaW50NjQsCikgLT4gVHVwbGVbVWludCwgUm9vdCwgUm9vdCwgQmxvb20sIFN0YXRlXToKICAgIGdhc19hdmFpbGFibGUgPSBibG9ja19nYXNfbGltaXQKICAgIHRyYW5zYWN0aW9uc190cmllOiBUcmllWwogICAgICAgIEJ5dGVzLCBPcHRpb25hbFtVbmlvbltCeXRlcywgTGVnYWN5VHJhbnNhY3Rpb25dXQogICAgXSA9IFRyaWUoc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lKQogICAgcmVjZWlwdHNfdHJpZTogVHJpZVtCeXRlcywgT3B0aW9uYWxbVW5pb25bQnl0ZXMsIFJlY2VpcHRdXV0gPSBUcmllKAogICAgICAgIHNlY3VyZWQ9RmFsc2UsIGRlZmF1bHQ9Tm9uZQogICAgKQogICAgYmxvY2tfbG9nczogVHVwbGVbTG9nLCAuLi5dID0gKCkKCiAgICBmb3IgaSwgdHggaW4gZW51bWVyYXRlKG1hcChkZWNvZGVfdHJhbnNhY3Rpb24sIHRyYW5zYWN0aW9ucykpOgogICAgICAgIHRyaWVfc2V0KAogICAgICAgICAgICB0cmFuc2FjdGlvbnNfdHJpZSwgcmxwLmVuY29kZShVaW50KGkpKSwgZW5jb2RlX3RyYW5zYWN0aW9uKHR4KQogICAgICAgICkKCiAgICAgICAgZW5zdXJlKHR4LmdhcyA8PSBnYXNfYXZhaWxhYmxlLCBJbnZhbGlkQmxvY2spCiAgICAgICAgc2VuZGVyX2FkZHJl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KGxvZ3MpLAogICAgICAgICAgICBsb2dzPWxvZ3MsCiAgICAgICAgKQoKICAgICAgICBpZiBpc2luc3RhbmNlKHR4LCBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOgogICAgICAgICAgICByZWNlaXB0ID0gYiJceDAxIiArIHJscC5lbmNvZGUocmVjZWlwdCkKCiAgICAgICAglIWUgZR9lChoBWgGaCBqIyUAAGghaANoHWhEaB9LAHViavUUAAApgZR9lChoBWgGaAddlGg/jGZpZiBpc2luc3RhbmNlKHR4LCBGZWVNYXJrZXRUcmFuc2FjdGlvbik6CiAgICAgICAgICAgIHJlY2VpcHQgPSBiIlx4MDIiICsgcmxwLmVuY29kZShyZWNlaXB0KQoKICAgICAgICCUhZSBlH2UKGgFaAZoIGpvJQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwMY2hhbmdlLWFkZGVklGFoFV2UaBddlGgZXZR1aBxq9BQAAGggaiMlAABoIWgDaB1oRGgfSwB1Ymg/WK8BAAB0cmllX3NldCgKICAgICAgICAgICAgcmVjZWlwdHNfdHJpZSwKICAgICAgICAgICAgcmxwLmVuY29kZShVaW50KGkpKSwKICAgICAgICAgICAgcmVjZWlwdCwKICAgICAgICApCgogICAgICAgIGJsb2NrX2xvZ3MgKz0gbG9ncwoKICAgIHBheV9yZXdhcmRzKHN0YXRlLCBibG9ja19udW1iZXIsIGNvaW5iYXNlLCBvbW1lcnMpCgogICAgZ2FzX3JlbWFpbmluZyA9IGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUKCiAgICBibG9ja19sb2dzX2Jsb29tID0gbG9nc19ibG9vbShibG9ja19sb2dzKQoKICAgIHJldHVybiAoCiAgICAgICAgZ2FzX3JlbWFpbmluZywKICAgICAgICByb290KHRyYW5zYWN0aW9uc190cmllKSwKICAgICAgICByb290KHJlY2VpcHRzX3RyaWUpLAogICAgICAgIGJsb2NrX2xvZ3NfYmxvb20sCiAgICAgICAgc3RhdGUsCiAgICApCpSFlIGUfZQoaAVoBmggaiMlAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12U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ZGVyKG9tbWVyLCBvbW1lcl9wYXJlbnRfaGVhZGVyKQoKICAgICMgQ2hlY2sgdGhhdCB0aGVyZSBjYW4gYmUgb25seSBhdCBtb3N0IDIgb21tZXJzIGZvciBhIGJsb2NrLgogICAgZW5zdXJlKGxlbihvbW1lcnMpIDw9IDIsIEludmFsaWRCbG9jaykKCiAgICBvbW1lcnNfaGFzaGVzID0gW3JscC5ybHBfaGFzaChvbW1lcikgZm9yIG9tbWVyIGluIG9tbWVyc10KICAgICMgQ2hlY2sgdGhhdCB0aGVyZSBhcmUgbm8gZHVwbGljYXRlcyBpbiB0aGUgb21tZXJzIG9mIGN1cnJlbnQgYmxvY2sKICAgIGVuc3VyZShsZW4ob21tZXJzX2hhc2hlcykgPT0gbGVuKHNldChvbW1lcnNfaGFzaGVzKSksIEludmFsaWRCbG9jaykKCiAgICByZWNlbnRfY2Fub25pY2FsX2Jsb2NrcyA9IGNoYWluLmJsb2Nrc1stKE1BWF9PTU1FUl9ERVBUSCArIDEpIDpdCiAgICByZWNlbnRfY2Fub25pY2FsX2Jsb2NrX2hhc2hlcyA9IHsKICAgICAgICBybHAucmxwX2hhc2goYmxvY2suaGVhZGVyKSBmb3IgYmxvY2sgaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3MKICAgIH0KICAgIHJlY2VudF9vbW1lcnNfaGFzaGVzOiBTZXRbSGFzaDMyXSA9IHNldCgpCiAgICBmb3IgYmxvY2sgaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3M6CiAgICAgICAgcmVjZW50X29tbWVyc19oYXNoZXMgPSByZWNlbnRfb21tZXJzX2hhc2hlcy51bmlvbigKICAgICAgICAgICAge3JscC5ybHBfaGFzaChvbW1lcikgZm9yIG9tbWVyIGluIGJsb2NrLm9tbWVyc30KICAgICAgICApCgogICAgZm9yIG9tbWVyX2luZGV4LCBvbW1lciBpbiBlbnVtZXJhdGUob21tZXJzKToKICAgICAgICBvbW1lcl9oYXNoID0gb21tZXJzX2hhc2hlc1tvbW1lcl9pbmRleF0KICAgICAgICAjIFRoZSBjdXJyZW50IGJsb2NrIHNob3VsZG4ndCBiZSB0aGUgb21tZXIKICAgICAgICBlbnN1cmUob21tZXJfaGFzaCAhPSBibG9ja19oYXNoLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgc2hvdWxkbid0IGJlIG9uZSBvZiB0aGUgcmVjZW50IGNhbm9uaWNhbCBibG9ja3MKICAgICAgICBlbnN1cmUob21tZXJfaGFzaCBub3QgaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMsIEludmFsaWRCbG9jaykKCiAgICAgICAgIyBPbW1lciBzaG91bGRuJ3QgYmUgb25lIG9mIHRoZSB1bmNsZXMgbWVudGlvbmVkIGluIHRoZSByZWNlbnQKICAgICAgICAjIGNhbm9uaWNhbCBibG9ja3MKICAgICAgICBlbnN1cmUob21tZXJfaGFzaCBub3QgaW4gcmVjZW50X29tbWVyc19oYXNoZXMsIEludmFsaWRCbG9jaykKCiAgICAgICAgIyBPbW1lciBhZ2Ugd2l0aCByZXNwZWN0IHRvIHRoZSBjdXJyZW50IGJsb2NrLiBGb3IgZXhhbXBsZSwgYW4gYWdlIG9mCiAgICAgICAgIyAxIGluZGljYXRlcyB0aGF0IHRoZSBvbW1lciBpcyBhIHNpYmxpbmcgb2YgcHJldmlvdXMgYmxvY2suCiAgICAgICAgb21tZXJfYWdlID0gYmxvY2tfaGVhZGVyLm51bWJlciAtIG9tbWVyLm51bWJlcgogICAgICAgIGVuc3VyZSgxIDw9IG9tbWVyX2FnZSA8PSBNQVhfT01NRVJfREVQVEgsIEludmFsaWRCbG9jaykKCiAgICAgICAgZW5zdXJlKAogICAgICAgICAgICBvbW1lci5wYXJlbnRfaGFzaCBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrX2hhc2hlcywgSW52YWxpZEJsb2NrCiAgICAgICAgKQogICAgICAgIGVuc3VyZShvbW1lci5wYXJlbnRfaGFzaCAhPSBibG9ja19oZWFkZXIucGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKlJUBAAEAAAAAAGgHXZRoP1gBCQAAZGVmIHZhbGlkYXRlX29tbWVycygKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLCBibG9ja19oZWFkZXI6IEhlYWRlciwgY2hhaW46IEJsb2NrQ2hhaW4KKSAtPiBOb25lOgogICAgYmxvY2tfaGFzaCA9IHJscC5ybHBfaGFzaChibG9ja19oZWFkZXIpCgogICAgZW5zdXJlKHJscC5ybHBfaGFzaChvbW1lcnMpID09IGJsb2NrX2hlYWRlci5vbW1lcnNfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGxlbihvbW1lcnMpID09IDA6CiAgICAgICAgIyBOb3RoaW5nIHRvIHZhbGlkYXRlCiAgICAgICAgcmV0dXJuCgogICAgIyBDaGVjayB0aGF0IGVhY2ggb21tZXIgc2F0aXNmaWVzIHRoZSBjb25zdHJhaW50cyBvZiBhIGhlYWRlcgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lci5udW1iZXIgPCBibG9ja19oZWFkZXIubnVtYmVyLCBJbnZhbGlkQmxvY2spCiAgICAgICAgb21tZXJfcGFyZW50X2hlYWRlciA9IGNoYWluLmJsb2Nrc1sKICAgICAgICAgICAgLShibG9ja19oZWFkZXIubnVtYmVyIC0gb21tZXIubnVtYmVyKSAtIDEKICAgICAgICBdLmhlYWRlcgogICAgICAgIHZhbGlkYXRlX2hlYWRlcihvbW1lciwgb21tZXJfcGFyZW50X2hlYWRlcikKCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgY2FuIGJlIG9ubHkgYXQgbW9zdCAyIG9tbWVycyBmb3IgYSBibG9jay4KICAgIGVuc3VyZShsZW4ob21tZXJzKSA8PSAyLCBJbnZhbGlkQmxvY2spCgogICAgb21tZXJzX2hhc2hlcyA9IFtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBvbW1lcnNdCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgYXJlIG5vIGR1cGxpY2F0ZXMgaW4gdGhlIG9tbWVycyBvZiBjdXJyZW50IGJsb2NrCiAgICBlbnN1cmUobGVuKG9tbWVyc19oYXNoZXMpID09IGxlbihzZXQob21tZXJzX2hhc2hlcykpLCBJbnZhbGlkQmxvY2spCgogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLShNQVhfT01NRVJfREVQVEggKyAxKSA6XQogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMgPSB7CiAgICAgICAgcmxwLnJscF9oYXNoKGJsb2NrLmhlYWRlcikgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzCiAgICB9CiAgICByZWNlbnRfb21tZXJzX2hhc2hlczogU2V0W0hhc2gzMl0gPSBzZXQoKQogICAgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzOgogICAgICAgIHJlY2VudF9vbW1lcnNfaGFzaGVzID0gcmVjZW50X29tbWVyc19oYXNoZXMudW5pb24oCiAgICAgICAgICAgIHtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBibG9jay5vbW1lcnN9CiAgICAgICAgKQoKICAgIGZvciBvbW1lcl9pbmRleCwgb21tZXIgaW4gZW51bWVyYXRlKG9tbWVycyk6CiAgICAgICAgb21tZXJfaGFzaCA9IG9tbWVyc19oYXNoZXNbb21tZXJfaW5kZXhdCiAgICAgICAgIyBUaGUgY3VycmVudCBibG9jayBzaG91bGRuJ3QgYmUgdGhlIG9tbWVyCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggIT0gYmxvY2tfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHJlY2VudCBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgc2hvdWxkbid0IGJlIG9uZSBvZiB0aGUgdW5jbGVzIG1lbnRpb25lZCBpbiB0aGUgcmVjZW50CiAgICAgICAgIyBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9vbW1lcnNfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgYWdlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBibG9jay4gRm9yIGV4YW1wbGUsIGFuIGFnZSBvZgogICAgICAgICMgMSBpbmRpY2F0ZXMgdGhhdCB0aGUgb21tZXIgaXMgYSBzaWJsaW5nIG9mIHByZXZpb3VzIGJsb2NrLgogICAgICAgIG9tbWVyX2FnZSA9IGJsb2NrX2hlYWRlci5udW1iZXIgLSBvbW1lci5udW1iZXIKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lcl9hZ2UgPD0gTUFYX09NTUVSX0RFUFRILCBJbnZhbGlkQmxvY2spCgogICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgb21tZXIucGFyZW50X2hhc2ggaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMsIEludmFsaWRCbG9jawogICAgICAgICkKICAgICAgICBlbnN1cmUob21tZXIucGFyZW50X2hhc2ggIT0gYmxvY2tfaGVhZGVyLnBhcmVudF9oYXNoLCBJbnZhbGlkQmxvY2spCpSFlIGUfZQoaAVoBmggag8nAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vc3BlYy5weZSMCXhtbDpzcGFjZZRqpAUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGp2EQAASwFzjAdsaW5lbm9zlIl1aBxqXhEAAGgdaB5oH020AWggapclAAB1YmVoDn2UKGgQXZRqtwMAAGFoE12UaBVdlIwPdmFsaWRhdGVfb21tZXJzlGFoF12UaBldlHVoHGgzaB1oHmgfTZwBaCBq6RAAAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwLcGF5X3Jld2FyZHOUaAddlGg/jAtwYXlfcmV3YXJkc5SFlIGUfZQoaAVoBmggajAnAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDho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aW5lZApibG9jayByZXdhcmQsIGBgQkxPQ0tfUkVXQVJEYGAsIHBsdXMgYSB2YXJpYWJsZSBhd2FyZCBiYXNlZCBvZmYgb2YgdGhlCm51bWJlciBvZiBvbW1lciBibG9ja3MgdGhhdCB3ZXJlIG1pbmVkIGFyb3VuZCB0aGUgc2FtZSB0aW1lLCBhbmQgaW5jbHVkZWQKaW4gdGhlIGNhbm9uaWNhbCBibG9jaydzIGhlYWRlci4gQW4gb21tZXIgYmxvY2sgaXMgYSBibG9jayB0aGF0IHdhc24ndAphZGRlZCB0byB0aGUgY2Fub25pY2FsIGJsb2NrY2hhaW4gYmVjYXVzZSBpdCB3YXNuJ3QgdmFsaWRhdGVkIGFzIGZhc3QgYXMKdGhlIGFjY2VwdGVkIGJsb2NrIGJ1dCB3YXMgbWluZWQgYXQgdGhlIHNhbWUgdGltZS4gQWx0aG91Z2ggbm90IGFsbCBibG9ja3MKdGhhdCBhcmUgbWluZWQgYXJlIGFkZGVkIHRvIHRoZSBjYW5vbmljYWwgY2hhaW4sIG1pbmVycyBhcmUgc3RpbGwgcGFpZCBhCnJld2FyZCBmb3IgdGhlaXIgZWZmb3J0cy4gVGhpcyByZXdhcmQgaXMgY2FsbGVkIGFuIG9tbWVyIHJld2FyZCBhbmQgaXMKY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgb21tZXIgYmxvY2sgdGhhdCB0aGV5Cm1pbmVkLpRoB12UKGg/jFJUaGUgbWluZXIgb2YgdGhlIGNhbm9uaWNhbCBibG9jayBpcyByZXdhcmRlZCB3aXRoIHRoZSBwcmVkZXRlcm1pbmVkCmJsb2NrIHJld2FyZCwglIWUgZR9lChoBWgGaCBq5icAAGghaANoHWhEaB9LAHViahoGAAApgZR9lChoBYwQYGBCTE9DS19SRVdBUkRgYJRoB12UaD+MDEJMT0NLX1JFV0FSRJSFlIGUfZQoaAVoBmggau4nAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcahkGAABoHU5oH05oIGrmJwAAdWJoP1gzAgAALCBwbHVzIGEgdmFyaWFibGUgYXdhcmQgYmFzZWQgb2ZmIG9mIHRoZQpudW1iZXIgb2Ygb21tZXIgYmxvY2tzIHRoYXQgd2VyZSBtaW5lZCBhcm91bmQgdGhlIHNhbWUgdGltZSwgYW5kIGluY2x1ZGVkCmluIHRoZSBjYW5vbmljYWwgYmxvY2vigJlzIGhlYWRlci4gQW4gb21tZXIgYmxvY2sgaXMgYSBibG9jayB0aGF0IHdhc27igJl0CmFkZGVkIHRvIHRoZSBjYW5vbmljYWwgYmxvY2tjaGFpbiBiZWNhdXNlIGl0IHdhc27igJl0IHZhbGlkYXRlZCBhcyBmYXN0IGFzCnRoZSBhY2NlcHRlZCBibG9jayBidXQgd2FzIG1pbmVkIGF0IHRoZSBzYW1lIHRpbWUuIEFsdGhvdWdoIG5vdCBhbGwgYmxvY2tzCnRoYXQgYXJlIG1pbmVkIGFyZSBhZGRlZCB0byB0aGUgY2Fub25pY2FsIGNoYWluLCBtaW5lcnMgYXJlIHN0aWxsIHBhaWQgYQpyZXdhcmQgZm9yIHRoZWlyIGVmZm9ydHMuIFRoaXMgcmV3YXJkIGlzIGNhbGxlZCBhbiBvbW1lciByZXdhcmQgYW5kIGlzCmNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIG9tbWVyIGJsb2NrIHRoYXQgdGhleQptaW5lZC6UhZSBlH2UKGgFaAZoIGrmJwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTcEBaCBq1ScAAHViavYXAAApgZR9lChoBWgGaAddlGr7FwAAKYGUfZQoaAVoBmgHXZQoagAYAAApgZR9lChoBYwKUGFyYW1ldGVyc5RoB12UaD+MClBhcmFtZXRlcnOUhZSBlH2UKGgFaAZoIGoMKAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr/FwAAaB1oHmgfSwBoIGoJKAAAdWJqEBgAACmBlH2UKGgFaAZoB12UaF8pgZR9lChoBWgGaAddlChoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwfc3RhdGUgLS0gQ3VycmVudCBhY2NvdW50IHN0YXRlLpRoB12UKGoZGAAAKYGUfZQoaAWMBXN0YXRllGgHXZRoP4wFc3RhdGWUhZSBlH2UKGgFaAZoIGonKAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGpFEQAAjAhweTpjbGFzc5ROdWgcahgYAABoHU5oH05oIGojKAAAdWJoP4wbIOKAkyBDdXJyZW50IGFjY291bnQgc3RhdGUulIWUgZR9lChoBWgGaCBqIygAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaiAoAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGodKAAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw3YmxvY2tfbnVtYmVyIC0tIFBvc2l0aW9uIG9mIHRoZSBibG9jayB3aXRoaW4gdGhlIGNoYWluLpRoB12UKGoZGAAAKYGUfZQoaAWMDGJsb2NrX251bWJlcpRoB12UaD+MDGJsb2NrX251bWJlcpSFlIGUfZQoaAVoBmggak8oAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUakURAACMCHB5OmNsYXNzlE51aBxqGBgAAGgdTmgfTmggaksoAAB1Ymg/jCwg4oCTIFBvc2l0aW9uIG9mIHRoZSBibG9jayB3aXRoaW4gdGhlIGNoYWluLpSFlIGUfZQoaAVoBmggaksoAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGpIKAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1OaB9OaCBqHSgAAHViaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMUGNvaW5iYXNlIC0tIEFkZHJlc3Mgb2YgYWNjb3VudCB3aGljaCByZWNlaXZlcyBibG9jayByZXdhcmQgYW5kIHRyYW5zYWN0aW9uIGZlZXMulGgHXZQoahkYAAApgZR9lChoBYwIY29pbmJhc2WUaAddlGg/jAhjb2luYmFzZZSFlIGUfZQoaAVoBmggancoAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUakURAACMCHB5OmNsYXNzlE51aBxqGBgAAGgdTmgfTmgganMoAAB1Ymg/jEkg4oCTIEFkZHJlc3Mgb2YgYWNjb3VudCB3aGljaCByZWNlaXZlcyBibG9jayByZXdhcmQgYW5kIHRyYW5zYWN0aW9uIGZlZXMulIWUgZR9lChoBWgGaCBqcygAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmgganAoAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGodKAAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw4b21tZXJzIC0tIExpc3Qgb2Ygb21tZXJzIG1lbnRpb25lZCBpbiB0aGUgY3VycmVudCBibG9jay6UaAddlChqGRgAACmBlH2UKGgFjAZvbW1lcnOUaAddlGg/jAZvbW1lcnOUhZSBlH2UKGgFaAZoIGqfKAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGpFEQAAjAhweTpjbGFzc5ROdWgcahgYAABoHU5oH05oIGqbKAAAdWJoP4wzIOKAkyBMaXN0IG9mIG9tbWVycyBtZW50aW9uZWQgaW4gdGhlIGN1cnJlbnQgYmxvY2sulIWUgZR9lChoBWgGaCBqmygAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggapgoAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGodKAAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1OaB9OaCBqGigAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqDxgAAGgdTmgfTmggagkoAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavoXAABoHU5oH05oIGoGKAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr1FwAAaB1OaB9OaCBq1ScAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqSBEAAGgdaB5oH05oIGpJJwAAdWJlaA59lChoEF2UaBNdlChqzicAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGrOJwAAjAdvYmp0eXBllGrhKAAAjAhkZXNjdHlwZZRq4SgAAIwHbm9pbmRleJSJdWgcahoRAABoHU5oH05oIGotJwAAdWJqXxEAACmBlH2UKGgFWP4BAABkZWYgcGF5X3Jld2FyZHMoCiAgICBzdGF0ZTogU3RhdGUsCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBjb2luYmFzZTogQWRkcmVzcywKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLAopIC0+IE5vbmU6CiAgICBtaW5lcl9yZXdhcmQgPSBCTE9DS19SRVdBUkQgKyAobGVuKG9tbWVycykgKiAoQkxPQ0tfUkVXQVJEIC8vIDMyKSkKICAgIGNyZWF0ZV9ldGhlcihzdGF0ZSwgY29pbmJhc2UsIG1pbmVyX3Jld2FyZCkKCiAgICBmb3Igb21tZXIgaW4gb21tZXJzOgogICAgICAgICMgT21tZXIgYWdlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBibG9jay4KICAgICAgICBvbW1lcl9hZ2UgPSBVMjU2KGJsb2NrX251bWJlciAtIG9tbWVyLm51bWJlcikKICAgICAgICBvbW1lcl9taW5lcl9yZXdhcmQgPSAoKDggLSBvbW1lcl9hZ2UpICogQkxPQ0tfUkVXQVJEKSAvLyA4CiAgICAgICAgY3JlYXRlX2V0aGVyKHN0YXRlLCBvbW1lci5jb2luYmFzZSwgb21tZXJfbWluZXJfcmV3YXJkKQqUaAddlGg/WP4BAABkZWYgcGF5X3Jld2FyZHMoCiAgICBzdGF0ZTogU3RhdGUsCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBjb2luYmFzZTogQWRkcmVzcywKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLAopIC0+IE5vbmU6CiAgICBtaW5lcl9yZXdhcmQgPSBCTE9DS19SRVdBUkQg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CGZ1bGxuYW1llGosKQAAdWgcah8RAABoHWgeaB9N3AFoIGojKQAAdWJqSREAACmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAWMN0V4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudC6UaAddlGg/jDdFeGVjdXRlIGEgdHJhbnNhY3Rpb24gYWdhaW5zdCB0aGUgcHJvdmlkZWQgZW52aXJvbm1lbnQulIWUgZR9lChoBWgGaCBqgikAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03fAWggan8pAAB1YmhpKYGUfZQoaAVYWwEAAFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSBhY3Rpb25zIG5lZWRlZCB0byBleGVjdXRlIGEgdHJhbnNhY3Rpb24uCkl0IGRlY3JlbWVudHMgdGhlIHNlbmRlcidzIGFjY291bnQgYWZ0ZXIgY2FsY3VsYXRpbmcgdGhlIGdhcyBmZWUgYW5kCnJlZnVuZHMgdGhlbSB0aGUgcHJvcGVyIGFtb3VudCBhZnRlciBleGVjdXRpb24uIENhbGxpbmcgY29udHJhY3RzLApkZXBsb3lpbmcgY29kZSwgYW5kIGluY3JlbWVudGluZyBub25jZXMgYXJlIGFsbCBleGFtcGxlcyBvZiBhY3Rpb25zIHRoYXQKaGFwcGVuIHdpdGhpbiB0aGlzIGZ1bmN0aW9uIG9yIGZyb20gYSBjYWxsIG1hZGUgd2l0aGluIHRoaXMgZnVuY3Rpb24ulGgHXZRoP1hdAQAAVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIGFjdGlvbnMgbmVlZGVkIHRvIGV4ZWN1dGUgYSB0cmFuc2FjdGlvbi4KSXQgZGVjcmVtZW50cyB0aGUgc2VuZGVy4oCZcyBhY2NvdW50IGFmdGVyIGNhbGN1bGF0aW5nIHRoZSBnYXMgZmVlIGFuZApyZWZ1bmRzIHRoZW0gdGhlIHByb3BlciBhbW91bnQgYWZ0ZXIgZXhlY3V0aW9uLiBDYWxsaW5nIGNvbnRyYWN0cywKZGVwbG95aW5nIGNvZGUsIGFuZCBpbmNyZW1lbnRpbmcgbm9uY2VzIGFyZSBh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lChoBVjQCQAAZGVmIHByb2Nlc3NfdHJhbnNhY3Rpb24oCiAgICBlbnY6IHZtLkVudmlyb25tZW50LCB0eDogVHJhbnNhY3Rpb24KKSAtPiBUdXBsZVtVMjU2LCBUdXBsZVtMb2csIC4uLl0sIGJvb2xdOgogICAgZW5zdXJlKHZhbGlkYXRlX3RyYW5zYWN0aW9uKHR4KSwgSW52YWxpZEJsb2NrKQoKICAgIHNlbmRlciA9IGVudi5vcmlnaW4KICAgIHNlbmRlcl9hY2NvdW50ID0gZ2V0X2FjY291bnQoZW52LnN0YXRlLCBzZW5kZXIpCiAgICBnYXNfZmVlID0gdHguZ2FzICogdHguZ2FzX3ByaWNlCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQubm9uY2UgPT0gdHgubm9uY2UsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5iYWxhbmNlID49IGdhc19mZWUgKyB0eC52YWx1ZSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50LmNvZGUgPT0gYnl0ZWFycmF5KCksIEludmFsaWRCbG9jaykKCiAgICBnYXMgPSB0eC5nYXMgLSBjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3QodHgpCiAgICBpbmNyZW1lbnRfbm9uY2UoZW52LnN0YXRlLCBzZW5kZXIpCiAgICBzZW5kZXJfYmFsYW5jZV9hZnRlcl9nYXNfZmVlID0gc2VuZGVyX2FjY291bnQuYmFsYW5jZSAtIGdhc19mZWUKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUpCgogICAgcHJlYWNjZXNzZWRfYWRkcmVzc2VzID0gc2V0KCkKICAgIHByZWFjY2Vzc2VkX3N0b3JhZ2Vfa2V5cyA9IHNldCgpCiAgICBpZiBpc2luc3RhbmNlKHR4LCBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOgogICAgICAgIGZvciAoYWRkcmVzcywga2V5cykgaW4gdHguYWNjZXNzX2xpc3Q6CiAgICAgICAgICAgIHByZWFjY2Vzc2VkX2FkZHJlc3Nlcy5hZGQoYWRkcmVzcykKICAgICAgICAgICAgZm9yIGtleSBpbiBrZXlzOgogICAgICAgICAgICAgICAgcHJlYWNjZXNzZWRfc3RvcmFnZV9rZXlzLmFkZCgoYWRkcmVzcywga2V5KSkKCiAgICBtZXNzYWdlID0gcHJlcGFyZV9tZXNzYWdlKAogICAgICAgIHNlbmRlciwKICAgICAgICB0eC50bywKICAgICAgICB0eC52YWx1ZSwKICAgICAgICB0eC5kYXRhLAogICAgICAgIGdhcywKICAgICAgICBlbnYsCiAgICAgICAgcHJlYWNjZXNzZWRfYWRkcmVzc2VzPWZyb3plbnNldChwcmVhY2Nlc3NlZF9hZGRyZXNzZXMpLAogICAgICAgIHByZWFjY2Vzc2VkX3N0b3JhZ2Vfa2V5cz1mcm96ZW5zZXQocHJlYWNjZXNzZWRfc3RvcmFnZV9rZXlzKSwKICAgICkKCiAgICBvdXRwdXQgPSBwcm9jZXNzX21lc3NhZ2VfY2FsbChtZXNzYWdlLCBlbnYpCgogICAgZ2FzX3VzZWQgPSB0eC5nYXMgLSBvdXRwdXQuZ2FzX2xlZnQKICAgIGdhc19yZWZ1bmQgPSBtaW4oZ2FzX3VzZWQgLy8gMiwgb3V0cHV0LnJlZnVuZF9jb3VudGVyKQogICAgZ2FzX3JlZnVuZF9hbW91bnQgPSAob3V0cHV0Lmdhc19sZWZ0ICsgZ2FzX3JlZnVuZCkgKiB0eC5nYXNfcHJpY2UKICAgIHRyYW5zYWN0aW9uX2ZlZSA9ICh0eC5nYXMgLSBvdXRwdXQuZ2FzX2xlZnQgLSBnYXNfcmVmdW5kKSAqIHR4Lmdhc19wcmljZQogICAgdG90YWxfZ2FzX3VzZWQgPSBnYXNfdXNlZCAtIGdhc19yZWZ1bmQKCiAgICAjIHJlZnVuZCBnYXMKICAgIHNlbmRlcl9iYWxhbmNlX2FmdGVyX3JlZnVuZCA9ICgKICAgICAgICBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikuYmFsYW5jZSArIGdhc19yZWZ1bmRfYW1vdW50CiAgICApCiAgICBzZXRfYWNjb3VudF9iYWxhbmNlKGVudi5zdGF0ZSwgc2VuZGVyLCBzZW5kZXJfYmFsYW5jZV9hZnRlcl9yZWZ1bmQpCgogICAgIyB0cmFuc2ZlciBtaW5lciBmZWVzCiAgICBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUgPSAoCiAgICAgICAgZ2V0X2FjY291bnQoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpLmJhbGFuY2UgKyB0cmFuc2FjdGlvbl9mZWUKICAgICkKICAgIGlmIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZSAhPSAwOgogICAgICAgIHNldF9hY2NvdW50X2JhbGFuY2UoCiAgICAgICAgICAgIGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlLCBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUKICAgICAgICApCiAgICBlbGlmIGFjY291bnRfZXhpc3RzX2FuZF9pc19lbXB0eShlbnYuc3RhdGUsIGVudi5jb2luYmFzZSk6CiAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKQoKICAgIGZvciBhZGRyZXNzIGluIG91dHB1dC5hY2NvdW50c190b19kZWxldGU6CiAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgYWRkcmVzcykKCiAgICBmb3IgYWRkcmVzcyBpbiBvdXRwdXQudG91Y2hlZF9hY2NvdW50czoKICAgICAgICBpZiBhY2NvdW50X2V4aXN0c19hbmRfaXNfZW1wdHkoZW52LnN0YXRlLCBhZGRyZXNzKToKICAgICAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgYWRkcmVzcykKCiAgICByZXR1cm4gdG90YWxfZ2FzX3VzZWQsIG91dHB1dC5sb2dzLCBvdXRwdXQuaGFzX2VycmVkCpRoB12UKGg/jO9kZWYgcHJvY2Vzc190cmFuc2FjdGlvbigKICAgIGVudjogdm0uRW52aXJvbm1lbnQsIHR4OiBUcmFuc2FjdGlvbgopIC0+IFR1cGxlW1UyNTYsIFR1cGxlW0xvZywgLi4uXSwgYm9vbF06CiAgICBlbnN1cmUodmFsaWRhdGVfdHJhbnNhY3Rpb24odHgpLCBJbnZhbGlkQmxvY2spCgogICAgc2VuZGVy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ZCA9ICgKICAgICAgICBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikuYmFsYW5jZSArIGdhc19yZWZ1bmRfYW1vdW50CiAgICApCiAgICBzZXRfYWNjb3VudF9iYWxhbmNlKGVudi5zdGF0ZSwgc2VuZGVyLCBzZW5kZXJfYmFsYW5jZV9hZnRlcl9yZWZ1bmQpCgogICAgIyB0cmFuc2ZlciBtaW5lciBmZWVzCiAgICBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUgPSAoCiAgICAgICAgZ2V0X2FjY291bnQoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpLmJhbGFuY2UgKyB0cmFuc2FjdGlvbl9mZWUKICAgICkKICAgIGlmIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZSAhPSAwOgogICAgICAgIHNldF9hY2NvdW50X2JhbGFuY2UoCiAgICAgICAgICAgIGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlLCBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUKICAgICAgICApCiAgICBlbGlmIGFjY291bnRfZXhpc3RzX2FuZF9pc19lbXB0eShlbnYuc3RhdGUsIGVudi5jb2luYmFzZSk6CiAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKQoKICAgIGZvciBhZGRyZXNzIGluIG91dHB1dC5hY2NvdW50c190b19kZWxldGU6CiAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgYWRkcmVzcykKCiAgICBmb3IgYWRkcmVzcyBpbiBvdXRwdXQudG91Y2hlZF9hY2NvdW50czoKICAgICAgICBpZiBhY2NvdW50X2V4aXN0c19hbmRfaXNfZW1wdHkoZW52LnN0YXRlLCBhZGRyZXNzKToKICAgICAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgYWRkcmVzcykKCiAgICByZXR1cm4gdG90YWxfZ2FzX3VzZWQsIG91dHB1dC5sb2dzLCBvdXRwdXQuaGFzX2VycmVkCpSFlIGUfZQoaAVoBmggauEqAABoIWgDaB1oRGgfSwB1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ZWN1dGUgYSB0cmFuc2FjdGlvbiBhbmQgaXQgd2lsbCBiZSBkZWNsYXJlZCBpbnZhbGlkLpSFlIGUfZQoaAVoBmggaoosAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NAAJoIGp5LAAAdWJoaSmBlH2UKGgFWKEBAABBZGRpdGlvbmFsbHksIHRoZSBub25jZSBvZiBhIHRyYW5zYWN0aW9uIG11c3Qgbm90IGVxdWFsIG9yIGV4Y2VlZCB0aGUKbGltaXQgZGVmaW5lZCBpbiBgRUlQLTI2ODEgPGh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtMjY4MT5gXy4KSW4gcHJhY3RpY2UsIGRlZmluaW5nIHRoZSBsaW1pdCBhcyBgYDIqKjY0LTFgYCBoYXMgbm8gaW1wYWN0IGJlY2F1c2UKc2VuZGluZyBgYDIqKjY0LTFgYCB0cmFuc2FjdGlvbnMgaXMgaW1wcm9iYWJsZS4gSXQncyBub3Qgc3RyaWN0bHkKaW1wb3NzaWJsZSB0aG91Z2gsIGBgMioqNjQtMWBgIHRyYW5zYWN0aW9ucyBpcyB0aGUgZW50aXJlIGNhcGFjaXR5IG9mIHRoZQpFdGhlcmV1bSBibG9ja2NoYWluIGF0IDIwMjIgZ2FzIGxpbWl0cyBmb3IgYSBsaXR0bGUgb3ZlciAyMiB5ZWFycy6UaAddlChoP4xXQWRkaXRpb25hbGx5LCB0aGUgbm9uY2Ugb2YgYSB0cmFuc2FjdGlvbiBtdXN0IG5vdCBlcXVhbCBvciBleGNlZWQgdGhlCmxpbWl0IGRlZmluZWQgaW4glIWUgZR9lChoBWgGaCBqmCwAAGghaANoHWhEaB9LAHViaG4pgZR9lChoBYw1YEVJUC0yNjgxIDxodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTI2ODE+YF+UaAddlGg/jAhFSVAtMjY4MZSFlIGUfZQoaAVoBmggaqAsAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjARuYW1llIwIRUlQLTI2ODGUjAZyZWZ1cmmUjCdodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlw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bGN1bGF0ZXMgdGhlIGdhcyB0aGF0IGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBpcyBzdGFydGVkLpRoB12UaD+MP0NhbGN1bGF0ZXMgdGhlIGdhcyB0aGF0IGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBpcyBzdGFydGVkLpSFlIGUfZQoaAVoBmggak0uAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NHgJoIGpKLgAAdWJoaSmBlH2UKGgFWBECAABUaGUgaW50cmluc2ljIGNvc3Qgb2YgdGhlIHRyYW5zYWN0aW9uIGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBoYXMKYmVndW4uIEZ1bmN0aW9ucy9vcGVyYXRpb25zIGluIHRoZSBFVk0gY29zdCBtb25leSB0byBleGVjdXRlIHNvIHRoaXMKaW50cmluc2ljIGNvc3QgaXMgZm9yIHRoZSBvcGVyYXRpb25zIHRoYXQgbmVlZCB0byBiZSBwYWlkIGZvciBhcyBwYXJ0IG9mCnRoZSB0cmFuc2FjdGlvbi4gRGF0YSB0cmFuc2ZlciwgZm9yIGV4YW1wbGUsIGlzIHBhcnQgb2YgdGhpcyBpbnRyaW5zaWMKY29zdC4gSXQgY29zdHMgZXRoZXIgdG8gc2VuZCBkYXRhIG92ZXIgdGhlIHdpcmUgYW5kIHRoYXQgZXRoZXIgaXMKYWNjb3VudGVkIGZvciBpbiB0aGUgaW50cmluc2ljIGNvc3QgY2FsY3VsYXRlZCBpbiB0aGlzIGZ1bmN0aW9uLiBUaGlzCmludHJpbnNpYyBjb3N0IG11c3QgYmUgY2FsY3VsYXRlZCBhbmQgcGFpZCBmb3IgYmVmb3JlIGV4ZWN1dGlvbiBpbiBvcmRlcgpmb3IgYWxsIG9wZXJhdGlvbnMgdG8gYmUgaW1wbGVtZW50ZWQulGgHXZRoP1gRAgAAVGhlIGludHJpbnNpYyBjb3N0IG9mIHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaGFzCmJlZ3VuLiBGdW5jdGlvbnMvb3BlcmF0aW9ucyBpbiB0aGUgRVZNIGNvc3QgbW9uZXkgdG8gZXhlY3V0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eC50byA9PSBCeXRlczAoYiIiKToKICAgICAgICBjcmVhdGVfY29zdCA9IFRYX0NSRUFURV9DT1NUCiAgICBlbHNlOgogICAgICAgIGNyZWF0ZV9jb3N0ID0gMAoKICAgIGFjY2Vzc19saXN0X2Nvc3QgPSAwCiAgICBpZiBpc2luc3RhbmNlKHR4LCBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOgogICAgICAgIGZvciAoX2FkZHJlc3MsIGtleXMpIGluIHR4LmFjY2Vzc19saXN0OgogICAgICAgICAgICBhY2Nlc3NfbGlzdF9jb3N0ICs9IFRYX0FDQ0VTU19MSVNUX0FERFJFU1NfQ09TVAogICAgICAgICAgICBhY2Nlc3NfbGlzdF9jb3N0ICs9IGxlbihrZXlzKSAqIFRYX0FDQ0VTU19MSVNUX1NUT1JBR0VfS0VZX0NPU1QKCiAgICByZXR1cm4gVWludChUWF9CQVNFX0NPU1QgKyBkYXRhX2Nvc3QgKyBjcmVhdGVfY29zdCArIGFjY2Vzc19saXN0X2Nvc3QpCpRoB12UKGg/WH4BAABkZWYgY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4OiBUcmFuc2FjdGlvbikgLT4gVWludDoKICAgIGRhdGFfY29zdCA9IDAKCiAgICBmb3IgYnl0ZSBpbiB0eC5kYXRhOgogICAgICAgIGlmIGJ5dGUgPT0gMDoKICAgICAgICAgICAgZGF0YV9jb3N0ICs9IFRYX0RBVEFfQ09TVF9QRVJfWkVSTwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGRhdGFfY29zdCArPSBUWF9EQVRBX0NPU1RfUEVSX05PTl9aRVJPCgogICAgaWYgdHgudG8gPT0gQnl0ZXMwKGIiIik6CiAgICAgICAgY3JlYXRlX2Nvc3QgPSBUWF9DUkVBVEVfQ09TVAogICAgZWxzZToKICAgICAgICBjcmVhdGVfY29zdCA9IDAKCiAgICBhY2Nlc3NfbGlzdF9jb3N0ID0gMAogICAgaWYgaXNpbnN0YW5jZSh0eCwglIWUgZR9lChoBWgGaCBqNi8AAGghaANoHWhEaB9LAHViavUUAAApgZR9lChoBWgGaAddlGg/jBdBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOpSF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ICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcigKICAgICAgICAgICAgICAgIHIsIHMsIHYgLSAyNywgc2lnbmluZ19oYXNoX3ByZTE1NSh0eCkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgICAgIHYgPT0gMzUgKyBjaGFpbl9pZCAqIDIgb3IgdiA9PSAzNiArIGNoYWluX2lkICogMiwgSW52YWxpZEJsb2NrCiAgICAgICAgICAgICkKICAgICAgICAgICAgcHVibGljX2tleSA9IHNlY3AyNTZrMV9yZWNvdmVyKAogICAgICAgICAgICAgICAgciwgcywgdiAtIDM1IC0gY2hhaW5faWQgKiAyLCBzaWduaW5nX2hhc2hfMTU1KHR4KQogICAgICAgICAgICApCiAgICBlbGlmIGlzaW5zdGFuY2UodHgsIEFjY2Vzc0xpc3RUcmFuc2FjdGlvbik6CiAgICAgICAgcHVibGljX2tleSA9IHNlY3AyNTZrMV9yZWNvdmVyKHIsIHMsIHYsIHNpZ25pbmdfaGFzaF8yOTMwKHR4KSkKCiAgICByZXR1cm4gQWRkcmVzcyhrZWNjYWsyNTYocHVibGljX2tleSlbMTI6MzJdKQqUaAddlChoP1j/AgAAZGVmIHJlY292ZXJfc2VuZGVyKGNoYWluX2lkOiBVaW50NjQsIHR4OiBUcmFuc2FjdGlvbikgLT4gQWRkcmVzczoKICAgIHYsIHIsIHMgPSB0eC52LCB0eC5yLCB0eC5zCgogICAgZW5zdXJlKDAgPCByIGFuZCByIDwgU0VDUDI1NksxTiwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKDAgPCBzIGFuZCBzIDw9IFNFQ1AyNTZLMU4gLy8gMiwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGlzaW5zdGFuY2UodHgsIExlZ2FjeVRyYW5zYWN0aW9uKToKICAgICAgICBpZiB2ID09IDI3IG9yIHYgPT0gMjg6CiAgICAgICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcigKICAgICAgICAgICAgICAgIHIsIHMsIHYgLSAyNywgc2lnbmlu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lH2UKGgFjBlldGhlcmV1bS5ldGhfdHlwZXMuSGFzaDMylGgHXZRqAwcAACmBlH2UKGgFjBtgZXRoZXJldW0uZXRoX3R5cGVzLkhhc2gzMmCUaAddlGg/jBlldGhlcmV1bS5ldGhfdHlwZXMuSGFzaDMylIWUgZR9lChoBWgGaCBqfzIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqAgcAAGgdTmgfTmggansyAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGp4MgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoPGAAAaB1OaB9OaCBqZzIAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq+hcAAGgdTmgfTmggaukxAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavUXAABoHU5oH05oIGrYMQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpIEQAAaB1oHmgfTmggapQxAAB1YmVoDn2UKGgQXZRoE12UKGrRMQAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UatExAACMB29ianR5cGWUaq4yAACMCGRlc2N0eXBllGquMgAAjAdub2luZGV4lIl1aBxqGhEAAGgdaERoH0sAaCBqeDEAAGghaAN1YmpfEQAAKYGUfZQoaAVYJAEAAGRlZiBzaWduaW5nX2hhc2hfcHJlMTU1KHR4OiBUcmFuc2FjdGlvbikgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUaAddlChoP4wcZGVmIHNpZ25pbmdf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agIHAABoHU5oH05oIGr3MwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBq9DMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqDxgAAGgdTmgfTmggauMzAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavoXAABoHU5oH05oIGplMwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGr1FwAAaB1OaB9OaCBqVDMAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqSBEAAGgdaB5oH05oIGoQMwAAdWJlaA59lChoEF2UaBNdlChqTTMAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGpNMwAAjAdvYmp0eXBllGoqNAAAjAhkZXNjdHlwZZRqKjQAAIwHbm9pbmRleJSJdWgcahoRAABoHWhEaB9LAGggavQyAABoIWgDdWJqXxEAACmBlH2UKGgFWGwBAABkZWYgc2lnbmluZ19oYXNoXzE1NSh0eDogVHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgICAgIFVpbnQoMSksCiAgICAgICAgICAgICAgICBVaW50KDApLAogICAgICAgICAgICAgICAgVWludCgwKSwKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKlGgHXZQoaD+MGWRlZiBzaWduaW5nX2hhc2hfMTU1KHR4OiCUhZSBlH2UKGgFaAZoIGoyNAAAaCFoA2gdaERoH0sAdWJq9RQAACmBlH2UKGgFaAZoB12UaD+MDFRyYW5zYWN0aW9uKZSFlIGUfZQoaAVoBmggajo0AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjA9jaGFuZ2UtcmVwbGFjZWSUYWgVXZRoF12UaBldlHVoHGr0FAAAaCBqMjQAAGghaANoHWhEaB9LAHViavUUAAApgZR9lChoBWgGaAddlGg/jBJMZWdhY3lUcmFuc2FjdGlvbimUhZSBlH2UKGgFaAZoIGpINAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwSY2hhbmdlLXJlcGxhY2VtZW50lGFoFV2UaBddlGgZXZR1aBxq9BQAAGggajI0AABoIWgDaB1oRGgfSwB1Ymg/WEcBAAAgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICAgICAgVWludCgxKSwKICAgICAgICAgICAgICAgIFVpbnQoMCksCiAgICAgICAgICAgICAgICBVaW50KDApLAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUhZSBlH2UKGgFaAZoIGoyNAAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxNL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vYmVybGluL3NwZWMucHmUjAl4bWw6c3BhY2WUaqQFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqdhEAAEsBc4wHbGluZW5vc5SJdWgcal4RAABoHWgeaB9NdwJoIGr0MgAAaCFoA3ViZWgOfZQoaBBdlGqlBAAAYWgTXZRoFV2UjBBzaWduaW5nX2hhc2hfMTU1lGFoF12UaBldlHVoHGgzaB1oHmgfTWcCaCBq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aBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGpwNQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoPGAAAaB1OaB9OaCBqXzUAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq+hcAAGgdTmgfTmggauE0AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcavUXAABoHU5oH05oIGrQNAAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpIEQAAaB1oHmgfTmggaow0AAB1YmVoDn2UKGgQXZRoE12UKGrJNAAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6Uask0AACMB29ianR5cGWUaqY1AACMCGRlc2N0eXBllGqmNQAAjAdub2luZGV4lIl1aBxqGhEAAGgdTmgfTmgganA0AAB1YmpfEQAAKYGUfZQoaAVYewEAAGRlZiBzaWduaW5nX2hhc2hfMjkzMCh0eDogQWNjZXNzTGlzdFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIGIiXHgwMSIKICAgICAgICArIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4LmNoYWluX2lkLAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgICAgIHR4LmFjY2Vzc19saXN0LAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUaAddlGg/WHsBAABkZWYgc2lnbmluZ19oYXNoXzI5MzAodHg6IEFjY2Vzc0xpc3RUcmFuc2FjdGlvbikgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBiIlx4MDEiCiAgICAgICAgKyBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAg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ZXNjdHlwZZRqAjcAAIwHbm9pbmRleJSJdWgcahoRAABoHU5oH05oIGrMNQAAdWJqXxEAACmBlH2UKGgFWK0BAABkZWYgc2lnbmluZ19oYXNoXzE1NTkodHg6IEZlZU1hcmtldFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIGIiXHgwMiIKICAgICAgICArIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4LmNoYWluX2lkLAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5tYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXMsCiAgICAgICAgICAgICAgICB0eC5tYXhfZmVlX3Blcl9nYXMsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgICAgIHR4LmFjY2Vzc19saXN0LAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUaAddlGg/WK0BAABkZWYgc2lnbmluZ19oYXNoXzE1NTkodHg6IEZlZU1hcmtldFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIGIiXHgwMiIKICAgICAgICArIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4LmNoYWluX2lkLAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5tYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXMsCiAgICAgICAgICAgICAgICB0eC5tYXhfZmVlX3Blcl9nYXMsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgICAgIHR4LmFjY2Vzc19s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RGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NnAJoIGqJNwAAdWJoaSmBlH2UKGgFWCgCAABQcmlvciB0byB1c2luZyB0aGUgYGBrZWNjYWsyNTZgYCBoYXNoIGZ1bmN0aW9uLCB0aGUgaGVhZGVyIG11c3QgYmUKZW5jb2RlZCB1c2luZyB0aGUgUmVjdXJzaXZlLUxlbmd0aCBQcmVmaXguIFNlZSA6cmVmOmBybHBgLgpSTFAgZW5jb2RpbmcgdGhlIGhlYWRlciBjb252ZXJ0cyBpdCBpbnRvIGEgc3BhY2UtZWZmaWNpZW50IGZvcm1hdCB0aGF0CmFsbG93cyBmb3IgZWFzeSB0cmFuc2ZlciBvZiBkYXRhIGJldHdlZW4gbm9kZXMuIFRoZSBwdXJwb3NlIG9mIFJMUCBpcyB0bwplbmNvZGUgYXJiaXRyYXJpbHkgbmVzdGVkIGFycmF5cyBvZiBiaW5hcnkgZGF0YSwgYW5kIFJMUCBpcyB0aGUgcHJpbWFyeQplbmNvZGluZyBtZXRob2QgdXNlZCB0byBzZXJpYWxpemUgb2JqZWN0cyBpbiBFdGhlcmV1bSdzIGV4ZWN1dGlvbiBsYXllci4KVGhlIG9ubHkgcHVycG9zZSBvZiBSTFAgaXMgdG8gZW5jb2RlIHN0cnVjdHVyZTsgZW5jb2Rpbmcgc3BlY2lmaWMgZGF0YQp0eXBlcyAoZS5nLiBzdHJpbmdzLCBmbG9hdHMpIGlzIGxlZnQgdXAgdG8gaGlnaGVyLW9yZGVyIHByb3RvY29scy6UaAddlChoP4wTUHJpb3IgdG8gdXNpbmcgdGhlIJSFlIGUfZQoaAVoBmggasQ3AABoIWgDaB1oRGgfSwB1YmoaBgAAKYGUfZQoaAWMDWBga2VjY2FrMjU2YGCUaAddlGg/jAlrZWNjYWsyNTaUhZSBlH2UKGgFaAZoIGrMNwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoZBgAAaB1OaB9OaCBqxDcAAHViaD+MUiBoYXNoIGZ1bmN0aW9uLCB0aGUgaGVhZGVyIG11c3QgYmUKZW5jb2RlZCB1c2luZyB0aGUgUmVjdXJzaXZlLUxlbmd0aCBQcmVmaXguIFNlZSCU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IHJldHVybiBUcnVlCpRoB12UaD9YgQEAAGRlZiBjaGVja19nYXNfbGltaXQoZ2FzX2xpbWl0OiBVaW50LCBwYXJlbnRfZ2FzX2xpbWl0OiBVaW50KSAtPiBib29sOgogICAgbWF4X2FkanVzdG1lbnRfZGVsdGEgPSBwYXJlbnRfZ2FzX2xpbWl0IC8vIEdBU19MSU1JVF9BREpVU1RNRU5UX0ZBQ1RPUgogICAgaWYgZ2FzX2xpbWl0ID49IHBhcmVudF9nYXNfbGltaXQgKyBtYXhfYWRqdXN0bWVudF9kZWx0YToKICAgICAgICByZXR1cm4gRmFsc2UKICAgIGlmIGdhc19saW1pdCA8PSBwYXJlbnRfZ2FzX2xpbWl0IC0gbWF4X2FkanVzdG1lbnRfZGVsdGE6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBpZiBnYXNfbGltaXQgPCBHQVNfTElNSVRfTUlOSU1VTToKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICByZXR1cm4gVHJ1ZQqUhZSBlH2UKGgFaAZoIGr4OgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxNL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vYmVybGluL3NwZWMucHmUjAl4bWw6c3BhY2WUaqQFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqdhEAAEsBc4wHbGluZW5vc5SJdWgcal4RAABoHWgeaB9N1AJoIGruOAAAdWJlaA59lChoEF2Uai4FAABhaBNdlGgVXZSMD2NoZWNrX2dhc19saW1pdJRhaBddlGgZXZR1aBxoM2gdaB5oH024AmggaukQAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMGmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5lGgHXZRoP4waY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGoZOwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGg4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YmpfEQAAKYGUfZQoaAVYjQQAAGRlZiBjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eSgKICAgIGJsb2NrX251bWJlcjogVWludCwKICAgIGJsb2NrX3RpbWVzdGFtcDogVTI1NiwKICAgIHBhcmVudF90aW1lc3RhbXA6IFUyNTYsCiAgICBwYXJlbnRfZGlmZmljdWx0eTogVWludCwKICAgIHBhcmVudF9oYXNfb21tZXJzOiBib29sLAopIC0+IFVpbnQ6CiAgICBvZmZzZXQgPSAoCiAgICAgICAgaW50KHBhcmVudF9kaWZmaWN1bHR5KQogICAgICAgIC8vIDIwNDgKICAgICAgICAqIG1heCgKICAgICAgICAgICAgKDIgaWYgcGFyZW50X2hhc19vbW1lcnMgZWxzZSAxKQogICAgICAgICAgICAtIGludChibG9ja190aW1lc3RhbXAgLSBwYXJlbnRfdGltZXN0YW1wKSAvLyA5LAogICAgICAgICAgICAtOTksCiAgICAgICAgKQogICAgKQogICAgZGlmZmljdWx0eSA9IGludChwYXJlbnRfZGlmZmljdWx0eSkgKyBvZmZzZXQKICAgICMgSGlzdG9yaWNhbCBOb3RlOiBUaGUgZGlmZmljdWx0eSBib21iIHdhcyBub3QgcHJlc2VudCBpbiBFdGhlcmV1bSBhdCB0aGUKICAgICMgc3RhcnQgb2YgRnJvbnRpZXIsIGJ1dCB3YXMgYWRkZWQgc2hvcnRseSBhZnRlciBsYXVuY2guIEhvd2V2ZXIgc2luY2UgdGhlCiAgICAjIGJvbWIgaGFzIG5vIGVmZmVjdCBwcmlvciB0byBibG9jayAyMDAwMDAgd2UgcHJldGVuZCBpdCBleGlzdGVkIGZyb20KICAgICMgZ2VuZXNpcy4KICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9nby1ldGhlcmV1bS9wdWxsLzE1ODgKICAgIG51bV9ib21iX3BlcmlvZHMgPSAoKGludChibG9ja19udW1iZXIpIC0gQk9NQl9ERUxBWV9CTE9DS1MpIC8vIDEwMDAwMCkgLSAyCiAgICBpZiBudW1fYm9tYl9wZXJpb2RzID49IDA6CiAgICAgICAgZGlmZmljdWx0eSArPSAyKipudW1fYm9tYl9wZXJpb2RzCgogICAgIyBTb21lIGNsaWVudHMgcmFpc2UgdGhlIGRpZmZpY3VsdHkgdG8gYE1JTklNVU1fRElGRklDVUxUWWAgcHJpb3IgdG8gYWRkaW5nCiAgICAjIHRoZSBib21iLiBUaGlzIGJ1ZyBkb2VzIG5vdCBtYXR0ZXIgYmVjYXVzZSB0aGUgZGlmZmljdWx0eSBpcyBhbHdheXMgbXVjaAogICAgIyBncmVhdGVyIHRoYW4gYE1JTklNVU1fRElGRklDVUxUWWAgb24gTWFpbm5ldC4KICAgIHJldHVybiBVaW50KG1heChkaWZmaWN1bHR5LCBNSU5JTVVNX0RJRkZJQ1VMVFkpKQqUaAddlGg/WI0EAABkZWYgY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBibG9ja190aW1lc3RhbXA6IFUyNTYsCiAgICBwYXJlbnRfdGltZXN0YW1wOiBVMjU2LAogICAgcGFyZW50X2RpZmZpY3VsdHk6IFVpbnQsCiAgICBwYXJlbnRfaGFzX29tbWVyczogYm9vbCwKKSAtPiBVaW50OgogICAgb2Zmc2V0ID0gKAogICAgICAgIGludChwYXJlbnRfZGlmZmljdWx0eSkKICAgICAgICAvLyAyMDQ4CiAgICAgICAgKiBtYXgoCiAgICAgICAgICAgICgyIGlmIHBhcmVudF9oYXNfb21tZXJzIGVsc2UgMSkKICAgICAgICAgICAgLSBpbnQoYmxvY2tfdGltZXN0YW1wIC0gcGFyZW50X3RpbWVzdGFtcCkgLy8gOSwKICAgICAgICAgICAgLTk5LAogICAgICAgICkKICAgICkKICAgIGRpZmZpY3VsdHkgPSBpbnQocGFyZW50X2RpZmZpY3VsdHkpICsgb2Zmc2V0CiAgICAjIEhpc3RvcmljYWwgTm90ZTogVGhlIGRpZmZpY3VsdHkgYm9tYiB3YXMgbm90IHByZXNlbnQgaW4gRXRoZXJldW0gYXQgdGhlCiAgICAjIHN0YXJ0IG9mIEZyb250aWVyLCBidXQgd2FzIGFkZGVkIHNob3J0bHkgYWZ0ZXIgbGF1bmNoLiBIb3dldmVyIHNpbmNlIHRoZQogICAgIyBib21iIGhhcyBubyBlZmZlY3QgcHJpb3IgdG8gYmxvY2sgMjAwMDAwIHdlIHByZXRlbmQgaXQgZXhpc3RlZCBmcm9tCiAgICAjIGdlbmVzaXMuCiAgICAjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vZ28tZXRoZXJldW0vcHVsbC8xNTg4CiAgICBudW1fYm9tYl9wZXJpb2RzID0gKChpbnQoYmxvY2tfbnVtYmVyKSAtIEJPTUJfREVMQVlfQkxPQ0tTKSAvLyAxMDAwMDApIC0gMgogICAgaWYgbnVtX2JvbWJfcGVyaW9kcyA+PSAwOgogICAgICAgIGRpZmZpY3VsdHkgKz0gMioqbnVtX2JvbWJfcGVyaW9kcwoKICAgICMgU29tZSBjbGllbnRzIHJhaXNlIHRoZSBkaWZmaWN1bHR5IHRvIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIHByaW9yIHRvIGFkZGluZwogICAgIyB0aGUgYm9tYi4gVGhpcyBidWcgZG9lcyBub3QgbWF0dGVyIGJlY2F1c2UgdGhlIGRpZmZpY3VsdHkgaXMgYWx3YXlzIG11Y2gKICAgICMgZ3JlYXRlciB0aGFuIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIG9uIE1haW5uZXQuCiAgICByZXR1cm4gVWludChtYXgoZGlmZmljdWx0eSwgTUlOSU1VTV9ESUZGSUNVTFRZKSkKlIWUgZR9lChoBWgGaCBq7j0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTS9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2Jlcmxpbi9zcGVjLnB5lIwJeG1sOnNwYWNllGqkBQAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2UanYRAABLAXOMB2xpbmVub3OUiXVoHGpeEQAAaB1oHmgfTf4CaCBqFjsAAHViZWgOfZQoaBBdlGpQBQAAYWgTXZRoFV2UjBpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eZRhaBddlGgZXZR1aBxoM2gdaB5oH03ZAmggaukQAABoIWgDdWJlaA59lChoEF2UajEBAABhaBNdlGgVXZSMDm1vZHVsZSBkZXRhaWxzlGFoF12UaBldlHVoHGgzaB1oHmgfS0loIGg1aCFoA3ViZWgOfZQoaBBdlIwWZXRoZXJldW0tc3BlY2lmaWNhdGlvbpRhaBNdlGgVXZSMFmV0aGVyZXVtIHNwZWNpZmljYXRpb26UYWgXXZRoGV2UdWgcaDNoHWgeaB9LBGggaANoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllGhEdWgcaAGMDmN1cnJlbnRfc291cmNllGhEjAxjdXJyZW50X2xpbmWUSwCMCHNldHRpbmdzlIwRZG9jdXRpbHMuZnJvbnRlbmSUjAZWYWx1ZXOUk5QpgZR9lCiMDHJlcG9ydF9sZXZlbJRLAowKaGFsdF9sZXZlbJRLBIwRZXhpdF9zdGF0dXNfbGV2ZWyUSwWMBWRlYnVnlE6MDndhcm5pbmdfc3RyZWFtlE6MCXRyYWNlYmFja5ROjA9vdXRwdXRfZW5jb2RpbmeUjAV1dGYtOJSMHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwReG1sY2hhcnJlZnJlcGxhY2WUjA5lcnJvcl9lbmNvZGluZ5SMBXV0Zi04lIwcZXJyb3JfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEGJhY2tzbGFzaHJlcGxhY2WUjBNyZWNvcmRfZGVwZW5kZW5jaWVzlIwOZG9jdXRpbHMudXRpbHOUjA5EZXBlbmRlbmN5TGlzdJSTlCmBlH2UKIwEbGlzdJRdlIwEZmlsZZROdWKMBmNvbmZpZ5ROjA1kdW1wX3NldHRpbmdzlE6MDmR1bXBfaW50ZXJuYWxzlE6MD2R1bXBfdHJhbnNmb3Jtc5ROjA9kdW1wX3BzZXVkb194bWyUTowQZXhwb3NlX2ludGVybmFsc5ROjA5zdHJpY3RfdmlzaXRvcpROjA9fZGlzYWJsZV9jb25maWeUTowHX3NvdXJjZZROjAxfZGVzdGluYXRpb26UjCtkb2MvZGlmZnMvYmVybGluX2xvbmRvbi9zcGVjL2luZGV4LnBpY2tsZTY0lIwNX2NvbmZpZ19maWxlc5RdlIwRbGluZV9sZW5ndGhfbGltaXSUTRAnjAl0YWJfd2lkdGiUSwiMEHN5bnRheF9oaWdobGlnaHSUjARsb25nlIwMc21hcnRfcXVvdGVzlImME3NtYXJ0cXVvdGVzX2xvY2FsZXOUTowdY2hhcmFjdGVyX2xldmVsX2lubGluZV9tYXJrdXCUiYwGd3JpdGVylIwDeG1slIwZY29tcGFyZV9zZWN0aW9uc19ieV9uYW1lc5RLAYwMZHVtcF9yc3RkaWZmlE6MBV9ib3RolH2UKGg4TowJZ2VuZXJhdG9ylE6MCWRhdGVzdGFtcJROjAtzb3VyY2VfbGlua5ROjApzb3VyY2VfdXJslE6MDXRvY19iYWNrbGlua3OUag0GAACMEmZvb3Rub3RlX2JhY2tsaW5rc5RLAYwNc2VjdG51bV94Zm9ybZRLAYwOZG9jdGl0bGVfeGZvcm2USwGMDWRvY2luZm9feGZvcm2USwGMEnNlY3RzdWJ0aXRsZV94Zm9ybZRLAIwOc3RyaXBfY29tbWVudHOUTowOaW5wdXRfZW5jb2RpbmeUTowcaW5wdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMBnN0cmljdJSMDWxhbmd1YWdlX2NvZGWUjAJlbpSMDnBlcF9yZWZlcmVuY2VzlE6MDHBlcF9iYXNlX3VybJSMH2h0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy+UjBVwZXBfZmlsZV91cmxfdGVtcGxhdGWUjAhwZXAtJTA0ZJSMDnJmY19yZWZlcmVuY2VzlE6MDHJmY19iYXNlX3VybJSMG2h0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL5SMHXRyaW1fZm9vdG5vdGVfcmVmZXJlbmNlX3NwYWNllE6MFmZpbGVfaW5zZXJ0aW9uX2VuYWJsZWSUSwGMC3Jhd19lbmFibGVklEsBjA5hdXRvX2lkX3ByZWZpeJSMAmlklIwJaWRfcHJlZml4lGgGjBtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXOUTowNc3RyaXBfY2xhc3Nlc5ROdYwEYm90aJR9lIwKX29wdGlvbnNUb5SMBV9ib3RolIwLX29sZF9zb3VyY2WUjE8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzLy50b3gvZG9jcy9zdGFnZTBfb3V0L2F1dG9hcGkvlIwLX25ld19zb3VyY2WUjAlkb2MvZGlmZnOUamk+AABqaj4AAIwWaWdub3JlX2luX3NlY3Rpb25fbmFtZZRdlCiMBmJlcmxpbpSMBmxvbmRvbpRldWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZSMCW5hbWV0eXBlc5R9lGgQfZSMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjAtpbmNsdWRlX2xvZ5RdlIwKZGVjb3JhdGlvbpROaCFoA3ViLg==