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AAAAcjIAAAByDAAAAGMCAAAAAAAAAAwAAAAfAAAAQwAAAHMoAgAAdAB8AYMBAQB8AGoBgwBqAmQBgwFzJHwAagGDAGoCZAKDAXIqZAN9Am5MfABqAYMAagJ0A4MBcj5kBH0Cbjh8AGoBgwBqAnQEgwFyUmQFfQJuJHwAagGDAGoCZAaDAXJmZAd9Am4QdAVqBmQIfACDAgEAZAl9AnQHagh8AHwCZApkC40DfQOQAXqQdAlkDGQNhAB8A2oKgwBEAIMBgwF9BJABeHJ8A2oKgwBEAJABXWR9BXwFagt9BnwEcsh0DHwGgwFkDhkAfQZ0DWoOag98AXwGgwJ9B3QQfAF8B4MCc/ZkD30IdBF8CGoSfAB8B3wBgwODAYIBfAVqE4MAkAFyCnQAfAeDAQEAcax8BWoUgwCQAXJgeRB8A2oVfAV8B4MCAQBXAG44BAB0FmsKkAFyXAEAfQkBAHoadAVqBmQQfAB8BWoLfAmDBAEAd6xXAFkAZBFkEX0JfglYAG4CWABxrHkOfANqF3wFgwF9ClcAbjwEAHQYdBlmAmsKkAFyqgEAfQkBAHoadAVqBmQQfAB8BWoLfAmDBAEAd6xXAFkAZBFkEX0JfglYAG4CWAB0AHQNag5qGnwHgwGDAQEAfApkEWsJkAFzynQbggF0CHwHZBKDAo8SfQt0HGodfAp8C4MCAQBXAGQRUQBSAFgAfApqHoMAAQB8A2offAV8B4MCAQB8BWogZBNAAHKsdCF8B4MBAQBxrFcAVwBkEXwDah6DAAEAWABkEVMAKRRhnwEAAAogICAgVW50YXIgdGhlIGZpbGUgKHdpdGggcGF0aCBgZmlsZW5hbWVgKSB0byB0aGUgZGVzdGluYXRpb24gYGxvY2F0aW9uYC4KICAgIEFsbCBmaWxlcyBhcmUgd3JpdHRlbiBiYXNlZCBvbiBzeXN0ZW0gZGVmYXVsdHMgYW5kIHVtYXNrIChpLmUuIHBlcm1pc3Npb25zCiAgICBhcmUgbm90IHByZXNlcnZlZCksIGV4Y2VwdCB0aGF0IHJlZ3VsYXIgZmlsZSBtZW1iZXJzIHdpdGggYW55IGV4ZWN1dGUKICAgIHBlcm1pc3Npb25zICh1c2VyLCBncm91cCwgb3Igd29ybGQpIGhhdmUgImNobW9kICt4IiBhcHBsaWVkIGFmdGVyIGJlaW5n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