gASVAQABAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIw6bW9kdWxlLWV0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudJRhjAdjbGFzc2VzlF2UjAVuYW1lc5RdlIwIZHVwbmFtZXOUXZSMCGJhY2tyZWZzlF2UjAVpc21vZJSIdYwHdGFnbmFtZZRoCYwGc291cmNllIx7L2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9jb25zdGFudGlub3BsZS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0lIwEbGluZZRLAYwGcGFyZW50lGgDjAlfZG9jdW1lbnSUaAN1YowPc3BoaW54LmFkZG5vZGVzlIwFaW5kZXiUk5QpgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMB2VudHJpZXOUXZQojARwYWlylIw7bW9kdWxlOyBldGhlcmV1bS5jb25zdGFudGlub3BsZS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnSUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMOUV0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBFbnZpcm9ubWVudGFsIEluc3RydWN0aW9uc5RoB12UaACMBFRleHSUk5SMOUV0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBFbnZpcm9ubWVudGFsIEluc3RydWN0aW9uc5SFlIGUfZQoaAVoBmggaDpoIWgDaB2MXC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS8gPT4gZG9jL2RpZmZzlGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9LBGggaDVoIWgDdWJoAIwFdG9waWOUk5QpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBFUYWJsZSBvZiBDb250ZW50c5RoB12UaD+MEVRhYmxlIG9mIENvbnRlbnRzlIWUgZR9lChoBWgGaCBoUGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sIaCBoTWghaAN1YmgAjAtidWxsZXRfbGlzdJSTlCmBlH2UKGgFaAZoB12UKGgAjAlsaXN0X2l0ZW2Uk5QpgZR9lChoBWgGaAddlGgAjAlwYXJhZ3JhcGiUk5QpgZR9lChoBWgGaAddlGgAjAlyZWZlcmVuY2WUk5QpgZR9lChoBWgGaAddlGg/jAxJbnRyb2R1Y3Rpb26UhZSBlH2UKGgFaAZoIGhvaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDGUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwMaW50cm9kdWN0aW9ulHVoHGhtaB1OaB9OaCBoanViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaGV1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaGBoIWgDdWJoZCmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAVoBmgHXZRobimBlH2UKGgFaAZoB12UaD+MD01vZHVsZSBDb250ZW50c5SFlIGUfZQoaAVoBmggaJFoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkMpRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjA9tb2R1bGUtY29udGVudHOUdWgcaG1oHU5oH05oIGiOdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBoi3ViaF8pgZR9lChoBWgGaAddlGhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFaAZoB12UaG4pgZR9lChoBWgGaAddlGg/jAlGdW5jdGlvbnOUhZSBlH2UKGgFaAZoIGiwaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDOUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwJZnVuY3Rpb25zlHVoHGhtaB1OaB9OaCBorXViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaKp1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGindWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1OaB9OaCBoi3ViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBoYGghaAN1YmhkKYGUfZQoaAVoBmgHXZQoaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wOTW9kdWxlIERldGFpbHOUhZSBlH2UKGgFaAZoIGjeaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDSUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwObW9kdWxlLWRldGFpbHOUdWgcaG1oHU5oH05oIGjbdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oRGgfSwBoIGjYaCFoA3ViaF8pgZR9lChoBWgGaAddlChoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wHYWRkcmVzc5SFlIGUfZQoaAVoBmggaP1oIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkNZRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAdhZGRyZXNzlHVoHGhtaB1OaB9OaCBo+nViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaPd1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wHYmFsYW5jZZSFlIGUfZQoaAVoBmggah8BAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkNpRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAdiYWxhbmNllHVoHGhtaB1OaB9OaCBqHAEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggahkBAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wGb3JpZ2lulIWUgZR9lChoBWgGaCBqQQEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlIwDaWQ3lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMBm9yaWdpbpR1aBxobWgdTmgfTmggaj4BAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGo7AQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1oRGgfSwBoIGj0aCFoA3ViaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAVoBmgHXZRobimBlH2UKGgFaAZoB12UaD+MBmNhbGxlcpSFlIGUfZQoaAVoBmggamMBAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkOJRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAZjYWxsZXKUdWgcaG1oHU5oH05oIGpgAQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqXQEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBo9GghaAN1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFaAZoB12UaG4pgZR9lChoBWgGaAddlGg/jAljYWxsdmFsdWWUhZSBlH2UKGgFaAZoIGqFAQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDmUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwJY2FsbHZhbHVllHVoHGhtaB1OaB9OaCBqggEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggan8BAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wMY2FsbGRhdGFsb2FklIWUgZR9lChoBWgGaCBqpwEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlIwEaWQxMJRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAxjYWxsZGF0YWxvYWSUdWgcaG1oHU5oH05oIGqkAQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqoQEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBo9GghaAN1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFaAZoB12UaG4pgZR9lChoBWgGaAddlGg/jAxjYWxsZGF0YXNpemWUhZSBlH2UKGgFaAZoIGrJAQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDExlGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMDGNhbGxkYXRhc2l6ZZR1aBxobWgdTmgfTmggasYBAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGrDAQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1oRGgfSwBoIGj0aCFoA3ViaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAVoBmgHXZRobimBlH2UKGgFaAZoB12UaD+MDGNhbGxkYXRhY29weZSFlIGUfZQoaAVoBmggausBAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMBGlkMTKUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwMY2FsbGRhdGFjb3B5lHVoHGhtaB1OaB9OaCBq6AEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggauUBAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wIY29kZXNpemWUhZSBlH2UKGgFaAZoIGoNAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDEzlGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMCGNvZGVzaXpllHVoHGhtaB1OaB9OaCBqCgIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggagcCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wIY29kZWNvcHmUhZSBlH2UKGgFaAZoIGovAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE0lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMCGNvZGVjb3B5lHVoHGhtaB1OaB9OaCBqLAIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaikCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wIZ2FzcHJpY2WUhZSBlH2UKGgFaAZoIGpRAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE1lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMCGdhc3ByaWNllHVoHGhtaB1OaB9OaCBqTgIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaksCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wLZXh0Y29kZXNpemWUhZSBlH2UKGgFaAZoIGpzAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE2lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMC2V4dGNvZGVzaXpllHVoHGhtaB1OaB9OaCBqcAIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggam0CAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wLZXh0Y29kZWNvcHmUhZSBlH2UKGgFaAZoIGqVAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE3lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMC2V4dGNvZGVjb3B5lHVoHGhtaB1OaB9OaCBqkgIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggao8CAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wOcmV0dXJuZGF0YXNpemWUhZSBlH2UKGgFaAZoIGq3AgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE4lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMDnJldHVybmRhdGFzaXpllHVoHGhtaB1OaB9OaCBqtAIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggarECAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wOcmV0dXJuZGF0YWNvcHmUhZSBlH2UKGgFaAZoIGrZAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE5lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMDnJldHVybmRhdGFjb3B5lHVoHGhtaB1OaB9OaCBq1gIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggatMCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wLZXh0Y29kZWhhc2iUhZSBlH2UKGgFaAZoIGr7AgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDIwlGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMC2V4dGNvZGVoYXNolHVoHGhtaB1OaB9OaCBq+AIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggavUCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wMc2VsZl9iYWxhbmNllIWUgZR9lChoBWgGaCBqHQMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlIwEaWQyMZRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAxzZWxmLWJhbGFuY2WUdWgcaG1oHU5oH05oIGoaAwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqFwMAAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1oRGgfSwBoIGjYaCFoA3ViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBoYGghaAN1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaF5oHWhEaB9LAGggaE1oIWgDdWJlaA59lChoEF2UjBF0YWJsZS1vZi1jb250ZW50c5RhaBNdlCiMCGNvbnRlbnRzlIwFbG9jYWyUZWgVXZSMEXRhYmxlIG9mIGNvbnRlbnRzlGFoF12UaBldlHVoHGhLaB1oHmgfSwhoIGg1aCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjAxJbnRyb2R1Y3Rpb26UaAddlGg/jAxJbnRyb2R1Y3Rpb26UhZSBlH2UKGgFaAZoIGpZAwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGg4aB1oHmgfSwtoIGpWAwAAdWJoaSmBlH2UKGgFjDxJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIEVWTSBlbnZpcm9ubWVudCByZWxhdGVkIGluc3RydWN0aW9ucy6UaAddlGg/jDxJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIEVWTSBlbnZpcm9ubWVudCByZWxhdGVkIGluc3RydWN0aW9ucy6UhZSBlH2UKGgFaAZoIGpnAwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfSw1oIGpWAwAAdWJoAIwHY29tbWVudJSTlCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllIwIcHJlc2VydmWUdWgcanUDAABoHU5oH05oIGpWAwAAdWJlaA59lChoEF2UaH5haBNdlGgVXZSMDGludHJvZHVjdGlvbpRhaBddlGgZXZR1aBxoM2gdaB5oH0sLaCBoNWghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwPTW9kdWxlIENvbnRlbnRzlGgHXZRoP4wPTW9kdWxlIENvbnRlbnRzlIWUgZR9lChoBWgGaCBqjAMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sTaCBqiQMAAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwJRnVuY3Rpb25zlGgHXZRoP4wJRnVuY3Rpb25zlIWUgZR9lChoBWgGaCBqnQMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sXaCBqmgMAAGghaAN1YmgijBB0YWJ1bGFyX2NvbF9zcGVjlJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjARzcGVjlIwQXFh7MX17Mn1cWHsxfXsyfZR1aBxqqwMAAGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sAaCBqmgMAAGghaAN1YowWc3BoaW54LmV4dC5hdXRvc3VtbWFyeZSMEWF1dG9zdW1tYXJ5X3RhYmxllJOUKYGUfZQoaAVYjQQAAAoKCgphZGRyZXNzCgpQdXNoZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGFjY291bnQgdG8gdGhlIHN0YWNrLgoKYmFsYW5jZQoKUHVzaGVzIHRoZSBiYWxhbmNlIG9mIHRoZSBnaXZlbiBhY2NvdW50IG9udG8gdGhlIHN0YWNrLgoKb3JpZ2luCgpQdXNoZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIHRyYW5zYWN0aW9uIHNlbmRlciB0byB0aGUgc3RhY2suCgpjYWxsZXIKClB1c2hlcyB0aGUgYWRkcmVzcyBvZiB0aGUgY2FsbGVyIG9udG8gdGhlIHN0YWNrLgoKY2FsbHZhbHVlCgpQdXNoIHRoZSB2YWx1ZSAoaW4gd2VpKSBzZW50IHdpdGggdGhlIGNhbGwgb250byB0aGUgc3RhY2suCgpjYWxsZGF0YWxvYWQKClB1c2ggYSB3b3JkICgzMiBieXRlcykgb2YgdGhlIGlucHV0IGRhdGEgYmVsb25naW5nIHRvIHRoZSBjdXJyZW50CgpjYWxsZGF0YXNpemUKClB1c2ggdGhlIHNpemUgb2YgaW5wdXQgZGF0YSBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLgoKY2FsbGRhdGFjb3B5CgpDb3B5IGEgcG9ydGlvbiBvZiB0aGUgaW5wdXQgZGF0YSBpbiBjdXJyZW50IGVudmlyb25tZW50IHRvIG1lbW9yeS4KCmNvZGVzaXplCgpQdXNoIHRoZSBzaXplIG9mIGNvZGUgcnVubmluZyBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLgoKY29kZWNvcHkKCkNvcHkgYSBwb3J0aW9uIG9mIHRoZSBjb2RlIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LgoKZ2FzcHJpY2UKClB1c2ggdGhlIGdhcyBwcmljZSB1c2VkIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2suCgpleHRjb2Rlc2l6ZQoKUHVzaCB0aGUgY29kZSBzaXplIG9mIGEgZ2l2ZW4gYWNjb3VudCBvbnRvIHRoZSBzdGFjay4KCmV4dGNvZGVjb3B5CgpDb3B5IGEgcG9ydGlvbiBvZiBhbiBhY2NvdW50J3MgY29kZSB0byBtZW1vcnkuCgpyZXR1cm5kYXRhc2l6ZQoKUHVzaGVzIHRoZSBzaXplIG9mIHRoZSByZXR1cm4gZGF0YSBidWZmZXIgb250byB0aGUgc3RhY2suCgpyZXR1cm5kYXRhY29weQoKQ29waWVzIGRhdGEgZnJvbSB0aGUgcmV0dXJuIGRhdGEgYnVmZmVyIGNvZGUgdG8gbWVtb3J5CgpleHRjb2RlaGFzaAoKUmV0dXJucyB0aGUga2VjY2FrMjU2IGhhc2ggb2YgYSBjb250cmFjdOKAmXMgYnl0ZWNvZGWUaAddlGgAjAV0YWJsZZSTlCmBlH2UKGgFaAZoB12UaACMBnRncm91cJSTlCmBlH2UKGgFaAZoB12UKGgAjAdjb2xzcGVjlJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhjb2x3aWR0aJRLCnVoHGrKAwAAaB1oRGgfSwBoIGrHAwAAaCFoA3ViassDAAApgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGNvbHdpZHRolEtadWgcasoDAABoHWhEaB9LAGggascDAABoIWgDdWJoAIwFdGJvZHmUk5QpgZR9lChoBWgGaAddlChoAIwDcm93lJOUKYGUfZQoaAVoBmgHXZQoaACMBWVudHJ5lJOUKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjEw6b2JqOmBhZGRyZXNzIDxldGhlcmV1bS5jb25zdGFudGlub3BsZS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuYWRkcmVzcz5glGgHXZRobimBlH2UKGgFaAZoB12UaACMB2xpdGVyYWyUk5QpgZR9lChoBWrxAwAAaAddlGg/jAdhZGRyZXNzlIWUgZR9lChoBWgGaCBq+AMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQojAR4cmVmlIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGr2AwAAaB1OaB9OaCBq8wMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIw7ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmFkZHJlc3OUjAhyZWZ0aXRsZZSMO2V0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5hZGRyZXNzlHVoHGhtaB1OaB9OaCBq7wMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBq7AMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggaucDAAB1YmrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjEFQdXNoZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGFjY291bnQgdG8gdGhlIHN0YWNrLpRoB12UaD+MQVB1c2hlcyB0aGUgYWRkcmVzcyBvZiB0aGUgY3VycmVudCBleGVjdXRpbmcgYWNjb3VudCB0byB0aGUgc3RhY2sulIWUgZR9lChoBWgGaCBqIwQAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqIAQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggaucDAAB1YmVoDn2U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cHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGr2AwAAaB1OaB9OaCBq7AQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIw6ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxlcpSMCHJlZnRpdGxllIw6ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxlcpR1aBxobWgdTmgfTmggaugEAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyML2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9jb25zdGFudGlub3BsZS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ2OjxhdXRvc3VtbWFyeT6UaB9LAWggauUEAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauoDAABoHU5oH05oIGriBAAAdWJq6wMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwwUHVzaGVzIHRoZSBhZGRyZXNzIG9mIHRoZSBjYWxsZXIgb250byB0aGUgc3RhY2sulGgHXZRoP4wwUHVzaGVzIHRoZSBhZGRyZXNzIG9mIHRoZSBjYWxsZXIgb250byB0aGUgc3RhY2sulIWUgZR9lChoBWgGaCBqGQUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqFgUAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggauIEAAB1YmVoDn2UKGgQ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emWUhZSBlH2UKGgFaAZoIGrlBQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqAgQAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGr2AwAAaB1OaB9OaCBq4gUAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIxAZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxkYXRhc2l6ZZSMCHJlZnRpdGxllIxAZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxkYXRhc2l6ZZR1aBxobWgdTmgfTmggat4FAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyML2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9jb25zdGFudGlub3BsZS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ2OjxhdXRvc3VtbWFyeT6UaB9LAWggatsFAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauoDAABoHU5oH05oIGrYBQAAdWJq6wMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxCUHVzaCB0aGUgc2l6ZSBvZiBpbnB1dCBkYXRhIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2sulGgHXZRoP4xCUHVzaCB0aGUgc2l6ZSBvZiBpbnB1dCBkYXRhIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2sulIWUgZR9lChoBWgGaCBqDwYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZp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aXRsZZSMPGV0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jb2Rlc2l6ZZR1aBxobWgdTmgfTmggaoIGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyML2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9jb25zdGFudGlub3BsZS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ2OjxhdXRvc3VtbWFyeT6UaB9LAWggan8GAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauoDAABoHU5oH05oIGp8BgAAdWJq6wMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxEUHVzaCB0aGUgc2l6ZSBvZiBjb2RlIHJ1bm5pbmcgaW4gY3VycmVudCBlbnZpcm9ubWVudCBvbnRvIHRoZSBzdGFjay6UaAddlGg/jERQdXNoIHRoZSBzaXplIG9mIGNvZGUgcnVubmluZyBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpSFlIGUfZQoaAVoBmggarMGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyML2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9jb25zdGFudGlub3BsZS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ2OjxhdXRvc3VtbWFyeT6UaB9LAWggarAGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauoDAABoHU5oH05oIGp8BgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrlAwAAaB1oRGgfSwBoIGriAwAAaCFoA3ViauYDAAApgZR9lChoBWgGaAddlChq6wMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxOOm9iajpgY29kZWNvcHkgPGV0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jb2RlY29weT5glGgHXZRobimBlH2UKGgFaAZoB12UavcDAAApgZR9lChoBWrWBgAAaAddlGg/jAhjb2RlY29weZSFlIGUfZQoaAVoBmggatsGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGoCBAAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcavYDAABoHU5oH05oIGrYBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjDxldGhlcmV1bS5jb25zdGFudGlub3BsZS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY29kZWNvcHmUjAhyZWZ0aXRsZZSMPGV0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jb2RlY29weZR1aBxobWgdTmgfTmggatQGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyML2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9jb25zdGFudGlub3BsZS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ2OjxhdXRvc3VtbWFyeT6UaB9LAWggatEGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauoDAABoHU5oH05oIGrOBgAAdWJq6wMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw8Q29weSBhIHBvcnRpb24gb2YgdGhlIGNvZGUgaW4gY3VycmVudCBlbnZpcm9ubWVudCB0byBtZW1vcnkulGgHXZRoP4w8Q29weSBhIHBvcnRpb24gb2YgdGhlIGNvZGUgaW4gY3VycmVudCBlbnZpcm9ubWVudCB0byBtZW1vcnkulIWUgZR9lChoBWgGaCBqBQcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqAgcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggas4GAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauUDAABoHWhEaB9LAGggauIDAABoIWgDdWJq5gMAACmBlH2UKGgFaAZoB12UKGrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjE46b2JqOmBnYXNwcmljZSA8ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50Lmdhc3ByaWNlPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq9wMAACmBlH2UKGgFaigHAABoB12UaD+MCGdhc3ByaWNllIWUgZR9lChoBWgGaCBqLQcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoagIEAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq9gMAAGgdTmgfTmggaioHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMPGV0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5nYXNwcmljZZSMCHJlZnRpdGxllIw8ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50Lmdhc3ByaWNllHVoHGhtaB1OaB9OaCBqJgcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqIwcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggaiAHAAB1YmrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjD5QdXNoIHRoZSBnYXMgcHJpY2UgdXNlZCBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpRoB12UaD+MPlB1c2ggdGhlIGdhcyBwcmljZSB1c2VkIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2sulIWUgZR9lChoBWgGaCBqVwcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqVAcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggaiAHAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauUDAABoHWhEaB9LAGggauIDAABoIWgDdWJq5gMAACmBlH2UKGgFaAZoB12UKGrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjFQ6b2JqOmBleHRjb2Rlc2l6ZSA8ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVzaXplPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq9wMAACmBlH2UKGgFanoHAABoB12UaD+MC2V4dGNvZGVzaXpllIWUgZR9lChoBWgGaCBqfwcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoagIEAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq9gMAAGgdTmgfTmgganwHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMP2V0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5leHRjb2Rlc2l6ZZSMCHJlZnRpdGxllIw/ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVzaXpllHVoHGhtaB1OaB9OaCBqeAcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqdQcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmgganIHAAB1YmrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDVQdXNoIHRoZSBjb2RlIHNpemUgb2YgYSBnaXZlbiBhY2NvdW50IG9udG8gdGhlIHN0YWNrLpRoB12UaD+MNVB1c2ggdGhlIGNvZGUgc2l6ZSBvZiBhIGdpdmVuIGFjY291bnQgb250byB0aGUgc3RhY2sulIWUgZR9lChoBWgGaCBqqQcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqpgcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmgganIHAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauUDAABoHWhEaB9LAGggauIDAABoIWgDdWJq5gMAACmBlH2UKGgFaAZoB12UKGrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjFQ6b2JqOmBleHRjb2RlY29weSA8ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVjb3B5PmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq9wMAACmBlH2UKGgFaswHAABoB12UaD+MC2V4dGNvZGVjb3B5lIWUgZR9lChoBWgGaCBq0QcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoagIEAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq9gMAAGgdTmgfTmggas4HAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMP2V0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5leHRjb2RlY29weZSMCHJlZnRpdGxllIw/ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVjb3B5lHVoHGhtaB1OaB9OaCBqygcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqxwcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggasQHAAB1YmrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjC5Db3B5IGEgcG9ydGlvbiBvZiBhbiBhY2NvdW50J3MgY29kZSB0byBtZW1vcnkulGgHXZRoP4wwQ29weSBhIHBvcnRpb24gb2YgYW4gYWNjb3VudOKAmXMgY29kZSB0byBtZW1vcnkulIWUgZR9lChoBWgGaCBq+wcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBq+AcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggasQHAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauUDAABoHWhEaB9LAGggauIDAABoIWgDdWJq5gMAACmBlH2UKGgFaAZoB12UKGrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjFo6b2JqOmByZXR1cm5kYXRhc2l6ZSA8ZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LnJldHVybmRhdGFzaXplPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq9wMAACmBlH2UKGgFah4IAABoB12UaD+MDnJldHVybmRhdGFzaXpllIWUgZR9lChoBWgGaCBqIwgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoagIEAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq9gMAAGgdTmgfTmggaiAIAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMQmV0aGVyZXVtLmNvbnN0YW50aW5vcGxlLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5yZXR1cm5kYXRhc2l6ZZSMCHJlZnRpdGxllIxCZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LnJldHVybmRhdGFzaXpllHVoHGhtaB1OaB9OaCBqHAgAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIwvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqGQgAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq6gMAAGgdTmgfTmggahYIAAB1YmrrAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDlQdXNoZXMgdGhlIHNpemUgb2YgdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBvbnRvIHRoZSBzdGFjay6UaAddlGg/jDlQdXNoZXMgdGhlIHNpemUgb2YgdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBvbnRvIHRoZSBzdGFjay6UhZSBlH2UKGgFaAZoIGpNCAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2MjC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vY29uc3RhbnRpbm9wbGUvdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Njo8YXV0b3N1bW1hcnk+lGgfSwFoIGpKCAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrqAwAAaB1OaB9OaCBqFggAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxq5QMAAGgdaERoH0sAaCBq4gMAAGghaAN1YmrmAwAAKYGUfZQoaAVoBmgHXZQoausDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMWjpvYmo6YHJldHVybmRhdGFjb3B5IDxldGhlcmV1bS5jb25zdGFudGlub3BsZS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQucmV0dXJuZGF0YWNvcHk+YJRoB12UaG4pgZR9lChoBWgGaAddlGr3AwAAKYGUfZQoaAVqcAgAAGgHXZRoP4wOcmV0dXJuZGF0YWNvcHmUhZSBlH2UKGgFaAZoIGp1CAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqAgQAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGr2AwAAaB1OaB9OaCBqcggAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIxCZXRoZXJldW0uY29uc3RhbnRpbm9wbGUudm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LnJldHVybmRhdGFjb3B5lIwIcmVmdGl0bGWUjEJldGhlcmV1bS5jb25zdGFudGlub3BsZS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQucmV0dXJuZGF0YWNvcHmUdWgcaG1oHU5oH05oIGpuCAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2MjC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vY29uc3RhbnRpbm9wbGUvdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Njo8YXV0b3N1bW1hcnk+lGgfSwFoIGprCAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrqAwAAaB1OaB9OaCBqaAgAAHViausDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMNkNvcGllcyBkYXRhIGZyb20gdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBjb2RlIHRvIG1lbW9yeZRoB12UaD+MNkNvcGllcyBkYXRhIGZyb20gdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBjb2RlIHRvIG1lbW9yeZSFlIGUfZQoaAVoBmggap8IAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyML2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9jb25zdGFudGlub3BsZS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ2OjxhdXRvc3VtbWFyeT6UaB9LAWggapwIAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcauoDAABoHU5oH05oIGpoCAAAdWJlaA59lCho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YXMgYmFsYW5jZSAwLgogICAgYmFsYW5jZSA9IGdldF9hY2NvdW50KGV2bS5lbnYuc3RhdGUsIGFkZHJlc3MpLmJhbGFuY2UKCiAgICBwdXNoKGV2bS5zdGFjaywgYmFsYW5jZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlGgHXZRoP1hbAQAAZGVmIGJhbGFuY2UoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBhZGRyZXNzID0gdG9fYWRkcmVzcyhwb3AoZXZtLnN0YWNrKSkKCiAgICAjIEdBUwogICAgY2hhcmdlX2dhcyhldm0sIEdBU19CQUxBTkNFKQoKICAgICMgT1BFUkFUSU9OCiAgICAjIE5vbi1leGlzdGVudCBhY2NvdW50cyBkZWZhdWx0IHRvIEVNUFRZX0FDQ09VTlQsIHdoaWNoIGhhcyBiYWxhbmNlIDAuCiAgICBiYWxhbmNlID0gZ2V0X2FjY291bnQoZXZtLmVudi5zdGF0ZSwgYWRkcmVzcykuYmFsYW5jZQoKICAgIHB1c2goZXZtLnN0YWNrLCBiYWxhbmNlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUhZSBlH2UKGgFaAZoIGpwCwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxsL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vY29uc3RhbnRpbm9wbGUvdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50LnB5lIwJeG1sOnNwYWNllGqBAwAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uap0KAABLAXOMB2xpbmVub3OUiXVoHGqFCgAAaB1oHmgfS1JoIGqmCgAAdWJlaA59lChoEF2Uai4BAABhaBNdlGgVXZSMB2JhbGFuY2WUYWgXXZRoGV2UdWgcaDNoHWgeaB9LRWggaogJAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMBm9yaWdpbpRoB12UaD+M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aCBqMhAAAHViZWgOfZQoaBBdlGgTXZQoam8QAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqbxAAAIwHb2JqdHlwZZRq5hAAAIwIZGVzY3R5cGWUauYQAACMB25vaW5kZXiUiXVoHGq1CQAAaB1OaB9OaCBqFhAAAHViaoYKAAApgZR9lChoBViCAgAAZGVmIGNhbGxkYXRhY29weShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIG1lbW9yeV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBkYXRhX3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIHNpemUgPSBwb3AoZXZtLnN0YWNrKQoKICAgICMgR0FTCiAgICB3b3JkcyA9IGNlaWwzMihVaW50KHNpemUpKSAvLyAzMgogICAgY29weV9nYXNfY29zdCA9IEdBU19DT1BZICogd29yZHMKICAgIGV4dGVuZF9tZW1vcnkgPSBjYWxjdWxhdGVfZ2FzX2V4dGVuZF9tZW1vcnkoCiAgICAgICAgZXZtLm1lbW9yeSwgWyhtZW1vcnlfc3RhcnRfaW5kZXgsIHNpemUpXQogICAgKQogICAgY2hhcmdlX2dhcyhldm0sIEdBU19WRVJZX0xPVyArIGNvcHlfZ2FzX2Nvc3QgKyBleHRlbmRfbWVtb3J5LmNvc3QpCgogICAgIyBPUEVSQVRJT04KICAgIGV2bS5tZW1vcnkgKz0gYiJceDAwIiAqIGV4dGVuZF9tZW1vcnkuZXhwYW5kX2J5CiAgICB2YWx1ZSA9IGJ1ZmZlcl9yZWFkKGV2bS5tZXNzYWdlLmRhdGEsIGRhdGFfc3RhcnRfaW5kZXgsIHNpemUpCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlGgHXZRoP1iCAgAAZGVmIGNhbGxkYXRhY29weShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIG1lbW9yeV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBkYXRhX3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIHNpemUgPSBwb3AoZXZtLnN0YWNrKQoKICAgICMgR0FTCiAgICB3b3JkcyA9IGNlaWwzMihVaW50KHNpemUpKSAvLyAzMgogICAgY29weV9nYXNfY29zdCA9IEdBU19DT1BZICogd29yZHMKICAgIGV4dGVuZF9tZW1vcnkgPSBjYWxjdWxhdGVfZ2FzX2V4dGVuZF9tZW1vcnkoCiAgICAgICAgZXZtLm1lbW9yeSwgWyhtZW1vcnlfc3RhcnRfaW5kZXgsIHNpemUpXQogICAgKQogICAgY2hhcmdlX2dhcyhldm0sIEdBU19WRVJZX0xPVyArIGNvcHlfZ2FzX2Nvc3QgKyBleHRlbmRfbWVtb3J5LmNvc3QpCgogICAgIyBPUEVSQVRJT04KICAgIGV2bS5tZW1vcnkgKz0gYiJceDAwIiAqIGV4dGVuZF9tZW1vcnkuZXhwYW5kX2J5CiAgICB2YWx1ZSA9IGJ1ZmZlcl9yZWFkKGV2bS5tZXNzYWdlLmRhdGEsIGRhdGFfc3RhcnRfaW5kZXgsIHNpemUpCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlIWUgZR9lChoBWgGaCBq7hAAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMbC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC5weZSMCXhtbDpzcGFjZZRqgQMAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGqdCgAASwFzjAdsaW5lbm9zlIl1aBxqhQoAAGgdaB5oH0vDaCBqFhAAAHViZWgOfZQoaBBdlGr6AQAAYWgTXZRoFV2UjAxjYWxsZGF0YWNvcHmUYWgXXZRoGV2UdWgcaDNoHWgeaB9Ls2ggaogJ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ZXh0ZW5kX21lbW9yeS5jb3N0KQoKICAgICMgT1BFUkFUSU9OCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgdmFsdWUgPSBidWZmZXJfcmVhZChldm0uY29kZSwgY29kZV9zdGFydF9pbmRleCwgc2l6ZSkKICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WHYCAABkZWYgY29kZWNvcHkoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBtZW1vcnlfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgY29kZV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBzaXplID0gcG9wKGV2bS5zdGFjaykKCiAgICAjIEdBUwogICAgd29yZHMgPSBjZWlsMzIoVWludChzaXplKSkgLy8gMzIKICAgIGNvcHlfZ2FzX2Nvc3QgPSBHQVNfQ09QWSAqIHdvcmRzCiAgICBleHRlbmRfbWVtb3J5ID0gY2FsY3VsYXRlX2dhc19leHRlbmRfbWVtb3J5KAogICAgICAgIGV2bS5tZW1vcnksIFsobWVtb3J5X3N0YXJ0X2luZGV4LCBzaXplKV0KICAgICkKICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfVkVSWV9MT1cgKyBjb3B5X2dhc19jb3N0ICsgZXh0ZW5kX21lbW9yeS5jb3N0KQoKICAgICMgT1BFUkFUSU9OCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgdmFsdWUgPSBidWZmZXJfcmVhZChldm0uY29kZSwgY29kZV9zdGFydF9pbmRleCwgc2l6ZSkKICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUhZSBlH2UKGgFaAZoIGrM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AGgdTmgfTmggaroUAAB1YmqGCgAAKYGUfZQoaAVY0gIAAGRlZiBleHRjb2RlY29weShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIGFkZHJlc3MgPSB0b19hZGRyZXNzKHBvcChldm0uc3RhY2spKQogICAgbWVtb3J5X3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIGNvZGVfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgc2l6ZSA9IHBvcChldm0uc3RhY2spCgogICAgIyBHQVMKICAgIHdvcmRzID0gY2VpbDMyKFVpbnQoc2l6ZSkpIC8vIDMyCiAgICBjb3B5X2dhc19jb3N0ID0gR0FTX0NPUFkgKiB3b3JkcwogICAgZXh0ZW5kX21lbW9yeSA9IGNhbGN1bGF0ZV9nYXNfZXh0ZW5kX21lbW9yeSgKICAgICAgICBldm0ubWVtb3J5LCBbKG1lbW9yeV9zdGFydF9pbmRleCwgc2l6ZSldCiAgICApCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX0VYVEVSTkFMICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdCkKCiAgICAjIE9QRVJBVElPTgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5kX21lbW9yeS5leHBhbmRfYnkKICAgIGNvZGUgPSBnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBhZGRyZXNzKS5jb2RlCiAgICB2YWx1ZSA9IGJ1ZmZlcl9yZWFkKGNvZGUsIGNvZGVfc3RhcnRfaW5kZXgsIHNpemUpCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlGgHXZRoP1jSAgAAZGVmIGV4dGNvZGVjb3B5KGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgYWRkcmVzcyA9IHRvX2FkZHJlc3MocG9wKGV2bS5zdGFjaykpCiAgICBtZW1vcnlfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgY29kZV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBzaXplID0gcG9wKGV2bS5zdGFjaykKCiAgICAjIEdBUwogICAgd29yZHMgPSBjZWlsMzIoVWludChzaXplKSkgLy8gMzIKICAgIGNvcHlfZ2FzX2Nvc3QgPSBHQVNfQ09QWSAqIHdvcmRzCiAgICBleHRlbmRfbWVtb3J5ID0gY2FsY3VsYXRlX2dhc19leHRlbmRfbWVtb3J5KAogICAgICAgIGV2bS5tZW1vcnksIFsobWVtb3J5X3N0YXJ0X2luZGV4LCBzaXplKV0KICAgICkKICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfRVhURVJOQUwgKyBjb3B5X2dhc19jb3N0ICsgZXh0ZW5kX21lbW9yeS5jb3N0KQoKICAgICMgT1BFUkFUSU9OCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgY29kZSA9IGdldF9hY2NvdW50KGV2bS5lbnYuc3RhdGUsIGFkZHJlc3MpLmNvZGUKICAgIHZhbHVlID0gYnVmZmVyX3JlYWQoY29kZSwgY29kZV9zdGFydF9pbmRleCwgc2l6ZSkKICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUhZSBlH2UKGgFaAZoIGqEFQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxsL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vY29uc3RhbnRpbm9wbGUvdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50LnB5lIwJeG1sOnNwYWNllGqBAwAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2Uap0KAABLAXOMB2xpbmVub3OUiXVoHGqFCgAAaB1oHmgfTSABaCBquhQAAHViZWgOfZQoaBBdlGqkAgAAYWgTXZRo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IE91dE9mQm91bmRzUmVhZCwKICAgICkKCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgdmFsdWUgPSBldm0ucmV0dXJuX2RhdGFbCiAgICAgICAgcmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24gOiByZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbiArIHNpemUKICAgIF0KICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WD0DAABkZWYgcmV0dXJuZGF0YWNvcHkoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBtZW1vcnlfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgcmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24gPSBwb3AoZXZtLnN0YWNrKQogICAgc2l6ZSA9IHBvcChldm0uc3RhY2spCgogICAgIyBHQVMKICAgIHdvcmRzID0gY2VpbDMyKFVpbnQoc2l6ZSkpIC8vIDMyCiAgICBjb3B5X2dhc19jb3N0ID0gR0FTX1JFVFVSTl9EQVRBX0NPUFkgKiB3b3JkcwogICAgZXh0ZW5kX21lbW9yeSA9IGNhbGN1bGF0ZV9nYXNfZXh0ZW5kX21lbW9yeSgKICAgICAgICBldm0ubWVtb3J5LCBbKG1lbW9yeV9zdGFydF9pbmRleCwgc2l6ZSldCiAgICApCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX1ZFUllfTE9XICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdCkKCiAgICAjIE9QRVJBVElPTgogICAgZW5zdXJlKAogICAgICAgIFVpbnQocmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24pICsgVWludChzaXplKSA8PSBsZW4oZXZtLnJldHVybl9kYXRhKSwKICAgICAgICBPdXRPZkJvdW5kc1JlYWQsCiAgICApCgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5k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b25lOgogICAgIyBTVEFDSwogICAgcGFzcwoKICAgICMgR0FTCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX0ZBU1RfU1RFUCkKCiAgICAjIE9QRVJBVElPTgogICAgIyBOb24tZXhpc3RlbnQgYWNjb3VudHMgZGVmYXVsdCB0byBFTVBUWV9BQ0NPVU5ULCB3aGljaCBoYXMgYmFsYW5jZSAwLgogICAgYmFsYW5jZSA9IGdldF9hY2NvdW50KGV2bS5lbnYuc3RhdGUsIGV2bS5tZXNzYWdlLmN1cnJlbnRfdGFyZ2V0KS5iYWxhbmNlCgogICAgcHVzaChldm0uc3RhY2ssIGJhbGFuY2UpCgogICAgIyBQUk9HUkFNIENPVU5URVIKICAgIGV2bS5wYyArPSAxCpRoB12UaD9YVQEAAGRlZiBzZWxmX2JhbGFuY2UoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBwYXNzCgogICAgIyBHQVMKICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfRkFTVF9TVEVQKQoKICAgICMgT1BFUkFUSU9OCiAgICAjIE5vbi1leGlzdGVudCBhY2NvdW50cyBkZWZhdWx0IHRvIEVNUFRZX0FDQ09VTlQsIHdoaWNoIGhhcyBiYWxhbmNlIDAuCiAgICBiYWxhbmNlID0gZ2V0X2FjY291bnQoZXZtLmVudi5zdGF0ZSwgZXZtLm1lc3NhZ2UuY3VycmVudF90YXJnZXQpLmJhbGFuY2UKCiAgICBwdXNoKGV2bS5zdGFjaywgYmFsYW5jZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlIWUgZR9lChoBWgGaCBq4hgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMZi9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2lzdGFuYnVsL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC5weZSMCXhtbDpzcGFjZZRqgQMAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lIwLbGluZW5vc3RhcnSUSwFzjAdsaW5lbm9zlIl1aBxqhQoAAGgdaiMYAABoH01oAWggahIYAAB1YmVoDn2UKGgQXZRqLAMAAGFoE12UjAxjaGFuZ2UtYWRkZWSUYWgVXZSMDHNlbGZfYmFsYW5jZZRhaBddlGgZXZR1aBxoM2gdaiMYAABoH01bAWggaogJAABoIWgDdWJlaA59lChoEF2UaO1haBNdlGgVXZSMDm1vZHVsZSBkZXRhaWxzlGFoF12UaBldlHVoHGgzaB1oHmgfSzBoIGg1aCFoA3ViZWgOfZQoaBBdlIw3ZXRoZXJldW0tdmlydHVhbC1tYWNoaW5lLWV2bS1lbnZpcm9ubWVudGFsLWluc3RydWN0aW9uc5RhaBNdlGgVXZSMOWV0aGVyZXVtIHZpcnR1YWwgbWFjaGluZSAoZXZtKSBlbnZpcm9ubWVudGFsIGluc3RydWN0aW9uc5RhaBddlGgZXZR1aBxoM2gdaB5oH0sEaCBoA2ghaAN1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUaER1aBxoAYwOY3VycmVudF9zb3VyY2WUaESMDGN1cnJlbnRfbGluZZRLAIwIc2V0dGluZ3OUjBFkb2N1dGlscy5mcm9udGVuZJSMBlZhbHVlc5STlCmBlH2UKIwMcmVwb3J0X2xldmVslEsCjApoYWx0X2xldmVslEsEjBFleGl0X3N0YXR1c19sZXZlbJRLBYwFZGVidWeUTowOd2FybmluZ19zdHJlYW2UTowJdHJhY2ViYWNrlE6MD291dHB1dF9lbmNvZGluZ5SMBXV0Zi04lIwdb3V0cHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjBF4bWxjaGFycmVmcmVwbGFjZZSMDmVycm9yX2VuY29kaW5nlIwFdXRmLTiUjBxlcnJvcl9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwQYmFja3NsYXNocmVwbGFjZZSME3JlY29yZF9kZXBlbmRlbmNpZXOUjA5kb2N1dGlscy51dGlsc5SMDkRlcGVuZGVuY3lMaXN0lJOUKYGUfZQojARsaXN0lF2UjARmaWxllE51YowGY29uZmlnlE6MDWR1bXBfc2V0dGluZ3OUTowOZHVtcF9pbnRlcm5hbHOUTowPZHVtcF90cmFuc2Zvcm1zlE6MD2R1bXBfcHNldWRvX3htbJROjBBleHBvc2VfaW50ZXJuYWxzlE6MDnN0cmljdF92aXNpdG9ylE6MD19kaXNhYmxlX2NvbmZpZ5ROjAdfc291cmNllE6MDF9kZXN0aW5hdGlvbpSMTGRvYy9kaWZmcy9jb25zdGFudGlub3BsZV9pc3RhbmJ1bC92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucGlja2xlNjSUjA1fY29uZmlnX2ZpbGVzlF2UjBFsaW5lX2xlbmd0aF9saW1pdJRNECeMCXRhYl93aWR0aJRLCIwQc3ludGF4X2hpZ2hsaWdodJSMBGxvbmeUjAxzbWFydF9xdW90ZXOUiYwTc21hcnRxdW90ZXNfbG9jYWxlc5ROjB1jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cJSJjAZ3cml0ZXKUjAN4bWyUjBljb21wYXJlX3NlY3Rpb25zX2J5X25hbWVzlEsBjAxkdW1wX3JzdGRpZmaUTowFX2JvdGiUfZQoaDhOjAlnZW5lcmF0b3KUTowJZGF0ZXN0YW1wlE6MC3NvdXJjZV9saW5rlE6MCnNvdXJjZV91cmyUTowNdG9jX2JhY2tsaW5rc5Rq6gMAAIwSZm9vdG5vdGVfYmFja2xpbmtzlEsBjA1zZWN0bnVtX3hmb3JtlEsBjA5kb2N0aXRsZV94Zm9ybZRLAYwNZG9jaW5mb194Zm9ybZRLAYwSc2VjdHN1YnRpdGxlX3hmb3JtlEsAjA5zdHJpcF9jb21tZW50c5ROjA5pbnB1dF9lbmNvZGluZ5ROjBxpbnB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwGc3RyaWN0lIwNbGFuZ3VhZ2VfY29kZZSMAmVulIwOcGVwX3JlZmVyZW5jZXOUTowMcGVwX2Jhc2VfdXJslIwfaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL5SMFXBlcF9maWxlX3VybF90ZW1wbGF0ZZSMCHBlcC0lMDRklIwOcmZjX3JlZmVyZW5jZXOUTowMcmZjX2Jhc2VfdXJslIwbaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvlIwddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2WUTowWZmlsZV9pbnNlcnRpb25fZW5hYmxlZJRLAYwLcmF3X2VuYWJsZWSUSwGMDmF1dG9faWRfcHJlZml4lIwCaWSUjAlpZF9wcmVmaXiUaAaMG3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3Nlc5ROjA1zdHJpcF9jbGFzc2VzlE51jARib3RolH2UjApfb3B0aW9uc1RvlIwFX2JvdGiUjAtfb2xkX3NvdXJjZZSMTy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS+UjAtfbmV3X3NvdXJjZZSMCWRvYy9kaWZmc5RqXxkAAGpgGQAAjBZpZ25vcmVfaW5fc2VjdGlvbl9uYW1llF2UKIwOY29uc3RhbnRpbm9wbGWUjAhpc3RhbmJ1bJRldWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZSMCW5hbWV0eXBlc5R9lGgQfZSMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjAtpbmNsdWRlX2xvZ5RdlIwKZGVjb3JhdGlvbpROaCFoA3ViLg==