gASVmQEBAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIwdbW9kdWxlLWV0aGVyZXVtLmlzdGFuYnVsLnNwZWOUYYwHY2xhc3Nlc5RdlIwFbmFtZXOUXZSMCGR1cG5hbWVzlF2UjAhiYWNrcmVmc5RdlIwFaXNtb2SUiHWMB3RhZ25hbWWUaAmMBnNvdXJjZZSMXi9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vaXN0YW5idWwvc3BlYy9pbmRleC5yc3SUjARsaW5llEsBjAZwYXJlbnSUaAOMCV9kb2N1bWVudJRoA3VijA9zcGhpbnguYWRkbm9kZXOUjAVpbmRleJSTlCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlCiMBHBhaXKUjB5tb2R1bGU7IGV0aGVyZXVtLmlzdGFuYnVsLnNwZWOUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMFkV0aGVyZXVtIFNwZWNpZmljYXRpb26UaAddlGgAjARUZXh0lJOUjBZFdGhlcmV1bSBTcGVjaWZpY2F0aW9ulIWUgZR9lChoBWgGaCBoOmghaANoHYxcL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpLyA9PiBkb2MvZGlmZnOUaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sEaCBoNWghaAN1YmgAjAV0b3BpY5STlCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMEVRhYmxlIG9mIENvbnRlbnRzlGgHXZRoP4wRVGFibGUgb2YgQ29udGVudHOUhZSBlH2UKGgF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b3JrCgp2YWxpZGF0ZV9wcm9vZl9vZl93b3JrCgpWYWxpZGF0ZXMgdGhlIFByb29mIG9mIFdvcmsgY29uc3RyYWludHMuCgphcHBseV9ib2R5CgpFeGVjdXRlcyBhIGJsb2NrLgoKdmFsaWRhdGVfb21tZXJzCgpWYWxpZGF0ZXMgdGhlIG9tbWVycyBtZW50aW9uZWQgaW4gdGhlIGJsb2NrLgoKcGF5X3Jld2FyZHMKClBheSByZXdhcmRzIHRvIHRoZSBibG9jayBtaW5lciBhcyB3ZWxsIGFzIHRoZSBvbW1lcnMgbWluZXJzLgoKcHJvY2Vzc190cmFuc2FjdGlvbgoKRXhlY3V0ZSBhIHRyYW5zYWN0aW9uIGFnYWluc3QgdGhlIHByb3ZpZGVkIGVudmlyb25tZW50LgoKdmFsaWRhdGVfdHJhbnNhY3Rpb24KClZlcmlmaWVzIGEgdHJhbnNhY3Rpb24uCgpjYWxjdWxhdGVfaW50cmluc2ljX2Nvc3QKCkNhbGN1bGF0ZXMgdGhlIGdhcyB0aGF0IGlzIGNoYXJnZWQgYmVmb3JlIGV4ZWN1dGlvbiBpcyBzdGFydGVkLgoKcmVjb3Zlcl9zZW5kZXIKCkV4dHJhY3RzIHRoZSBzZW5kZXIgYWRkcmVzcyBmcm9tIGEgdHJhbnNhY3Rpb24uCgpzaWduaW5nX2hhc2hfcHJlMTU1CgpDb21wdXRlIHRoZSBoYXNoIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCBpbiBhIGxlZ2FjeSAocHJlIEVJUCAxNTUpIHNpZ25hdHVyZS4KCnNpZ25pbmdfaGFzaF8xNTUKCkNvbXB1dGUgdGhlIGhhc2ggb2YgYSB0cmFuc2FjdGlvbiB1c2VkIGluIGEgRUlQIDE1NSBzaWduYXR1cmUuCgpjb21wdXRlX2hlYWRlcl9oYXNoCgpDb21wdXRlcyB0aGUgaGFzaCBvZiBhIGJsb2NrIGhlYWRlci4KCmNoZWNrX2dhc19saW1pdAoKVmFsaWRhdGVzIHRoZSBnYXMgbGltaXQgZm9yIGEgYmxvY2suCgpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eQoKQ29tcHV0ZXMgZGlmZmljdWx0eSBvZiBhIGJsb2NrIHVzaW5nIGl0cyBoZWFkZXIgYW5kIHBhcmVu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b2JqOmBzdGF0ZV90cmFuc2l0aW9uIDxldGhlcmV1bS5pc3RhbmJ1bC5zcGVjLnN0YXRlX3RyYW5zaXRpb24+YJRoB12UaG4pgZR9lChoBWgGaAddlGpsBQAAKYGUfZQoaAVq1QYAAGgHXZRoP4wQc3RhdGVfdHJhbnNpdGlvbpSFlIGUfZQoaAVoBmggatoGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGp4BQAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcamsFAABoHU5oH05oIGrXBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjCdldGhlcmV1bS5pc3RhbmJ1bC5zcGVjLnN0YXRlX3RyYW5zaXRpb26UjAhyZWZ0aXRsZZSMJ2V0aGVyZXVtLmlzdGFuYnVsLnNwZWMuc3RhdGVfdHJhbnNpdGlvbpR1aBxobWgdTmgfTmggatMGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxvL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9pc3RhbmJ1bC9zcGVjL2luZGV4LnJzdDo1Njo8YXV0b3N1bW1hcnk+lGgfSwFoIGrQBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpfBQAAaB1OaB9OaCBqzQYAAHViamAFAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMNUF0dGVtcHRzIHRvIGFwcGx5IGEgYmxvY2sgdG8gYW4gZXhpc3RpbmcgYmxvY2sgY2hhaW4ulGgHXZRoP4w1QXR0ZW1wdHMgdG8gYXBwbHkgYSBibG9jayB0byBhbiBleGlzdGluZyBibG9jayBjaGFpbi6UhZSBlH2UKGgFaAZoIGoEBwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mby9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vaXN0YW5idWwvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqAQcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXwUAAGgdTmgfTmggas0GAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaloFAABoHU5oH05oIGoSBgAAdWJqWwUAACmBlH2UKGgFaAZoB12UKGpgBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjD86b2JqOmB2YWxpZGF0ZV9oZWFkZXIgPGV0aGVyZXVtLmlzdGFuYnVsLnNwZWMudmFsaWRhdGVfaGVhZGVyPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRqbAUAACmBlH2UKGgFaicHAABoB12UaD+MD3ZhbGlkYXRlX2hlYWRlcpSFlIGUfZQoaAVoBmggaiwHAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGp4BQAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcamsFAABoHU5oH05oIGopBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjCZldGhlcmV1bS5pc3RhbmJ1bC5zcGVjLnZhbGlkYXRlX2hlYWRlcpSMCHJlZnRpdGxllIwmZXRoZXJldW0uaXN0YW5idWwuc3BlYy52YWxpZGF0ZV9oZWFkZXKUdWgcaG1oHU5oH05oIGolBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mby9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vaXN0YW5idWwvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqIgcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXwUAAGgdTmgfTmggah8HAAB1YmpgBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjBhWZXJpZmllcyBhIGJsb2NrIGhlYWRlci6UaAddlGg/jBhWZXJpZmllcyBhIGJsb2NrIGhlYWRlci6UhZSBlH2UKGgFaAZoIGpWBwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mby9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vaXN0YW5idWwvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqUwcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXwUAAGgdTmgfTmggah8HAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaloFAABoHU5oH05oIGoSBgAAdWJqWwUAACmBlH2UKGgFaAZoB12UKGpgBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjFk6b2JqOmBnZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93IDxldGhlcmV1bS5pc3RhbmJ1bC5zcGVjLmdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3c+YJRoB12UaG4pgZR9lChoBWgGaAddlGpsBQAAKYGUfZQoaAVqeQcAAGgHXZRoP4wcZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3Bvd5SFlIGUfZQoaAVoBmggan4HAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGp4BQAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcamsFAABoHU5oH05oIGp7BwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjDNldGhlcmV1bS5pc3RhbmJ1bC5zcGVjLmdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3eUjAhyZWZ0aXRsZZSMM2V0aGVyZXVtLmlzdGFuYnVsLnNwZWMuZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3Bvd5R1aBxobWgdTmgfTmggancHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxvL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9pc3RhbmJ1bC9zcGVjL2luZGV4LnJzdDo1Njo8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Y2tzIGFzIHRoZXkgaGF2ZSBzdWNjZXNzb3JzIHdoaWNoIGhhdmUgdGhlIGhhc2ggb2YKICAgICMgdGhlIGN1cnJlbnQgYmxvY2sgYXMgcGFyZW50IGhhc2guCiAgICBtb3N0X3JlY2VudF9ibG9ja19oYXNoID0ga2VjY2FrMjU2KHJscC5lbmNvZGUocmVjZW50X2Jsb2Nrc1stMV0uaGVhZGVyKSkKICAgIHJlY2VudF9ibG9ja19oYXNoZXMuYXBwZW5kKG1vc3RfcmVjZW50X2Jsb2NrX2hhc2gpCgogICAgcmV0dXJuIHJlY2VudF9ibG9ja19oYXNoZXMKlJW8BQEAAAAAAGgHXZRoP1jfAgAAZGVmIGdldF9sYXN0XzI1Nl9ibG9ja19oYXNoZXMoY2hhaW46IEJsb2NrQ2hhaW4pIC0+IExpc3RbSGFzaDMyXToKICAgIHJlY2VudF9ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLTI1NTpdCiAgICAjIFRPRE86IFRoaXMgZnVuY3Rpb24gaGFzIG5vdCBiZWVuIHRlc3RlZCByaWdvcm91c2x5CiAgICBpZiBsZW4ocmVjZW50X2Jsb2NrcykgPT0gMDoKICAgICAgICByZXR1cm4gW10KCiAgICByZWNlbnRfYmxvY2tfaGFzaGVzID0gW10KCiAgICBmb3IgYmxvY2sgaW4gcmVjZW50X2Jsb2NrczoKICAgICAgICBwcmV2X2Jsb2NrX2hhc2ggPSBibG9jay5oZWFkZXIucGFyZW50X2hhc2gKICAgICAgICByZWNlbnRfYmxvY2tfaGFzaGVzLmFwcGVuZChwcmV2X2Jsb2NrX2hhc2gpCgogICAgIyBXZSBhcmUgY29tcHV0aW5nIHRoZSBoYXNoIG9ubHkgZm9yIHRoZSBtb3N0IHJlY2VudCBibG9jayBhbmQgbm90IGZvcgogICAgIyB0aGUgcmVzdCBvZiB0aGUgYmxvY2tzIGFzIHRoZXkgaGF2ZSBzdWNjZXNzb3JzIHdoaWNoIGhhdmUgdGhlIGhhc2ggb2YKICAgICMgdGhlIGN1cnJlbnQgYmxvY2sgYXMgcGFyZW50IGhhc2guCiAgICBtb3N0X3JlY2VudF9ibG9ja19oYXNoID0ga2VjY2FrMjU2KHJscC5lbmNvZGUocmVj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lGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTQgBaCBqTBcAAHViaGkpgZR9lChoBVgxAQAAQWxsIHBhcnRzIG9mIHRoZSBibG9jaydzIGNvbnRlbnRzIG5lZWQgdG8gYmUgdmVyaWZpZWQgYmVmb3JlIGJlaW5nIGFkZGVkCnRvIHRoZSBjaGFpbi4gQmxvY2tzIGFyZSB2ZXJpZmllZCBieSBlbnN1cmluZyB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUKYmxvY2sgbWFrZSBsb2dpY2FsIHNlbnNlIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBwYXJlbnQgYmxvY2suIFRoZQppbmZvcm1hdGlvbiBpbiB0aGUgYmxvY2sncyBoZWFkZXIgbXVzdCBhbHNvIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nCmluZm9ybWF0aW9uIGluIHRoZSBibG9jay6UaAddlGg/WDUBAABBbGwgcGFydHMgb2YgdGhlIGJsb2Nr4oCZcyBjb250ZW50cyBuZWVkIHRvIGJlIHZlcmlmaWVkIGJlZm9yZSBiZWluZyBhZGRlZAp0byB0aGUgY2hhaW4uIEJsb2NrcyBhcmUgdmVyaWZpZWQgYnkgZW5zdXJpbmcgdGhhdCB0aGUgY29udGVudHMgb2YgdGhlCmJsb2NrIG1ha2UgbG9naWNhbCBzZW5zZSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgcGFyZW50IGJsb2NrLiBUaGUKaW5mb3JtYXRpb24gaW4gdGhlIGJsb2Nr4oCZcyBoZWFkZXIgbXVzdCBhbHNvIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nCmluZm9ybWF0aW9uIGluIHRoZSBibG9jay6UhZSBlH2UKGgFaAZoIGpdFwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTQoBaCBqTBcAAHViaGkpgZR9lChoBYz8VG8gaW1wbGVtZW50IEV0aGVyZXVtLCBpbiB0aGVvcnkgY2xpZW50cyBhcmUgb25seSByZXF1aXJlZCB0byBzdG9yZSB0aGUKbW9zdCByZWNlbnQgMjU1IGJsb2NrcyBvZiB0aGUgY2hhaW4gc2luY2UgYXMgZmFyIGFzIGV4ZWN1dGlvbiBpcwpjb25jZXJuZWQsIG9ubHkgdGhvc2UgYmxvY2tzIGFyZSBhY2Nlc3NlZC4gUHJhY3RpY2FsbHksIGhvd2V2ZXIsIGNsaWVudHMKc2hvdWxkIHN0b3JlIG1vcmUgYmxvY2tzIHRvIGhhbmRsZSByZW9yZ3MulGgHXZRoP4z8VG8gaW1wbGVtZW50IEV0aGVyZXVtLCBpbiB0aGVvcnkgY2xpZW50cyBhcmUgb25seSByZXF1aXJlZCB0byBzdG9yZSB0aGUKbW9zdCByZWNlbnQgMjU1IGJsb2NrcyBvZiB0aGUgY2hhaW4gc2luY2UgYXMgZmFyIGFzIGV4ZWN1dGlvbiBpcwpjb25jZXJuZWQsIG9ubHkgdGhvc2UgYmxvY2tzIGFyZSBhY2Nlc3NlZC4gUHJhY3RpY2FsbHksIGhvd2V2ZXIsIGNsaWVudHMKc2hvdWxkIHN0b3JlIG1vcmUgYmxvY2tzIHRvIGhhbmRsZSByZW9yZ3MulIWUgZR9lChoBWgGaCBqaxcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH00QAWggakwXAAB1YmpUFAAAKYGUfZQoaAVoBmgHXZRqWRQAACmBlH2UKGgFaAZoB12UKGpeFAAAKYGUfZQoaAWMClBhcmFtZXRlcnOUaAddlGg/jApQYXJhbWV0ZXJzlIWUgZR9lChoBWgGaCBqfxcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXRQAAGgdaB5oH0sAaCBqfBcAAHViam4UAAApgZR9lChoBWgGaAddlGhfKYGUfZQoaAVoBmgHXZQoaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMI2NoYWluIC0tIEhpc3RvcnkgYW5kIGN1cnJlbnQgc3RhdGUulGgHXZQoancUAAApgZR9lChoBYwFY2hhaW6UaAddlGg/jAVjaGFpbpSFlIGUfZQoaAVoBmggapoXAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUav4OAACMCHB5OmNsYXNzlE51aBxqdhQAAGgdTmgfTmggapYXAAB1Ymg/jB8g4oCTIEhpc3RvcnkgYW5kIGN1cnJlbnQgc3RhdGUulIWUgZR9lChoBWgGaCBqlhcAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggapMXAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGqQFwAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwhYmxvY2sgLS0gQmxvY2sgdG8gYXBwbHkgdG8gY2hhaW4ulGgHXZQoancUAAApgZR9lChoBYwFYmxvY2uUaAddlGg/jAVibG9ja5SFlIGUfZQoaAVoBmggasIXAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUav4OAACMCHB5OmNsYXNzlE51aBxqdhQAAGgdTmgfTmggar4XAAB1Ymg/jBcg4oCTIEJsb2NrIHRvIGFwcGx5IHRvIJSFlIGUfZQoaAVoBmggar4XAABoIWgDaB1oRGgfSwB1YmpVBgAAKYGUfZQoaAWMB2BjaGFpbmCUaAddlGg/jAVjaGFpbpSFlIGUfZQoaAVoBmggatcXAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalQGAABoHU5oH05oIGq+FwAAdWJoP4wBLpSFlIGUfZQoaAVoBmggar4XAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGq7FwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1OaB9OaCBqkBcAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoXmgdTmgfTmggao0XAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcam0UAABoHU5oH05oIGp8FwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpYFAAAaB1OaB9OaCBqeRcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqUxQAAGgdTmgfTmggakwXAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcagEPAABoHWgeaB9OaCBq8BYAAHViZWgOfZQoaBBdlGgTXZQoakUXAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqRRcAAIwHb2JqdHlwZZRqFhgAAIwIZGVzY3R5cGWUahYYAACMB25vaW5kZXiUiXVoHGrTDgAAaB1OaB9OaCBq1BYAAHViahgPAAApgZR9lChoBVjCBAAAZGVmIHN0YXRlX3RyYW5zaXRpb24oY2hhaW46IEJsb2NrQ2hhaW4sIGJsb2NrOiBCbG9jaykgLT4gTm9uZToKICAgIHBhcmVudF9oZWFkZXIgPSBjaGFpbi5ibG9ja3NbLTFdLmhlYWRlcgogICAgdmFsaWRhdGVfaGVhZGVyKGJsb2NrLmhlYWRlciwgcGFyZW50X2hlYWRlcikKICAgIHZhbGlkYXRlX29tbWVycyhibG9jay5vbW1lcnMsIGJsb2NrLmhlYWRlciwgY2hhaW4pCiAgICAoCiAgICAgICAgZ2FzX3VzZWQsCiAgICAgICAgdHJhbnNhY3Rpb25zX3Jvb3QsCiAgICAgICAgcmVjZWlwdF9yb290LAogICAgICAgIGJsb2NrX2xvZ3NfYmxvb20sCiAgICAgICAgc3RhdGUsCiAgICApID0gYXBwbHlfYm9keSgKICAgICAgICBjaGFpbi5zdGF0ZSwKICAgICAgICBnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzKGNoYWluKSwKICAgICAgICBibG9jay5oZWFkZXIuY29pbmJhc2UsCiAgICAgICAgYmxvY2suaGVhZGVyLm51bWJlciwKICAgICAgICBibG9jay5oZWFkZXIuZ2FzX2xpbWl0LAogICAgICAgIGJsb2NrLmhlYWRlci50aW1lc3RhbXAsCiAgICAgICAgYmxvY2suaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgYmxvY2sudHJhbnNhY3Rpb25zLAogICAgICAgIGJsb2NrLm9tbWVycywKICAgICAgICBjaGFpbi5jaGFpbl9pZCwKICAgICkKICAgIGVuc3VyZShnYXNfdXNlZCA9PSBibG9jay5oZWFkZXIuZ2FzX3VzZWQsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZSh0cmFuc2FjdGlvbnNfcm9vdCA9PSBibG9jay5oZWFkZXIudHJhbnNhY3Rpb25zX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzdGF0ZV9yb290KHN0YXRlKSA9PSBibG9jay5oZWFkZXIuc3RhdGVfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHJlY2VpcHRfcm9vdCA9PSBibG9jay5oZWFkZXIucmVjZWlwdF9yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoYmxvY2tfbG9nc19ibG9vbSA9PSBibG9jay5oZWFkZXIuYmxvb20sIEludmFsaWRCbG9jaykKCiAgICBjaGFpbi5ibG9ja3MuYXBwZW5kKGJsb2NrKQogICAgaWYgbGVuKGNoYWluLmJsb2NrcykgPiAyNTU6CiAgICAgICAgIyBSZWFsIGNsaWVudHMgaGF2ZSB0byBzdG9yZSBtb3JlIGJsb2NrcyB0byBkZWFsIHdpdGggcmVvcmdzLCBidXQgdGhlCiAgICAgICAgIyBwcm90b2NvbCBvbmx5IHJlcXVpcmVzIHRoZSBsYXN0IDI1NQogICAgICAgIGNoYWluLmJsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KlGgHXZRoP1jCBAAAZGVmIHN0YXRlX3RyYW5zaXRpb24oY2hhaW46IEJsb2NrQ2hhaW4sIGJsb2NrOiBCbG9jaykgLT4gTm9uZToKICAgIHBhcmVudF9oZWFkZXIgPSBjaGFpbi5ibG9ja3NbLTFdLmhlYWRlcgogICAgdmFsaWRhdGVfaGVhZGVyKGJsb2NrLmhlYWRlciwgcGFyZW50X2hlYWRlcikKICAgIHZhbGlkYXRlX29tbWVycyhibG9jay5vbW1lcnMsIGJsb2NrLmhlYWRlciwgY2hhaW4pCiAgICAoCiAgICAgICAgZ2FzX3VzZWQsCiAgICAgICAgdHJhbnNhY3Rpb25zX3Jvb3QsCiAgICAgICAgcmVjZWlwdF9yb290LAogICAgICAgIGJsb2NrX2xvZ3NfYmxvb20sCiAgICAgICAgc3RhdGUsCiAgICApID0gYXBwbHlfYm9keSgKICAgICAgICBjaGFpbi5zdGF0ZSwKICAgICAgICBnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzKGNoYWluKSwKICAgICAgICBibG9jay5oZWFkZXIuY29pbmJhc2UsCiAgICAgICAgYmxvY2suaGVhZGVyLm51bWJlciwKICAgICAgICBibG9jay5oZWFkZXIuZ2FzX2xpbWl0LAogICAgICAgIGJsb2NrLmhlYWRlci50aW1lc3RhbXAsCiAgICAgICAgYmxvY2suaGVhZGVyLmRpZmZpY3VsdHksCiAgICAgICAgYmxvY2sudHJhbnNhY3Rpb25zLAogICAgICAgIGJsb2NrLm9tbWVycywKICAgICAgICBjaGFpbi5jaGFpbl9pZCwKICAgICkKICAgIGVuc3VyZShnYXNfdXNlZCA9PSBibG9jay5oZWFkZXIuZ2FzX3VzZWQsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZSh0cmFuc2FjdGlvbnNfcm9vdCA9PSBibG9jay5oZWFkZXIudHJhbnNhY3Rpb25zX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShzdGF0ZV9yb290KHN0YXRlKSA9PSBibG9jay5oZWFkZXIuc3RhdGVfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHJlY2VpcHRfcm9vdCA9PSBibG9jay5oZWFkZXIucmVjZWlwdF9yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoYmxvY2tfbG9nc19ibG9vbSA9PSBibG9jay5oZWFkZXIuYmxvb20sIEludmFsaWRCbG9jaykKCiAgICBjaGFpbi5ibG9ja3MuYXBwZW5kKGJsb2NrKQogICAgaWYgbGVuKGNoYWluLmJsb2NrcykgPiAyNTU6CiAgICAgICAgIyBSZWFsIGNsaWVudHMgaGF2ZSB0byBzdG9yZSBtb3JlIGJsb2NrcyB0byBkZWFsIHdpdGggcmVvcmdzLCBidXQgdGhlCiAgICAgICAgIyBwcm90b2NvbCBvbmx5IHJlcXVpcmVzIHRoZSBsYXN0IDI1NQogICAgICAgIGNoYWluLmJsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KlIWUgZR9lChoBWgGaCBqHhgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTy9ob21l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aW1pdCksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQogICAgZW5zdXJlKGxlbihoZWFkZXIuZXh0cmFfZGF0YSkgPD0gMzIsIEludmFsaWRCbG9jaykKCiAgICBibG9ja19kaWZmaWN1bHR5ID0gY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBwYXJlbnRfaGFzX29tbWVycywKICAgICkKICAgIGVuc3VyZShoZWFkZXIuZGlmZmljdWx0eSA9PSBibG9ja19kaWZmaWN1bHR5LCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfcGFyZW50X2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShwYXJlbnRfaGVhZGVyKSkKICAgIGVuc3VyZShoZWFkZXIucGFyZW50X2hhc2ggPT0gYmxvY2tfcGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKCiAgICB2YWxpZGF0ZV9wcm9vZl9vZl93b3JrKGhlYWRlcikKlGgHXZRoP1hjAwAAZGVmIHZhbGlkYXRlX2hlYWRlcihoZWFkZXI6IEhlYWRlciwgcGFyZW50X2hlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgcGFyZW50X2hhc19vbW1lcnMgPSBwYXJlbnRfaGVhZGVyLm9tbWVyc19oYXNoICE9IEVNUFRZX09NTUVSX0hBU0gKICAgIGVuc3VyZShoZWFkZXIudGltZXN0YW1wID4gcGFyZW50X2hlYWRlci50aW1lc3RhbXAsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShoZWFkZXIubnVtYmVyID09IHBhcmVudF9oZWFkZXIubnVtYmVyICsgMSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIGNoZWNrX2dhc19saW1pdChoZWFkZXIuZ2FzX2xpbWl0LCBwYXJlbnRfaGVhZGVyLmdhc19saW1pdCksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQogICAgZW5zdXJlKGxlbihoZWFkZXIuZXh0cmFfZGF0YSkgPD0gMzIsIEludmFsaWRCbG9jaykKCiAgICBibG9ja19kaWZmaWN1bHR5ID0gY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBwYXJlbnRfaGFzX29tbWVycywKICAgICkKICAgIGVuc3VyZShoZWFkZXIuZGlmZmljdWx0eSA9PSBibG9ja19kaWZmaWN1bHR5LCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfcGFyZW50X2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShwYXJlbnRfaGVhZGVyKSkKICAgIGVuc3VyZShoZWFkZXIucGFyZW50X2hhc2ggPT0gYmxvY2tfcGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKCiAgICB2YWxpZGF0ZV9wcm9vZl9vZl93b3JrKGhlYWRlcikKlIWUgZR9lChoBWgGaCBqehkAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2lzdGFuYnVsL3NwZWMucHmUjAl4bWw6c3BhY2WUavYEAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqLw8AAEsBc4wHbGluZW5vc5SJdWgcahcPAABoHWgeaB9NNQFoIGo8GAAAdWJlaA59lChoEF2UasYCAABhaBNdlGgVXZSMD3ZhbGlkYXRlX2hlYWRlcpRhaBddlGgZXZR1aBxoM2gdaB5oH00gAWggaqIOAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMHGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3eUaAddlGg/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TmggarQZAAB1YmVoDn2UKGgQXZRoE12UKGrxGQAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UavEZAACMB29ianR5cGWUajIbAACMCGRlc2N0eXBllGoyGwAAjAdub2luZGV4lIl1aBxq0w4AAGgdTmgfTmggapgZAAB1YmoYDwAAKYGUfZQoaAVYAwIAAGRlZiBnZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93KGhlYWRlcjogSGVhZGVyKSAtPiBIYXNoMzI6CiAgICBoZWFkZXJfZGF0YV93aXRob3V0X3Bvd19hcnRlZmFjdHMgPSBbCiAgICAgICAgaGVhZGVyLnBhcmVudF9oYXNoLAogICAgICAgIGhlYWRlci5vbW1lcnNfaGFzaCwKICAgICAgICBoZWFkZXIuY29pbmJhc2UsCiAgICAgICAgaGVhZGVyLnN0YXRlX3Jvb3QsCiAgICAgICAgaGVhZGVyLnRyYW5zYWN0aW9uc19yb290LAogICAgICAgIGhlYWRlci5yZWNlaXB0X3Jvb3QsCiAgICAgICAgaGVhZGVyLmJsb29tLAogICAgICAgIGhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGhlYWRlci5udW1iZXIsCiAgICAgICAgaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBoZWFkZXIuZ2FzX3VzZWQsCiAgICAgICAgaGVhZGVyLnRpbWVzdGFtcCwKICAgICAgICBoZWFkZXIuZXh0cmFfZGF0YSwKICAgIF0KCiAgICByZXR1cm4gcmxwLnJscF9oYXNoKGhlYWRlcl9kYXRhX3dpdGhvdXRfcG93X2FydGVmYWN0cykKlGgHXZRoP1gDAgAAZGVmIGdlbmVyYXRlX2hlYWRlcl9oYXNoX2Zvcl9wb3coaGVhZGVyOiBIZWFkZXIpIC0+IEhhc2gzMjoKICAgIGhlYWRlcl9kYXRhX3dpdGhvdXRfcG93X2FydGVmYWN0cyA9IFsKICAgICAgICBoZWFkZXIucGFyZW50X2hhc2gsCiAgICAgICAgaGVhZGVyLm9tbWVyc19oYXNoLAogICAgICAgIGhlYWRlci5jb2luYmFzZSwKICAgICAgICBoZWFkZXIuc3RhdGVfcm9vdCwKICAgICAgICBoZWFk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bGlkQmxvY2ssCiAgICApCpRoB12UaD9YNgIAAGRlZiB2YWxpZGF0ZV9wcm9vZl9vZl93b3JrKGhlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgaGVhZGVyX2hhc2ggPSBnZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93KGhlYWRlcikKICAgICMgVE9ETzogTWVtb2l6ZSB0aGlzIHNvbWV3aGVyZSBhbmQgcmVhZCBmcm9tIHRoYXQgZGF0YSBpbnN0ZWFkIG9mCiAgICAjIGNhbGN1bGF0aW5nIGNhY2hlIGZvciBldmVyeSBibG9jayB2YWxpZGF0aW9uLgogICAgY2FjaGUgPSBnZW5lcmF0ZV9jYWNoZShoZWFkZXIubnVtYmVyKQogICAgbWl4X2RpZ2VzdCwgcmVzdWx0ID0gaGFzaGltb3RvX2xpZ2h0KAogICAgICAgIGhlYWRlcl9oYXNoLCBoZWFkZXIubm9uY2UsIGNhY2hlLCBkYXRhc2V0X3NpemUoaGVhZGVyLm51bWJlcikKICAgICkKCiAgICBlbnN1cmUobWl4X2RpZ2VzdCA9PSBoZWFkZXIubWl4X2RpZ2VzdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIFVpbnQuZnJvbV9iZV9ieXRlcyhyZXN1bHQpIDw9IChVMjU2X0NFSUxfVkFMVUUgLy8gaGVhZGVyLmRpZmZpY3VsdHkpLAogICAgICAgIEludmFsaWRCbG9jaywKICAgICkKlIWUgZR9lChoBWgGaCBqZhwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2lzdGFuYnVsL3NwZWMucHmUjAl4bWw6c3BhY2WUavYEAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqLw8AAEsBc4wHbGluZW5vc5SJdWgcahcPAABoHWgeaB9NawFoIGpYGwAAdWJlaA59lChoEF2UagoDAABhaBNdlGgVXZSMFnZhbGlkYXRlX3Byb29mX29mX3dv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XZRoGV2UdWgcalgUAABoHU5oH05oIGrbHQAAdWJqWRQAACmBlH2UKGgFaAZoB12UKGpeFAAAKYGUfZQoaAWMB1JldHVybnOUaAddlGg/jAdSZXR1cm5zlIWUgZR9lChoBWgGaCBqmh8AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXRQAAGgdaB5oH0sAaCBqlx8AAHViam4UAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAVY2AEAAGdhc19hdmFpbGFibGUgKGV0aGVyZXVtLmJhc2VfdHlwZXMuVWludCkgLS0gUmVtYWluaW5nIGdhcyBhZnRlciBhbGwgdHJhbnNhY3Rpb25zIGhhdmUgYmVlbiBleGVjdXRlZC4KCnRyYW5zYWN0aW9uc19yb290IChldGhlcmV1bS5ldGhfdHlwZXMuUm9vdCkgLS0gVHJpZSByb290IG9mIGFsbCB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBibG9jay4KCnJlY2VpcHRfcm9vdCAoZXRoZXJldW0uZXRoX3R5cGVzLlJvb3QpIC0tIFRyaWUgcm9vdCBvZiBhbGwgdGhlIHJlY2VpcHRzIGluIHRoZSBibG9jay4KCmJsb2NrX2xvZ3NfYmxvb20gKEJsb29tKSAtLSBMb2dzIGJsb29tIG9mIGFsbCB0aGUgbG9ncyBpbmNsdWRlZCBpbiBhbGwgdGhlIHRyYW5zYWN0aW9ucyBvZiB0aGUKYmxvY2suCgpzdGF0ZSAoZXRoZXJldW0uZXRoX3R5cGVzLlN0YXRlKSAtLSBTdGF0ZSBhZnRlciBhbGwgdHJhbnNhY3Rpb25zIGhhdmUgYmVlbiBleGVjdXRlZC6UaAddlGhfKYGUfZQoaAVoBmgHXZQoaGQpgZR9lChoBYxqKipnYXNfYXZhaWxhYmxlKiogKGBldGhlcmV1bS5iYXNlX3R5cGVzLlVpbnRgKSAtLSBSZW1haW5pbmcgZ2FzIGFmdGVyIGFsbCB0cmFuc2FjdGlvbnMgaGF2ZSBiZWVuIGV4ZWN1dGVkLpRoB12UaGkpgZR9lChoBWq0HwAAaAddlChquBQAACmBlH2UKGgFjBEqKmdhc19hdmFpbGFibGUqKpRoB12UaD+MDWdhc19hdmFpbGFibGWUhZSB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cHBseV9ib2R5KAogICAgc3RhdGU6IFN0YXRlLAogICAgYmxvY2tfaGFzaGVzOiBMaXN0W0hhc2gzMl0sCiAgICBjb2luYmFzZTogQWRkcmVzcywKICAgIGJsb2NrX251bWJlcjogVWludCwKICAgIGJsb2NrX2dhc19saW1pdDogVWludCwKICAgIGJsb2NrX3RpbWU6IFUyNTYsCiAgICBibG9ja19kaWZmaWN1bHR5OiBVaW50LAogICAgdHJhbnNhY3Rpb25zOiBUdXBsZVtUcmFuc2FjdGlvbiwgLi4uXSwKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLAogICAgY2hhaW5faWQ6IFVpbnQ2NCwKKSAtPiBUdXBsZVtVaW50LCBSb290LCBSb290LCBCbG9vbSwgU3RhdGVdOgogICAgZ2FzX2F2YWlsYWJsZSA9IGJsb2NrX2dhc19saW1pdAogICAgdHJhbnNhY3Rpb25zX3RyaWU6IFRyaWVbQnl0ZXMsIE9wdGlvbmFsW1RyYW5zYWN0aW9uXV0gPSBUcmllKAogICAgICAgIHNlY3VyZWQ9RmFsc2UsIGRlZmF1bHQ9Tm9uZQogICAgKQogICAgcmVjZWlwdHNfdHJpZTogVHJpZVtCeXRlcywgT3B0aW9uYWxbUmVjZWlwdF1dID0gVHJpZSgKICAgICAgICBzZWN1cmVkPUZhbHNlLCBkZWZhdWx0PU5vbmUKICAgICkKICAgIGJsb2NrX2xvZ3M6IFR1cGxlW0xvZywgLi4uXSA9ICgpCgogICAgZm9yIGksIHR4IGluIGVudW1lcmF0ZSh0cmFuc2FjdGlvbnMpOgogICAgICAgIHRyaWVfc2V0KHRyYW5zYWN0aW9uc190cmllLCBybHAuZW5jb2RlKFVpbnQoaSkpLCB0eCkKCiAgICAgICAgZW5zdXJlKHR4LmdhcyA8PSBnYXNfYXZhaWxhYmxlLCBJbnZhbGlkQmxvY2spCiAgICAgICAgc2VuZGVyX2FkZHJlc3MgPSByZWNvdmVyX3NlbmRlcihjaGFpbl9pZCwgdHgpCgogICAgICAgIGVudiA9IHZtLkVudmlyb25tZW50KAogICAgICAgICAgICBjYWxsZXI9c2VuZGVyX2FkZHJlc3MsCiAgICAgICAgICAgIG9yaWdpbj1zZW5kZXJfYWRkcmVzcywKICAgICAgICAgICAgYmxvY2tfaGFzaGVzPWJsb2NrX2hhc2hlcywKICAgICAgICAgICAgY29pbmJhc2U9Y29pbmJhc2UsCiAgICAgICAgICAgIG51bWJlcj1ibG9ja19udW1iZXIsCiAgICAgICAgICAgIGdhc19saW1pdD1ibG9ja19nYXNfbGltaXQsCiAgICAgICAgICAgIGdhc19wcmljZT10eC5nYXNfcHJpY2UsCiAgICAgICAgICAgIHRpbWU9YmxvY2tfdGltZSwKICAgICAgICAgICAgZGlmZmljdWx0eT1ibG9ja19kaWZmaWN1bHR5LAogICAgICAgICAgICBzdGF0ZT1zdGF0ZSwKICAgICAgICAgICAgY2hhaW5faWQ9Y2hhaW5faWQsCiAgICAgICAgKQoKICAgICAgICBnYXNfdXNlZCwgbG9ncywgaGFzX2VycmVkID0gcHJvY2Vzc190cmFuc2FjdGlvbihlbnYsIHR4KQogICAgICAgIGdhc19hdmFpbGFibGUgLT0gZ2FzX3VzZWQKCiAgICAgICAgdHJpZV9zZXQoCiAgICAgICAgICAgIHJlY2VpcHRzX3RyaWUsCiAgICAgICAgICAgIHJscC5lbmNvZGUoVWludChpKSksCiAgICAgICAgICAgIFJlY2VpcHQoCiAgICAgICAgICAgICAgICBzdWNjZWVkZWQ9bm90IGhhc19lcnJlZCwKICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQ9KGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUpLAogICAgICAgICAgICAgICAgYmxvb209bG9nc19ibG9vbShsb2dzKSwKICAgICAgICAgICAgICAgIGxvZ3M9bG9ncywKICAgICAgICAgICAgKSwKICAgICAgICApCiAgICAgICAgYmxvY2tfbG9ncyArPSBsb2dzCgogICAgcGF5X3Jld2FyZHMoc3RhdGUsIGJsb2NrX251bWJlciwgY29pbmJhc2UsIG9tbWVycykKCiAgICBnYXNfcmVtYWluaW5nID0gYmxvY2tfZ2FzX2xpbWl0IC0gZ2FzX2F2YWlsYWJsZQoKICAgIGJsb2NrX2xvZ3NfYmxvb20gPSBsb2dzX2Jsb29tKGJsb2NrX2xvZ3MpCgogICAgcmV0dXJuICgKICAgICAgICBnYXNfcmVtYWluaW5nLAogICAgICAgIHJvb3QodHJhbnNhY3Rpb25zX3RyaWUpLAogICAgICAgIHJvb3QocmVjZWlwdHNfdHJpZSksCiAgICAgICAgYmxvY2tfbG9nc19ibG9vbSwKICAgICAgICBzdGF0ZSwKICAgICkKlGgHXZRoP1i1BwAAZGVmIGFwcGx5X2JvZHkoCiAgICBzdGF0ZTogU3RhdGUsCiAgICBibG9ja19oYXNoZXM6IExpc3RbSGFzaDMyXSwKICAgIGNvaW5iYXNlOiBBZGRyZXNzLAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAgYmxvY2tfZ2FzX2xpbWl0OiBVaW50LAogICAgYmxvY2tfdGltZTogVTI1NiwKICAgIGJsb2NrX2RpZmZpY3VsdHk6IFVpbnQsCiAgICB0cmFuc2FjdGlvbnM6IFR1cGxlW1RyYW5zYWN0aW9uLCAuLi5dLAogICAgb21tZXJzOiBUdXBsZVtIZWFkZXIsIC4uLl0sCiAgICBjaGFpbl9pZDogVWludDY0LAopIC0+IFR1cGxlW1VpbnQsIFJvb3QsIFJvb3QsIEJsb29tLCBTdGF0ZV06CiAgICBnYXNfYXZhaWxhYmxlID0gYmxvY2tfZ2FzX2xpbWl0CiAgICB0cmFuc2FjdGlvbnNfdHJpZTogVHJpZVtCeXRlcywgT3B0aW9uYWxbVHJhbnNhY3Rpb25dXSA9IFRyaWUoCiAgICAgICAgc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lCiAgICApCiAgICByZWNlaXB0c190cmllOiBUcmllW0J5dGVzLCBPcHRpb25hbFtSZWNlaXB0XV0gPSBUcmllKAogICAgICAgIHNlY3VyZWQ9RmFsc2UsIGRlZmF1bHQ9Tm9uZQogICAgKQogICAgYmxvY2tfbG9nczogVHVwbGVbTG9nLCAuLi5dID0gKCkKCiAgICBmb3IgaSwgdHggaW4gZW51bWVyYXRlKHRyYW5zYWN0aW9ucyk6CiAgICAgICAgdHJpZV9zZXQodHJhbnNhY3Rpb25zX3RyaWUsIHJscC5lbmNvZGUoVWludChpKSksIHR4KQoKICAgICAgICBlbnN1cmUodHguZ2FzIDw9IGdhc19hdmFpbGFibGUsIEludmFsaWRCbG9jaykKICAgICAgICBzZW5kZXJfYWRkcmVzcyA9IHJlY292ZXJfc2VuZGVyKGNoYWluX2lkLCB0eCkKCiAgICAgICAgZW52ID0gdm0uRW52aXJvbm1lbnQoCiAgICAgICAgICAgIGNhbGxlcj1zZW5kZXJfYWRkcmVzcywKICAgICAgICAgICAgb3JpZ2luPXNlbmRlcl9hZGRyZXNzLAogICAgICAgICAgICBibG9ja19oYXNoZXM9YmxvY2tfaGFzaGVzLAogICAgICAgICAgICBjb2luYmFzZT1jb2luYmFzZSwKICAgICAgICAgICAgbnVtYmVyPWJsb2NrX251bWJlciwKICAgICAgICAgICAgZ2FzX2xpbWl0PWJsb2NrX2dhc19saW1pdCwKICAgICAgICAgICAgZ2FzX3ByaWNlPXR4Lmdhc19wcmljZSwKICAgICAgICAgICAgdGltZT1ibG9ja190aW1lLAogICAgICAgICAgICBkaWZmaWN1bHR5PWJsb2NrX2RpZmZpY3VsdHksCiAgICAgICAgICAgIHN0YXRlPXN0YXRlLAogICAgICAgICAgICBjaGFpbl9pZD1jaGFpbl9pZCwKICAgICAgICApCgogICAgICAgIGdhc191c2VkLCBsb2dzLCBoYXNfZXJyZWQgPSBwcm9jZXNzX3RyYW5zYWN0aW9uKGVudiwgdHgpCiAgICAgICAgZ2FzX2F2YWlsYWJsZSAtPSBnYXNfdXNlZAoKICAgICAgICB0cmllX3NldCgKICAgICAgICAgICAgcmVjZWlwdHNfdHJpZSwKICAgICAgICAgICAgcmxwLmVuY29kZShVaW50KGkpKSwKICAgICAgICAgICAgUmVjZWlwdCgKICAgICAgICAgICAgICAgIHN1Y2NlZWRlZD1ub3QgaGFzX2VycmVkLAogICAgICAgICAgICAgICAgY3VtdWxhdGl2ZV9nYXNfdXNlZD0oYmxvY2tfZ2FzX2xpbWl0IC0gZ2FzX2F2YWlsYWJsZSksCiAgICAgICAgICAgICAgICBibG9vbT1sb2dzX2Jsb29tKGxvZ3MpLAogICAgICAgICAgICAgICAgbG9ncz1sb2dzLAog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YWRlci5vbW1lcnNfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGxlbihvbW1lcnMpID09IDA6CiAgICAgICAgIyBOb3RoaW5nIHRvIHZhbGlkYXRlCiAgICAgICAgcmV0dXJuCgogICAgIyBDaGVjayB0aGF0IGVhY2ggb21tZXIgc2F0aXNmaWVzIHRoZSBjb25zdHJhaW50cyBvZiBhIGhlYWRlcgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lci5udW1iZXIgPCBibG9ja19oZWFkZXIubnVtYmVyLCBJbnZhbGlkQmxvY2spCiAgICAgICAgb21tZXJfcGFyZW50X2hlYWRlciA9IGNoYWluLmJsb2Nrc1sKICAgICAgICAgICAgLShibG9ja19oZWFkZXIubnVtYmVyIC0gb21tZXIubnVtYmVyKSAtIDEKICAgICAgICBdLmhlYWRlcgogICAgICAgIHZhbGlkYXRlX2hlYWRlcihvbW1lciwgb21tZXJfcGFyZW50X2hlYWRlcikKCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgY2FuIGJlIG9ubHkgYXQgbW9zdCAyIG9tbWVycyBmb3IgYSBibG9jay4KICAgIGVuc3VyZShsZW4ob21tZXJzKSA8PSAyLCBJbnZhbGlkQmxvY2spCgogICAgb21tZXJzX2hhc2hlcyA9IFtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBvbW1lcnNdCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgYXJlIG5vIGR1cGxpY2F0ZXMgaW4gdGhlIG9tbWVycyBvZiBjdXJyZW50IGJsb2NrCiAgICBlbnN1cmUobGVuKG9tbWVyc19oYXNoZXMpID09IGxlbihzZXQob21tZXJzX2hhc2hlcykpLCBJbnZhbGlkQmxvY2spCgogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLShNQVhfT01NRVJfREVQVEggKyAxKSA6XQogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMgPSB7CiAgICAgICAgcmxwLnJscF9oYXNoKGJsb2NrLmhlYWRlcikgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzCiAgICB9CiAgICByZWNlbnRfb21tZXJzX2hhc2hlczogU2V0W0hhc2gzMl0gPSBzZXQoKQogICAgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzOgogICAgICAgIHJlY2VudF9vbW1lcnNfaGFzaGVzID0gcmVjZW50X29tbWVyc19oYXNoZXMudW5pb24oCiAgICAgICAgICAgIHtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBibG9jay5vbW1lcnN9CiAgICAgICAgKQoKICAgIGZvciBvbW1lcl9pbmRleCwgb21tZXIgaW4gZW51bWVyYXRlKG9tbWVycyk6CiAgICAgICAgb21tZXJfaGFzaCA9IG9tbWVyc19oYXNoZXNbb21tZXJfaW5kZXhdCiAgICAgICAgIyBUaGUgY3VycmVudCBibG9jayBzaG91bGRuJ3QgYmUgdGhlIG9tbWVyCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggIT0gYmxvY2tfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHJlY2VudCBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgc2hvdWxkbid0IGJlIG9uZSBvZiB0aGUgdW5jbGVzIG1lbnRpb25lZCBpbiB0aGUgcmVjZW50CiAgICAgICAgIyBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9vbW1lcnNfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgYWdlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBibG9jay4gRm9yIGV4YW1wbGUsIGFuIGFnZSBvZgogICAgICAgICMgMSBpbmRpY2F0ZXMgdGhhdCB0aGUgb21tZXIgaXMgYSBzaWJsaW5nIG9mIHByZXZpb3VzIGJsb2NrLgogICAgICAgIG9tbWVyX2FnZSA9IGJsb2NrX2hlYWRlci5udW1iZXIgLSBvbW1lci5udW1iZXIKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lcl9hZ2UgPD0gTUFYX09NTUVSX0RFUFRILCBJbnZhbGlkQmxvY2spCgogICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgb21tZXIucGFyZW50X2hhc2ggaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMsIEludmFsaWRCbG9jawogICAgICAgICkKICAgICAgICBlbnN1cmUob21tZXIucGFyZW50X2hhc2ggIT0gYmxvY2tfaGVhZGVyLnBhcmVudF9oYXNoLCBJbnZhbGlkQmxvY2spCpRoB12UaD9YAQkAAGRlZiB2YWxpZGF0ZV9vbW1lcnMoCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwgYmxvY2tfaGVhZGVyOiBIZWFkZXIsIGNoYWluOiBCbG9ja0NoYWluCikgLT4gTm9uZToKICAgIGJsb2NrX2hhc2ggPSBybHAucmxwX2hhc2goYmxvY2tfaGVhZGVyKQoKICAgIGVuc3VyZShybHAucmxwX2hhc2gob21tZXJzKSA9PSBibG9ja19oZWFkZXIub21tZXJzX2hhc2gsIEludmFsaWRCbG9jaykKCiAgICBpZiBsZW4ob21tZXJzKSA9PSAwOgogICAgICAgICMgTm90aGluZyB0byB2YWxpZGF0ZQogICAgICAgIHJldHVybgoKICAgICMgQ2hlY2sgdGhhdCBlYWNoIG9tbWVyIHNhdGlzZmllcyB0aGUgY29uc3RyYWludHMgb2YgYSBoZWFkZXIKICAgIGZvciBvbW1lciBpbiBvbW1lcnM6CiAgICAgICAgZW5zdXJlKDEgPD0gb21tZXIubnVtYmVyIDwgYmxvY2tfaGVhZGVyLm51bWJlciwgSW52YWxpZEJsb2NrKQogICAgICAgIG9tbWVyX3BhcmVudF9oZWFkZXIgPSBjaGFpbi5ibG9ja3NbCiAgICAgICAgICAgIC0oYmxvY2tfaGVhZGVyLm51bWJlciAtIG9tbWVyLm51bWJlcikgLSAxCiAgICAgICAgXS5oZWFkZXIKICAgICAgICB2YWxpZGF0ZV9oZWFkZXIob21tZXIsIG9tbWVyX3BhcmVudF9oZWFkZXIpCgogICAgIyBDaGVjayB0aGF0IHRoZXJlIGNhbiBiZSBvbmx5IGF0IG1vc3QgMiBvbW1lcnMgZm9yIGEgYmxvY2suCiAgICBlbnN1cmUobGVuKG9tbWVycykgPD0gMiwgSW52YWxpZEJsb2NrKQoKICAgIG9tbWVyc19oYXNoZXMgPSBbcmxwLnJscF9oYXNoKG9tbWVyKSBmb3Igb21tZXIgaW4gb21tZXJzXQogICAgIyBDaGVjayB0aGF0IHRoZXJlIGFyZSBubyBkdXBsaWNhdGVzIGluIHRoZSBvbW1lcnMgb2YgY3VycmVudCBibG9jawogICAgZW5zdXJlKGxlbihvbW1lcnNfaGFzaGVzKSA9PSBsZW4oc2V0KG9tbWVyc19oYXNoZXMpKSwgSW52YWxpZEJsb2NrKQoKICAgIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzID0gY2hhaW4uYmxvY2tzWy0oTUFYX09NTUVSX0RFUFRIICsgMSkgOl0KICAgIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzID0gewogICAgICAgIHJscC5ybHBfaGFzaChibG9jay5oZWFkZXIpIGZvciBibG9jayBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrcwogICAgfQogICAgcmVjZW50X29tbWVyc19oYXNoZXM6IFNldFtIYXNoMzJdID0gc2V0KCkKICAgIGZvciBibG9jayBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrczoKICAgICAgICByZWNlbnRfb21tZXJzX2hhc2hlcyA9IHJlY2VudF9vbW1lcnNfaGFzaGVzLnVuaW9uKAogICAgICAgICAgICB7cmxwLnJscF9oYXNoKG9tbWVyKSBmb3Igb21tZXIgaW4gYmxvY2sub21tZXJzfQogICAgICAgICkKCiAgICBmb3Igb21tZXJfaW5kZXgsIG9tbWVyIGluIGVudW1lcmF0ZShvbW1lcnMpOgogICAgICAgIG9tbWVyX2hhc2ggPSBvbW1lcnNfaGFzaGVzW29tbWVyX2luZGV4XQogICAgICAgICMgVGhlIGN1cnJlbnQgYmxvY2sgc2hvdWxkbid0IGJlIHRoZSBvbW1lcgogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoICE9IGJsb2NrX2hhc2gsIEludmFsaWRCbG9jaykKCiAgICAgICAgIyBPbW1lciBzaG91bGRuJ3QgYmUgb25lIG9mIHRoZSByZWNlbnQgY2Fub25pY2FsIGJsb2NrcwogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoIG5vdCBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrX2hhc2hlcywgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHVuY2xlcyBtZW50aW9uZWQgaW4gdGhlIHJlY2VudAogICAgICAgICMgY2Fub25pY2FsIGJsb2NrcwogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoIG5vdCBpbiByZWNlbnRfb21tZXJzX2hhc2hlcywgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIGFnZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgYmxvY2suIEZvciBleGFtcGxlLCBhbiBhZ2Ugb2YKICAgICAgICAjIDEgaW5kaWNhdGVzIHRoYXQgdGhlIG9tbWVyIGlzIGEgc2libGluZyBvZiBwcmV2aW91cyBibG9jay4KICAgICAgICBvbW1lcl9hZ2UgPSBibG9ja19oZWFkZXIubnVtYmVyIC0gb21tZXIubnVtYmVyCiAgICAgICAgZW5zdXJlKDEgPD0gb21tZXJfYWdlIDw9IE1BWF9PTU1FUl9ERVBUSCwgSW52YWxpZEJsb2NrKQoKICAgICAgICBlbnN1cmUoCiAgICAgICAgICAgIG9tbWVyLnBhcmVudF9oYXNoIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzLCBJbnZhbGlkQmxvY2sKICAgICAgICApCiAgICAgICAgZW5zdXJlKG9tbWVyLnBhcmVudF9oYXNoICE9IGJsb2NrX2hlYWRlci5wYXJlbnRfaGFzaCwgSW52YWxpZEJsb2NrKQqUhZSBlH2UKGgFaAZoIGqNIgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxP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aBddlGgZXZSMBm1vZHVsZZRq/g4AAIwFY2xhc3OUaAaMCGZ1bGxuYW1llGrQIgAAdWgcatgOAABoHWgeaB9NuwFoIGrHIgAAdWJqAg8AACmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAWMPFBheSByZXdhcmRzIHRvIHRoZSBibG9jayBtaW5lciBhcyB3ZWxsIGFzIHRoZSBvbW1lcnMgbWluZXJzLpRoB12UaD+MPFBheSByZXdhcmRzIHRvIHRoZSBibG9jayBtaW5lciBhcyB3ZWxsIGFzIHRoZSBvbW1lcnMgbWluZXJzLpSFlIGUfZQoaAVoBmggalYjAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NvgFoIGpTIwAAdWJoaSmBlH2UKGgFWI8CAABUaGUgbWluZXIgb2YgdGhlIGNhbm9uaWNhbCBibG9jayBpcyByZXdhcmRlZCB3aXRoIHRoZSBwcmVkZXRlcm1pbmVkCmJsb2NrIHJld2FyZCwgYGBCTE9DS19SRVdBUkRgYCwgcGx1cyBhIHZhcmlhYmxlIGF3YXJkIGJhc2VkIG9mZiBvZiB0aGUKbnVtYmVyIG9mIG9tbWVyIGJsb2NrcyB0aGF0IHdlcmUgbWluZWQgYXJvdW5kIHRoZSBzYW1lIHRpbWUsIGFuZCBpbmNsdWRlZAppbiB0aGUgY2Fub25pY2FsIGJsb2NrJ3MgaGVhZGVyLiBBbiBvbW1lciBibG9jayBpcyBhIGJsb2NrIHRoYXQgd2Fzbid0CmFkZGVkIHRvIHRoZSBjYW5vbmljYWwgYmxvY2tjaGFpbiBiZWNhdXNlIGl0IHdhc24ndCB2YWxpZGF0ZWQgYXMgZmFzdCBhcwp0aGUgYWNjZXB0ZWQgYmxvY2sgYnV0IHdhcyBtaW5lZCBhdCB0aGUgc2FtZSB0aW1lLiBBbHRob3VnaCBub3QgYWxsIGJsb2Nrcwp0aGF0IGFyZSBtaW5lZCBhcmUgYWRkZWQgdG8gdGhlIGNhbm9uaWNhbCBjaGFpbiwgbWluZXJzIGFyZSBzdGlsbCBwYWlkIGEKcmV3YXJkIGZvciB0aGVpciBlZmZvcnRzLiBUaGlzIHJld2FyZCBpcyBjYWxsZWQgYW4gb21tZXIgcmV3YXJkIGFuZCBpcwpjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBvbW1lciBibG9jayB0aGF0IHRoZXkKbWluZWQulGgHXZQoaD+MUlRoZSBtaW5lciBvZiB0aGUgY2Fub25pY2FsIGJsb2NrIGlzIHJld2FyZGVkIHdpdGggdGhlIHByZWRldGVybWluZWQKYmxvY2sgcmV3YXJkLCCUhZSBlH2UKGgFaAZoIGpkIwAAaCFoA2gdaERoH0sAdWJqbAUAACmBlH2UKGgFjBBgYEJMT0NLX1JFV0FSRGBglGgHXZRoP4wMQkxPQ0tfUkVXQVJElIWUgZR9lChoBWgGaCBqbCMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqawUAAGgdTmgfTmggamQjAAB1Ymg/WDMCAAAsIHBsdXMgYSB2YXJpYWJsZSBhd2FyZCBiYXNlZCBvZmYgb2YgdGhlCm51bWJlciBvZiBvbW1lciBibG9ja3MgdGhhdCB3ZXJlIG1pbmVkIGFyb3VuZCB0aGUgc2FtZSB0aW1lLCBhbmQgaW5jbHVkZWQKaW4gdGhlIGNhbm9uaWNhbCBibG9ja+KAmXMgaGVhZGVyLiBBbiBvbW1lciBibG9jayBpcyBhIGJsb2NrIHRoYXQgd2FzbuKAmXQKYWRkZWQgdG8gdGhlIGNhbm9uaWNhbCBibG9ja2NoYWluIGJlY2F1c2UgaXQgd2FzbuKAmXQgdmFsaWRhdGVkIGFzIGZhc3QgYXMKdGhlIGFjY2VwdGVkIGJsb2NrIGJ1dCB3YXMgbWluZWQgYXQgdGhlIHNhbWUgdGltZS4gQWx0aG91Z2ggbm90IGFsbCBibG9ja3MKdGhhdCBhcmUgbWluZWQgYXJlIGFkZGVkIHRvIHRoZSBjYW5vbmljYWwgY2hhaW4sIG1pbmVycyBhcmUgc3RpbGwgcGFpZCBhCnJld2FyZCBmb3IgdGhlaXIgZWZmb3J0cy4gVGhpcyByZXdhcmQgaXMgY2FsbGVkIGFuIG9tbWVyIHJld2FyZCBhbmQgaXMKY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgb21tZXIgYmxvY2sg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ciBhZ2Ugd2l0aCByZXNwZWN0IHRvIHRoZSBjdXJyZW50IGJsb2NrLgogICAgICAgIG9tbWVyX2FnZSA9IFUyNTYoYmxvY2tfbnVtYmVyIC0gb21tZXIubnVtYmVyKQogICAgICAgIG9tbWVyX21pbmVyX3Jld2FyZCA9ICgoOCAtIG9tbWVyX2FnZSkgKiBCTE9DS19SRVdBUkQpIC8vIDgKICAgICAgICBjcmVhdGVfZXRoZXIoc3RhdGUsIG9tbWVyLmNvaW5iYXNlLCBvbW1lcl9taW5lcl9yZXdhcmQpCpRoB12UaD9Y/gEAAGRlZiBwYXlfcmV3YXJkcygKICAgIHN0YXRlOiBTdGF0ZSwKICAgIGJsb2NrX251bWJlcjogVWludCwKICAgIGNvaW5iYXNlOiBBZGRyZXNzLAogICAgb21tZXJzOiBUdXBsZVtIZWFkZXIsIC4uLl0sCikgLT4gTm9uZToKICAgIG1pbmVyX3Jld2FyZCA9IEJMT0NLX1JFV0FSRCArIChsZW4ob21tZXJzKSAqIChCTE9DS19SRVdBUkQgLy8gMzIpKQogICAgY3JlYXRlX2V0aGVyKHN0YXRlLCBjb2luYmFzZSwgbWluZXJfcmV3YXJkKQoKICAgIGZvciBvbW1lciBpbiBvbW1lcnM6CiAgICAgICAgIyBPbW1lciBhZ2Ugd2l0aCByZXNwZWN0IHRvIHRoZSBjdXJyZW50IGJsb2NrLgogICAgICAgIG9tbWVyX2FnZSA9IFUyNTYoYmxvY2tfbnVtYmVyIC0gb21tZXIubnVtYmVyKQogICAgICAgIG9tbWVyX21pbmVyX3Jld2FyZCA9ICgoOCAtIG9tbWVyX2FnZSkgKiBCTE9DS19SRVdBUkQpIC8vIDgKICAgICAgICBjcmVhdGVfZXRoZXIoc3RhdGUsIG9tbWVyLmNvaW5iYXNlLCBvbW1lcl9taW5lcl9yZXdhcmQpCpSFlIGUfZQoaAVoBmggamckAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9pc3RhbmJ1bC9zcGVjLnB5lIwJeG1sOnNwYWNllGr2BAAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uai8PAABLAXOMB2xpbmVub3OUiXVoHGoXDwAAaB1oHmgfTdMBaCBqqyIAAHViZWgOfZQoaBBdlGpwAwAAYWgTXZRoFV2UjAtwYXlfcmV3YXJkc5RhaBddlGgZXZR1aBxoM2gdaB5oH024AWggaqIOAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWME3Byb2Nlc3NfdHJhbnNhY3Rpb26UaAddlGg/jBNwcm9jZXNzX3RyYW5zYWN0aW9ulIWUgZR9lChoBWgGaCBqiCQAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH03YAWggaoUkAAB1YmgkKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UdWgcaCNoHU5oH05oIGqFJAAAdWJq1A4AACmBlH2UKGgFaAZoB12UKGrZDgAAKYGUfZQoaAWMHHByb2Nlc3NfdHJhbnNhY3Rpb24oZW52LCB0eCmUaAddlChq3w4AACmBlH2UKGgFjBNwcm9jZXNzX3RyYW5zYWN0aW9ulGgHXZRoP4wTcHJvY2Vzc190cmFuc2FjdGlvbpSFlIGUfZQoaAVoBmggaqgkAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGrqDgAAausOAABq7A4AAGrtDgAAZWgVXZRoF12UaBldlIwJeG1sOnNwYWNllGr2BAAAdWgcat4OAABoHWgeaB9OaCBqpCQAAHViatATAAApgZR9lChoBYwHZW52LCB0eJRoB12UKGrWEwAAKYGUfZQoaAWMA2VudpRoB12UalMRAAApgZR9lChoBWgGaAddlGg/jANlbnaUhZSBlH2UKGgFaAZoIGq/JAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGrlEwAAYWgVXZRoF12UaBldlHVoHGpSEQAAaB1OaB9OaCBquyQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGrVEwAAaB1OaB9OaCBqtyQAAHViatYTAAApgZR9lChoBYwCdHiUaAddlGpTEQAAKYGUfZQoaAVoBmgHXZRoP4wCdHiUhZSBlH2UKGgFaAZoIGrXJAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGrlEwAAYWgVXZRoF12UaBldlHVoHGpSEQAAaB1OaB9OaCBq0yQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGrVEwAAaB1OaB9OaCBqtyQAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGrPEwAAaB1oHmgfTmggaqQkAAB1YmVoDn2UKGgQXZSMKmV0aGVyZXVtLmlzdGFuYnVsLnNwZWMucHJvY2Vzc190cmFuc2FjdGlvbpRhaBNdlChq9Q4AAGr2DgAAjAJweZRq+A4AAGr5DgAAZWgVXZRoF12UaBldlIwGbW9kdWxllGr+DgAAjAVjbGFzc5RoBowIZnVsbG5hbWWUaqokAAB1aBxq2A4AAGgdaB5oH03bAWggaqEkAAB1YmoCDwAAKYGUfZQoaAVoBmgHXZQoaGkpgZR9lChoBYw3RXhlY3V0ZSBhIHRyYW5zYWN0aW9uIGFnYWluc3QgdGhlIHByb3ZpZGVkIGVudmlyb25tZW50LpRoB12UaD+MN0V4ZWN1dGUgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudC6UhZSBlH2UKGgFaAZoIGoAJQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTd4BaCBq/SQAAHViaGkpgZR9lChoBVhbAQAAVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIGFjdGlvbnMgbmVlZGVkIHRvIGV4ZWN1dGUgYSB0cmFuc2FjdGlvbi4KSXQgZGVjcmVtZW50cyB0aGUgc2VuZGVyJ3MgYWNjb3VudCBhZnRlciBjYWxjdWxhdGluZyB0aGUgZ2FzIGZlZSBhbmQKcmVmdW5kcyB0aGVtIHRoZSBwcm9wZXIgYW1vdW50IGFmdGVyIGV4ZWN1dGlvbi4gQ2FsbGluZyBjb250cmFjdHMsCmRlcGxveWluZyBjb2RlLCBhbmQgaW5jcmVtZW50aW5nIG5vbmNlcyBhcmUgYWxsIGV4YW1wbGVzIG9mIGFjdGlvbnMgdGhhdApoYXBwZW4gd2l0aGluIHRoaXMgZnVuY3Rpb24gb3IgZnJvbSBhIGNhbGwgbWFkZSB3aXRoaW4gdGhpcyBmdW5jdGlvbi6UaAddlGg/WF0BAABUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyB0aGUgYWN0aW9ucyBuZWVkZWQgdG8gZXhlY3V0ZSBhIHRyYW5zYWN0aW9uLgpJdCBkZWNyZW1lbnRzIHRoZSBzZW5kZXLigJlzIGFjY291bnQgYWZ0ZXIgY2FsY3VsYXRpbmcgdGhlIGdhcyBmZWUgYW5kCnJlZnVuZHMgdGhlbSB0aGUgcHJvcGVyIGFtb3VudCBhZnRlciBleGVjdXRpb24uIENhbGxpbmcgY29udHJhY3RzLApkZXBsb3lpbmcgY29kZSwgYW5kIGluY3JlbWVudGluZyBub25jZXMgYXJlIGFsbCBleGFtcGxlcyBvZiBhY3Rpb25zIHRoYXQKaGFwcGVuIHdpdGhpbiB0aGlzIGZ1bmN0aW9uIG9yIGZyb20gYSBjYWxsIG1hZGUgd2l0aGluIHRoaXMgZnVuY3Rpb24ulIWUgZR9lChoBWgGaCBqDiUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03gAWggav0kAAB1YmhpKYGUfZQoaAWMUkFjY291bnRzIHRoYXQgYXJlIG1hcmtlZCBmb3IgZGVsZXRpb24gYXJlIHByb2Nlc3NlZCBhbmQgZGVzdHJveWVkIGFmdGVyCmV4ZWN1dGlvbi6UaAddlGg/jFJBY2NvdW50cyB0aGF0IGFyZSBtYXJrZWQgZm9yIGRlbGV0aW9uIGFyZSBwcm9jZXNzZWQgYW5kIGRlc3Ryb3llZCBhZnRlcgpleGVjdXRpb24ulIWUgZR9lChoBWgGaCBqHCUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03mAWggav0kAAB1YmpUFAAAKYGUfZQoaAVoBmgHXZQoalkUAAApgZR9lChoBWgGaAddlChqXhQAACmBlH2UKGgFjApQYXJhbWV0ZXJzlGgHXZRoP4wKUGFyYW1ldGVyc5SFlIGUfZQoaAVoBmggajAlAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcal0UAABoHWgeaB9LAGggai0lAAB1YmpuFAAAKYGUfZQoaAVoBmgHXZRoXymBlH2UKGgFaAZoB12UKGhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDRlbnYgLS0gRW52aXJvbm1lbnQgZm9yIHRoZSBFdGhlcmV1bSBWaXJ0dWFsIE1hY2hpbmUulGgHXZQoancUAAApgZR9lChoBYwDZW52lGgHXZRoP4wDZW52lIWUgZR9lChoBWgGaCBqSyUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMC3JlZnNwZWNpZmljlIiMCXB5Om1vZHVsZZRq/g4AAIwIcHk6Y2xhc3OUTnVoHGp2FAAAaB1OaB9OaCBqRyUAAHViaD+MMiDigJMgRW52aXJvbm1lbnQgZm9yIHRoZSBFdGhlcmV1bSBWaXJ0dWFsIE1hY2hpbmUulIWUgZR9lChoBWgGaCBqRyUAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggakQlAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGpBJQAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwddHggLS0gVHJhbnNhY3Rpb24gdG8gZXhlY3V0ZS6UaAddlChqdxQAACmBlH2UKGgFjAJ0eJRoB12UaD+MAnR4lIWUgZR9lChoBWgGaCBqcyUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMC3JlZnNwZWNpZmljlIiMCXB5Om1vZHVsZZRq/g4AAIwIcHk6Y2xhc3OUTnVoHGp2FAAAaB1OaB9OaCBqbyUAAHViaD+MHCDigJMgVHJhbnNhY3Rpb24gdG8gZXhlY3V0ZS6UhZSBlH2UKGgFaAZoIGpvJQAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqbCUAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdTmgfTmggakElAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaF5oHU5oH05oIGo+JQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGptFAAAaB1OaB9OaCBqLSUAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqWBQAAGgdTmgfTmggaiolAAB1YmpZFAAAKYGUfZQoaAVoBmgHXZQoal4UAAApgZR9lChoBYwHUmV0dXJuc5RoB12UaD+MB1JldHVybnOUhZSBlH2UKGgFaAZoIGqpJQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpdFAAAaB1oHmgfSwBoIGqmJQAAdWJqbhQAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYyUZ2FzX2xlZnQgKGV0aGVyZXVtLmJhc2VfdHlwZXMuVTI1NikgLS0gUmVtYWluaW5nIGdhcyBhZnRlciBleGVjdXRpb24uCgpsb2dzIChUdXBsZVtldGhlcmV1bS5ldGhfdHlwZXMuTG9nLCAuLi5dKSAtLSBMb2dzIGdlbmVyYXRlZCBkdXJpbmcgZXhlY3V0aW9uLpRoB12UaF8pgZR9lChoBWgGaAddlChoZCmBlH2UKGgFjEsqKmdhc19sZWZ0KiogKGBldGhlcmV1bS5iYXNlX3R5cGVzLlUyNTZgKSAtLSBSZW1haW5pbmcgZ2FzIGFmdGVyIGV4ZWN1dGlvbi6UaAddlGhpKYGUfZQoaAVqwyUAAGgHXZQoargUAAApgZR9lChoBYwMKipnYXNfbGVmdCoqlGgHXZRoP4wIZ2FzX2xlZnSUhZSBlH2UKGgFaAZoIGrIJQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGq3FAAAaB1OaB9OaCBqxSUAAHViaD+MAiAolIWUgZR9lChoBWgGaCBqxSUAAGghaANoHWhEaB9LAHVialUGAAApgZR9lChoBYwaYGV0aGVyZXVtLmJhc2VfdHlwZXMuVTI1NmCUaAddlGg/jBhldGhlcmV1bS5iYXNlX3R5cGVzLlUyNTaUhZSBlH2UKGgFaAZoIGraJQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpUBgAAaB1OaB9OaCBqxSUAAHViaD+MJCkg4oCTIFJlbWFpbmluZyBnYXMgYWZ0ZXIgZXhlY3V0aW9uLpSFlIGUfZQoaAVoBmggasUlAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9N7AFoIGrBJQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1OaB9OaCBqviUAAHViaGQpgZR9lChoBYxTKipsb2dzKiogKGBUdXBsZVtldGhlcmV1bS5ldGhfdHlwZXMuTG9nLCAuLi5dYCkgLS0gTG9ncyBnZW5lcmF0ZWQgZHVyaW5nIGV4ZWN1dGlvbi6UaAddlGhpKYGUfZQoaAVq+iUAAGgHXZQoargUAAApgZR9lChoBYwIKipsb2dzKiqUaAddlGg/jARsb2dzlIWUgZR9lChoBWgGaCBq/yUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqtxQAAGgdTmgfTmggavwlAAB1Ymg/jAIgKJSFlIGUfZQoaAVoBmggavwlAABoIWgDaB1oRGgfSwB1YmpVBgAAKYGUfZQoaAWMJGBUdXBsZVtldGhlcmV1bS5ldGhfdHlwZXMuTG9nLCAuLi5dYJRoB12UaD+MIlR1cGxlW2V0aGVyZXVtLmV0aF90eXBlcy5Mb2csIOKApl2UhZSBlH2UKGgFaAZoIGoRJgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpUBgAAaB1OaB9OaCBq/CUAAHViaD+MJikg4oCTIExvZ3MgZ2VuZXJhdGVkIGR1cmluZyBleGVjdXRpb24ulIWUgZR9lChoBWgGaCBq/CUAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH03tAWggavglAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGq+JQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGYnVsbGV0lGrNIAAAdWgcaF5oHWgeaB9N7AFoIGq6JQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqtyUAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqbRQAAGgdTmgfTmggaqYlAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalgUAABoHU5oH05oIGoqJQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpTFAAAaB1OaB9OaCBq/SQAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqAQ8AAGgdaB5oH05oIGqhJAAAdWJlaA59lChoEF2UaBNdlChq9iQAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGr2JAAAjAdvYmp0eXBllGpXJgAAjAhkZXNjdHlwZZRqVyYAAIwHbm9pbmRleJSJdWgcatMOAABoHU5oH05oIGqFJAAAdWJqGA8AACmBlH2UKGgFWBwIAABkZWYgcHJvY2Vzc190cmFuc2FjdGlvbigKICAgIGVudjogdm0uRW52aXJvbm1lbnQsIHR4OiBUcmFuc2FjdGlvbgopIC0+IFR1cGxlW1UyNTYsIFR1cGxlW0xvZywgLi4uXSwgYm9vbF06CiAgICBlbnN1cmUodmFsaWRhdGVfdHJhbnNhY3Rpb24odHgpLCBJbnZhbGlkQmxvY2spCgogICAgc2VuZGVyID0gZW52Lm9yaWdpbgogICAgc2VuZGVyX2FjY291bnQgPSBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikKICAgIGdhc19mZWUgPSB0eC5nYXMgKiB0eC5nYXNfcHJpY2UKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5ub25jZSA9PSB0eC5ub25jZSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50LmJhbGFuY2UgPj0gZ2FzX2ZlZSArIHR4LnZhbHVlLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQuY29kZSA9PSBieXRlYXJyYXkoKSwgSW52YWxpZEJsb2NrKQoKICAgIGdhcyA9IHR4LmdhcyAtIGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdCh0eCkKICAgIGluY3JlbWVudF9ub25jZShlbnYuc3RhdGUsIHNlbmRlcikKICAgIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUgPSBzZW5kZXJfYWNjb3VudC5iYWxhbmNlIC0gZ2FzX2ZlZQogICAgc2V0X2FjY291bnRfYmFsYW5jZShlbnYuc3RhdGUsIHNlbmRlciwgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfZ2FzX2ZlZSkKCiAgICBtZXNzYWdlID0gcHJlcGFyZV9tZXNzYWdlKAogICAgICAgIHNlbmRlciwKICAgICAgICB0eC50bywKICAgICAgICB0eC52YWx1ZSwKICAgICAgICB0eC5kYXRhLAogICAgICAgIGdhcywKICAgICAgICBlbnYsCiAgICApCgogICAgb3V0cHV0ID0gcHJvY2Vzc19tZXNzYWdlX2NhbGwobWVzc2FnZSwgZW52KQoKICAgIGdhc191c2VkID0gdHguZ2FzIC0gb3V0cHV0Lmdhc19sZWZ0CiAgICBnYXNfcmVmdW5kID0gbWluKGdhc191c2VkIC8vIDIsIG91dHB1dC5yZWZ1bmRfY291bnRlcikKICAgIGdhc19yZWZ1bmRfYW1vdW50ID0gKG91dHB1dC5nYXNfbGVmdCArIGdhc19yZWZ1bmQpICogdHguZ2FzX3ByaWNlCiAgICB0cmFuc2FjdGlvbl9mZWUgPSAodHguZ2FzIC0gb3V0cHV0Lmdhc19sZWZ0IC0gZ2FzX3JlZnVuZCkgKiB0eC5nYXNfcHJpY2UKICAgIHRvdGFsX2dhc191c2VkID0gZ2FzX3VzZWQgLSBnYXNfcmVmdW5kCgogICAgIyByZWZ1bmQgZ2FzCiAgICBzZW5kZXJfYmFsYW5jZV9hZnRlcl9yZWZ1bmQgPSAoCiAgICAgICAgZ2V0X2FjY291bnQoZW52LnN0YXRlLCBzZW5kZXIpLmJhbGFuY2UgKyBnYXNfcmVmdW5kX2Ftb3VudAogICAgKQogICAgc2V0X2FjY291bnRfYmFsYW5jZShlbnYuc3RhdGUsIHNlbmRlciwgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfcmVmdW5kKQoKICAgICMgdHJhbnNmZXIgbWluZXIgZmVlcwogICAgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlID0gKAogICAgICAgIGdldF9hY2NvdW50KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKS5iYWxhbmNlICsgdHJhbnNhY3Rpb25fZmVlCiAgICApCiAgICBpZiBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUgIT0gMDoKICAgICAgICBzZXRfYWNjb3VudF9iYWxhbmNlKAogICAgICAgICAgICBlbnYuc3RhdGUsIGVudi5jb2luYmFzZSwgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlCiAgICAgICAgKQogICAgZWxpZiBhY2NvdW50X2V4aXN0c19hbmRfaXNfZW1wdHkoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpOgogICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGVudi5jb2luYmFzZSkKCiAgICBmb3IgYWRkcmVzcyBpbiBvdXRwdXQuYWNjb3VudHNfdG9fZGVsZXRlOgogICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGFkZHJlc3MpCgogICAgZm9yIGFkZHJlc3MgaW4gb3V0cHV0LnRvdWNoZWRfYWNjb3VudHM6CiAgICAgICAgaWYgYWNjb3VudF9leGlzdHNfYW5kX2lzX2VtcHR5KGVudi5zdGF0ZSwgYWRkcmVzcyk6CiAgICAgICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGFkZHJlc3MpCgogICAgcmV0dXJuIHRvdGFsX2dhc191c2VkLCBvdXRwdXQubG9ncywgb3V0cHV0Lmhhc19lcnJlZAqUlTjdAAAAAAAAaAddlGg/WBwIAABkZWYgcHJvY2Vzc190cmFuc2FjdGlvbigKICAgIGVudjogdm0uRW52aXJvbm1lbnQsIHR4OiBUcmFuc2FjdGlvbgopIC0+IFR1cGxlW1UyNTYsIFR1cGxlW0xvZywgLi4uXSwgYm9vbF06CiAgICBlbnN1cmUodmFsaWRhdGVfdHJhbnNhY3Rpb24odHgpLCBJbnZhbGlkQmxvY2spCgogICAgc2VuZGVyID0gZW52Lm9yaWdpbgogICAgc2VuZGVyX2FjY291bnQgPSBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikKICAgIGdhc19mZWUgPSB0eC5nYXMgKiB0eC5nYXNfcHJpY2UKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5ub25jZSA9PSB0eC5ub25jZSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50LmJhbGFuY2UgPj0gZ2FzX2ZlZSArIHR4LnZhbHVlLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQuY29kZSA9PSBieXRlYXJyYXkoKSwgSW52YWxpZEJsb2NrKQoKICAgIGdhcyA9IHR4LmdhcyAtIGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdCh0eCkKICAgIGluY3JlbWVudF9ub25jZShlbnYuc3RhdGUsIHNlbmRlcikKICAgIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUgPSBzZW5kZXJfYWNjb3VudC5iYWxhbmNlIC0gZ2FzX2ZlZQogICAgc2V0X2FjY291bnRfYmFsYW5jZShlbnYuc3RhdGUsIHNlbmRlciwgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfZ2FzX2ZlZSkKCiAgICBtZXNzYWdlID0gcHJlcGFyZV9tZXNzYWdlKAogICAgICAgIHNlbmRlciwKICAgICAgICB0eC50bywKICAgICAgICB0eC52YWx1ZSwKICAgICAgICB0eC5kYXRhLAogICAgICAgIGdhcywKICAgICAgICBlbnYsCiAgICApCgogICAgb3V0cHV0ID0gcHJvY2Vzc19tZXNzYWdlX2NhbGwobWVzc2FnZSwgZW52KQoKICAgIGdhc191c2VkID0gdHguZ2FzIC0gb3V0cHV0Lmdhc19sZWZ0CiAgICBnYXNfcmVmdW5kID0gbWluKGdhc191c2VkIC8vIDIsIG91dHB1dC5yZWZ1bmRfY291bnRlcikKICAgIGdhc19yZWZ1bmRfYW1vdW50ID0gKG91dHB1dC5nYXNfbGVmdCArIGdhc19yZWZ1bmQpICogdHguZ2FzX3ByaWNlCiAgICB0cmFuc2FjdGlvbl9mZWUgPSAodHguZ2FzIC0gb3V0cHV0Lmdhc19sZWZ0IC0gZ2FzX3JlZnVuZCkgKiB0eC5nYXNfcHJpY2UKICAgIHRvdGFsX2dhc191c2VkID0gZ2FzX3VzZWQgLSBnYXNfcmVmdW5kCgogICAgIyByZWZ1bmQgZ2FzCiAgICBzZW5kZXJfYmFsYW5jZV9hZnRlcl9yZWZ1bmQgPSAoCiAgICAgICAgZ2V0X2FjY291bnQoZW52LnN0YXRlLCBzZW5kZXIpLmJhbGFuY2UgKyBnYXNfcmVmdW5kX2Ftb3VudAogICAgKQogICAgc2V0X2FjY291bnRfYmFsYW5jZShlbnYuc3RhdGUsIHNlbmRlciwgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfcmVmdW5kKQoKICAgICMgdHJhbnNmZXIgbWluZXIgZmVlcwogICAgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlID0gKAogICAgICAgIGdldF9hY2NvdW50KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKS5iYWxhbmNlICsgdHJhbnNhY3Rpb25fZmVlCiAgICApCiAgICBpZiBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUgIT0gMDoKICAgICAgICBzZXRfYWNjb3VudF9iYWxhbmNlKAogICAgICAgICAgICBlbnYuc3RhdGUsIGVudi5jb2luYmFzZSwgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlCiAgICAgICAgKQogICAgZWxpZiBhY2NvdW50X2V4aXN0c19hbmRfaXNfZW1wdHkoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpOgogICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGVudi5jb2luYmFzZSkKCiAgICBmb3IgYWRkcmVzcyBpbiBvdXRwdXQuYWNjb3VudHNfdG9fZGVsZXRlOgogICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGFkZHJlc3MpCgogICAgZm9yIGFkZHJlc3MgaW4gb3V0cHV0LnRvdWNoZWRfYWNjb3VudHM6CiAgICAgICAgaWYgYWNjb3VudF9leGlzdHNfYW5kX2lzX2VtcHR5KGVudi5zdGF0ZSwgYWRkcmVzcyk6CiAgICAgICAgICAgIGRlc3Ryb3lfYWNjb3VudChlbnYuc3RhdGUsIGFk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aWMgY29zdCBvZgpvcGVyYXRpb25zLCB0aGVyZWZvcmUgaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGdhcyB0aGVuIGl0IHdvdWxkIG5vdApiZSBwb3NzaWJsZSB0byBleGVjdXRlIGEgdHJhbnNhY3Rpb24gYW5kIGl0IHdpbGwgYmUgZGVjbGFyZWQgaW52YWxpZC6UhZSBlH2UKGgFaAZoIGruJgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTf8BaCBq3SYAAHViaGkpgZR9lChoBVihAQAAQWRkaXRpb25hbGx5LCB0aGUgbm9uY2Ugb2YgYSB0cmFuc2FjdGlvbiBtdXN0IG5vdCBlcXVhbCBvciBleGNlZWQgdGhlCmxpbWl0IGRlZmluZWQgaW4gYEVJUC0yNjgxIDxodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTI2ODE+YF8uCkluIHByYWN0aWNlLCBkZWZpbmluZyB0aGUgbGltaXQgYXMgYGAyKio2NC0xYGAgaGFzIG5vIGltcGFjdCBiZWNhdXNlCnNlbmRpbmcgYGAyKio2NC0xYGAgdHJhbnNhY3Rpb25zIGlzIGltcHJvYmFibGUuIEl0J3Mgbm90IHN0cmljdGx5CmltcG9zc2libGUgdGhvdWdoLCBgYDIqKjY0LTFgYCB0cmFuc2FjdGlvbnMgaXMgdGhlIGVudGlyZSBjYXBhY2l0eSBvZiB0aGUKRXRoZXJldW0gYmxvY2tjaGFpbiBhdCAyMDIyIGdhcyBsaW1pdHMgZm9yIGEgbGl0dGxlIG92ZXIgMjIgeWVhcnMulGgHXZQoaD+MV0FkZGl0aW9uYWxseSwgdGhlIG5vbmNlIG9mIGEgdHJhbnNhY3Rpb24gbXVzdCBub3QgZXF1YWwgb3IgZXhjZWVkIHRoZQpsaW1pdCBkZWZpbmVkIGluIJSFlIGUfZQoaAVoBmggavwmAABoIWgDaB1oRGgfSwB1YmhuKYGUfZQoaAWMNWBFSVAtMjY4MSA8aHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yNjgxPmBflGgHXZRoP4wIRUlQLTI2ODGUhZSBlH2UKGgFaAZoIGoEJwAAaCFoA2gd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av4OAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqcygAAHVoHGrYDgAAaB1oHmgfTRoCaCBqaigAAHViagIPAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjD9DYWxjdWxhdGVzIHRoZSBnYXMgdGhhdCBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaXMgc3RhcnRlZC6UaAddlGg/jD9DYWxjdWxhdGVzIHRoZSBnYXMgdGhhdCBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaXMgc3RhcnRlZC6UhZSBlH2UKGgFaAZoIGqxKAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTR0CaCBqrigAAHViaGkpgZR9lChoBVgRAgAAVGhlIGludHJpbnNpYyBjb3N0IG9mIHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaGFzCmJlZ3VuLiBGdW5jdGlvbnMvb3BlcmF0aW9ucyBpbiB0aGUgRVZNIGNvc3QgbW9uZXkgdG8gZXhlY3V0ZSBzbyB0aGlzCmludHJpbnNpYyBjb3N0IGlzIGZvciB0aGUgb3BlcmF0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcGFpZCBmb3IgYXMgcGFydCBvZgp0aGUgdHJhbnNhY3Rpb24uIERhdGEgdHJhbnNmZXIsIGZvciBleGFtcGxlLCBpcyBwYXJ0IG9mIHRoaXMgaW50cmluc2ljCmNvc3QuIEl0IGNvc3RzIGV0aGVyIHRvIHNlbmQgZGF0YSBvdmVyIHRoZSB3aXJlIGFuZCB0aGF0IGV0aGVyIGlzCmFjY291bnRlZCBmb3IgaW4gdGhlIGludHJpbnNpYyBjb3N0IGNhbGN1bGF0ZWQgaW4gdGhpcyBmdW5jdGlvbi4gVGhpcwppbnRyaW5zaWMgY29zdCBtdXN0IGJlIGNhbGN1bGF0ZWQgYW5kIHBhaWQgZm9yIGJlZm9yZSBleGVjdXRpb24gaW4gb3JkZXIKZm9yIGFsbCBvcGVyYXRpb25zIHRvIGJlIGltcGxlbWVudGVkLpRoB12UaD9YEQIAAFRoZSBpbnRyaW5zaWMgY29zdCBvZiB0aGUgdHJhbnNhY3Rpb24g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VF9QRVJfWkVSTwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGRhdGFfY29zdCArPSBUWF9EQVRBX0NPU1RfUEVSX05PTl9aRVJPCgogICAgaWYgdHgudG8gPT0gQnl0ZXMwKGIiIik6CiAgICAgICAgY3JlYXRlX2Nvc3QgPSBUWF9DUkVBVEVfQ09TVAogICAgZWxzZToKICAgICAgICBjcmVhdGVfY29zdCA9IDAKCiAgICByZXR1cm4gVWludChUWF9CQVNFX0NPU1QgKyBkYXRhX2Nvc3QgKyBjcmVhdGVfY29zdCkKlGgHXZRoP1iHAQAAZGVmIGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdCh0eDogVHJhbnNhY3Rpb24pIC0+IFVpbnQ6CiAgICBkYXRhX2Nvc3QgPSAwCgogICAgZm9yIGJ5dGUgaW4gdHguZGF0YToKICAgICAgICBpZiBieXRlID09IDA6CiAgICAgICAgICAgIGRhdGFfY29zdCArPSBUWF9EQVRBX0NPU1RfUEVSX1pFUk8KICAgICAgICBlbHNlOgogICAgICAgICAgICBkYXRhX2Nvc3QgKz0gVFhfREFUQV9DT1NUX1BFUl9OT05fWkVSTwoKICAgIGlmIHR4LnRvID09IEJ5dGVzMChiIiIpOgogICAgICAgIGNyZWF0ZV9jb3N0ID0gVFhfQ1JFQVRFX0NPU1QKICAgIGVsc2U6CiAgICAgICAgY3JlYXRlX2Nvc3QgPSAwCgogICAgcmV0dXJuIFVpbnQoVFhfQkFTRV9DT1NUICsgZGF0YV9jb3N0ICsgY3JlYXRlX2Nvc3QpCpSFlIGUfZQoaAVoBmggapopAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9pc3RhbmJ1bC9zcGVjLnB5lIwJeG1sOnNwYWNllGr2BAAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uai8PAABLAXOMB2xpbmVub3OUiXVoHGoXDwAAaB1oHmgfTTACaCBqTigAAHViZWgO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PSAyNyBvciB2ID09IDI4OgogICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcihyLCBzLCB2IC0gMjcsIHNpZ25pbmdfaGFzaF9wcmUxNTUodHgpKQogICAgZWxzZToKICAgICAgICBlbnN1cmUodiA9PSAzNSArIGNoYWluX2lkICogMiBvciB2ID09IDM2ICsgY2hhaW5faWQgKiAyLCBJbnZhbGlkQmxvY2spCiAgICAgICAgcHVibGljX2tleSA9IHNlY3AyNTZrMV9yZWNvdmVyKAogICAgICAgICAgICByLCBzLCB2IC0gMzUgLSBjaGFpbl9pZCAqIDIsIHNpZ25pbmdfaGFzaF8xNTUodHgpCiAgICAgICAgKQogICAgcmV0dXJuIEFkZHJlc3Moa2VjY2FrMjU2KHB1YmxpY19rZXkpWzEyOjMyXSkKlGgHXZRoP1gyAgAAZGVmIHJlY292ZXJfc2VuZGVyKGNoYWluX2lkOiBVaW50NjQsIHR4OiBUcmFuc2FjdGlvbikgLT4gQWRkcmVzczoKICAgIHYsIHIsIHMgPSB0eC52LCB0eC5yLCB0eC5zCgogICAgZW5zdXJlKDAgPCByIGFuZCByIDwgU0VDUDI1NksxTiwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKDAgPCBzIGFuZCBzIDw9IFNFQ1AyNTZLMU4gLy8gMiwgSW52YWxpZEJsb2NrKQoKICAgIGlmIHYgPT0gMjcgb3IgdiA9PSAyODoKICAgICAgICBwdWJsaWNfa2V5ID0gc2VjcDI1NmsxX3JlY292ZXIociwgcywgdiAtIDI3LCBzaWduaW5nX2hhc2hfcHJlMTU1KHR4KSkKICAgIGVsc2U6CiAgICAgICAgZW5zdXJlKHYgPT0gMzUgKyBjaGFpbl9pZCAqIDIgb3IgdiA9PSAzNiArIGNoYWluX2lkICogMiwgSW52YWxpZEJsb2NrKQogICAgICAgIHB1YmxpY19rZXkgPSBzZWNwMjU2azFfcmVjb3ZlcigKICAgICAgICAgICAgciwgcywgdiAtIDM1IC0gY2hhaW5faWQgKiAyLCBzaWduaW5nX2hhc2hfMTU1KHR4KQogICAgICAgICkKICAgIHJldHVybiBBZGRyZXNzKGtlY2NhazI1NihwdWJsaWNfa2V5KVsxMjozMl0pCpSFlIGUfZQoaAVoBmggaowrAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9pc3RhbmJ1bC9zcGVjLnB5lIwJeG1sOnNwYWNllGr2BAAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uai8PAABLAXOMB2xpbmVub3OUiXVoHGoXDwAAaB1oHmgfTUwCaCBquCkAAHViZWgOfZQoaBBdlGr4AwAAYWgTXZRoFV2UjA5yZWNvdmVyX3NlbmRlcpRhaBddlGgZXZR1aBxoM2gdaB5oH001AmggaqIOAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWME3NpZ25pbmdfaGFzaF9wcmUxNTWUaAddlGg/jBNzaWduaW5nX2hhc2hfcHJlMTU1lIWUgZR9lChoBWgGaCBqrSsAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH01RAmggaqorAAB1YmgkKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UdWgcaCNoHU5oH05oIGqqKwAAdWJq1A4AACmBlH2UKGgFaAZoB12UKGrZDgAAKYGUfZQoaAWMF3NpZ25pbmdfaGFzaF9wcmUxNTUodHgplGgHXZQoat8OAAApgZR9lChoBYwTc2lnbmluZ19oYXNoX3ByZTE1NZRoB12UaD+ME3NpZ25pbmdfaGFzaF9wcmUxNTWUhZSBlH2UKGgFaAZoIGrNKwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChq6g4AAGrrDgAAauwOAABq7Q4AAGVoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGreDgAAaB1oHmgfTmggaskrAAB1YmrQEwAAKYGUfZQoaAWMAnR4lGgHXZRq1hMAACmBlH2UKGgFjAJ0eJRoB12UalMRAAApgZR9lChoBWgGaAddlGg/jAJ0eJSFlIGUfZQoaAVoBmggauQrAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UauUTAABhaBVdlGgXXZRoGV2UdWgcalIRAABoHU5oH05oIGrgKwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGr2BAAAdWgcatUTAABoHU5oH05oIGrcKwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGr2BAAAdWgcas8TAABoHWgeaB9OaCBqySsAAHViZWgOfZQoaBBdlIwqZXRoZXJldW0uaXN0YW5idWwuc3BlYy5zaWduaW5nX2hhc2hfcHJlMTU1lGFoE12UKGr1DgAAavYOAACMAnB5lGr4DgAAavkOAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUav4OAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqzysAAHVoHGrYDgAAaB1oHmgfTVQCaCBqxisAAHViagIPAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjEtDb21wdXRlIHRoZSBoYXNoIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCBpbiBhIGxlZ2FjeSAocHJlIEVJUCAxNTUpIHNpZ25hdHVyZS6UaAddlGg/jEtDb21wdXRlIHRoZSBoYXNoIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCBpbiBhIGxlZ2FjeSAocHJlIEVJUCAxNTUpIHNpZ25hdHVyZS6UhZSBlH2UKGgFaAZoIGoNLAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTVcCaCBqCiwAAHVialQUAAApgZR9lChoBWgGaAddlChqWRQAACmBlH2UKGgFaAZoB12UKGpeFAAAKYGUfZQoaAWMClBhcmFtZXRlcnOUaAddlGg/jApQYXJhbWV0ZXJzlIWUgZR9lChoBWgGaCBqISwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXRQAAGgdaB5oH0sAaCBqHiwAAHViam4UAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMHnR4IC0tIFRyYW5zYWN0aW9uIG9mIGludGVyZXN0LpRoB12UKGp3FAAAKYGUfZQoaAWMAnR4lGgHXZRoP4wCdHiUhZSBlH2UKGgFaAZoIGo2LAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGr+DgAAjAhweTpjbGFzc5ROdWgcanYUAABoHU5oH05oIGoyLAAAdWJoP4wdIOKAkyBUcmFuc2FjdGlvbiBvZiBpbnRlcmVzdC6UhZSBlH2UKGgFaAZoIGoyLAAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqLywAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqbRQAAGgdTmgfTmggah4sAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalgUAABoHU5oH05oIGobLAAAdWJqWRQAACmBlH2UKGgFaAZoB12UKGpeFAAAKYGUfZQoaAWMB1JldHVybnOUaAddlGg/jAdSZXR1cm5zlIWUgZR9lChoBWgGaCBqYCwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXRQAAGgdaB5oH0sAaCBqXSwAAHViam4UAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMIGhhc2ggLS0gSGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24ulGgHXZQoargUAAApgZR9lChoBYwIKipoYXNoKiqUaAddlGg/jARoYXNolIWUgZR9lChoBWgGaCBqdSwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqtxQAAGgdTmgfTmgganEsAAB1Ymg/jB0g4oCTIEhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uLpSFlIGUfZQoaAVoBmgganEsAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGpuLAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGptFAAAaB1OaB9OaCBqXSwAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqWBQAAGgdTmgfTmggahssAAB1YmpZFAAAKYGUfZQoaAVoBmgHXZQoal4UAAApgZR9lChoBYwLUmV0dXJuIHR5cGWUaAddlGg/jAtSZXR1cm4gdHlwZZSFlIGUfZQoaAVoBmggapwsAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcal0UAABoHWgeaB9LAGggapksAAB1YmpuFAAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjBlldGhlcmV1bS5ldGhfdHlwZXMuSGFzaDMylGgHXZRqVQYAACmBlH2UKGgFjBtgZXRoZXJldW0uZXRoX3R5cGVzLkhhc2gzMmCUaAddlGg/jBlldGhlcmV1bS5ldGhfdHlwZXMuSGFzaDMylIWUgZR9lChoBWgGaCBqsSwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqVAYAAGgdTmgfTmggaq0sAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGqqLAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGptFAAAaB1OaB9OaCBqmSwAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqWBQAAGgdTmgfTmggahssAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalMUAABoHU5oH05oIGoKLAAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoBDwAAaB1oHmgfTmggasYrAAB1YmVoDn2UKGgQXZRoE12UKGoDLAAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UagMsAACMB29ianR5cGWUauAsAACMCGRlc2N0eXBllGrgLAAAjAdub2luZGV4lIl1aBxq0w4AAGgdTmgfTmggaqorAAB1YmoYDwAAKYGUfZQoaAVYJAEAAGRlZiBzaWduaW5nX2hhc2hfcHJlMTU1KHR4OiBUcmFuc2FjdGlvbikgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKQqUaAddlGg/WCQBAABkZWYgc2lnbmluZ19oYXNoX3ByZTE1NSh0eDogVHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKlIWUgZR9lChoBWgGaCBq6CwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMTy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2lzdGFuYnVsL3NwZWMucHmUjAl4bWw6c3BhY2WUavYEAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqLw8AAEsBc4wHbGluZW5vc5SJdWgcahcPAABoHWgeaB9NYQJoIGqqKwAAdWJlaA59lChoEF2UahoEAABhaBNdlGgVXZSME3NpZ25pbmdfaGFzaF9wcmUxNTWUYWgXXZRoGV2UdWgcaDNoHWgeaB9NUQJoIGqiDgAAaCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBBzaWduaW5nX2hhc2hfMTU1lGgHXZRoP4wQc2lnbmluZ19oYXNoXzE1NZSFlIGUfZQoaAVoBmggagktAABoIWgDaB1oRGgfSwB1YmFoDn2U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dy0AAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqUxQAAGgdTmgfTmggamYtAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcagEPAABoHWgeaB9OaCBqIi0AAHViZWgOfZQoaBBdlGgTXZQoal8tAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqXy0AAIwHb2JqdHlwZZRqPC4AAIwIZGVzY3R5cGWUajwuAACMB25vaW5kZXiUiXVoHGrTDgAAaB1OaB9OaCBqBi0AAHViahgPAAApgZR9lChoBVhsAQAAZGVmIHNpZ25pbmdfaGFzaF8xNTUodHg6IFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4Lm5vbmNlLAogICAgICAgICAgICAgICAgdHguZ2FzX3ByaWNlLAogICAgICAgICAgICAgICAgdHguZ2FzLAogICAgICAgICAgICAgICAgdHgudG8sCiAgICAgICAgICAgICAgICB0eC52YWx1ZSwKICAgICAgICAgICAgICAgIHR4LmRhdGEsCiAgICAgICAgICAgICAgICBVaW50KDEpLAogICAgICAgICAgICAgICAgVWludCgwKSwKICAgICAgICAgICAgICAgIFVpbnQoMCksCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpRoB12UaD9YbAEAAGRlZiBzaWduaW5nX2hhc2hfMTU1KHR4OiBUcmFuc2FjdGlvbikgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICAgICAgVWlu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OgogICAgICAgIHJldHVybiBGYWxzZQoKICAgIHJldHVybiBUcnVlCpRoB12UaD9YgQEAAGRlZiBjaGVja19nYXNfbGltaXQoZ2FzX2xpbWl0OiBVaW50LCBwYXJlbnRfZ2FzX2xpbWl0OiBVaW50KSAtPiBib29sOgogICAgbWF4X2FkanVzdG1lbnRfZGVsdGEgPSBwYXJlbnRfZ2FzX2xpbWl0IC8vIEdBU19MSU1JVF9BREpVU1RNRU5UX0ZBQ1RPUgogICAgaWYgZ2FzX2xpbWl0ID49IHBhcmVudF9nYXNfbGltaXQgKyBtYXhfYWRqdXN0bWVudF9kZWx0YToKICAgICAgICByZXR1cm4gRmFsc2UKICAgIGlmIGdhc19saW1pdCA8PSBwYXJlbnRfZ2FzX2xpbWl0IC0gbWF4X2FkanVzdG1lbnRfZGVsdGE6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBpZiBnYXNfbGltaXQgPCBHQVNfTElNSVRfTUlOSU1VTToKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICByZXR1cm4gVHJ1ZQqUhZSBlH2UKGgFaAZoIGoxMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxPL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vaXN0YW5idWwvc3BlYy5weZSMCXhtbDpzcGFjZZRq9gQAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGovDwAASwFzjAdsaW5lbm9zlIl1aBxqFw8AAGgdaB5oH02+AmggaicwAAB1YmVoDn2UKGgQXZRqgAQAAGFoE12UaBVdlIwPY2hlY2tfZ2FzX2xpbWl0lGFoF12UaBldlHVoHGgzaB1oHmgfTaICaCBqog4AAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwaY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHmUaAddlGg/jBpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eZSFlIGUfZQoaAVoBmggalIyAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9NwwJoIGpPMgAAdWJoJCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlHVoHGgjaB1OaB9OaCBqTzIAAHViatQOAAApgZR9lChoBWgGaAddlChq2Q4AACmBlH2UKGgFjHFjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eShibG9ja19udW1iZXIsIGJsb2NrX3RpbWVzdGFtcCwgcGFyZW50X3RpbWVzdGFtcCwgcGFyZW50X2RpZmZpY3VsdHksIHBhcmVudF9oYXNfb21tZXJzKZRoB12UKGrfDgAAKYGUfZQoaAWMGmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5lGgHXZRoP4waY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGpyMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChq6g4AAGrrDgAAauwOAABq7Q4AAGVoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGreDgAAaB1oHmgfTmggam4yAAB1YmrQEwAAKYGUfZQoaAWMVWJsb2NrX251bWJlciwgYmxvY2tfdGltZXN0YW1wLCBwYXJlbnRfdGltZXN0YW1wLCBwYXJlbnRfZGlmZmljdWx0eSwgcGFyZW50X2hhc19vbW1lcnOUaAddlChq1hMAACmBlH2UKGgFjAxibG9ja19udW1iZXKUaAddlGpTEQAAKYGUfZQoaAVoBmgHXZRoP4wMYmxvY2tfbnVtYmVylIWUgZR9lChoBWgGaCBqiTIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRq5RMAAGFoFV2UaBddlGgZXZR1aBxqUhEAAGgdTmgfTmggaoUyAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxq1RMAAGgdTmgfTmggaoEyAAB1YmrWEwAAKYGUfZQoaAWMD2Jsb2NrX3RpbWVzdGFtcJRoB12UalMRAAApgZR9lChoBWgGaAddlGg/jA9ibG9ja190aW1lc3RhbXCUhZSBlH2UKGgFaAZoIGqhMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGrlEwAAYWgVXZRoF12UaBldlHVoHGpSEQAAaB1OaB9OaCBqnTIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRq9gQAAHVoHGrVEwAAaB1OaB9OaCBqgTIAAHViatYTAAApgZR9lChoBYwQcGFyZW50X3RpbWVzdGFtcJRoB12UalMRAAApgZR9lChoBWgGaAddlGg/jBBwYXJlbnRfdGltZXN0YW1wlIWUgZR9lChoBWgGaCBquTIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRq5RMAAGFoFV2UaBddlGgZXZR1aBxqUhEAAGgdTmgfTmggarUyAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxq1RMAAGgdTmgfTmggaoEyAAB1YmrWEwAAKYGUfZQoaAWMEXBhcmVudF9kaWZmaWN1bHR5lGgHXZRqUxEAACmBlH2UKGgFaAZoB12UaD+MEXBhcmVudF9kaWZmaWN1bHR5lIWUgZR9lChoBWgGaCBq0TIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRq5RMAAGFoFV2UaBddlGgZXZR1aBxqUhEAAGgdTmgfTmggas0yAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxq1RMAAGgdTmgfTmggaoEyAAB1YmrWEwAAKYGUfZQoaAWMEXBhcmVudF9oYXNfb21tZXJzlGgHXZRqUxEAACmBlH2UKGgFaAZoB12UaD+MEXBhcmVudF9oYXNfb21tZXJzlIWUgZR9lChoBWgGaCBq6TIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRq5RMAAGFoFV2UaBddlGgZXZR1aBxqUhEAAGgdTmgfTmggauUyAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxq1RMAAGgdTmgfTmggaoEyAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUavYEAAB1aBxqzxMAAGgdaB5oH05oIGpuMgAAdWJlaA59lChoEF2UjDFldGhlcmV1bS5pc3RhbmJ1bC5zcGVjLmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5lGFoE12UKGr1DgAAavYOAACMAnB5lGr4DgAAavkOAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUav4OAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqdDIAAHVoHGrYDgAAaB1oHmgfTcYCaCBqazIAAHViagIPAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjEJDb21wdXRlcyBkaWZmaWN1bHR5IG9mIGEgYmxvY2sgdXNpbmcgaXRzIGhlYWRlciBhbmQgcGFyZW50IGhlYWRlci6UaAddlGg/jEJDb21wdXRlcyBkaWZmaWN1bHR5IG9mIGEgYmxvY2sgdXNpbmcgaXRzIGhlYWRlciBhbmQgcGFyZW50IGhlYWRlci6UhZSBlH2UKGgFaAZoIGoSMwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTckCaCBqDzMAAHViaGkpgZR9lChoBViDAgAAVGhlIGRpZmZpY3VsdHkgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdGltZSB0aGUgYmxvY2sgd2FzIGNyZWF0ZWQgYWZ0ZXIgaXRzCnBhcmVudC4gVGhlIGBgb2Zmc2V0YGAgaXMgY2FsY3VsYXRlZCB1c2luZyB0aGUgcGFyZW50IGJsb2NrJ3MgZGlmZmljdWx0eSwKYGBwYXJlbnRfZGlmZmljdWx0eWBgLCBhbmQgdGhlIHRpbWVzdGFtcCBiZXR3ZWVuIGJsb2Nrcy4gVGhpcyBvZmZzZXQgaXMKdGhlbiBhZGRlZCB0byB0aGUgcGFyZW50IGRpZmZpY3VsdHkgYW5kIGlzIHN0b3JlZCBhcyB0aGUgYGBkaWZmaWN1bHR5YGAKdmFyaWFibGUuIElmIHRoZSB0aW1lIGJldHdlZW4gdGhlIGJsb2NrIGFuZCBpdHMgcGFyZW50IGlzIHRvbyBzaG9ydCwgdGhlCm9mZnNldCB3aWxsIHJlc3VsdCBpbiBhIHBvc2l0aXZlIG51bWJlciB0aHVzIG1ha2luZyB0aGUgc3VtIG9mCmBgcGFyZW50X2RpZmZpY3VsdHlgYCBhbmQgYGBvZmZzZXRgYCB0byBiZSBhIGdyZWF0ZXIgdmFsdWUgaW4gb3JkZXIgdG8KYXZvaWQgbWFzcyBmb3JraW5nLiBCdXQsIGlmIHRoZSB0aW1lIGlzIGxvbmcgZW5vdWdoLCB0aGVuIHRoZSBvZmZzZXQKcmVzdWx0cyBpbiBhIG5lZ2F0aXZlIHZhbHVlIG1ha2luZyB0aGUgYmxvY2sgbGVzcyBkaWZmaWN1bHQgdGhhbgppdHMgcGFyZW50LpRoB12UKGg/jFVUaGUgZGlmZmljdWx0eSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB0aW1lIHRoZSBibG9jayB3YXMgY3JlYXRlZCBhZnRlciBpdHMKcGFyZW50LiBUaGUglIWUgZR9lChoBWgGaCBqIDMAAGghaANoHWhEaB9LAHViamwFAAApgZR9lChoBYwKYGBvZmZzZXRgYJRoB12UaD+MBm9mZnNldJSFlIGUfZQoaAVoBmggaigzAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcamsFAABoHU5oH05oIGogMwAAdWJoP4w2IGlzIGNhbGN1bGF0ZWQgdXNpbmcgdGhlIHBhcmVudCBibG9ja+KAmXMgZGlmZmljdWx0eSwKlIWUgZR9lChoBWgGaCBqIDMAAGghaANoHWhEaB9LAHViamwFAAApgZR9lChoBYwVYGBwYXJlbnRfZGlmZmljdWx0eWBglGgHXZRoP4wRcGFyZW50X2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGo6MwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGprBQAAaB1OaB9OaCBqIDMAAHViaD+MbCwgYW5kIHRoZSB0aW1lc3RhbXAgYmV0d2VlbiBibG9ja3MuIFRoaXMgb2Zmc2V0IGlzCnRoZW4gYWRkZWQgdG8gdGhlIHBhcmVudCBkaWZmaWN1bHR5IGFuZCBpcyBzdG9yZWQgYXMgdGhlIJSFlIGUfZQoaAVoBmggaiAzAABoIWgDaB1oRGgfSwB1YmpsBQAAKYGUfZQoaAWMDmBgZGlmZmljdWx0eWBglGgHXZRoP4wKZGlmZmljdWx0eZSFlIGUfZQoaAVoBmggakwzAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcamsFAABoHU5oH05oIGogMwAAdWJoP4yJCnZhcmlhYmxlLiBJZiB0aGUgdGltZSBiZXR3ZWVuIHRoZSBibG9jayBhbmQgaXRzIHBhcmVudCBpcyB0b28gc2hvcnQsIHRoZQpvZmZzZXQgd2lsbCByZXN1bHQgaW4gYSBwb3NpdGl2ZSBudW1iZXIgdGh1cyBtYWtpbmcgdGhlIHN1bSBvZgqUhZSBlH2UKGgFaAZoIGogMwAAaCFoA2gdaERoH0sAdWJqbAUAACmBlH2UKGgFjBVgYHBhcmVudF9kaWZmaWN1bHR5YGCUaAddlGg/jBFwYXJlbnRfZGlmZmljdWx0eZSFlIGUfZQoaAVoBmggal4zAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcamsFAABoHU5oH05oIGogMwAAdWJoP4wFIGFuZCCUhZSBlH2UKGgFaAZoIGogMwAAaCFoA2gdaERoH0sAdWJqbAUAACmBlH2UKGgFjApgYG9mZnNldGBglGgHXZRoP4wGb2Zmc2V0lIWUgZR9lChoBWgGaCBqcDMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqawUAAGgdTmgfTmggaiAzAAB1Ymg/jLQgdG8gYmUgYSBncmVhdGVyIHZhbHVlIGluIG9yZGVyIHRvCmF2b2lkIG1hc3MgZm9ya2luZy4gQnV0LCBpZiB0aGUgdGltZSBpcyBsb25nIGVub3VnaCwgdGhlbiB0aGUgb2Zmc2V0CnJlc3VsdHMgaW4gYSBuZWdhdGl2ZSB2YWx1ZSBtYWtpbmcgdGhlIGJsb2NrIGxlc3MgZGlmZmljdWx0IHRoYW4KaXRzIHBhcmVudC6UhZSBlH2UKGgFaAZoIGogMwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTcsCaCBqDzMAAHViaGkpgZR9lChoBVgwAQAAVGhlIGJhc2Ugc3RhbmRhcmQgZm9yIGEgYmxvY2sncyBkaWZmaWN1bHR5IGlzIHRoZSBwcmVkZWZpbmVkIHZhbHVlCnNldCBmb3IgdGhlIGdlbmVzaXMgYmxvY2sgc2luY2UgaXQgaGFzIG5vIHBhcmVudC4gU28sIGEgYmxvY2sKY2FuJ3QgYmUgbGVzcyBkaWZmaWN1bHQgdGhhbiB0aGUgZ2VuZXNpcyBibG9jaywgdGhlcmVmb3JlIGVhY2ggYmxvY2sncwpkaWZmaWN1bHR5IGlzIHNldCB0byB0aGUgbWF4aW11bSB2YWx1ZSBiZXR3ZWVuIHRoZSBjYWxjdWxhdGVkCmRpZmZpY3VsdHkgYW5kIHRoZSBgYEdFTkVTSVNfRElGRklDVUxUWWBgLpRoB12UKGg/WB8BAABUaGUgYmFzZSBzdGFuZGFyZCBmb3IgYSBibG9ja+KAmXMgZGlmZmljdWx0eSBpcyB0aGUgcHJlZGVmaW5lZCB2YWx1ZQpzZXQgZm9yIHRoZSBnZW5lc2lzIGJsb2NrIHNpbmNlIGl0IGhhcyBubyBwYXJlbnQuIFNvLCBhIGJsb2NrCmNhbuKAmXQgYmUgbGVzcyBkaWZmaWN1bHQgdGhhbiB0aGUgZ2VuZXNpcyBibG9jaywgdGhlcmVmb3JlIGVhY2ggYmxvY2vigJlzCmRpZmZpY3VsdHkgaXMgc2V0IHRvIHRoZSBtYXhpbXVtIHZhbHVlIGJldHdlZW4gdGhlIGNhbGN1bGF0ZWQKZGlmZmljdWx0eSBhbmQgdGhlIJSFlIGUfZQoaAVoBmggaogzAABoIWgDaB1oRGgfSwB1YmpsBQAAKYGUfZQoaAWMFmBgR0VORVNJU19ESUZGSUNVTFRZYGCUaAddlGg/jBJHRU5FU0lTX0RJRkZJQ1VMVFmUhZSBlH2UKGgFaAZoIGqQMwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGprBQAAaB1OaB9OaCBqiDMAAHViaD+MAS6UhZSBlH2UKGgFaAZoIGqIMwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTdYCaCBqDzMAAHVialQUAAApgZR9lChoBWgGaAddlChqWRQAACmBlH2UKGgFaAZoB12UKGpeFAAAKYGUfZQoaAWMClBhcmFtZXRlcnOUaAddlGg/jApQYXJhbWV0ZXJzlIWUgZR9lChoBWgGaCBqrjMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXRQAAGgdaB5oH0sAaCBqqzMAAHViam4UAAApgZR9lChoBWgGaAddlGhfKYGUfZQoaAVoBmgHXZQoaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMKmJsb2NrX251bWJlciAtLSBCbG9jayBudW1iZXIgb2YgdGhlIGJsb2NrLpRoB12UKGp3FAAAKYGUfZQoaAWMDGJsb2NrX251bWJlcpRoB12UaD+MDGJsb2NrX251bWJlcpSFlIGUfZQoaAVoBmggaskzAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUav4OAACMCHB5OmNsYXNzlE51aBxqdhQAAGgdTmgfTmggasUzAAB1Ymg/jB8g4oCTIEJsb2NrIG51bWJlciBvZiB0aGUgYmxvY2sulIWUgZR9lChoBWgGaCBqxTMAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggasIzAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGq/MwAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwqYmxvY2tfdGltZXN0YW1wIC0tIFRpbWVzdGFtcCBvZiB0aGUgYmxvY2sulGgHXZQoancUAAApgZR9lChoBYwPYmxvY2tfdGltZXN0YW1wlGgHXZRoP4wPYmxvY2tfdGltZXN0YW1wlIWUgZR9lChoBWgGaCBq8TMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMC3JlZnNwZWNpZmljlIiMCXB5Om1vZHVsZZRq/g4AAIwIcHk6Y2xhc3OUTnVoHGp2FAAAaB1OaB9OaCBq7TMAAHViaD+MHCDigJMgVGltZXN0YW1wIG9mIHRoZSBibG9jay6UhZSBlH2UKGgFaAZoIGrtMwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBq6jMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdTmgfTmggar8zAAB1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDJwYXJlbnRfdGltZXN0YW1wIC0tIFRpbWVzdGFtcCBvZiB0aGUgcGFyZW50IGJsb2NrLpRoB12UKGp3FAAAKYGUfZQoaAWMEHBhcmVudF90aW1lc3RhbXCUaAddlGg/jBBwYXJlbnRfdGltZXN0YW1wlIWUgZR9lChoBWgGaCBqGTQAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMC3JlZnNwZWNpZmljlIiMCXB5Om1vZHVsZZRq/g4AAIwIcHk6Y2xhc3OUTnVoHGp2FAAAaB1OaB9OaCBqFTQAAHViaD+MIyDigJMgVGltZXN0YW1wIG9mIHRoZSBwYXJlbnQgYmxvY2sulIWUgZR9lChoBWgGaCBqFTQAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggahI0AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGq/MwAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw0cGFyZW50X2RpZmZpY3VsdHkgLS0gZGlmZmljdWx0eSBvZiB0aGUgcGFyZW50IGJsb2NrLpRoB12UKGp3FAAAKYGUfZQoaAWMEXBhcmVudF9kaWZmaWN1bHR5lGgHXZRoP4wRcGFyZW50X2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGpBNAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGr+DgAAjAhweTpjbGFzc5ROdWgcanYUAABoHU5oH05oIGo9NAAAdWJoP4wkIOKAkyBkaWZmaWN1bHR5IG9mIHRoZSBwYXJlbnQgYmxvY2sulIWUgZR9lChoBWgGaCBqPTQAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggajo0AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGq/MwAAdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwxcGFyZW50X2hhc19vbW1lcnMgLS0gZG9lcyB0aGUgcGFyZW50IGhhdmUgb21tZXJzLpRoB12UKGp3FAAAKYGUfZQoaAWMEXBhcmVudF9oYXNfb21tZXJzlGgHXZRoP4wRcGFyZW50X2hhc19vbW1lcnOUhZSBlH2UKGgFaAZoIGppNAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGr+DgAAjAhweTpjbGFzc5ROdWgcanYUAABoHU5oH05oIGplNAAAdWJoP4whIOKAkyBkb2VzIHRoZSBwYXJlbnQgaGF2ZSBvbW1lcnMulIWUgZR9lChoBWgGaCBqZTQAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggamI0AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGq/MwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1OaB9OaCBqvDMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqbRQAAGgdTmgfTmggaqszAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalgUAABoHU5oH05oIGqoMwAAdWJqWRQAACmBlH2UKGgFaAZoB12UKGpeFAAAKYGUfZQoaAWMB1JldHVybnOUaAddlGg/jAdSZXR1cm5zlIWUgZR9lChoBWgGaCBqnzQAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqXRQAAGgdaB5oH0sAaCBqnDQAAHViam4UAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMLmRpZmZpY3VsdHkgLS0gQ29tcHV0ZWQgZGlmZmljdWx0eSBmb3IgYSBibG9jay6UaAddlChquBQAACmBlH2UKGgFjA4qKmRpZmZpY3VsdHkqKpRoB12UaD+MCmRpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGq0NAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGq3FAAAaB1OaB9OaCBqsDQAAHViaD+MJSDigJMgQ29tcHV0ZWQgZGlmZmljdWx0eSBmb3IgYSBibG9jay6UhZSBlH2UKGgFaAZoIGqwNAAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqrTQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqbRQAAGgdTmgfTmggapw0AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalgUAABoHU5oH05oIGqoMwAAdWJqWRQAACmBlH2UKGgFaAZoB12UKGpeFAAAKYGUfZQoaAWMC1JldHVybiB0eXBllGgHXZRoP4wLUmV0dXJuIHR5cGWUhZSBlH2UKGgFaAZoIGrbNAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpdFAAAaB1oHmgfSwBoIGrYNAAAdWJqbhQAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwYZXRoZXJldW0uYmFzZV90eXBlcy5VaW50lGgHXZRqVQYAACmBlH2UKGgFjBpgZXRoZXJldW0uYmFzZV90eXBlcy5VaW50YJRoB12UaD+MGGV0aGVyZXVtLmJhc2VfdHlwZXMuVWludJSFlIGUfZQoaAVoBmggavA0AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalQGAABoHU5oH05oIGrsNAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBq6TQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqbRQAAGgdTmgfTmggatg0AAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcalgUAABoHU5oH05oIGqoMwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGpTFAAAaB1OaB9OaCBqDzMAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqAQ8AAGgdaB5oH05oIGprMgAAdWJlaA59lChoEF2UaBNdlChqCDMAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGoIMwAAjAdvYmp0eXBllGofNQAAjAhkZXNjdHlwZZRqHzUAAIwHbm9pbmRleJSJdWgcatMOAABoHU5oH05oIGpPMgAAdWJqGA8AACmBlH2UKGgFWI0EAABkZWYgY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBibG9ja190aW1lc3RhbXA6IFUyNTYsCiAgICBwYXJlbnRfdGltZXN0YW1wOiBVMjU2LAogICAgcGFyZW50X2RpZmZpY3VsdHk6IFVpbnQsCiAgICBwYXJlbnRfaGFzX29tbWVyczogYm9vbCwKKSAtPiBVaW50OgogICAgb2Zmc2V0ID0gKAogICAgICAgIGludChwYXJlbnRfZGlmZmljdWx0eSkKICAgICAgICAvLyAyMDQ4CiAgICAgICAgKiBtYXgoCiAgICAgICAgICAgICgyIGlmIHBhcmVudF9oYXNfb21tZXJzIGVsc2UgMSkKICAgICAgICAgICAgLSBpbnQoYmxvY2tfdGltZXN0YW1wIC0gcGFyZW50X3RpbWVzdGFtcCkgLy8gOSwKICAgICAgICAgICAgLTk5LAogICAgICAgICkKICAgICkKICAgIGRpZmZpY3VsdHkgPSBpbnQocGFyZW50X2RpZmZpY3VsdHkpICsgb2Zmc2V0CiAgICAjIEhpc3RvcmljYWwgTm90ZTogVGhlIGRpZmZpY3VsdHkgYm9tYiB3YXMgbm90IHByZXNlbnQgaW4gRXRoZXJldW0gYXQgdGhlCiAgICAjIHN0YXJ0IG9mIEZyb250aWVyLCBidXQgd2FzIGFkZGVkIHNob3J0bHkgYWZ0ZXIgbGF1bmNoLiBIb3dldmVyIHNpbmNlIHRoZQogICAgIyBib21iIGhhcyBubyBlZmZlY3QgcHJpb3IgdG8gYmxvY2sgMjAwMDAwIHdlIHByZXRlbmQgaXQgZXhpc3RlZCBmcm9tCiAgICAjIGdlbmVzaXMuCiAgICAjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vZ28tZXRoZXJldW0vcHVsbC8xNTg4CiAgICBudW1fYm9tYl9wZXJpb2RzID0gKChpbnQoYmxvY2tfbnVtYmVyKSAtIEJPTUJfREVMQVlfQkxPQ0tTKSAvLyAxMDAwMDApIC0gMgogICAgaWYgbnVtX2JvbWJfcGVyaW9kcyA+PSAwOgogICAgICAgIGRpZmZpY3VsdHkgKz0gMioqbnVtX2JvbWJfcGVyaW9kcwoKICAgICMgU29tZSBjbGllbnRzIHJhaXNlIHRoZSBkaWZmaWN1bHR5IHRvIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIHByaW9yIHRvIGFkZGluZwogICAgIyB0aGUgYm9tYi4gVGhpcyBidWcgZG9lcyBub3QgbWF0dGVyIGJlY2F1c2UgdGhlIGRpZmZpY3VsdHkgaXMgYWx3YXlzIG11Y2gKICAgICMgZ3JlYXRlciB0aGFuIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIG9uIE1haW5uZXQuCiAgICByZXR1cm4gVWludChtYXgoZGlmZmljdWx0eSwgTUlOSU1VTV9ESUZGSUNVTFRZKSkKlGgHXZRoP1iNBAAAZGVmIGNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5KAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAgYmxvY2tfdGltZXN0YW1wOiBVMjU2LAogICAgcGFyZW50X3RpbWVzdGFtcDogVTI1NiwKICAgIHBhcmVudF9kaWZmaWN1bHR5OiBVaW50LAogICAgcGFyZW50X2hhc19vbW1lcnM6IGJvb2wsCikgLT4gVWludDoKICAgIG9mZnNldCA9ICgKICAgICAgICBpbnQocGFyZW50X2RpZmZpY3VsdHkpCiAgICAgICAgLy8gMjA0OAogICAgICAgICogbWF4KAogICAgICAgICAgICAoMiBpZiBwYXJlbnRfaGFzX29tbWVycyBlbHNlIDEpCiAgICAgICAgICAgIC0gaW50KGJsb2NrX3RpbWVzdGFtcCAtIHBhcmVudF90aW1lc3RhbXApIC8vIDksCiAgICAgICAgICAgIC05OSwKICAgICAgICApCiAgICApCiAgICBkaWZmaWN1bHR5ID0gaW50KHBhcmVudF9kaWZmaWN1bHR5KSArIG9mZnNldAogICAgIyBIaXN0b3JpY2FsIE5vdGU6IFRoZSBkaWZmaWN1bHR5IGJvbWIgd2FzIG5vdCBwcmVzZW50IGluIEV0aGVyZXVtIGF0IHRoZQogICAgIyBzdGFydCBvZiBGcm9udGllciwgYnV0IHdhcyBhZGRlZCBzaG9ydGx5IGFmdGVyIGxhdW5jaC4gSG93ZXZlciBzaW5jZSB0aGUKICAgICMgYm9tYiBoYXMgbm8gZWZmZWN0IHByaW9yIHRvIGJsb2NrIDIwMDAwMCB3ZSBwcmV0ZW5kIGl0IGV4aXN0ZWQgZnJvbQogICAgIyBnZW5lc2lzLgogICAgIyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2dvLWV0aGVyZXVtL3B1bGwvMTU4OAogICAgbnVtX2JvbWJfcGVyaW9kcyA9ICgoaW50KGJsb2NrX251bWJlcikgLSBCT01CX0RFTEFZX0JMT0NLUykgLy8gMTAwMDAwKSAtIDIKICAgIGlmIG51bV9ib21iX3BlcmlvZHMgPj0gMDoKICAgICAgICBkaWZmaWN1bHR5ICs9IDIqKm51bV9ib21iX3BlcmlvZHMKCiAgICAjIFNvbWUgY2xpZW50cyByYWlzZSB0aGUgZGlmZmljdWx0eSB0byBgTUlOSU1VTV9ESUZGSUNVTFRZYCBwcmlvciB0byBhZGRpbmcKICAgICMgdGhlIGJvbWIuIFRoaXMgYnVnIGRvZXMgbm90IG1hdHRlciBiZWNhdXNlIHRoZSBkaWZmaWN1bHR5IGlzIGFsd2F5cyBtdWNoCiAgICAjIGdyZWF0ZXIgdGhhbiBgTUlOSU1VTV9ESUZGSUNVTFRZYCBvbiBNYWlubmV0LgogICAgcmV0dXJuIFVpbnQobWF4KGRpZmZpY3VsdHksIE1JTklNVU1fRElGRklDVUxUWSkpCpSFlIGUfZQoaAVoBmggaic1AABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjE8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9pc3RhbmJ1bC9zcGVjLnB5lIwJeG1sOnNwYWNllGr2BAAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uai8PAABLAXOMB2xpbmVub3OUiXVoHGoXDwAAaB1oHmgfTegCaCBqTzIAAHViZWgOfZQoaBBdlGqiBAAAYWgTXZRoFV2UjBpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eZRhaBddlGgZXZR1aBxoM2gdaB5oH03DAmggaqIOAABoIWgDdWJlaA59lChoEF2UajEBAABhaBNdlGgVXZSMDm1vZHVsZSBkZXRhaWxzlGFoF12UaBldlHVoHGgzaB1oHmgfS0hoIGg1aCFoA3ViZWgOfZQoaBBdlIwWZXRoZXJldW0tc3BlY2lmaWNhdGlvbpRhaBNdlGgVXZSMFmV0aGVyZXVtIHNwZWNpZmljYXRpb26UYWgXXZRoGV2UdWgcaDNoHWgeaB9LBGggaANoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllGhEdWgcaAGMDmN1cnJlbnRfc291cmNllGhEjAxjdXJyZW50X2xpbmWUSwCMCHNldHRpbmdzlIwRZG9jdXRpbHMuZnJvbnRlbmSUjAZWYWx1ZXOUk5QpgZR9lCiMDHJlcG9ydF9sZXZlbJRLAowKaGFsdF9sZXZlbJRLBIwRZXhpdF9zdGF0dXNfbGV2ZWyUSwWMBWRlYnVnlE6MDndhcm5pbmdfc3RyZWFtlE6MCXRyYWNlYmFja5ROjA9vdXRwdXRfZW5jb2RpbmeUjAV1dGYtOJSMHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwReG1sY2hhcnJlZnJlcGxhY2WUjA5lcnJvcl9lbmNvZGluZ5SMBXV0Zi04lIwcZXJyb3JfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEGJhY2tzbGFzaHJlcGxhY2WUjBNyZWNvcmRfZGVwZW5kZW5jaWVzlIwOZG9jdXRpbHMudXRpbHOUjA5EZXBlbmRlbmN5TGlzdJSTlCmBlH2UKIwEbGlzdJRdlIwEZmlsZZROdWKMBmNvbmZpZ5ROjA1kdW1wX3NldHRpbmdzlE6MDmR1bXBfaW50ZXJuYWxzlE6MD2R1bXBfdHJhbnNmb3Jtc5ROjA9kdW1wX3BzZXVkb194bWyUTowQZXhwb3NlX2ludGVybmFsc5ROjA5zdHJpY3RfdmlzaXRvcpROjA9fZGlzYWJsZV9jb25maWeUTowHX3NvdXJjZZROjAxfZGVzdGluYXRpb26UjDNkb2MvZGlmZnMvaXN0YW5idWxfbXVpcl9nbGFjaWVyL3NwZWMvaW5kZXgucGlja2xlNjSUjA1fY29uZmlnX2ZpbGVzlF2UjBFsaW5lX2xlbmd0aF9saW1pdJRNECeMCXRhYl93aWR0aJRLCIwQc3ludGF4X2hpZ2hsaWdodJSMBGxvbmeUjAxzbWFydF9xdW90ZXOUiYwTc21hcnRxdW90ZXNfbG9jYWxlc5ROjB1jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cJSJjAZ3cml0ZXKUjAN4bWyUjBljb21wYXJlX3NlY3Rpb25zX2J5X25hbWVzlEsBjAxkdW1wX3JzdGRpZmaUTowFX2JvdGiUfZQoaDhOjAlnZW5lcmF0b3KUTowJZGF0ZXN0YW1wlE6MC3NvdXJjZV9saW5rlE6MCnNvdXJjZV91cmyUTowNdG9jX2JhY2tsaW5rc5RqXwUAAIwSZm9vdG5vdGVfYmFja2xpbmtzlEsBjA1zZWN0bnVtX3hmb3JtlEsBjA5kb2N0aXRsZV94Zm9ybZRLAYwNZG9jaW5mb194Zm9ybZRLAYwSc2VjdHN1YnRpdGxlX3hmb3JtlEsAjA5zdHJpcF9jb21tZW50c5ROjA5pbnB1dF9lbmNvZGluZ5ROjBxpbnB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwGc3RyaWN0lIwNbGFuZ3VhZ2VfY29kZZSMAmVulIwOcGVwX3JlZmVyZW5jZXOUTowMcGVwX2Jhc2VfdXJslIwfaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL5SMFXBlcF9maWxlX3VybF90ZW1wbGF0ZZSMCHBlcC0lMDRklIwOcmZjX3JlZmVyZW5jZXOUTowMcmZjX2Jhc2VfdXJslIwbaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvlIwddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2WUTowWZmlsZV9pbnNlcnRpb25fZW5hYmxlZJRLAYwLcmF3X2VuYWJsZWSUSwGMDmF1dG9faWRfcHJlZml4lIwCaWSUjAlpZF9wcmVmaXiUaAaMG3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3Nlc5ROjA1zdHJpcF9jbGFzc2VzlE51jARib3RolH2UjApfb3B0aW9uc1RvlIwFX2JvdGiUjAtfb2xkX3NvdXJjZZSMTy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS+UjAtfbmV3X3NvdXJjZZSMCWRvYy9kaWZmc5RqojUAAGqjNQAAjBZpZ25vcmVfaW5fc2VjdGlvbl9uYW1llF2UKIwIaXN0YW5idWyUjARtdWlylIwHZ2xhY2llcpRldWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZSMCW5hbWV0eXBlc5R9lGgQfZSMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjAtpbmNsdWRlX2xvZ5RdlIwKZGVjb3JhdGlvbpROaCFoA3ViLg==