bw0NCgAAAACiNI1jgcUAAOMAAAAAAAAAAAAAAAAAAAAACAAAAEAAAABzkAEAAGQAWgBkAWQCbAFaAWQBZANsAm0DWgMBAGQBZARsBG0FWgVtBloGAQBkAWQFbAdtCFoIbQlaCW0KWgptC1oLAQBkAWQCbAxaDGQBZAJsDVoNZAFkAmwOWg5kAWQCbA9aD2QBZAJsEFoQZAFkAmwRWhJkAWQGbBNtFFoUAQBkAWQHbBVtFloWAQBkCGQJbBdtGFoYAQBlDqAZoQBkCmsCcltkAWQCbBpaGmQBZAtsBG0bWhsBAG4KRwBkDGQNhABkDYMCWhplHIMAWhtlHWUSah5qH2YCWiB6CGQBZA5sIW0iWiIBAFcAbgkEAGUgeXwBAAEAAQBZAG4BdwBkD2QQhABaI2QvZBJkE4QBWiRkFGQVhABaJWQWZBeEAFomZBFkGGQZZBpkG5wEWidkHGQdhABaKGQeZB+EAFopZCBkIYQAWipkImQjhABaK2QwZCVkJoQBWixHAGQnZCiEAGQogwJaLUcAZClkKoQAZCqDAlouRwBkK2QshABkLIMCWi9HAGQtZC6EAGQugwJaMGQCUwApMWGdAgAACkltcHJvdmVkIHN1cHBvcnQgZm9yIE1pY3Jvc29mdCBWaXN1YWwgQysrIGNvbXBpbGVycy4KCktub3duIHN1cHBvcnRlZCBjb21waWxlcnM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1pY3Jvc29mdCBWaXN1YWwgQysrIDkuMDoKICAgIE1pY3Jvc29mdCBWaXN1YWwgQysrIENvbXBpbGVyIGZvciBQeXRob24gMi43ICh4ODYsIGFtZDY0KQogICAgTWljcm9zb2Z0IFdpbmRvd3MgU0RLIDYuMSAoeDg2LCB4NjQsIGlhNjQpCiAgICBNaWNyb3NvZnQgV2luZG93cyBTREsgNy4wICh4ODYsIHg2NCwgaWE2NCkKCk1pY3Jvc29mdCBWaXN1YWwgQysrIDEwLjA6CiAgICBNaWNyb3NvZnQgV2luZG93cyBTREsgNy4xICh4ODYsIHg2NCwgaWE2NCkKCk1pY3Jvc29mdCBWaXN1YWwgQysrIDE0Llg6CiAgICBNaWNyb3NvZnQgVmlzdWFsIEMrKyBCdWlsZCBUb29scyAyMDE1ICh4ODYsIHg2NCwgYXJtKQogICAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gQnVpbGQgVG9vbHMgMjAxNyAoeDg2LCB4NjQsIGFybSwgYXJtNjQpCiAgICBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBCdWlsZCBUb29scyAyMDE5ICh4ODYsIHg2NCwgYXJtLCBhcm02NCkKClRoaXMgbWF5IGFsc28gc3VwcG9ydCBjb21waWxlcnMgc2hpcHBlZCB3aXRoIGNvbXBhdGlibGUgVmlzdWFsIFN0dWRpbyB2ZXJzaW9ucy4K6QAAAABOKQHaBG9wZW4pAtoHbGlzdGRpctoHcGF0aHNlcCkE2gRqb2lu2gZpc2ZpbGXaBWlzZGly2gdkaXJuYW1lKQHaDUxlZ2FjeVZlcnNpb24pAdoPdW5pcXVlX2V2ZXJzZWVu6QEAAAApAdoNZ2V0X3VucGF0Y2hlZNoHV2luZG93cykB2gdlbnZpcm9uYwAAAAAAAAAAAAAAAAAAAAABAAAAQAAAAHMcAAAAZQBaAWQAWgJkAVoDZAFaBGQBWgVkAVoGZAFTACkC2gZ3aW5yZWdOKQfaCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aCkhLRVlfVVNFUlPaEUhLRVlfQ1VSUkVOVF9VU0VS2hJIS0VZX0xPQ0FMX01BQ0hJTkXaEUhLRVlfQ0xBU1NFU19ST09UqQByFwAAAHIXAAAA+lovcm9vdC9nZjE4MC1kZW1vL2NhcmF2ZWxfdXNlcl9wcm9qZWN0L3ZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9zZXR1cHRvb2xzL21zdmMucHlyDwAAACsAAABzCgAAAAgABAEEAQQBCAFyDwAAACkB2gNSZWdjAQAAAAAAAAAAAAAABQAAAAsAAABDAAAAc44AAABkAX0BfAFkAnwAZgIWAH0Cegh0AKABfAJkA6ECfQNXAG4jBAB0AnkzAQABAAEAeg58AWQEfABmAhYAfQJ0AKABfAJkA6ECfQNXAG4LBAB0AnkwAQABAAEAZAV9A1kAbgF3AFkAbgF3AHwDckF0A3wDZAaDAn0EdAR8BIMBckF8BFMAdAV0BoMBfACDAVMAKQdhzQEAAAogICAgUGF0Y2hlZCAiZGlzdHV0aWxzLm1zdmM5Y29tcGlsZXIu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ICAgUmV0dXJuCiAgICAgICAgLS0tLS0tCiAgICAgICAgc3RyCiAgICAgICAgICAgIHN1YmRpcgogICAgICAgIPoDJXNcchoAAAApAnJeAQAAciEBAACpAnKdAAAA2gd1Y3J0dmVychcAAAByFwAAAHIYAAAAcnwBAADMBQAA8wQAAAAIChABehtFbnZpcm9ubWVudEluZm8uX3Nka19zdWJkaXJjAQAAAAAAAAAAAAAAAQAAAAMAAABDAAAAcx4AAAB8AGoAZAFrBHIHZwBTAHQBfABqAmoDZAKDAmcBUwApA3pzCiAgICAgICAgTWljcm9zb2Z0IFdpbmRvd3MgU0RLIFNldHVwLgoKICAgICAgICBSZXR1cm4KICAgICAgICAtLS0tLS0KICAgICAgICBsaXN0IG9mIHN0cgogICAgICAgICAgICBwYXRocwogICAgICAgIHKTAAAA2gVTZXR1cCkEcuYAAAByBQAAAHJeAQAAciABAABynwAAAHIXAAAAchcAAAByGAAAANoIU2RrU2V0dXDZBQAA8wYAAAAKCgQBEAJ6GEVudmlyb25tZW50SW5mby5TZGtTZXR1cGMBAAAAAAAAAAAAAAAFAAAABAAAAAMAAABzlAAAAHwAagB9AXwAagGJAHwAagJkAWsBchhkAn0CfAGgA6EADABvFnwBoAShAAwAfQNuEnwBoAOhAHAffAGgBKEAfQJ8AWoFZANrAnApfAFqBmQDawJ9A2cAfQR8AnI6fASHAGYBZARkBYQIiABqB0QAgwE3AH0EfANySHwEhwBmAWQGZAWECIgAaghEAIMBNwB9BHwEUwApB3p2CiAgICAgICAgTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrIFRvb2xzLgoKICAgICAgICBSZXR1cm4KICAgICAgICAtLS0tLS0KICAgICAgICBsaXN0IG9mIHN0cgogICAgICAgICAgICBwYXRocwogICAgICAgIHKVAAAAVHJlAAAAYwEAAAAAAAAAAAAAAAIAAAAFAAAAEwAAAPMYAAAAZwB8AF0IfQF0AIgAagF8AYMCkQJxAlMAchcAAAApAnIFAAAAckIBAACpAnJ3AAAAci4AAACpAXJeAQAAchcAAAByGAAAAHJnAQAA/gUAAPMGAAAABgACARD/eitFbnZpcm9ubWVudEluZm8uRnhU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