My43LjIKZWQxNjVmODc4YmJjNmUwYmRhOTI1MmNjMTFlZGI0MDZlMDhjYWQxNgoECG86GVNhc3M6OlRyZWU6OlJvb3ROb2RlDDoOQGNoaWxkcmVuWwxvOhxTYXNzOjpUcmVlOjpDb21tZW50Tm9kZQw6C0B2YWx1ZVsGSSIpLyogVW5wcmVmaXggU3VzeQogKiA9PT09PT09PT09PT09ICovBjoGRVQ6CkB0eXBlOgtzaWxlbnQ7BlsAOg5AZmlsZW5hbWUwOg1Ab3B0aW9uc3sAOgpAbGluZWkGOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsOaQY6DEBvZmZzZXRpBjoNQGVuZF9wb3NvOxIHOw5pBzsTaRY6CkBmaWxlSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL3N1c3kvc3VzeS9fdW5wcmVmaXguc2NzcwY7CVQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CVQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARm87Bww7CFsGSSIBtS8qIFNwYW4KICogLS0tLQogKi8gVW4tcHJlZml4ZWQgYWxpYXMgZm9yIGBzdXN5LXNwYW5gCiAqLyAoYXZhaWxhYmxlIGJ5IGRlZmF1bHQpCiAqLwogKi8gQGdyb3VwIGFwaQogKi8gQGFsaWFzIHN1c3ktc3BhbgogKi8KICovIEBwYXJhbSB7bGlzdH0gJHNwYW4KICovIEBwYXJhbSB7bWFwfSAkY29uZmlnIFsoKV0gKi8G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